OBS-URL: https://build.opensuse.org/package/show/devel:languages:javascript/binaryen?expand=0&rev=6
282 lines
13 KiB
Plaintext
282 lines
13 KiB
Plaintext
-------------------------------------------------------------------
|
|
Sun Aug 13 21:04:18 UTC 2023 - Avindra Goolcharan <avindra@opensuse.org>
|
|
|
|
- update to version 114
|
|
* Fix a bug where e.g. -O3 -Oz ran the -O3 with the opt levels
|
|
of -Oz, which could inhibit inlining, for example. While this
|
|
is a bugfix, it affects how commandline options are
|
|
interpreted, so if you depended on the old behavior this may
|
|
be a breaking change. That is, the old behavior made -O3 -Oz
|
|
run the first -O3 with -Oz's opt levels, and the new behavior
|
|
is to run -O3 with the proper (-O3) opt levels. This is a
|
|
followup to #5333 from a previous release. (#5787)
|
|
* Add pass to remove Exception Handling instructions (#5770).
|
|
- includes version 113:
|
|
* Add a `wasm-merge` tool. This is a full rewrite of the
|
|
previous `wasm-merge` tool that was removed from the tree in
|
|
the past. The new version is much simpler after recent
|
|
improvements to multi-memory and multi-table. The rewrite was
|
|
motivated by new use cases for merging modules in the context
|
|
of WasmGC.
|
|
* Some C and JS API functions now refer to data and element
|
|
segments by name instead of index.
|
|
* The `--nominal` and `--hybrid` command line options and
|
|
related API functions have been removed. The only supported
|
|
type system is now the standard isorecursive (i.e. hybrid)
|
|
type system. (#5672)
|
|
- Add a "mayNotReturn" effect (#5711).
|
|
- Disable the memory64 feature in Memory64Lowering.cpp (#5679).
|
|
- Disable sign extension in SignExtLowering.cpp (#5676).
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Mar 1 09:47:57 UTC 2023 - Flavio Castelli <fcastelli@suse.com>
|
|
|
|
- update to version 112
|
|
- Add AbstractTypeRefining pass (#5461)
|
|
- Add a mechanism to skip a pass by name (#5448)
|
|
- Add TypeMerging pass (#5321)
|
|
- Add TypeSSA pass (#5299)
|
|
- Optimization sequences like `-O3 -Os` now do the expected thing and run `-O3`
|
|
followed by `-Os`. Previously the last of them set the defaults that were used
|
|
by all executions, so `-O3 -Os` was equivalent to `-Os -Os`. (There is no
|
|
change to the default optimization level that other passes can see. For
|
|
example, `--precompute-propagate -O2 -O1` will run `--precompute-propagate`
|
|
at opt level `1`, as the global default is set to `2` and then overridden to
|
|
`1`. The only change is that the passes run by `-O2` will actually run `-O2`
|
|
now, while before they'd use the global default which made them do `-O1`.)
|
|
- Add `--closed-world` flag. This enables more optimizations in GC mode as it
|
|
lets us assume that we can change types inside the module.
|
|
- The isorecursive WasmGC type system (i.e. --hybrid) is now the default to
|
|
match the spec and the old default equirecursive (i.e. --structural) system
|
|
has been removed.
|
|
- `ref.is_func`, `ref.is_data`, and `ref.is_i31` have been removed from the C
|
|
and JS APIs and `RefIs` has been replaced with `RefIsNull`.
|
|
- Types `Data` and `Dataref` have been replaced with types `Struct` and
|
|
`Structref` in the C and JS APIs.
|
|
- `BinaryenStringNew` now takes an additional last argument, `try_`, indicating
|
|
whether the instruction is one of `string.new_utf8_try` respectively
|
|
`string.new_utf8_array_try`.
|
|
- `BinaryenStringEq` now takes an additional second argument, `op`, that is
|
|
either `BinaryenStringEqEqual()` if the instruction is `string.eq` or
|
|
`BinaryenStringEqCompare()` if the instruction is `string.compare`.
|
|
|
|
- version v111
|
|
- Add extra `memory64` argument for `BinaryenSetMemory` and new
|
|
`BinaryenMemoryIs64` C-API method to determine 64-bit memory. (#4963)
|
|
- `TypeBuilderSetSubType` now takes a supertype as the second argument.
|
|
- `call_ref` now takes a mandatory signature type immediate.
|
|
- If `THROW_ON_FATAL` is defined at compile-time, then fatal errors will throw a
|
|
`std::runtime_error` instead of terminating the process. This may be used by
|
|
embedders of Binaryen to recover from errors.
|
|
- Implemented bottom heap types: `none`, `nofunc`, and `noextern`. RefNull
|
|
expressions and null `Literal`s must now have type `nullref`, `nullfuncref`,
|
|
or `nullexternref`.
|
|
- The C-API's `BinaryenTypeI31ref` and `BinaryenTypeDataref` now return nullable
|
|
types.
|
|
- The `sign-extension` and `mutable-globals` features are now both enabled by
|
|
default in all tools. This is in order to match llvm's defaults (See
|
|
https://reviews.llvm.org/D125728).
|
|
- Add a pass to lower sign-extension operations to MVP.
|
|
|
|
- version v110
|
|
- Add support for non-nullable locals in wasm GC. (#4959)
|
|
- Add support for multiple memories. (#4811)
|
|
- Add support for the wasm Strings proposal. (see PRs with [Strings] in name)
|
|
- Add a new flag to Directize, `--pass-arg=directize-initial-contents-immutable`
|
|
which indicates the initial table contents are immutable. That is the case for
|
|
LLVM, for example, and it allows us to optimize more indirect calls to direct
|
|
ones. (#4942)
|
|
- Change constant values of some reference types in the C and JS APIs. This is
|
|
only observable if you hardcode specific values instead of calling the
|
|
relevant methods (like `BinaryenTypeDataref()`). (#4755)
|
|
- `BinaryenModulePrintStackIR`, `BinaryenModuleWriteStackIR` and
|
|
`BinaryenModuleAllocateAndWriteStackIR` now have an extra boolean
|
|
argument `optimize`. (#4832)
|
|
- Remove support for the `let` instruction that has been removed from the typed
|
|
function references spec.
|
|
- HeapType::ext has been restored but is no longer a subtype of HeapType::any to
|
|
match the latest updates in the GC spec. (#4898)
|
|
- `i31ref` and `dataref` are now nullable to match the latest GC spec. (#4843)
|
|
- Add support for `extern.externalize` and `extern.internalize`. (#4975)
|
|
|
|
version v109
|
|
- Add Global Struct Inference pass (#4659) (#4714)
|
|
- Restore and fix SpillPointers pass (#4570)
|
|
- Update relaxed SIMD instructions to latest spec
|
|
|
|
version v108
|
|
- Add CMake flag BUILD_TOOLS to control building tools (#4655)
|
|
- Add CMake flag JS_OF_OCAML for js_of_ocaml (#4637)
|
|
- Remove externref (#4633)
|
|
|
|
version v107
|
|
- Update the wasm GC type section binary format (#4625, #4631)
|
|
- Lift the restriction in liveness-traversal.h on max 65535 locals (#4567)
|
|
- Switch to nominal fuzzing by default (#4610)
|
|
- Refactor Feature::All to match FeatureSet.setAll() (#4557)
|
|
- New Signature Pruning pass (#4545)
|
|
- Add support for extended-const proposal (#4529)
|
|
- Add BUILD_TESTS CMake option to make gtest dependency optional.
|
|
- Updated tests to use filecheck 0.0.22 (#4537). Updating is required to
|
|
successfully run the lit tests. This can be done with
|
|
`pip3 install -r requirements-dev.txt`.
|
|
|
|
version v106
|
|
- [wasm2js] Support exports of Globals (#4523)
|
|
- MergeSimilarFunctions optimization pass (#4414)
|
|
- Various wasm-ctor-eval improvements, including support for GC.
|
|
|
|
version v105
|
|
- This release contains binaries for ARM64 MacOS devices (#4397)
|
|
- Otherwise, mostly bug fixes and incremental optimization improvements.
|
|
|
|
version v104
|
|
- Bugfixes only, release created due to incorrect github release artifacts in
|
|
v103 release (#4398).
|
|
|
|
version v103
|
|
- The EffectAnalyzer now takes advantage of immutability of globals. To achieve
|
|
that it must have access to the module. That is already the case in the C++
|
|
API, but the JS API allowed one to optionally not add a module when calling
|
|
`getSideEffects()`. It is now mandatory to pass in the module.
|
|
- JS and Wasm builds now emit ECMAScript modules. New usage is:
|
|
```js
|
|
import Binaryen from "path/to/binaryen.js";
|
|
const binaryen = await Binaryen();
|
|
...
|
|
```
|
|
- CallIndirect changed from storing a Signature to storing a HeapType
|
|
|
|
version v102
|
|
- Add `BinaryenUpdateMaps` to the C API.
|
|
- Adds a TrapsNeverHappen mode (#4059). This has many of the benefits of
|
|
IgnoreImplicitTraps, but can be used safely in more cases. IgnoreImplicitTraps
|
|
is now deprecated.
|
|
- Adds type argument for BinaryenAddTable method (#4107). For the binaryen.js api
|
|
this parameter is optional and by default is set to funcref type.
|
|
- Replace `BinaryenExpressionGetSideEffects`'s features parameter with a module
|
|
parameter.
|
|
- OptimizeInstructions now lifts identical code in `select`/`if` arms (#3828). This may cause direct `BinaryenTupleExtract(BinaryenTupleMake(...))` to [use multivalue types](https://github.com/grain-lang/grain/pull/1158).
|
|
|
|
version v101
|
|
- `BinaryenSetFunctionTable` and `module.setFunctionTable` have been removed
|
|
in favor of `BinaryenAddTable` and `module.addTable` respectively.
|
|
- `BinaryenIsFunctionTableImported` is removed.
|
|
- A new type `BinaryenElementSegmentRef` has been added to the C API with
|
|
new apis in both C & JS:
|
|
- `BinaryenAddActiveElementSegment`
|
|
- `BinaryenAddPassiveElementSegment`
|
|
- `BinaryenRemoveElementSegment`
|
|
- `BinaryenGetElementSegment`
|
|
- `BinaryenGetElementSegmentByIndex`
|
|
- `BinaryenElementSegmentGetName`
|
|
- `BinaryenElementSegmentSetName`
|
|
- `BinaryenElementSegmentGetTable`
|
|
- `BinaryenElementSegmentSetTable`
|
|
- `BinayenElementSegmentIsPassive`
|
|
- `module.addActiveElementSegment`
|
|
- `module.addPassiveElementSegment`
|
|
- `module.removeElementSegment`
|
|
- `module.getElementSegment`
|
|
- `module.getElementSegmentByIndex`
|
|
- `module.getTableSegments`
|
|
- `module.getNumElementSegments`
|
|
- `binaryen.getElementSegmentInfo`
|
|
- `BinaryenAddTable` and `module.addTable` no longer take offset and function
|
|
names.
|
|
- `BinaryenGetNumFunctionTableSegments` is replaced with
|
|
`BinaryenGetNumElementSegments`.
|
|
- `BinaryenGetFunctionTableSegmentOffset` is replaced with
|
|
`BinaryenElementSegmentGetOffset`.
|
|
- `BinaryenGetFunctionTableSegmentLength` is replaced with
|
|
`BinaryenElementSegmentGetLength`.
|
|
- `BinaryenGetFunctionTableSegmentData` is replaced with
|
|
`BinaryenElementSegmentGetData`.
|
|
- Boolean values in the C API now should use `bool` instead of `int`.
|
|
- Experimental SIMD instructions have been removed and the names and opcodes of
|
|
the standard instructions have been updated to match the final spec.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Mar 17 00:46:09 UTC 2021 - Avindra Goolcharan <avindra@opensuse.org>
|
|
|
|
- update to v100
|
|
* `wasm-dis` now supports options to enable or disable Wasm features.
|
|
* Reference types support has been improved by allowing multiple
|
|
tables in a module.
|
|
* `call_indirect` and `return_call_indirect` now take an additional
|
|
table name parameter. This is necessary for reference types support.
|
|
* New getter/setter methods have been introduced for `call_indirect`
|
|
table name:
|
|
- `BinaryenCallIndirectGetTable`
|
|
- `BinaryenCallIndirectSetTable`
|
|
- JS API `CallIndirect.table`
|
|
* New APIs have been added to add and manipulate multiple tables
|
|
in a module:
|
|
- `BinaryenAddTable`
|
|
- `BinaryenRemoveTable`
|
|
- `BinaryenGetNumTables`
|
|
- `BinaryenGetTable`
|
|
- `BinaryenGetTableByIndex`
|
|
- `BinaryenTableGetName`
|
|
- `BinaryenTableGetInitial`
|
|
- `BinaryenTableHasMax`
|
|
- `BinaryenTableGetMax`
|
|
- `BinaryenTableImportGetModule`
|
|
- `BinaryenTableImportGetBase`
|
|
- `module.addTable`
|
|
- `module.removeTable`
|
|
- `module.getTable`
|
|
- `module.getTableByIndex`
|
|
- `module.getNumTables`
|
|
- `binaryen.getTableInfo`
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 3 23:43:44 UTC 2021 - Avindra Goolcharan <avindra@opensuse.org>
|
|
|
|
- Declare missing wasm-split binary
|
|
- simplify and neutralize the description
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jan 18 04:30:11 UTC 2021 - Garret Wassermann <gwasser@gmail.com>
|
|
|
|
- update to v99
|
|
* [GC] Fix parsing/printing of ref types using i31 (#3469),
|
|
This lets us parse (ref null i31) and (ref i31) and not just i31ref.
|
|
* It also fixes the parsing of i31ref, making it nullable for now, which we
|
|
need to do until we support non-nullability.
|
|
* Fix some internal handling of i31 where we had just i31ref (which meant we
|
|
just handled the non-nullable type).
|
|
* After fixing a bug in printing (where we didn't print out (ref null i31)
|
|
properly), I found some a simplification, to remove TypeName.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Dec 1 06:17:51 UTC 2020 - Avindra Goolcharan <avindra@opensuse.org>
|
|
|
|
- update to v98
|
|
* Add --fast-math mode.
|
|
* Initial implementation of "Memory64" proposal
|
|
* Lots of changes in support of GC proposal
|
|
- ran spec-cleaner
|
|
- create .changes for first time
|
|
- fix build
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Oct 7 05:22:51 UTC 2020 - Garret Wassermann <garret@wassiverse.com>
|
|
|
|
- updated to 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.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Dec 14 11:40:26 UTC 2018 - Garret Wassermann <garret@wassiverse.com>
|
|
|
|
- Initial package (v1.38.28)
|