1. 1. Introduction
  2. 2. Allocation
    1. 2.1. Alignment
    2. 2.2. Obtaining blocks of memory
    3. 2.3. The type of allocation
  3. 3. An allocator: Sticky Immix
    1. 3.1. Bump allocation
    2. 3.2. Allocating into multiple blocks
    3. 3.3. Defining the allocation API
    4. 3.4. Implementing the API
  4. 4. An interpreter: Eval-rs
    1. 4.1. Allocating objects and dereferencing safely
    2. 4.2. Tagged pointers and object headers
    3. 4.3. Symbols and Pairs
    4. 4.4. Parsing s-expressions
    5. 4.5. Arrays
    6. 4.6. Bytecode
    7. 4.7. Dicts
    8. 4.8. Virtual Machine: Design
    9. 4.9. Virtual Machine: Implementation
    10. 4.10. Compiler: Design
    11. 4.11. Compiler: Implementation
  5. 5. Garbage collection
    1. 5.1. TODO - Tracing
    2. 5.2. TODO - Sweeping
    3. 5.3. TODO - Recycling blocks

Writing Interpreters in Rust: a Guide

404 - this chapter has not yet been written