소스 검색

docs: record dialect library folders

Eric Streit 13 시간 전
부모
커밋
3f5ac86594
3개의 변경된 파일과 63개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      docs/INDEX.md
  2. 1 0
      docs/STATUS.md
  3. 59 0
      docs/summary_session-2026-10-24-library-folders.md

+ 3 - 0
docs/INDEX.md

@@ -57,6 +57,9 @@ bisecting *why* a decision was made, not for reading end-to-end).
 
 ## Recent session summaries (newest first)
 
+- **`summary_session-2026-10-24-library-folders.md`** — dialect library
+  layout (`lib/pim`, `lib/iso`, `lib/common`, `lib/gm2`); tag
+  `v3-library-folders`.
 - **`summary_session-2026-10-24-open-arrays-m6.md`** — M6 pointer-based
   1-D views and final gates; tag `v3-open-arrays`.
 - **`summary_session-2026-10-24-open-arrays-m5.md`** — M5 record

+ 1 - 0
docs/STATUS.md

@@ -201,6 +201,7 @@ declarations still work (`t_fwdproc`, `t_fwdok`).
    `lib/pim`, `lib/iso`, `lib/common` and `lib/gm2`, with the shared
    runtime in `runtime/syslib`.  M2make selects a dialect with
    `--dialect pim|iso|gm2`; the corpus selects from its input path.
+   Summary: `docs/summary_session-2026-10-24-library-folders.md`.
    Library holes: the channel framework grew `ChanConsts` and
    `StreamFile` (ISO 10514-1) on top of `IOChan`, and the PIM/gm2 I/O
    family gained `NumberIO`, `RealInOut`, `FpuIO` (`StrIO`/`InOut`

+ 59 - 0
docs/summary_session-2026-10-24-library-folders.md

@@ -0,0 +1,59 @@
+# Session 2026-10-24 — dialect library folders
+
+The aggregate `stdlib/` has been retired.  Standard libraries now live
+in dialect folders, with the runtime shared.
+
+**Branch:** `master`.  **Feature state:** `v3-library-folders`.
+**Gates at the end:** suite **301/301**, fixpoint **OK
+(3,573,487 bytes)**, corpus **519/612 compile-OK, 0 crashes**.
+
+---
+
+## Layout
+
+```text
+runtime/syslib/   shared runtime: SysShim, FileIO, SysExceptions, Utf8
+lib/common/       CharClass, Math, Storage, Strings, SysIO
+lib/pim/          FpuIO, InOut, NumberIO, RealInOut, StrIO
+lib/iso/          ISO 10514-1 modules (IOChan, TextIO, Files,
+                  Conversions, SysClock, TERMINATION, EXCEPTIONS, ...)
+lib/gm2/          optional gm2 compatibility (DynamicStrings, StdIO,
+                  SysStorage, TimeString, wrapc/wrapclock/wraptime)
+```
+
+`lib/common` is shared, not a dialect.  `lib/gm2` is optional
+compatibility used by corpus/tests, not a third standard dialect.
+Never mix `lib/pim` and `lib/iso` in one session.
+
+## Build/test selection
+
+- `M2make --dialect pim|iso|gm2` adds `lib/<dialect>`, `lib/common`,
+  `lib/gm2` and `runtime/syslib` to module resolution.
+- `tools/v3-corpus/corpus.sh` chooses ISO for paths containing `/iso/`,
+  otherwise PIM, plus common/gm2/runtime.  `V3_LIBS` remains an explicit
+  override.
+- `compiler/run_tests.sh` uses explicit `lib/...` paths per session.
+- `bootstrap/fixpoint.sh` uses `-I lib/common` and `runtime/syslib` for
+  the compiler’s `Strings`/`Storage`/runtime imports.
+
+## Verification
+
+- Suite **301/301**.
+- Fixpoint **OK (3,573,487 bytes)**, including `lib/common` paths.
+- Corpus **519/612**, 0 crashes; PIM and ISO corpus paths resolve
+  their respective dialect folders.
+- `M2make --dialect iso` dry-run resolves `SysIO` from `lib/common`.
+
+---
+
+## Commits and tags
+
+| commit | tag | work |
+| --- | --- | --- |
+| `5ae8152` | `v3-lfloat` | `LFLOAT` builtin |
+| `895ee2e` | `v3-corpus-triage-2026-10-24` | corpus triage |
+| `f904307` | `v3-library-folders` | dialect library folders |
+| this docs commit | `v3-library-folders-summary` | library-folder summary |
+| final docs commit | `v3-session-2026-10-24-library-folders-end` | session tag |
+
+No push was performed.