summary_session-2026-10-24-library-folders.md 2.2 KB

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

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.