Skip to content

Release 0.2.127#5219

Open
guybedford wants to merge 1 commit into
mainfrom
release-0.2.127
Open

Release 0.2.127#5219
guybedford wants to merge 1 commit into
mainfrom
release-0.2.127

Conversation

@guybedford

@guybedford guybedford commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Fixed

  • Fixed compilation with (feature = "std", panic = "unwind", target_feature = "atomics")
    and prevented a Task leak when a future unwinds out of poll (via a Rust
    panic or a foreign JS exception) in both the single-threaded and
    multi-threaded executors.
    #5214

  • Emscripten output now reaches wasm exports through emscripten's wasmExports
    object using bracket (string-literal) access (wasmExports['__wbindgen_start'])
    instead of a local wasm alias with dot access. wasmExports['name'] is the
    form emcc's DCE graph roots and its import/export minifier renames in the JS
    and the wasm together, so the glue now survives and stays consistent under
    -O3/-Os (previously the export names were minified without updating the JS
    call sites, e.g. __wbindgen_start is not defined).
    #5217

  • The emscripten detection marker static is no longer leaked as public API.
    #5220
    #5222

mendess added a commit to cloudflare/azul that referenced this pull request Jul 13, 2026
Since nightly >=2026-05-09 (rust-lang/rust#156061), wasm targets emit
modern exnref exception-handling opcodes by default under
-Cpanic=unwind.  The wasm-bindgen 0.2.126 CLI bundles wasmparser
0.245.1, which rejects these opcodes with:

    type mismatch: catch_all_ref label must be a subtype of (ref exn)

Work around this by passing -Cllvm-args=-wasm-use-legacy-eh via
RUSTFLAGS at every worker-build --panic-unwind invocation site.
worker-build reads existing RUSTFLAGS and appends -Cpanic=unwind,
so the flag survives into the cargo subprocess.  Placing it in
.cargo/config.toml would not work: Cargo treats RUSTFLAGS env and
target.<triple>.rustflags as mutually exclusive sources, and the
env var (always set by worker-build) wins.

This can be removed once wasm-bindgen ships a wasmparser that
understands exnref (tracked in wasm-bindgen/wasm-bindgen#5219).
mendess added a commit to cloudflare/azul that referenced this pull request Jul 13, 2026
Since nightly >=2026-05-09 (rust-lang/rust#156061), wasm targets emit
modern exnref exception-handling opcodes by default under
-Cpanic=unwind.  The wasm-bindgen 0.2.126 CLI bundles wasmparser
0.245.1, which rejects these opcodes with:

    type mismatch: catch_all_ref label must be a subtype of (ref exn)

Work around this by passing -Cllvm-args=-wasm-use-legacy-eh via
RUSTFLAGS at every worker-build --panic-unwind invocation site.
worker-build reads existing RUSTFLAGS and appends -Cpanic=unwind,
so the flag survives into the cargo subprocess.  Placing it in
.cargo/config.toml would not work: Cargo treats RUSTFLAGS env and
target.<triple>.rustflags as mutually exclusive sources, and the
env var (always set by worker-build) wins.

This can be removed once wasm-bindgen ships a wasmparser that
understands exnref (tracked in wasm-bindgen/wasm-bindgen#5219).
mendess added a commit to cloudflare/azul that referenced this pull request Jul 14, 2026
Since nightly >=2026-05-09 (rust-lang/rust#156061), wasm targets emit
modern exnref exception-handling opcodes by default under
-Cpanic=unwind.  The wasm-bindgen 0.2.126 CLI bundles wasmparser
0.245.1, which rejects these opcodes with:

    type mismatch: catch_all_ref label must be a subtype of (ref exn)

Work around this by passing -Cllvm-args=-wasm-use-legacy-eh via
RUSTFLAGS at every worker-build --panic-unwind invocation site.
worker-build reads existing RUSTFLAGS and appends -Cpanic=unwind,
so the flag survives into the cargo subprocess.  Placing it in
.cargo/config.toml would not work: Cargo treats RUSTFLAGS env and
target.<triple>.rustflags as mutually exclusive sources, and the
env var (always set by worker-build) wins.

This can be removed once wasm-bindgen ships a wasmparser that
understands exnref (tracked in wasm-bindgen/wasm-bindgen#5219).
lukevalenta pushed a commit to cloudflare/azul that referenced this pull request Jul 15, 2026
* Add sentry support

* Update integration test wait time

* Add panic-unwind to CI

* Force legacy Wasm EH in --panic-unwind builds

Since nightly >=2026-05-09 (rust-lang/rust#156061), wasm targets emit
modern exnref exception-handling opcodes by default under
-Cpanic=unwind.  The wasm-bindgen 0.2.126 CLI bundles wasmparser
0.245.1, which rejects these opcodes with:

    type mismatch: catch_all_ref label must be a subtype of (ref exn)

Work around this by passing -Cllvm-args=-wasm-use-legacy-eh via
RUSTFLAGS at every worker-build --panic-unwind invocation site.
worker-build reads existing RUSTFLAGS and appends -Cpanic=unwind,
so the flag survives into the cargo subprocess.  Placing it in
.cargo/config.toml would not work: Cargo treats RUSTFLAGS env and
target.<triple>.rustflags as mutually exclusive sources, and the
env var (always set by worker-build) wins.

This can be removed once wasm-bindgen ships a wasmparser that
understands exnref (tracked in wasm-bindgen/wasm-bindgen#5219).

* Add getrandom_03 wasm_js feature to witness_worker

witness_worker transitively depends on getrandom 0.3.4 via
generic_log_worker -> sentry-core -> rand 0.9 -> rand_core 0.9.
Without the wasm_js feature, getrandom 0.3.4 emits a compile_error!
on wasm32-unknown-unknown.

ct_worker and bootstrap_mtc_worker already carry this dependency
for feature unification; witness_worker was missing it.

* cargo shear

* Remove longer time
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants