Page MenuHomeSolus

Update binaryen to 99

Authored by YakoYakoYokuYoku on Jan 31 2021, 9:18 PM.




  • v99:
    • RefFunc C and JS API constructors (BinaryenRefFunc and ref.func respectively) now take an extra type parameter, similar to RefNull. This is necessary for typed function references support.
    • JS API functions for atomic notify/wait instructions are renamed.
    • Remove old/broken SpollPointers pass. This pass: Spills values that might be pointers to the C stack. This allows Boehm-style GC to see them properly.
    • Make NUM_PARAMS in FuncCastEmulation a runtime configuration option named max-func-params. This defaults to the original value of 16.
    • BinaryenGetFunction, BinaryenGetGlobal and BinaryenGetEvent now return NULL instead of aborting when the respective element does not yet exist.
  • v98:
    • Add --fast-math mode.
    • Initial implementation of Memory64 proposal.
    • Lots of changes in support of GC proposal.
  • v97:
    • Remove asm2wasm, which supported Emscripten's fastcomp backend, after fastcomp was removed.
    • The new feature flag --enable-anyref enables just the anyref type incl. basic subtyping of externref, funcref and exnref (if enabled).
    • Enabling the exception handling or anyref features without also enabling reference types is a validation error now.
    • The Host expression and its respective APIs have been refactored into separate MemorySize and MemoryGrow expressions to align with other memory instructions.
  • v96:
    • Asyncify verbose option.
    • wasm2js: Add an Export scope for name resolution, avoids annoying warnings.
    • Extend the C and JavaScript APIs.
  • v95:
    • Add Asyncify add list that adds to the list of functions to be instrumented. Rename old lists to be clearer and more consistent with that, so now there is remove list to remove, add list to add, and only list which if set means that only those functions should be instrumented and nothing else.
    • Renamed various ambiguous C-API functions for consistency.

Signed-off-by: Martin Reboredo <>

Test Plan

Built an OpenGL example with emscripten.

Diff Detail

R4920 binaryen
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

YakoYakoYokuYoku requested review of this revision.Jan 31 2021, 9:18 PM
JoshStrobl accepted this revision.Feb 1 2021, 5:44 PM
JoshStrobl added a subscriber: JoshStrobl.

LGTM, thanks!

This revision is now accepted and ready to land.Feb 1 2021, 5:44 PM
This revision was automatically updated to reflect the committed changes.