6.0.10

weave-os/router6.0.10Sep 21, 2026by emscripten-bot

Upgrading?

AI Summary

This release stabilizes the SDL3 port, deprecates legacy WASM modes, and introduces performance optimizations to Embind by using the wasm stack for trivial types. It also removes the obsolete NODE_CODE_CACHING setting and improves timeout handling.

Key Highlights

  • SDL3 port is no longer experimental.
  • WASM=0 and WASM=2 are marked as deprecated.
  • Embind now uses stack allocation for trivially constructible types.
  • emscripten_clear_timeout now releases runtime keepalive.

Breaking Changes

  • NODE_CODE_CACHING setting removed.
  • Embind registration ABI changed (requires rebuilding object files).
  • -sWASM_BINDGEN behavior changed (post-link step, EXPORTED_FUNCTIONS is authoritative).

New Features

  • -sWASM_BINDGEN supports emcc usage as a post-link step.
  • Embind temporaries for trivial types are placed on the wasm stack.

Full Release Notes

## What's Changed
- The SDL3 port is no longer considered experimental, and the compiler
  diagnostic warning has been removed. (#27646)
- `WASM=0` and `WASM=2` (wasm2js) were marked as deprecated. (See #27608)
- mimalloc was updated to 3.5.1. (#27662)
- `-sWASM_BINDGEN` supports emcc usage as a post-link step, where
  `EXPORTED_FUNCTIONS` is authoritative. wasm-bindgen processing is only
  performed when the linker inputs carry the wasm-bindgen Emscripten marker
  section, so `-sWASM_BINDGEN` can safely be passed to non-wasm-bindgen builds.
  (#27208)
- Embind `value_object` and `value_array` argument temporaries for trivially
  constructible/destructible types (up to `alignof` 16) are now placed on the
  wasm stack instead of being heap-allocated per call, and per-field destructor
  bookkeeping is skipped when the type registers no destructor. This removes
  the per-call garbage on such calls. The registration ABI gained size and
  triviality parameters, so object files built against an older `bind.h` need
  to be rebuilt. (#27610)
- `emscripten_clear_timeout` now releases the runtime keepalive held by the
  pending timeout, and both `emscripten_clear_timeout` and
  `emscripten_clear_immediate` are no-ops for ids that already fired. (#27720)
- The `NODE_CODE_CACHING` setting was removed, as node's support for
  serializing WebAssembly modules has been missing for over 5 years now.


## Contributors
Thanks to the following contributors: @sbc100 (46) @guybedford (9) @aheejin (4) @dschuff (4) @dimokol (2) @kleisauke (2) @brendandahl (1) @jeremy-code (1) @jrcain-usgs (1) @Kammu2000 (1) @kripken (1) @mrnickzh (1) @tlively (1)

## New Contributors
* @mrnickzh made their first contribution in https://github.com/emscripten-core/emscripten/pull/26886
* @Kammu2000 made their first contribution in https://github.com/emscripten-core/emscripten/pull/27671
* @jrcain-usgs made their first contribution in https://github.com/emscripten-core/emscripten/pull/27691
* @dimokol made their first contribution in https://github.com/emscripten-core/emscripten/pull/27610

**Full Changelog**: https://github.com/emscripten-core/emscripten/compare/6.0.9...6.0.10

Related Repositories