diff --git a/NEXT.md b/NEXT.md index 812c683..c22d022 100644 --- a/NEXT.md +++ b/NEXT.md @@ -139,7 +139,7 @@ reader ✅ → parse ✅ → load ✅ → check ✅ → emit ✅ → clang ✅ $ flan run calc-me.flan "1 + 2 * (3 - 0.5) / 2" 3.5 $ flan run test/programs/sand-headless.flan -2256461126764447066 +-2851001042534928384 $ flan run sand.flan # a window, 120 fps, hold space ``` @@ -1277,7 +1277,7 @@ and changing one's type is a silent mismatch against storage the host already la Deferred until after the dev loop: 6. ~~**wasm32.**~~ **Done, with one glued joint.** `flan build --target=wasm32-wasi` produces a module, and -`test/programs/sand-headless.flan` prints `2256461126764447066` under it — the same hash as native, byte for byte, at +`test/programs/sand-headless.flan` prints `-2851001042534928384` under it — the same hash as native, byte for byte, at `-O2` and at `-O0`. That is the milestone: the RNG is ours rather than libc's precisely so that number can be compared across targets, and it compares equal. `values.flan` and `machine.flan` run there too, which is where a 32-bit pointer would have shown. The acceptance table runs all four, and skips them by *probing* — it builds the smallest program and diff --git a/test/test_acceptance.ml b/test/test_acceptance.ml index 9d138ff..9f85b75 100644 --- a/test/test_acceptance.ml +++ b/test/test_acceptance.ml @@ -361,7 +361,7 @@ let () = and not raylib, deliberately — a program that imports raylib links libraylib on every target, and this one is the version meant to run on wasm32 too. The hash is reproducible only because rand-f32 is ours. *) - let sand_out = "2256461126764447066\n" in + let sand_out = "-2851001042534928384\n" in outputs "sand, headless" "programs/sand-headless.flan" sand_out; outputs ~opt:"-O0" "sand, headless, -O0" "programs/sand-headless.flan" sand_out;