Compiling Typed Python

Writing a symbolizer for the Cinder JIT

Inline caches in the Skybison Python runtime

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