Skip to content

Releases: WebAssembly/binaryen

1.38.47

17 Oct 15:59
fc6d2df
Compare
Choose a tag to compare
Apply the sbrk/brk value at compile time (#2366)

We've had an option to set the location of the sbrk ptr, but not the value.
Applying the value as well is necessary for standalone wasm, as otherwise we set
it in JS.

version_89: Add basic exception handling support (#2282)

12 Aug 16:39
e2f49d8
Compare
Choose a tag to compare
This adds basic support for exception handling instructions, according
to the spec:
https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md

This PR includes support for:
- Binary reading/writing
- Wast reading/writing
- Stack IR
- Validation
- binaryen.js + C API
- Few IR routines: branch-utils, type-updating, etc
- Few passes: just enough to make `wasm-opt -O` pass
- Tests

This PR does not include support for many optimization passes, fuzzer,
or interpreter. They will be follow-up PRs.

Try-catch construct is modeled in Binaryen IR in a similar manner to
that of if-else: each of try body and catch body will contain a block,
which can be omitted if there is only a single instruction. This block
will not be emitted in wast or binary, as in if-else. As in if-else,
`class Try` contains two expressions each for try body and catch body,
and `catch` is not modeled as an instruction. `exnref` value pushed by
`catch` is get by `pop` instruction.

`br_on_exn` is special: it returns different types of values when taken
and not taken. We make `exnref`, the type `br_on_exn` pushes if not
taken, as `br_on_exn`'s type.

version_88: Compile Linux release binaries with Clang (#2274)

01 Aug 15:57
Compare
Choose a tag to compare
This fixes #2273 for... unknown reasons. The tl;dr; is that the current
release binaries built in this Alpine container seem to segfault when
run over some wasm files when an exception is thrown, but clang-built
binaries magically seems to not segfault!

version_87: [fuzzing] Give each testcase handler a list of feature flags it requi…

15 Jul 22:37
c7e9271
Compare
Choose a tag to compare
…res. (#2225)

That way we can still test new flags on modes that do support them (e.g. FuzzExec runs on everything)

version_86

10 Jul 10:13
Compare
Choose a tag to compare
Create version_86

version_85: Initial tail call implementation (#2197)

08 Jul 17:47
2a138fa
Compare
Choose a tag to compare
Including parsing, printing, assembling, disassembling.

TODO:

 - interpreting
 - effects
 - finalization and typing
 - fuzzing
 - JS/C API

1.38.32

20 May 16:48
677808a
Compare
Choose a tag to compare
Fix AvoidReinterprets on reinterpreted loads of fewer than the full s…

…ize (#2123)

* fix

* fix style

version_84

10 May 21:18
70434ef
Compare
Choose a tag to compare
Generate `dynCall` function for all signature used by `invoke` functi…

…ons. (#2095)

Previously we were only creating `dynCall` functions for signatures
that we have statically in the table.  However for dynamic linking we
may need to invoke functions that we don't have table entries for
(e.g. table entries from a different module).

version_83

25 Apr 18:52
ef6020c
Compare
Choose a tag to compare
wasm2js: optimize loops and eqz (#2051)

1.38.31

24 Apr 14:53
5d3fcff
Compare
Choose a tag to compare
wasm2js: emit quoted properties for the exports, to support closure c…

…ompiler (#2043)