Path to this page:
./
devel/binaryen,
Compiler and toolchain infrastructure library for WebAssembly
Branch: CURRENT,
Version: 116,
Package name: binaryen-116,
Maintainer: pkgsrc-usersBinaryen is a compiler and toolchain infrastructure library for WebAssembly,
written in C++. It aims to make compiling to WebAssembly easy, fast, and
effective.
* Easy: Binaryen has a simple C API in a single header, and can also be used
from JavaScript. It accepts input in WebAssembly-like form but also accepts
a general control flow graph for compilers that prefer that.
* Fast: Binaryen's internal IR uses compact data structures and is designed
for completely parallel codegen and optimization, using all available CPU
cores. Binaryen's IR also compiles down to WebAssembly extremely easily and
quickly because it is essentially a subset of WebAssembly.
* Effective: Binaryen's optimizer has many passes (see an overview later
down) that can improve code size and speed. These optimizations aim to
make Binaryen powerful enough to be used as a compiler backend by itself.
One specific area of focus is on WebAssembly-specific optimizations (that
general-purpose compilers might not do), which you can think of as wasm
minification, similar to minification for JavaScript, CSS, etc., all of
which are language-specific.
Master sites:
Filesize: 4679.944 KB
Version history: (Expand)
- (2023-11-07) Updated to version: binaryen-116
- (2023-08-14) Updated to version: binaryen-114nb1
- (2023-07-03) Updated to version: binaryen-114
- (2023-05-22) Updated to version: binaryen-113
- (2023-02-13) Updated to version: binaryen-112
- (2022-11-19) Updated to version: binaryen-111
CVS history: (Expand)
2023-11-23 12:11:25 by Thomas Klausner | Files touched by this commit (2) |
Log message:
binaryen: fix PLIST for new test option
|
2023-11-16 10:57:43 by Nia Alarie | Files touched by this commit (2) |
Log message:
binaryen: Optionize googletest dependency
|
2023-11-06 23:04:25 by Frederic Cambus | Files touched by this commit (3) | |
Log message:
binaryen: update to 116.
v116
----
- "I31New" changed to "RefI31" everywhere it appears in the \
C API and similarly
"i31.new" has been replaced with "ref.i31" in the JS API \
and in printed
output (#5930, #3931).
- The standard WasmGC opcodes are now on by default (#5873).
v115
----
- The nonstandard, experimental gc-nn-locals feature has been removed now that
standard non-nullable locals are supported. (#5080)
- Print all debug annotations when `BINARYEN_PRINT_FULL`. (#5904)
- Use the standard text format for WasmGC now that things are stable there.
(#5894, #5889, #5852, #5801)
- Rename multimemory flag to `--multimemory` to match its naming in LLVM.
(#5890)
- Allow opting into standard GC encodings at compile time. (#5868)
- Remove legacy WasmGC instructions. (#5861)
- GUFA: Infer using TrapsNeverHappen. (#5850)
- Add a pass to reorder functions by name, which can be useful for debugging
(e.g. comparisons after optimizations), `--reorder-functions-by-name`. (#5811)
- C API: Add `BinaryenAddFunctionWithHeapType` which is like
`BinaryenAddFunction` but takes a heap type. The old function is kept for
backwards compatibility and as a convenience. (#5829)
- Work on new optimization framework using lattices. (#5784, #5794, #5800,
#5817, #5831, #5849)
- Heap types are now final by default and openness must be opted into both in
the text and binary formats as well as in the TypeBuilder API. (#5918)
|
2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247) |
Log message:
*: recursive bump for Python 3.11 as new default
|
2023-07-02 23:22:07 by Frederic Cambus | Files touched by this commit (2) | |
Log message:
binaryen: update to 114.
v114
----
- 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.
- Add pass to remove Exception Handling instructions.
|
2023-05-22 15:58:06 by Frederic Cambus | Files touched by this commit (3) | |
Log message:
binaryen: update to 113.
v113
----
- 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.
- Add a "mayNotReturn" effect.
- Disable the memory64 feature in Memory64Lowering.cpp.
- Disable sign extension in SignExtLowering.cpp.
|
2023-03-16 09:36:24 by Adam Ciarcinski | Files touched by this commit (1) |
Log message:
binaryen: switch to cmake/build.mk
|
2023-02-12 23:32:58 by Frederic Cambus | Files touched by this commit (2) | |
Log message:
binaryen: update to 112.
v112
----
- 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`.
|