Check the reference corpus in, so the build stops needing the Go submodule
All 41 .bas/.txt pairs copied byte for byte from basicinterpreter@d76162c into tests/reference/, plus the Commodore font into assets/fonts/ -- the two things that tied the build to deps/basicinterpret. Both were verified cmp-identical to the submodule copies. This reverses a decision that was deliberate and correct at the time: the corpus was driven in place because copying a submodule's corpus guarantees drift. Overruled on purpose -- the Go dependency is being deprecated, and a build that cannot run its acceptance suite without cloning the implementation it replaced is not finished. tests/reference/README.md records what the drift now costs and that those expectations are never edited. Checked rather than assumed: both configurations configure, build and pass from scratch with deps/basicinterpret moved out of the tree entirely. The submodule is kept as the behavioural spec, which is a real use. The font came with an open licence question; assets/fonts/PROVENANCE.md states it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
15
CLAUDE.md
15
CLAUDE.md
@@ -190,10 +190,17 @@ make tests # or: bash ./test.sh
|
||||
stdout against the sibling `.txt`. The exit code is the number of failures. To run a single case,
|
||||
just run the interpreter on that `.bas` and diff against its `.txt`.
|
||||
|
||||
That corpus is the natural acceptance suite for the rewrite: the C interpreter should reproduce the
|
||||
same stdout for the same `.bas` files. Carry it over (or drive it in place) alongside the per-module
|
||||
CTest executables the `ak*` style calls for — the two answer different questions, and new language
|
||||
features from goal 2 need a `.bas`/`.txt` pair as well as unit tests.
|
||||
That corpus is the acceptance suite for the rewrite: the C interpreter reproduces the same stdout
|
||||
for the same `.bas` files. **It has been copied into this repository at `tests/reference/`** and no
|
||||
longer runs out of the submodule — see `tests/reference/README.md` for the provenance and for the
|
||||
rule that those expectations are never edited to suit this interpreter. It sits alongside the
|
||||
per-module CTest executables the `ak*` style calls for; the two answer different questions, and new
|
||||
language features from goal 2 need a `.bas`/`.txt` pair in `tests/language/` as well as unit tests.
|
||||
|
||||
**`deps/basicinterpret` is no longer a build or test dependency.** Both configurations were
|
||||
configured, built and run from scratch with it moved out of the tree. It is kept only as the
|
||||
behavioural spec to read when a question about semantics comes up — which is a real use, and the
|
||||
reason it has not been removed. The Commodore font it also supplied now lives in `assets/fonts/`.
|
||||
|
||||
`deps/basicinterpret/README.md` is the language reference — implemented verbs, functions, variable
|
||||
type suffixes, and an explicit list of what is *not* implemented. Read it before adding or porting
|
||||
|
||||
Reference in New Issue
Block a user