[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#916612: ITP: binaryen -- compiler and toolchain infrastructure library for WebAssembly



Package: wnpp
Severity: wishlist
Owner: Markus Koschany <apo@debian.org>

* Package name    : binaryen
  Version         : 61
  Upstream Author : WebAssembly Community Group participants
* URL             : https://github.com/WebAssembly/binaryen
* License         : Apache-2.0
  Programming Lang: C++
  Description     : compiler and toolchain infrastructure library for WebAssembly

Binaryen 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 that can improve code very
    significantly (e.g. local coloring to coalesce local variables; dead code
    elimination; precomputing expressions when possible at compile time; etc.).
    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 (an example of
    such an optimization is block return value generation in SimplifyLocals).

This is a new build-dependency of ublock-origin to compile
WebAssembly files from source.


Reply to: