Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

binaryen-123-1.1 RPM for ppc64le

From OpenSuSE Ports Tumbleweed for ppc64le

Name: binaryen Distribution: openSUSE Tumbleweed
Version: 123 Vendor: openSUSE
Release: 1.1 Build date: Tue Jun 24 23:40:13 2025
Group: Development/Tools Build host: reproducible
Size: 6512326 Source RPM: binaryen-123-1.1.src.rpm
Packager: http://bugs.opensuse.org
Url: https://github.com/WebAssembly/binaryen
Summary: Compiler infrastructure and toolchain library for WebAssembly
Binaryen is a compiler and toolchain infrastructure library for WebAssembly,
written in C++, for compiling WebAssembly.

* Binaryen has a single header C API. It accepts input in WebAssembly-like form,
  but also accepts a general control flow graph for compilers that prefer that.
* Binaryen's internal IR uses compact data structures and is designed for
  completely parallel codegen and optimization, using all available CPU cores.
* Binaryen IR compiles down to WebAssembly easily and quickly because it is
  a subset of WebAssembly.
* Effective: Binaryen's optimizer has many passes that can improve code (e.g.
  local coloring to coalesce local variables, dead code elimination; precomputing
  expressions when possible at compile time; etc.).
* WASM minification

Compilers built using Binaryen include:

* s2wasm which compiles the LLVM WebAssembly's backend .s output format
* mir2wasm which compiles Rust MIR

Those compilers generate Binaryen IR, which can then be optimized and
emitted as WebAssembly (the first two use the internal C++ API, the
last the C API).

Binaryen provides a toolchain that can:

* Parse and emit WebAssembly. Users can load WebAssembly, optimize it
  using Binaryen, and re-emit it, thus implementing a wasm-to-wasm optimizer.
* Interpret WebAssembly as well as run the WebAssembly spec tests.
* Integrate with Emscripten in order to provide a complete compiler
  toolchain from C and C++ to WebAssembly.
* Polyfill WebAssembly by running it in the interpreter compiled to JavaScript,
  if the browser does not yet have native support (useful for testing).

Provides

Requires

License

Apache-2.0

Changelog

