Celebrating 40 years of magic with Hal Abelson & Gerald Sussman,
and featuring Lisp legend Gregor Kiczales
Talk recordings coming soon. Stay tuned for links to talk vidoes; it will take a few days. Meanwhile, you can still reach the livstream feed (currently has the day 2 recording) and the chat.
Saturday, October 5th
Saturday, 8:30AM PDT
Doors Open
Breakfast won’t be served, so please eat before coming to the event.
Saturday, 9:00AM PDT
Invited Talk
Strategies and Technology for Teaching HtDP at Scale
Saturday, 9:45AM PDT
Break
Saturday, 10:15AM PDT
Keynote (Remote Presentation)
Saturday, 11:15AM PDT
Michael Ballantyne
A 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
Lunch
Saturday, 1:30PM PDT
Ben Knoble
Frosthaven 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 Ray
Mutation 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 Hejduk
Trouble 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
Break
Saturday, 3:30PM PDT
Ashton Wiersdorf
Type 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 Bowman
First-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 Social
1221 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 Open
Breakfast won’t be served, so please eat before coming to the event.
Sunday, 9:30AM PDT
Jacqueline Firth
Sorted 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 Schougaard
Racket 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
Break
Sunday, 11:00AM PDT
Sam Tobin-Hochstadt
The State of Racket
Sunday, 11:30AM PDT
Racket Management
Racket 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.
Previous RacketCons
2023202220212020201920182017201620152014201320122011