helvm/kaleidoscope

 
 

A short guide to building a tiny programming language in Haskell with LLVM.

Stephen Diehl

Build StatusMIT License

Read Online:

You will need GHC 7.8 or newer as well as LLVM 4.0. For information on installing LLVM 4.0 (not 3.9 or earlier) on your platform of choice, take a look at the instructions posted by the llvm-hs maintainers.

With Haskell and LLVM in place, you can use either Stack or Cabal to install the necessary Haskell bindings and compile the source code from each chapter.

$ stack build

You can then run the source code from each chapter (starting with chapter 2) as follows:

$ stack exec chapter2

Ensure that llvm-config is on your $PATH, then run:

$ cabal sandbox init
$ cabal configure
$ cabal install --only-dependencies

Then to run the source code from each chapter (e.g. chapter 2):

$ cabal run chapter2

The source code for the example compiler of each chapter is included in the /src folder. With the dependencies installed globally, these can be built using the Makefile at the root level:

$ 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, es 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

About

Haskell LLVM JIT Compiler Tutorial

Topics

Resources

License

Unknown, MIT licenses found
Unknown
LICENSE-LLVM
MIT
LICENSE-MIT

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

    Packages

    No packages published

    Languages

    • Haskell 94.1%
    • CSS 2.9%
    • Makefile 1.4%
    • C 1.2%
    • Other 0.4%