Rhombus: The Non-shrubbery Parts (Keynote)
summary
Rhombus implements Racket macros plus a new set of binding and repetition protocols, delivering pervasive pattern matching in every binding position, define-repetition-syntax for macros that expand under ellipses, and a Lisp-1 binding space that separates expression/annotation/repetition contexts. Lists use RRB-style tree lists (log-time sublist/append) instead of conses; microbenchmarks show cons is ~9 ms for 10M tiny ops while tree lists pay ~7× for tiny lists but avoid pathological slowups for large ones. Static vs dynamic field resolution and colon::/colon~ annotations trade safety for C-like speed; prototypes and benchmarks show these choices work in practice.
AI-written summary · about
chapters (13)
- 0:00Introduction to Rhombus and its goals
- 2:06Pattern matching in Rhombus bindings and functions
- 9:07Pattern matching for macros and syntax
- 19:18Lisp-in approach and multiple binding spaces
- 23:07Definition forms and let as a definition
- 26:15Definition sequence macros like let closable
- 28:50Continue when and guard macros
- 30:36Static and dynamic field access with ref
- 37:38Indexing with static type resolution
- 39:45Tree lists and RB-tree based list representation
- 44:30Performance comparison of list representations
- 51:12Summary of Rhombus features and future
- 51:41Q&A about Rhombus and Racket integration
related talks
19mRhombus: A New Spin on Macros without All the Parentheses
59mThe Rhombus Programming Language
01h 03mModern Macros
45mLanguage-Oriented Programming with Racket
17mMacros for Domain-Specific Languages
25mRewriting Macros on the Fly: A Modular Approach to Administrative Reduction During(…)
22mDSLs in Racket: You Want It How, Now?
40mLet's Build a Hygienic Macro Expander
