elderheim starts at 0.10.0.
Each release stop has a matching local tag gate in Tag Stop Plan. Tags are intended to be local review and pentest checkpoints before pushing branch and tag.
- Rust workspace.
- Shared AST.
- BASIC parser core.
- CLI dialect routing.
- Cranelift object emission for the smallest supported program shape.
- Security, CI, release-note, and dependency-policy files.
- Label table validation.
- Variable table and type suffix model.
- Diagnostics with line and column reporting.
- Resolver for
GOTO,IF THEN, assignments, andPRINT. - String-vs-numeric expression validation for assignments, conditions, arithmetic, concatenation, and equality.
- Runtime ABI for printing strings and numbers.
- Cranelift calls into the runtime.
- Temporary host C compiler linker integration for Linux and macOS.
- CLI executable emit mode for the current text-output subset.
- Clear documentation that the host C compiler requirement is not the final supported release path.
- Native execution for variables and assignments.
- Executable
GOTO,IF ... THEN, andENDbehavior. - Runtime storage for string and numeric variables.
- Explicit Dartmouth BASIC profile names in the shared AST and CLI.
- Codegen tests for supported control flow and variable reads/writes.
- Manual-driven roadmap update: found BASIC manuals are mapped to explicit dialect names before implementation claims.
- Complete
dartmouth-basic-1parser, semantics, runtime, codegen, and fixtures against the available First Edition scan and Dartmouth-hosted command summary. - Include
REM,DIM, zero-based numeric arrays, Dartmouth numeric output formatting, 15-characterPRINTcomma zones, semicolon separators,GOSUB, andRETURN. - Keep matrix behavior fail-closed until a primary source-backed profile requires it.
- Complete
dartmouth-basic-2. - Complete
cardbasic. dartmouth-basic-2fixtures for October 1964 semicolon-separatedPRINTpacking behavior and any verified interactive array-bound differences.cardbasicfixtures for card-workflow behavior and numericalMATcommands.- Negative fixtures proving CARDBASIC does not inherit interactive-only array bound rules.
- Complete
dartmouth-basic-4. - Manual-backed Fourth Edition additions such as
INPUT,RESTORE,ON ... GOTO, advancedPRINT, strings, string vectors,CHANGE,MAT,RANDOMIZE, multiple-lineDEF, nestedGOSUB, and matrix behavior.
- Compatibility matrix across manual-backed Dartmouth profiles.
- Explicit documentation that
dartmouth-basic-3,dartmouth-basic-5,dartmouth-basic-6,sbasic,dartmouth-basic-7, anddartmouth-basic-ansiare reserved until primary manuals are found. - Roadmap entries for
ansi-basic,ecma-basic-1, andecma-basic-2based on the local ANSI X3.113-1987 and ECMA-116 standards.
- Release binaries for Linux, macOS, and Windows.
- Packaging work toward self-contained compiler binaries.
- Full manual-backed profile compatibility matrix.
- Reproducible local release checks.
- SBOM generation.
- Cross-platform behavior review.
- Stable manual-backed Dartmouth BASIC compiler path using Rust and Cranelift.
1.0.0support is fixed todartmouth-basic-1,dartmouth-basic-2,cardbasic, anddartmouth-basic-4.- Native executable output through
elderheimitself. - One downloadable
elderheimbinary per supported OS/architecture. - No Rust,
rustc, Cargo, C compiler, or external linker requirement for the supported release path, where platform constraints allow it. - Documented profile support boundaries for every implemented profile.
- Stable CLI and release process.
- Security gate, dependency audit, SBOM, release notes, and checksums required for release.
After 1.0.0, language and dialect releases follow the dedicated
Language Release Plan. Later BASIC dialects,
reserved Dartmouth profiles with newly found manuals, and other languages each
get an explicit frontend, CLI selector, and compatibility boundary. The
post-1.0.0 rule is one language or dialect profile to 100% before moving to
the next one.