summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md37
1 files changed, 19 insertions, 18 deletions
diff --git a/README.md b/README.md
index 2da6741a..5c8f0e88 100644
--- a/README.md
+++ b/README.md
@@ -70,20 +70,22 @@ The Simple language is styled after a subset of C or Java.
* [Chapter 21](docs/chapter21/README.md): Instruction Encodings & ELF
* [Chapter 22](docs/chapter22/README.md): A Simple Hello, World!
* [Chapter 23](docs/chapter23/README.md): Methods and Types Revisited
-* [Chapter 24](docs/chapter24/README.md): Chained conditionals and SCCP
-* Chapter 25: Modules, Separate Compilation, and SSA Construction with Incomplete Types
-
-The [approved split](docs/chapter-split.md) uses descriptive chapter names
-while the teaching boundaries settle. The numbered chapters remain comparison
-baselines during extraction. The first named snapshots are:
-
-* [SCCP Within a Function](chapter-sccp/README.md)
-* [SCCP Across Functions](chapter-interprocedural-sccp/README.md)
+* [Chapter 24a](docs/chapter24a/README.md): SCCP Within a Function
+* [Chapter 24b](docs/chapter24b/README.md): SCCP Across Functions
+* [Chapter 25](docs/chapter25/README.md): SSA Before Types Are Known
+* [Chapter 26](docs/chapter26/README.md): Construction and Private Memory
+* [Chapter 27](docs/chapter27/README.md): Escape Analysis and Unknown Callers
+* [Chapter 28a](docs/chapter28a/README.md): Modules and Lazy Class Initialization
+* [Chapter 28b](docs/chapter28b/README.md): Separate Compilation
+
+Appendices: [Native libraries](docs/appendices/native-libraries.md),
+[optimizer and backend tuning](docs/appendices/optimizer-tuning.md).
+Future compiler and language work is collected in the [roadmap](docs/roadmap.md).
## Building across chapters
The optional [interactive graph viewer](graph/README.md) is shared in `graph/`.
-Chapters 1–25 launch it with `make view` from the chapter directory.
+All chapters launch it with `make view` from the chapter directory.
The [debug printers](print/README.md) are shared in `print/`; Chapter 2 needs only
a one-line expression format. A shared `BaseNode` supplies identity and edge
@@ -91,7 +93,7 @@ access to both printers and the viewer; chapter adapters add semantic details
as the IR grows.
The [instruction encoders](isa/README.md) share x86-64, ARM, and RISC-V byte
-emission for Chapters 21-25, along with ARM/RISC-V test evaluators. Machine-node
+emission for Chapters 21–28b, along with ARM/RISC-V test evaluators. Machine-node
selection, register allocation, and code layout remain in each chapter; the
shared layer takes concrete operands and writes bytes.
@@ -100,14 +102,12 @@ The top-level Makefile runs each chapter's `tests`, `tags` (also `tag`),
`make tests`.
CI runs `make lib tests CTAGS=` on Linux with JDK 21. The Make targets also build
-Chapter 25's native runtime and `sys` library before running the tests that use
+Chapter 28b's native runtime and `sys` library before running the tests that use
them; Maven's Java build alone does not produce those prerequisites.
-The [chapter backport queue](docs/chapter-backports.md) records proposed small
-corrections and the per-chapter test/review workflow. Larger architectural moves
-are tracked separately there. Chapters 10-14 now group whole memory,
+Chapters 10-14 cover whole memory,
lazy alias splitting, references, GCM, and numeric types in that order.
-The memory representation is forwarded through Chapter 25.
+Later chapters build on this memory representation.
To build and test just the memory chapters:
@@ -115,6 +115,7 @@ To build and test just the memory chapters:
make lib tests release CHAPTERS="chapter10 chapter11 chapter12"
```
-The root Maven reactor includes every chapter. Chapters 10-14 have portable
-IDEA module descriptors depending on the shared `graph` and `print` modules.
+Every chapter has an IntelliJ module with its own compiler and test classpath.
+See [the IntelliJ setup](docs/intellij.md) to open and debug any chapter's tests.
+The root Maven reactor also includes every chapter.
Make and the linear-history workflow discover the numbered chapter directories.