Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -694,10 +694,17 @@ jobs:
if: ${{ !cancelled() }}
run: python3 scripts/gc_evacuation_liveness_assert.py --self-test

# The wasm32 ABI table (crates/perry-codegen/src/wasm32/runtime_abi.tsv) is
# derived from the runtime's extern signatures. Checked only in the
# path-filtered, non-required wasi-check workflow, it went stale four times on
# 2026-09-27 alone and turned wasi-check red on every PR. Text-only (~30 s, no build):
# a PR that changes a runtime signature regenerates the table itself
# (`python3 scripts/runtime_abi_check.py --emit-wasm-abi`).
- name: Native runtime ABI consistency
run: |
python3 scripts/runtime_abi_check.py --self-test
python3 scripts/runtime_abi_check.py --check-native
python3 scripts/runtime_abi_check.py --check-wasm-abi

# Node is a correctness input (see CLAUDE.md "TypeScript Parity Status"):
# an oracle that cannot run a gap test drops it from the gate instead of
Expand Down
1 change: 1 addition & 0 deletions changelog.d/11607-wasm-abi-check-in-lint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **ci**: `runtime_abi_check.py --check-wasm-abi` now runs in the required `lint` job (it ran only in the path-filtered, non-required `wasi-check`), so a PR that changes a runtime extern signature regenerates `crates/perry-codegen/src/wasm32/runtime_abi.tsv` itself. The table is regenerated against current main.
16 changes: 16 additions & 0 deletions crates/perry-codegen/src/wasm32/runtime_abi.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -3521,7 +3521,23 @@ js_static_this_arm_value void f64
js_static_this_resolve f64 f64
js_stdlib_has_active_handles i32s
js_stdlib_init_dispatch void
js_stdlib_install_bundled_nodemailer void
js_stdlib_install_bundled_streams void
js_stdlib_install_compiled void
js_stdlib_install_compression_gzip void
js_stdlib_install_crypto void
js_stdlib_install_database_sqlite void
js_stdlib_install_events void
js_stdlib_install_external_http_client_pump void
js_stdlib_install_external_http_server_pump void
js_stdlib_install_external_net_pump void
js_stdlib_install_external_zlib_pump void
js_stdlib_install_tls_runtime void
js_stdlib_install_turnloop_http_client void
js_stdlib_install_turnloop_smtp_client void
js_stdlib_install_web_fetch void
js_stdlib_process_pending i32s
js_stdlib_register_feature_installer void ptr
js_stream_handle_is_registered bool usize
js_stream_handle_kind i8u usize
js_stream_unwrap_handle f64 f64
Expand Down
Loading