How we use binary search to find compiler bugs

Driving student programs

How the Cinder JIT’s inliner works

Discovering Basic Blocks

Programming languages resources

Compiling a Lisp to x86_64 (2020)

Inline Caching: Quickening

Small objects and pointer tagging

Inline Caching

Compiling a Lisp to x86-64: Labelled procedure calls

Compiling a Lisp to x86-64: Let expressions

Compiling a Lisp to x86-64: Instruction encoding interlude

Compiling a Lisp to x86-64: If expressions

Compiling a Lisp to x86-64: Heap allocation

Compiling a Lisp to x86-64: primitive functions

Compiling a Lisp to x86-64: Primitive binary functions

Compiling a Lisp: Reader

Compiling a Lisp: Overture

Understanding the 100 prisoners problem

Bytecode compilers and interpreters

JumboSmash: a technical retrospective

How to mess with your roommate

Driving student programs

Writing a Lisp, the series