You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(esm): retire --deno-esm; Bun-ESM is the only JS-host ESM target (#759)
## Summary
Bun-ESM is the only JS-host ESM target. `--deno-esm` / `-o *.deno.js` is
a hard error (E0826) pointing at `--bun-esm` / `.bun.js`. The flag is
kept so existing scripts fail loudly instead of becoming an unknown
option.
`codegen_deno` now emits the Bun host (`codegen_deno` ≡ `codegen_bun`).
The historical `tests/codegen-deno/` corpus compiles with `--bun-esm` to
`.bun.js`.
Aspirational idaptik StartupError fixtures compile with real syntax
(`use Console::{log}`, `use Dom::{…}`, tuple-list attrs, `#{ bg: … }`
records) — not ReScript `import Dom` / `{IO}` / `{style: bg}` without
`#`.
Host FFI on this path does not require `/ IO` rows (Canvas-style erasure
at emit). `affinescript-vite` remains a scaffold, not in this tree.
Remaining Pixi.res (~313 decls) is a follow-up, not this PR.
Does **not** implement #486 (native-preview2 / default component; needs
ocaml + wasm-tools and must keep `typedwasm.ownership` byte-equal).
Closes#56
## Notes
- No local ocaml/dune/bun in the authoring environment; CI has the
toolchain (Bun via `scripts/install-bun.sh`).
- Docs updated: capability matrix, bun-esm migration, ECOSYSTEM,
EFFECTS, CHANGELOG. No production-ready claim (DOC-09).
Copy file name to clipboardExpand all lines: docs/bindings-roadmap.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,7 @@ no further significant → AffineScript work is tractable.
75
75
|*WASM-exports calling pattern* — invoke individual `exports.fn_name(args)` from a `WasmExports` value
76
76
|`●` usable (Option A landed)
77
77
|`stdlib/Deno.affine`
78
-
|`wasmCall(exports: WasmExports, name: String, args: [Float]) -> Float` lowers to `Number(exports[name](...args))` on `--deno-esm`. AS-side surface + docstring example landed in `stdlib/Deno.affine`; round-trip exercised by `tests/codegen-deno/wasm_call.{affine,harness.mjs}` against a hand-built 41-byte wasm module exporting `add(i32, i32) -> i32`. *Option A (generic) — typed per-Zig-fn shims can layer on top per-consumer if needed.* Closes #414 via host-side #422 + AS-side this PR. *Generic export-call shipped #455* (`wasm_export_call(exports, name, args: [WasmValue]) -> WasmValue` + `WasmValue` opaque + `wv_i32`/`wv_i64`/`wv_f32`/`wv_f64` + `wv_as_int`/`wv_as_float`/`wv_kind`); end-to-end demo at `examples/wasm-exports-demo.affine` (#500) with smoke-test `tests/codegen-deno/wasm_exports_demo.{affine,harness.mjs}` exercising all four scalar kinds.
78
+
|`wasmCall(exports: WasmExports, name: String, args: [Float]) -> Float` lowers to `Number(exports[name](...args))` on `--bun-esm`. AS-side surface + docstring example landed in `stdlib/Deno.affine`; round-trip exercised by `tests/codegen-deno/wasm_call.{affine,harness.mjs}` against a hand-built 41-byte wasm module exporting `add(i32, i32) -> i32`. *Option A (generic) — typed per-Zig-fn shims can layer on top per-consumer if needed.* Closes #414 via host-side #422 + AS-side this PR. *Generic export-call shipped #455* (`wasm_export_call(exports, name, args: [WasmValue]) -> WasmValue` + `WasmValue` opaque + `wv_i32`/`wv_i64`/`wv_f32`/`wv_f64` + `wv_as_int`/`wv_as_float`/`wv_kind`); end-to-end demo at `examples/wasm-exports-demo.affine` (#500) with smoke-test `tests/codegen-deno/wasm_exports_demo.{affine,harness.mjs}` exercising all four scalar kinds.
0 commit comments