Source: C Systems Lab Companion PDF
Repo: VHCosta/llc-companion-pdf
Stack: Typst
Author: VH Costa
Status: All 11 chapters + appendices A–C complete; Gumroad live; all 3 tiers uploaded
Value Proposition
Paid companion to the free web app, sold on Gumroad. Adds:
- Exercises with full annotated solutions (primary value)
- Deeper “why” explanations behind design decisions
- Real-world codebase connections (SQLite, Redis, CPython, Linux kernel)
- Debugging chapter (GDB, Valgrind, ASan/TSan workflows, core dumps)
- Interview prep mapped to chapters with model answers
Three-Tier Build System
- Base (
typst compile src/main.typ) — exercises with placeholder solution boxes - Solutions (
--input solutions=true) — full annotated solutions - Complete (
--input solutions=true --input extended=true) — solutions + extended projects
Structure
src/
├── main.typ ← entry point, tier flags, page layout
├── template/lib.typ ← block types: chapter-intro, callout, exercise, solution, realworld
├── chapters/ ← ch01.typ – ch11.typ
└── appendix/ ← debug.typ, interview.typ, repo.typ
content/
├── SCHEMA.md ← canonical exercise schema
└── chNN/exN_M/ ← 43 exercises (starter/, solution/, shared/, prompt.md, meta.json)
scripts/
├── validate.sh ← compiles all solution/ trees; 43/43 PASS
└── export.sh ← exports/public/ (stubs) or exports/paid/ (full solutions)
Note: content/ is the canonical exercise source. scripts/validate.sh replaced the old tests/ validation approach.
Chapter Status
Note: PDF chapters have their own structure independent of the web module numbering.
| Chapter | PDF Title | Web Module | Status |
|---|---|---|---|
| ch01 | Setup and the Compilation Model | m01-c-is-not-java (lessons 1-1, 1-2) | Written |
| ch02 | Types, Operators, and Control Flow | m01-c-is-not-java (lesson 1-3) | Written |
| ch03 | Pointers and the Memory Model | m02-pointers-memory-model | Written |
| ch04 | Dynamic Memory | m03-dynamic-memory | Written |
| ch05 | Structs, Unions, and Bit Fields | m04-structs-unions-bitfields | Written |
| ch06 | The C Preprocessor | m05-c-preprocessor | Written |
| ch07 | File I/O and System Calls | m06-file-io-syscalls | Written |
| ch08 | Processes and Signals | m07-processes-signals | Written |
| ch09 | Sockets and Networking | m08-sockets-networking | Written |
| ch10 | Concurrency | m09-concurrency | Written |
| ch11 | Going Below C | m10-going-below-c | Written |
Status: Shipped
All publishing tasks complete as of 2026-04-11:
- Gumroad listing live at
vhcosta.gumroad.com/l/c-systems-lab(28 / $38) - All 3 PDF tiers uploaded
VHCosta/c-systems-lab-exercisespublic repo live; README updated with Gumroad URL- Appendix C URL correct in
src/appendix/repo.typ
Next planned additions: Game Boy emulator ch12 (PDF-exclusive capstone) — see meta-gb-emulator.