github emscripten-core/emscripten 6.0.0

12 hours ago

What's Changed

  • On Windows, Emscripten now ships .exe tool launchers, rather
    than .bat and/or .ps1. This means that any scripts that explicitly
    reference, e.g. emcc.bat, will need to be updated to just emcc (or
    emcc.exe). For the time being you can still get the old .bat files by
    running tools/maint/create_entry_points.py --bat-files. (#24858)
  • When performing a streaming Fetch operation, the max chunk size of downloaded
    bytes that is handed over to the Wasm side from JS is now capped to maximum
    of 8 megabytes. This ensures that a streaming Fetch stays streaming, rather
    than transferring the whole (potentially large) file as one huge chunk, which
    might not fit in the WebAssembly memory. (#26898)
  • The minimum versions of browser engines supported by emscripten's generated
    code were bumped, allowing us to remove our internal support for transpilation
    via babel:
    MIN_CHROME_VERSION: 74 -> 85
    MIN_FIREFOX_VERSION: 68 -> 79
    MIN_SAFARI_VERSION: 12.2 -> 14.1
    This allows us to assume that features such as mutable-globals and sign-ext
    are universally available. Disabling these is no longer possible in
    emscripten. If you still need to support extremely old browsers, you can
    manually transpile the output of emscripten (e.g. using babel for JS and
    binaryen for wasm). (#26677)
  • musl libc updated from v1.2.5 to v1.2.6. (#26860)
  • libpng port updated from 1.6.55 to 1.6.58. (#26592 and #26983)
  • The -m64 compiler flag is now honored, and works as an alias for
    -sMEMORY64 and/or --target=wasm64. (#26765)
  • The autopersistence feature in IDBFS mount now supports registering a global
    callback IDBFS.onAutoPersistStateChanged = active => {}, which will be
    notified of all IDBFS sync start and end events. (#26895)
  • google-closure-compiler was updated to 20260429.0.0. (#26869)
    Closure compiler now provides a native macOS arm64 binary for Apple Silicon,
    in addition to having native binaries for Win-x64, Linux-x64 and Linux-ARM64.
    For other platforms for which Closure compiler does not ship a native binary,
    e.g. Intel x64 Macs and Windows-on-ARM, downloading Java SE Development Kit
    21.0.11 from https://www.oracle.com/europe/java/technologies/downloads/#java21
    is required in order to use Emscripten's Closure Compiler integration.
  • The FAKE_DYLIBS setting is now disabled by default. This means that
    -shared will produce real dynamic libraries by default (-sSIDE_MODULE is
    implied). Also, if you include real dynamic libraries in your link command
    emscripten will now automatically produce a dynamically linked program
    (-sMAIN_MODULE=2 is implied). (#25930)
  • The PThread.runningWorkers field was removed from the PThread object.
    If you have JS code that was depending on this you can transition to using the
    PThread.pthreads object. (#26998)
  • The POSIX pause() function will now return 0 rather than EINTR. (#27044)

New Contributors

Full Changelog: 5.0.7...6.0.0

Don't miss a new emscripten release

NewReleases is sending notifications on new releases.