Add working compliance test harness, 11 word sets at 100%

Replace placeholder compliance tests with real harness that boots WAFER,
loads Gerry Jackson's test suite, and asserts 0 errors per word set.

Passing word sets (11/13):
  Core, Core Plus, Core Ext, Exception, Double-Number, String,
  Search-Order, Memory-Allocation, Programming-Tools, Facility, Locals

Not yet: File-Access (needs WASI), Floating-Point, Extended-Character
272 total tests (261 unit + 11 compliance)
This commit is contained in:
2026-03-31 15:25:02 +02:00
parent f80c612835
commit 3e7f92b7ef
3 changed files with 141 additions and 48 deletions
+2 -2
View File
@@ -2,7 +2,7 @@
## What is WAFER?
WAFER (WebAssembly Forth Engine in Rust) is an optimizing Forth 2012 compiler targeting WebAssembly. Currently a working Forth system with 70+ words and JIT compilation.
WAFER (WebAssembly Forth Engine in Rust) is an optimizing Forth 2012 compiler targeting WebAssembly. Currently a working Forth system with 130+ words, JIT compilation, and 11 word sets at 100% compliance.
## Architecture
@@ -51,7 +51,7 @@ Handle in `interpret_token_immediate()` or `compile_token()` as a special case.
## Testing
- Run `cargo test --workspace` before committing (currently 185 tests)
- Run `cargo test --workspace` before committing (currently 261 unit + 11 compliance tests)
- Forth 2012 compliance: `cargo test -p wafer-core --test compliance`
- Test helper in outer.rs: `eval_output("forth code")` returns printed output as String
- Test helper: `eval_stack("forth code")` returns data stack as Vec<i32>