Skip to content

Releases: WebAssembly/binaryen

1.38.27

11 Feb 19:15
9628a03
Compare
Choose a tag to compare
legalize invokes even when doing minimal legalization, as js needs th…

1.38.26: Fix EM_ASM+pthreads (#1891)

05 Feb 02:25
484f62f
Compare
Choose a tag to compare
To calculate the metadata, we must look at the segments. If we split them out earlier (which we do for threads), they aren't there.

version_67: Strip the producers section in --strip-producers (#1875)

31 Jan 18:17
ddb5acd
Compare
Choose a tag to compare
WebAssembly/tool-conventions#93 has a summary of emscripten's current thinking on this. For Binaryen, we don't want to do anything to the producers section by default, but do want it to be possible to optionally remove it. To achieve that, this PR

 * creates a --strip-producers pass that removes that section.
 * creates a --strip-debug pass that removes debug info, same as the old --strip, which is still around but deprecated.

A followup in emscripten will use this pass by default.

version_66

29 Jan 21:38
5f1afa5
Compare
Choose a tag to compare
wasm-emscripten-finalize: Emit illegal dynCalls, and legalize them (#…

version_65: Handle EM_ASM/EM_JS in LLVM wasm backend O0 output (#1888)

28 Jan 20:14
153ba18
Compare
Choose a tag to compare
See emscripten-core/emscripten#7928 - we have been optimizing all wasms until now, and noticed this when the wasm object file path did not do so. When not optimizing, our methods of handling EM_ASM and EM_JS fail since the patterns are different.

Specifically, for EM_ASM we hunt for emscripten_asm_const(X, where X is a constant, but without opts it may be a get of a local. For EM_JS, the function body may not just contain a const, but a block with a set of the const and a return of a get later.

This adds logic to track gets and sets in basic blocks, which is sufficient to handle this.

1.38.25: More misc ASAN fixes (#1882)

24 Jan 00:16
e63c4a7
Compare
Choose a tag to compare
* fix buffer overflow in simple_ast.h printing.
* check wasm binary format reading of function export indexes for errors.
* check if s-expr format imports have a non-empty module and base.

Fixes #1876
Fixes #1877
Fixes #1879

1.38.24: Emscripten stack simplification (#1870)

17 Jan 15:06
777d33d
Compare
Choose a tag to compare
This takes advantage of the recent memory simplification in emscripten, where JS static allocation is done at compile time. That means we know the stack's initial location at compile time, and can apply it. This is the binaryen side of that:

* asm2wasm support for asm.js globals with an initial value var X = Y; where Y is not 0 (which is what the stack now is).
* wasm-emscripten-finalize support for a flag --initial-stack-pointer=X, and remove the old code to import the stack's initial location.

version_64: Emscripten stack simplification (#1870)

16 Jan 22:02
777d33d
Compare
Choose a tag to compare
This takes advantage of the recent memory simplification in emscripten, where JS static allocation is done at compile time. That means we know the stack's initial location at compile time, and can apply it. This is the binaryen side of that:

* asm2wasm support for asm.js globals with an initial value var X = Y; where Y is not 0 (which is what the stack now is).
* wasm-emscripten-finalize support for a flag --initial-stack-pointer=X, and remove the old code to import the stack's initial location.

1.38.23: Code style improvements (#1868)

15 Jan 22:01
d24427d
Compare
Choose a tag to compare
* Use modern T p = v; notation to initialize class fields
* Use modern X() = default; notation for empty class constructors

version_63

03 Jan 01:16
2a0dcfe
Compare
Choose a tag to compare
Don't emit simd in fuzzer unless requested (some code paths we missed…