- Compiler Education Deserves a Revolution
February 19, 2026
⊢
How we teach compilers and why it's gotta change
- How to Choose Between Hindley-Milner and Bidirectional Typing
February 15, 2026
⊢
A false dichotomy that hides the real request
- Making an LSP for great good
January 21, 2026
⊢
Implementing an LSP from our query-based compiler passes
- Resolving Names Once and for All
December 27, 2025
⊢
Resolving scoping and shadowing to produce unique variables for our names
- Desugaring the Relationship Between Concrete and Abstract Syntax
December 2, 2025
⊢
Converting our CST into our AST and desugarging let expressions
- Reproachfully Presenting Resilient Recursive Descent Parsing
November 12, 2025
⊢
Parsing syntax for our base language with error recovery
- Pushing Past the First Error During Type Inference
November 10, 2025
⊢
Improving our type inference to support multiple errors and interactive IDE use cases
- Wasm Does not Stand for WebAssembly
July 15, 2025
⊢
A case for why Wasm is neither Web nor Assembly
- Skipping the Backend by Emitting Wasm
June 13, 2025
⊢
Turning our Base IR into executable WebAssembly
- Closure Conversion Takes the Function out of Functional Programming
May 14, 2025
⊢
Converting our lambda functions into closures for the Base IR.