Bindings to the LLVM compiler toolkit.
High-level bindings to the LLVM compiler toolkit.
New in 3.2.0.0: Builds against LLVM 3.2
New in 3.0.0.0: The low-level bindings have been split into the llvm-base package.
New in 0.9.1.1: Builds against LLVM 2.9.
New in 0.9.1.0: Util.Memory for memory related intrinsics.
New in 0.9.0.0: Adapted to LLVM 2.8 (removed support for Union types).
Haskell LLVM bindings
This package provides Haskell bindings for the popular LLVM compiler infrastructure project.
Compatibility
We try to stay up to date with LLVM releases. The current version of this package is compatible with LLVM 2.9 and 2.8. Please understand that the package may or may not work against older LLVM releases; we don't have the time or resources to test across multiple releases.
Configuration
By default, when you run cabal install
, the Haskell bindings will be configured to look for LLVM in /usr/local
.
If you have LLVM installed in a different location, e.g. /usr
, you can tell the configure
script where to find it as follows:
cabal install --configure-option=--with-llvm-prefix=/usr
Package status - what to expect
This package is still under development.
The high level bindings are currently incomplete, so there are some limits on what you can do. Adding new functions is generally easy, though, so don't be afraid to get your hands dirty.
The high level interface is mostly safe, but the type system cannot protect against everything that can go wrong, so take care. And, of course, there's no way to guarantee anything about the generated code.
Staying in touch
There is a low-volume mailing list named [email protected]. If you use the LLVM bindings, you should think about joining.
If you want to contribute patches, please clone a copy of the git repository:
git clone git://github.com/bos/llvm
Patches are best submitted via the github "pull request" interface.
To file a bug or a request for an enhancement, please use the github issue tracker.