A short guide to building a tiny programming language in Haskell with LLVM.
Read Online:
Using the LLVM toolchain requires several system libraries:
$ apt-get install llvm-3.5
$ apt-get install libedit-dev
The resulting page and chapter samples can be built using the given Makefile.
$ stack build
$ stack ghc preprocessor.hs -- -o preprocessor
$ stack exec make
$ apt-get install llvm-3.5
$ apt-get install libedit-dev
Install the dependencies:
$ cabal sandbox init
If you just want to compile the examples then configure with the following command. Ensure that
llvm-config
is on your $PATH
.
$ cabal configure
If you want to build the tutorial text locally configure with the following. This will install pandoc from source which will take a while.
$ cabal configure --flags=tutorial
Then install the dependencies:
$ cabal install --only-dependencies
The source code for the example compiler of each chapter is included in
the /src
folder. With the dependencies installed these can be built
using the Makefile at the root level or with cabal.
$ cabal run chapter2
$ cabal run chapter6
$ make chapter2
$ make chapter6
A smaller version of the code without the parser frontend can be found in the llvm-tutorial-standalone repository. The LLVM code generation technique is identical.
This is an open source project, patches and corrections always welcome.
To generate the HTML page:
$ make tutorial.html
A standalone PDF can also be generated with:
$ make tutorial.pdf
Text is adapted from the LLVM tutorial and is subsequently licensed under the LLVM license.
The Haskell source files are released under the MIT license. Copyright (c) 2013-2016, Stephen Diehl