Programming Languages · Cluster

Memory and Ownership

Lifetimes, borrow checking, and manual reclamation.

  1. 01 Stack Frames and the Lifetime of an Automatic Variable How a function call turns scope into a pointer adjustment, what the frame really holds, and why a local object dies exactly when its block exits. foundational · Apr 3, 2025
  2. 02 Move Semantics and the Affine Type Discipline Why a move is a byte copy plus a compile-time promise, how C++ and Rust enforce that promise differently, and what a moved-from value is still allowed to do. foundational · Jan 28, 2025
  3. 03 malloc, free, and the Conventions That Replace a Type System What the allocator stores around every block, why the ownership rule must be maintained by hand, and which C idioms encode it well enough to survive review. foundational · Jan 14, 2025
  4. 04 Destructors, Drop Order, and What Unwinding Actually Runs The order in which destructors run, how exception propagation finds them, and why a destructor that throws or panics changes the shape of the program. intermediate · Aug 30, 2025
  5. 05 Reference Counting and the Cycle It Cannot Break How an atomic count turns ownership into a distributed protocol, why strong counts cannot reclaim a cycle, and what weak references and trial deletion cost to add. intermediate · Aug 6, 2026
  6. 06 Arena Allocation and Ownership by Convention Replacing per-object ownership with region ownership: the bump-pointer fast path, the constraints it imposes on destructors, and where the pattern appears in real allocators. intermediate · Mar 5, 2023
  7. 07 Interior Mutability and the Runtime Borrow Flag How a language that checks aliasing at compile time permits mutation through a shared reference, what the runtime flag costs, and how it fails at runtime instead of at compile time. intermediate · May 12, 2026
  8. 08 Borrow Checking as a Dataflow Analysis Over Places How a lifetime check becomes a liveness problem on a control-flow graph, why non-lexical lifetimes removed a class of false errors, and where the analysis still gives up. advanced · Feb 3, 2026
  9. 09 Unsafe Abstraction Boundaries and What Soundness Actually Costs The contract an unsafe block transfers from compiler to programmer, the invariants a safe wrapper must maintain, and how those invariants fail in practice. advanced · Jun 8, 2024
  10. 10 How Escape Analysis Removes a Heap Allocation How a compiler proves that an allocation cannot be observed outside its function, and what it must give up when object identity or a stored pointer blocks the proof. advanced · Jun 19, 2023