Просмотр исходного кода

docs: M2make-driven bootstrap + explicit cross-stage FileIO summary

Eric Streit 1 неделя назад
Родитель
Сommit
31f75f64f8
1 измененных файлов с 36 добавлено и 0 удалено
  1. 36 0
      docs/summary_m2make-bootstrap.md

+ 36 - 0
docs/summary_m2make-bootstrap.md

@@ -0,0 +1,36 @@
+# Step: M2make-driven bootstrap + explicit cross-stage FileIO
+
+Tags `v3-m2make-bootstrap`. Suite **111/111**.
+
+## What changed
+
+`bootstrap/fixpoint.sh` now drives the fixpoint with **M2make** (the
+build-order front-end) instead of a hand-written session file list, and
+makes the stage-dependent `FileIO` choice explicit:
+
+- **Stage 1 (gm2)**: `compiler/build.sh` with the **host** `FileIO`
+  (`compiler/src/FileIO.def/.mod`, GNU-Modula-2 specific).
+- **Stage 2/3 (V3)**: the compiler sources are regenerated without `-m`
+  (real `FORWARD`s) and **staged without `compiler/src/FileIO*`**, with
+  `runtime/syslib` on the `-I` path — so M2make resolves `FileIO` to the
+  **self-hosted** `runtime/syslib/FileIO`. M2make orders the session and
+  runs `M2` + `qbe` + `cc`.
+
+M2make is built if missing (`tools/m2make/build_m2.sh`, `b_v3/M2make`).
+
+## Result
+
+```
+=== Stage 1: gm2 build (host FileIO, CR -m) ===
+=== m2s2 built by /tmp/opencode/m2s1 ===
+=== m2s3 built by /tmp/opencode/m2s2 ===
+FIXPOINT OK: stage2.ssa == stage3.ssa (1991297 bytes)
+```
+
+(The image is a little smaller than the earlier hand-written session's
+1,991,439 bytes because M2make's topological order differs — irrelevant
+to the fixpoint, which compares the two V3 stages.)
+
+## Files
+
+`bootstrap/fixpoint.sh`.