* Tue Jun 24 2025 Avindra Goolcharan <avindra@opensuse.org>
  - update to version 123
    * We now support "exact" references from the custom descriptors
      proposal, and emit such references when the feature is enabled.
      As a result, using -all will enable that feature (among all
      others), and cause GC-using binaries to use that feature,
      which most VMs do not yet support. To avoid such VM errors,
      either enable only the features you want, or disable it: -all
    - -disable-custom-descriptors.
    * Use mimalloc allocator for Linux static builds, making our
      official release binaries a lot faster. (#7378)
    * Add an option to preserve imports and exports in the fuzzer (
      for fuzzer harnesses where they only want Binaryen to modify
      their given testcases, not generate new things in them). (#7300)
    * string is now a subtype of ext (rather than any). This allows
      better transformations for strings, like an inverse of
      StringLowering, but will error on codebases that depend on
      being able to pass strings into anyrefs. (#7373)
    * Require the type of RefFunc expressions to match the type of
      the referenced function. It is no longer valid to type them
      as funcref in the IR. (#7376)
    * The C and JS APIs for creating RefFunc expressions now take a
      HeapType instead of a Type.
    * MergeSimilarFunctions: Do a return_call when possible (
      necessary for correctness in wasm files that depend on calls
      for control flow). (#7350)
  - includes v122
    * The heap type associated with a tag is now preserved through
      optimization. (#7220)
    * The "typed-continuations" features is renamed "stack-switching "
      and the latest instructions are experimentally supported. (#7041)
    * WasmGC branches that send extra values can now be parsed via
      lowering to use scratch locals. (#7202)
    * Add experimental support for atomic struct get and set (#7155)
      and RMW (#7225) operations.
  - includes v121
    * BinaryenSelect no longer takes a type parameter. (#7097)
    * AutoDrop APIs have been removed. (#7106)
    * bulk-memory-opt and call-indirect-overlong features are added
      for parity with LLVM. (#7139)
    * WasmGC optimizations now run significantly faster and scale
      better with available threads. (#7142)
    * Binaryen now supports parsing control flow structures with
      parameter types by lowering them away in the parsers. (#7149)
  - includes v120
    * Remove closed world validation checks. These checks were
      causing more harm than good. All valid code will now validate
      with --closed-world (but also it now provides fewer warnings
      to users that enable closed world on code which does not
      conform to the requirements of that mode, which can lead to
      changes in runtime behavior; for the long-term plans, see #6965). (#7019)
    * Many compile time speedups were implemented (2x overall
      improvement), see #4165 (comment)
    * Several exnref (newest version of Wasm EH) optimizations:
      [#7013], #6996, #6997, #6983, #6980
    * Source Maps: Support 5 segment mappings. (#6795)
    * [wasm-split] Add a multi-split mode. (#6943)
    * Add a --preserve-type-order option that minimizes text format
      changes in type ordering. (#6916)
    * Add a J2CL specific pass that moves itable entries to vtables. (#6888)
  - includes v119
    * Passes can now receive individual pass arguments, that is --
      foo=A --foo=B for a pass foo will run the pass twice (which
      was possible before) and will now run it first with argument
      A and second with B. --pass-arg=foo@BAR will now apply to the
      most recent --foo pass on the commandline, if foo is a pass (
      while global pass arguments - that are not the name of a pass
    - remain, as before, global for all passes). (#6687)
    * The Metrics pass now takes an optional argument to use as the
      title, --metrics=text will show that text before the metrics.
      Each instance of Metrics can have unique text, --metrics=
      before -O3 --metrics=after. (#6792)
    * Add C and JS APIs to control more pass options (
      trapsNeverHappen, closedWorld, generateStackIR,
      optimizeStackIR, and the list of skipped passes). (#6713)
    * A C APIs for getting/setting the type of Functions (#6721).
    * Allow using --skip-pass on the commandline multiple times (#6714).
    * The instructions relaxed_fma and relaxed_fnma have been
      renamed to relaxed_madd and relaxed_nmadd.
    * Add a new --heap-store-optimization pass. (#6882)
    * Add a pass for minimizing recursion groups. (#6832)
  - includes v118
    * StackIR is now handled entirely during binary writing (#656).
      This is mostly not noticeable, except that:
    - Text output no longer notes (; has Stack IR ;) (as Stack
      IR only exists during binary writing).
    - --generate-stack-ir, --optimize-stack-ir, and --print-
      stack-ir are now flags and not passes. That means the
      order of operations may seem different, as they apply
      during binary writing (or, if no binary is written but
      we were still asked to print StackIR, wasm-opt does it
      at the very end).
    - Whether to generate, optimize, and print StackIR is now
      noted as part of the PassOptions. As a result
      BinaryenModulePrintStackIR and similar APIs do not
      receive an optimize flag, as they read the PassOption
      optimizeStackIR instead.
    * The new, standards-compliant text parser is now the default.
    * Source map comments on else branches must now be placed above
      the instruction inside the else branch rather than on the
      else branch itself.
    * Source map locations from instructions are no longer
      automatically propagated to function epilogues.
    * Add a new BinaryenModuleReadWithFeatures function to the C
      API that allows to configure which features to enable in the parser. (#6380)
    * The build-time option to use legacy WasmGC opcodes is removed. (#5874)
    * The strings in string.const instructions must now be valid WTF-8.
    * The TraverseCalls flag for ExpressionRunner is removed.
    * C API: Support adding data segments individually (#6346)
    * Add sourcemap support to wasm-metadce and wasm-merge (#6372).
    * Fix semantics of return calls (#6448, #6451, #6464, #6470, #6474).
    * Add table64 lowering pass (#6595).
    * Add TraceCalls instrumentation pass (#6619).
  - includes v117
    * Add a WebAssembly build to release (#6351)
    * Add Linux aarch64 build to release (#6334).
    * The text format for tuple instructions now requires immediates.
      For example, to make a tuple of two elements, use tuple.make 2 (#6169) (#6172) (#6170).
    * The text format for if expressions now requires then and else
      to introduce the two branch arms, matching the spec (#6201).
    * Fuzzer: Remove --emit-js-shell logic and reuse fuzz_shell.js instead (#6310).
    * [EH] Add --experimental-new-eh option to wasm-opt (#6270) (#6210).
    * Add StringLowering pass, from stringref to imported-strings (#6271).
    * C API: Add BinaryenFunctionAppendVar (#6213).
    * Add J2CL optimization pass (#6151).
    * Add no-inline IR annotation, and passes to set it based on function name (#6146).
    * C API: Add BinaryenTableGetType and BinaryenTableSetType (#6137).
    * Add an Unsubtyping optimization (#5982).
    * Compute full transitive closure in GlobalEffects (#5992).
    * Add passes to finalize or unfinalize types (#5944).
    * Add a tuple optimization pass (#5937).
  - includes 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).
  - includes 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)
* Sun Aug 13 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 01 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 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 03 2021 Avindra Goolcharan <avindra@opensuse.org>
  - Declare missing wasm-split binary
  - simplify and neutralize the description
* Mon Jan 18 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 01 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 07 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 2018 Garret Wassermann <garret@wassiverse.com>
  - Initial package (v1.38.28)

Files

/usr/bin/wasm-as
/usr/bin/wasm-ctor-eval
/usr/bin/wasm-dis
/usr/bin/wasm-emscripten-finalize
/usr/bin/wasm-fuzz-lattices
/usr/bin/wasm-fuzz-types
/usr/bin/wasm-merge
/usr/bin/wasm-metadce
/usr/bin/wasm-opt
/usr/bin/wasm-reduce
/usr/bin/wasm-shell
/usr/bin/wasm-split
/usr/bin/wasm2js
/usr/share/doc/packages/binaryen
/usr/share/doc/packages/binaryen/Contributing.md
/usr/share/doc/packages/binaryen/README.md
/usr/share/licenses/binaryen
/usr/share/licenses/binaryen/LICENSE


Generated by rpm2html 1.8.1

Fabrice Bellet, Mon Jul 7 01:13:06 2025