Skip to content

Releases: WebAssembly/binaryen

version_53: Rename tableBase/memoryBase to __table_base/__memory_base (#1731)

08 Nov 22:29
ba1cf64
Compare
Choose a tag to compare
Rename tableBase/memoryBase to __table_base/__memory_base (#1731)

1.38.16: Don't call static desructors when Fatal() errors occur (#1722)

02 Nov 22:40
33665b6
Compare
Choose a tag to compare
This was causing a deadlock while destroying the thread pool.

version_52: Add pass to minify import and export names (#1719)

02 Nov 02:58
0ed4d2f
Compare
Choose a tag to compare
This new pass minifies import and export names, for example, this may minify

   (import "env" "longname" (func $internal))
to

   (import "env" "a" (func $internal))
By updating the JS that provides those imports/calls those exports, we can use the minified names properly. This can save a useful amount of space in the wasm and JS, see kripken/emscripten#7414

1.38.13

11 Oct 00:19
Compare
Choose a tag to compare
Add BinaryenRemoveGlobal / Module.removeGlobal to C/JS API (#1692)

version_51: Note that calls to imports are not lightweight in inlining pass (#1673)

13 Sep 16:08
559c16e
Compare
Choose a tag to compare
* call_import is not lightweight for inlining purposes - we had call but not callimport, which is even less light

1.38.12: Change the Literal class's operator== to be bitwise (#1661)

04 Sep 02:35
a852156
Compare
Choose a tag to compare
The change means that nan values will be compared bitwise when writing A == B, and so the float rule of a nan is different from itself would not apply.

I think this is a safer default. In particular this PR fixes a fuzz bug in the rse pass, which placed Literals in a hash table, and due to nan != nan, an infinite loop... Also, looks like we really want a bitwise comparison pretty much everywhere anyhow, as can be seen in the diff here. Really the single place we need a floaty comparison is in the intepreter where we implement f32.eq etc., and there the code was already using the proper code path anyhow.

version_50: wasm-ctor-eval improvements (#1631)

08 Aug 03:40
9f8fa5a
Compare
Choose a tag to compare
*    When we eval a ctor, don't just nop the function body that no longer needs to be executed, also remove the export (as we report the ctor being evalled, and the outside will no longer call it).
*    Run the pass to remove unused global things. This can usually remove evalled ctors (unless something else happens to call them, which can't happen normally as LLVM wouldn't use a ctor in another place, but e.g. duplicate function merging might merge a ctor with another function).

1.38.9: Some minor LocalGraph improvements (#1625)

23 Jul 00:25
2f5774c
Compare
Choose a tag to compare
*    Remove the Action class - we just need a pointer to a get or set. This simplifies the code and saves a little memory, but doesn't seem to have any impact on speed.
*    Miscellaneous code style and comment changes.

version_49: Refactor stack writing code into a new StackWriter class (#1620)

16 Jul 19:50
e601522
Compare
Choose a tag to compare
This separates out the WasmBinaryWriter parts that do stack writing into a separate class, StackWriter. Previously the WasmBinaryWriter did both the general writing and the stack stuff, and the stack stuff has global state, which it manually cleaned up etc. - seems nicer to have it as a separate class, a class focused on just that one thing.

Should be no functional changes in this PR.

Also add a timeout to the wasm-reduce test, which happened to fail on one of the commits here. It was running slower on that commit for some reason, could have been random - I verified that general wasm writing speed is unaffected by this PR. (But I added the timeout to prevent future random timeouts.)

1.38.8

06 Jul 16:52
Compare
Choose a tag to compare
Fix out-of-tree install of wasm.js (#1616)