Frederic Cambus <f...@statdns.com> wrote: > On Thu, May 05, 2022 at 10:17:00PM +0200, Frederic Cambus wrote: > > > Here is a new port: lang/binaryen > > > > Tests assume a local copy of GoogleTest is present, but it's not bundled > > in the distribution tarball. I patched the relevant CMakeLists.txt to > > disable the attempt to build a local copy and added a LIB_DEPENDS on > > devel/gtest instead. > > > > From DESCR: > > > > 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 (see an overview later > > down) that can improve code size and speed. These optimizations aim to
nit: i'd drop the parentesized sentence, there's nothing below :) > > 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. > > > > Comments? OK? > > Ping. Anyone willing to look at this? > > Tarball reattached for convenience. ok op@ i'd add a comment before the COMPILER line that this wants C++17 just in case but otherwise looks good. I don't know how to properly run-test it other than playing with the examples in the README but the built-in tests are passing too.