binaryen: Haskell bindings to binaryen

[ bsd3, compiler, library ] [ Propose Tags ]

Haskell bindings to binaryen. Provides complete bindings to the C API, which can be useful for building WebAssembly toolchains in Haskell.


[Skip to Readme]
Versions [faq] 0.0.1.0, 0.0.1.1, 0.0.2.0, 0.0.3.0, 0.0.4.0, 0.0.5.0
Change log CHANGELOG.md
Dependencies base (<5) [details]
License BSD-3-Clause
Copyright (c) 2018 Tweag I/O
Author
Maintainer Cheng Shao <cheng.shao@tweag.io>
Category Compiler
Home page https://github.com/tweag/haskell-binaryen#readme
Bug tracker https://github.com/tweag/haskell-binaryen/issues
Source repo head: git clone https://github.com/tweag/haskell-binaryen
Uploaded by terrorjack at 2020-10-18T18:17:58Z
Distributions NixOS:0.0.4.0
Downloads 442 total (100 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-10-18 [all 1 reports]

Modules

[Index] [Quick Jump]

Flags

NameDescriptionDefaultType
system-binaryen

Link against system-wide binaryen and don't build bundled binaryen

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for binaryen-0.0.5.0

[back to package description]

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.5.* | version_98 |

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 |

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.