Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Switch branches/tags
Nothing to show
Clone or download
sdiehl Merge pull request #94 from thomwiggers/master
Use name instead of Var as type for variable names
Latest commit ae73485 Apr 20, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github readme Feb 19, 2016
chapter1 initial commit Jan 5, 2015
chapter10 added example generics cases Dec 13, 2015
chapter11 Squashed commit of the following: Jan 19, 2015
chapter12 Squashed commit of the following: Jan 19, 2015
chapter2 initial commit Jan 5, 2015
chapter27 Squashed commit of the following: Jan 19, 2015
chapter3 Merge pull request #65 from sgraf812/master Apr 19, 2017
chapter4 fix names for ski combinators Jul 23, 2016
chapter5 Fixed Type Mismatch message for If. Jul 7, 2016
chapter6 changes to the Evaluation chapter Feb 14, 2015
chapter7 Fix issue #34 Jan 1, 2017
chapter8 initial commit Jan 5, 2015
chapter9 Spotted a couple of typos Feb 11, 2017
css rewwork table layouts Dec 31, 2015
img added jit compiler images Jan 11, 2016
js restore nav.js, make js directory Jan 6, 2015
misc update rss Jan 24, 2015
.gitignore added stack support Nov 27, 2015
.travis.yml punt on 7.10 for now Dec 11, 2015
000_introduction.md rework tables in introduction Dec 31, 2015
001_basics.md Minor fix for example demonstrating recursion Feb 3, 2016
002_parsers.md Merge pull request #65 from sgraf812/master Apr 19, 2017
003_lambda_calculus.md crosslink chapter10 Dec 13, 2015
004_type_systems.md Fixed Type Mismatch message for If. Jul 7, 2016
005_evaluation.md Fix minor typo (stratgies -> strategies) Mar 22, 2016
006_hindley_milner.md Merge pull request #94 from thomwiggers/master Apr 19, 2017
007_path.md 007_path.d: ':core id' returns the value, not the type Jun 21, 2016
008_extended_parser.md Spotted a couple of typos Feb 11, 2017
009_datatypes.md Update 009_datatypes.md Jun 20, 2016
010_renamer.md enable build for chapter 11 Dec 31, 2015
011_pattern_matching.md Squashed commit of the following: Jan 19, 2015
012_systemf.md added failure cases for poly Jan 28, 2015
026_llvm.md Wrong image path Jan 19, 2016
CONTRIBUTORS.md Fix let inferece (attempts to fix #72 and #82). Sep 25, 2016
LICENSE bump template dates Jan 19, 2016
Makefile enable build for chapter 11 Dec 31, 2015
README.md cc image Apr 28, 2016
atom.xml update rss Jan 24, 2015
deploy.sh change prompt characters Dec 31, 2015
includes.hs experiment with epub generation Jan 9, 2015
index.md rework index Jan 19, 2016
latex_macros cleanup pdf warts Jan 11, 2015
run-tests.sh don't build pdf on travis Jan 19, 2015
stack.yaml Update resolver to 4.2 Jan 19, 2016
template.html page.tmpl -> template.html Jan 9, 2015
template.latex bump template dates Jan 19, 2016
title.md Squashed commit of the following: Jan 19, 2015
write-you-a-haskell.cabal relax bounds on base Jan 19, 2016

README.md


Building a modern functional compiler from first principles.

Stephen Diehl

Build Status Gitter MIT License

Read Online:

Releases

This is a work in progress.

Building

To generate the build scripts provision a cabal sandbox with pandoc in it. This is done by the write-you-a-haskell.cabal and stack.yaml files.

Stack

$ stack exec make

To generate the pdf, the LaTeX packages must be installed on the system.

$ sudo apt-get install texlive-xetex texlive-latex-extra
$ sudo apt-get install xzdec
$ sudo tlmgr install zapfding
$ stack exec make pdf

Generation of the epub is also supported.

$ stack exec make epub

Cabal

$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal exec bash
$ make

Contributing

Any and all contributions are always welcome. As always, I rely on the perpetual kindness and goodwill of Haskellers (like you!) to help correct grammar, clarify, and fix errors.

License

Artwork CC BY NC SA

This written work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You may reproduce and edit this work with attribution for all non-commercial purposes.

The included source is released under the terms of the MIT License.