Surfaced by
standards#284 — debugging surfaced that the `affinescript` binary at `~/.local/bin/` predated #445 and silently emitted bare `walkRecursive(".")` calls (no `__as_walkRecursive` shim in the prelude). A trunk rebuild surfaced the new shims correctly.
Why this hurts
Downstream port authors (cross-repo TS->AS migration campaign #239) installed `affinescript` weeks ago and never `affinescript --version`-check before each port session. Symptoms:
- Compiles "succeed" silently
- Emitted `.deno.js` references undefined globals like `walkRecursive`
- Deno run fails with `ReferenceError: walkRecursive is not defined`
- Root cause is invisible (no version mismatch warning)
Every contributor to standards#239 / standards#252 / standards#253 / standards#254 hits this until they realise their installed binary is stale.
Proposed fix (priority order)
- Cut a tagged release (e.g. `v0.X.0`) that includes the post-#445 prelude shims so `mise`/`asdf`/`brew` installs land them.
- Embed compiler-version self-check: `affinescript --version` should print version + commit SHA + prelude-shim manifest hash; CI could verify the stdlib it ships against matches.
- Optional: deprecation warning when emitted output references a shim that the prelude doesn't expose (compile-time pass over generated JS for the known shim list).
Acceptance
Refs
Surfaced by
standards#284 — debugging surfaced that the `affinescript` binary at `~/.local/bin/` predated #445 and silently emitted bare `walkRecursive(".")` calls (no `__as_walkRecursive` shim in the prelude). A trunk rebuild surfaced the new shims correctly.
Why this hurts
Downstream port authors (cross-repo TS->AS migration campaign #239) installed `affinescript` weeks ago and never `affinescript --version`-check before each port session. Symptoms:
Every contributor to standards#239 / standards#252 / standards#253 / standards#254 hits this until they realise their installed binary is stale.
Proposed fix (priority order)
Acceptance
Refs