Glossary¶
Page Maps¶
graph LR
family["Reproducible Research"]
program["Deep Dive Make"]
section["Parallel Safety Project Structure"]
page["Glossary"]
capstone["Capstone evidence"]
family --> program --> section --> page
page -.applies in.-> capstone
flowchart LR
orient["Orient on the page map"] --> read["Read the main claim and examples"]
read --> inspect["Inspect the related code, proof, or capstone surface"]
inspect --> verify["Run or review the verification path"]
verify --> apply["Apply the idea back to the module and capstone"]
This glossary keeps the language of Module 02 stable.
| Term | Meaning in Module 02 | Why it matters |
|---|---|---|
| convergence | The build reaches a stable state where a repeated successful run has nothing left to do. | It tells you the graph can reach a quiet resting state instead of rebuilding forever. |
| order-only prerequisite | A prerequisite that enforces existence or sequencing without making ordinary timestamp changes trigger rebuilds. | It keeps setup edges honest without creating rebuild noise. |
| parallel safety | The condition where parallel execution changes speed but not build meaning. | It is the standard this whole module is trying to enforce. |
| recursive make | Splitting the build into separate make processes instead of keeping one top-level DAG. | It often hides real dependencies behind private sub-builds. |
| repro pack | A set of intentionally broken Makefiles used to practice race diagnosis and repair. | It teaches prediction, not just repair. |
| runnable target | A target whose prerequisites are already up to date and which Make may schedule now. | This is the basic unit of scheduling you need to reason about under -j. |
| selftest | A build-system test that proves properties such as convergence and serial/parallel equivalence. | It turns "seems fine" into something the build can defend. |
| serial/parallel equivalence | The requirement that declared artifacts match whether the build runs under -j1 or -jN. |
It is the clearest proof that concurrency did not change build meaning. |
| shared append | Multiple recipes appending to the same file, which makes the output nondeterministic. | It violates single ownership of the final file. |
| single top-level DAG | One visible dependency graph owned by a top-level build entry point. | It keeps cross-directory truth visible instead of scattering it. |
| single writer | The rule that one recipe owns one output path. | It is the strongest default defense against parallel races. |
| temporary collision | Two recipes writing the same temporary path. | It is still a multi-writer output bug even if the path is short-lived. |