Haskell bindings to binaryen.
Haskell bindings to binaryen. Provides complete bindings to the C API, which can be useful for building WebAssembly toolchains in Haskell.
Haskell bindings for binaryen
Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++. This package defines bindings to the Binaryen C API.
Versioning
Starting from 0.0.5.0
, we bundle the C++ sources of binaryen
with this package, so the package can be built and used as long as the C++ toolchain is present in the build environment. The system-binaryen
Cabal flag defaults to False
, but it can be manually enabled to link against the system-wide binaryen
library and avoid building the bundled C++ library.
Haskell bindings version | Bundled Binaryen version |
---|---|
0.0.6.* | version_99 |
Older versions of this package links against the system-wide binaryen
library, so before building the package, please check the Binaryen version and make sure it's no less than the minimum version listed below.
Haskell bindings version | Minimum Binaryen version |
---|---|
0.0.1.* | version_91 |
0.0.2.* | version_94 |
0.0.3.* | version_96 |
0.0.4.* | version_97 |
0.0.5.* | version_98 |
How to build
A simple stack build
or cabal build
command should work.
For Windows cabal
users: run the build in a msys2 mingw64 shell.
nix
-based build is also supported:
$ nix-shell --pure --run "cabal v2-run binaryen:test"
$ nix-shell --pure --run "cabal v2-run binaryen:test --flags=system-binaryen --extra-include-dirs=\$binaryenIncludeDir --extra-lib-dirs=\$binaryenLibDir"
Use the asterius
Cachix bucket for reusing binary cache built on CI.