Celebrating 40 years of magic with Hal Abelson & Gerald Sussman,
and featuring Lisp legend Gregor Kiczales
and featuring Lisp legend Gregor Kiczales
Saturday, October 5th
Saturday, 8:30AM PDT
Doors OpenBreakfast won’t be served, so please eat before coming to the event.
Saturday, 9:00AM PDT
Invited TalkStrategies and Technology for Teaching HtDP at Scale
Saturday, 9:45AM PDT
BreakSaturday, 11:15AM PDT
Michael BallantyneA Multi-Language-Oriented Macro System
Racket’s macros are fantastic for building DSLs that mix well with general-purpose code and inherit Racket’s extensibility. But they suffer when it comes time to equip your DSL with an optimizing compiler or static analyses. There, the very closeness with Racket that makes language mixing and extension so easy gets in the way. In this talk I’ll present my `syntax-spec` metalanguage. It extends Racket’s macro system to allow specifications of DSLs as fragments of a multi-language: DSL and Racket code mix, but only at carefully delineated boundaries. The result is that optimizing compilation, language mixing, and extension combine constructively rather than clash.
Saturday, 11:45AM PDT
LunchSaturday, 1:30PM PDT
Ben KnobleFrosthaven Manager: Built by the Community
Consisting of more than 15k lines of code and documentation, written in spare time during the last two and a half years, the Frosthaven Manager would not exist without the Racket community. Let’s explore some of the community’s contributions, reflect on the benefits of building in the open, and dream about what comes next.
Saturday, 2:00PM PDT
Charlie RayMutation Testing: better than coverage?
Mutation testing is the idea that we can assess the completeness of a test suite by updating (or ‘mutating’) a single location in the code under test, and checking to make sure at least one of the existing tests fails. Building on Lukas Lazarek’s mutation framework for Racket, we apply mutation testing in two very different settings—the classroom, and the open-source software project—to see what kinds of benefit mutation testing might offer above and beyond the commonly-used test case coverage metric.
Saturday, 2:30PM PDT
Nathaniel HejdukTrouble with Typed Racket? Try contract-profile!
When you add types to a portion of your partially-untyped code base in Typed Racket, the type soundness guarantees you gain will make you feel warm and fuzzy. Sometimes, however, doing so will cause your running time to skyrocket, turning your cute, fluffy type annotations into an unexpected tribulation. When such troubles occur, contract-profile can help you ease the runtime wrath of contract checking. In this talk, I’ll demonstrate how to use contract-profile to boldly reduce the overhead of type-checking in your program, without violating the following prime directive: once a module has been typed, it must stay typed forever.
Saturday, 3:00PM PDT
BreakSaturday, 3:30PM PDT
Ashton WiersdorfType Tailoring: Teach an Old Type Checker New Tricks
Type checkers evolve too slowly to keep up with the libraries and
DSLs programmers create. For example, compilers typically see only
opaque strings where programmers see regular expressions or SQL
queries with rich internal structure. Consequently, type checkers
will assign overly-general types where the programmer knows more
about the data at hand.
This talk will present two implementations of a type tailoring:
the first in Racket, and the second in Rhombus. The Racket
tailoring strengthens Typed Racket by making regular expressions
legible to the type system, and the Rhombus tailoring relaxes
Static Rhombus in the spirit of gradual typing—all using the macro
system.
Bio: Ashton Wiersdorf is a PhD student beginning his third year at
the University of Utah. He works with his advisor Ben Greenman on
the intersection between types and metaprogramming. When he’s not
working, he enjoys taking hikes with his wife and three-year-old
daughter who already knows to answer “Racket” when asked what her
favorite programming language is.
Saturday, 4:00PM PDT
William BowmanFirst-class Prompt Engineering with llm-lang! (This is a bad idea.)
As we all know, generative AI and LLMs have replaced software engineering entirely, so all existing programming languages are deprecated. (What are you talking about?) Unfortunately, because even PL people don’t understand the importance of language-oriented programming, interfaces to LLMs remain restricted to chatbots, IDE plugins, and crappy APIs for deprecated languages! This is not the world we were promised; I want first-class prompt engineering! (No, I really don’t!)
Introducing, llm-lang, a Racket hash-lang in which prompt engineering in first class! (Why did I do this?) By default, youre writing a prompt! If you need, you can escape into Racket to compute part of the prompt, or compute over the result of the prompt, but you probably won’t since LLMs can do it all! (You’re joking right?) We perform some cursory experiments to show the power of llm-lang, and some limitations. While it doesn’t strictly provide any measurable benefit, and might in fact be hugely problematic if deployed for anything real, it is cool. (Please, somebody stop me.) I’m sure sufficiently advanced magic will solve these problems in the future. (😫)
Saturday, 6:00PM PDT
Evening Social1221 E Pike Street
Gathering with drinks and snacks, located close to a light rail station that is one stop away from the university.
Sunday, October 6th
Sunday, 9:00AM PDT
Doors OpenBreakfast won’t be served, so please eat before coming to the event.
Sunday, 9:30AM PDT
Jacqueline FirthSorted Collections in Rebellion
Computation exists in service of data. Useful data
structures, therefore, make the difference between what is possible
and what is easy. And of the many forms of structured data, sorted
data is arguably the most useful. In this talk, we’ll tour the sorted
data structures in Rebellion, a second standard library for Racket
I’ve developed over the years. We’ll collect data into sorted sets,
sorted maps, and range sets. We’ll reduce and transduce data from one
collection into another. We’ll order data according to composable
comparators. We’ll build data up gradually, then all at once. We’ll
query it, mutate it, persistently update it, and concurrently access
it. And we’ll do it all with enough performance to wrap up by lunch.
Sunday, 10:00AM PDT
Allan SchougaardRacket Syntax: The Great, the Good and the Back-to-the-Drawing-Board
In this talk I present a linguistic comparison of language choices in
Racket and LISP vs. a number of other computer languages. LISP is by far
the programming language with the simplest syntax: only using parenthesis
as delineations. However, the Racket and LISP communities have over time
added a great variety of semantics on this simple mechanism, some of which
have proven great inventions, and some of which other languages may have
better solutions to, and that the Racket and LISP communities may learn
from. The talk will directly compare elements of yaml, SmallTalk, Ruby,
Java, regular expressions, visual programming, and shell programming with
Racket.
Sunday, 10:30AM PDT
BreakSunday, 11:30AM PDT
Racket ManagementRacket Town Hall
Please come with your big questions and discussion topics.
Registration
To register, buy a ticket via Eventbrite. If you cannot attend in-person, there is an option on Eventbrite for remote participation to support the livestream.
Accommodation
No official hotel has been selected, and no block(s) of rooms have been reserved. However, the University of Washington has a useful list of nearby hotel recommendations on its Getting Here page. NB On that list of recommended hotels, Hotel Deca has been renamed to Graduate Hotel.
There will be a college football game on October 5th, so there might not be parking space for those bringing their own car. It should also be fine if you’re staying somewhere in the downtown area somewhat away from the university, though public transportation will likely be crowded because of the game.
Friendly Policy
The proceedings of RacketCon will take place under the Racket Friendly Environment Policy.
Organization
The RacketCon 2024 organizers are Jesse Alama, Matthew Flatt, Robby Findler, Siddhartha Kasivajhula, and Stephen De Gabrielle
with local arrangements by Zach Tatlock and Sorawee Porncharoenwase.
The organizers may be reached at con-organizers@racket-lang.org.