Eric Streit f9043074ef build: split standard library into dialect folders 13 hours ago
..
common f9043074ef build: split standard library into dialect folders 13 hours ago
gm2 f9043074ef build: split standard library into dialect folders 13 hours ago
iso f9043074ef build: split standard library into dialect folders 13 hours ago
pim f9043074ef build: split standard library into dialect folders 13 hours ago
README.md f9043074ef build: split standard library into dialect folders 13 hours ago

README.md

V3 library folders

Libraries are split by dialect. A compilation session must use one dialect folder plus lib/common and the shared runtime; do not mix PIM and ISO modules in one session.

runtime/syslib/   SysShim, FileIO, SysExceptions, Utf8 (always shared)
lib/common/       CharClass, Math, Storage, Strings, SysIO
lib/pim/          FpuIO, InOut, NumberIO, RealInOut, StrIO
lib/iso/          ISO 10514-1 modules (IOChan, TextIO, Conversions,
                  SysClock, TERMINATION, EXCEPTIONS, ...)
lib/gm2/          optional gm2 compatibility modules (DynamicStrings,
                  StdIO, SysStorage, TimeString, wrapc/wrapclock/wraptime)

Selection:

  • M2make --dialect pim|iso|gm2 adds lib/<dialect>, lib/common, lib/gm2 and runtime/syslib to the search path.
  • tools/v3-corpus/corpus.sh selects lib/iso for corpus paths under .../iso/..., otherwise lib/pim, plus common/gm2/runtime. Set V3_LIBS explicitly to override.
  • compiler/run_tests.sh passes library files explicitly per session.

lib/gm2 is optional compatibility, not a dialect: it contains gm2-only modules used by the corpus, but standard PIM/ISO sessions should not depend on it.