Unit 03 of 03
Project Infrastructure
Build systems with a dependency graph, producing static and dynamic libraries, isolated unit tests and mocking, debugging with breakpoints and watchpoints, and how optimization levels preserve observable behavior.
Published Updated
Lessons
- 01 Build Systems Measures, by building the timestamp comparison in C itself, why a target whose dependency was never written still stays out of date under a rule-based build model. 15 min read
- 02 Building Libraries Measures how whether a library is bound into the program by embedding or read at load time decides which value the program sees when the library's version changes. 15 min read
- 03 Testing Frameworks Measures why a change made inside a forked child running a test never leaks into the next test, and why that isolation stops short of covering filesystem state. 15 min read
- 04 Using a Debugger Measures, by modeling breakpoints and watchpoints in C, why a breakpoint never sees an intermediate value between steps, and why a watchpoint sees that same value. 14 min read
- 05 Optimization Levels Uses the model of an optimizer deleting an unread write to cover the as-if rule, the guarantee volatile provides, and a closing tally of the course's fifteen lessons. 13 min read