The Macronomicon
summary
Clojure macros power a compiler-time DSL toolkit: a macro-based library Trammel implements pre/post conditions, deferred contracts and record invariants by stripping annotations at compile time and applying them as second-class forms; a separate MSL, minderbinder, compiles a units specification into a deaf-units lookup so conversions become constants (no runtime cost). The workflow uses piecewise transformation, attaches validators during expansion, emits clearer blameable errors, and scales to futures and memoization patterns with measurable compile-time expansion.
AI-written summary · about
chapters (30)
- 0:00Intro
- 1:30Pi Mu
- 2:38Baseball Statistics
- 6:18Template Metaprogramming
- 7:58OhCamel
- 10:01The history
- 12:35Scala
- 13:49The Mapping Dilemma
- 14:41Other Use Cases
- 16:01What do I want
- 21:37DSLs
- 23:01Trammell
- 23:13Things I wanted to do
- 23:37I wanted invariant
- 24:06Pre and post
- 24:41Macros
- 30:30The primacy of semantics
- 30:55Contract
- 34:15Functions
- 34:28Conversions
- 34:44Boilerplate
- 35:08Unicorns
- 35:51Semantics
- 36:31primacy of syntax
- 36:42semantically useful
- 37:12data
- 38:39fast way
- 39:14F units
- 41:23References
- 41:36Thanks
related talks
24mUse of Macros Leads to Remorse
32mMacoCaml: Staging Composable and Compilable Macros
01h 03mModern Macros
01h 04mClojure Compilation, Backwards
25mRewriting Macros on the Fly: A Modular Approach to Administrative Reduction During(…)
42mEternal Sunshine of the Spotless Macro
12mMulti-Stage Programming with Generative and Analytical Macros
06mA few tips for writing macros
