Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Go to file
2015-11-26 19:16:46 -05:00
chapter1 initial commit 2015-01-05 02:54:15 -05:00
chapter2 initial commit 2015-01-05 02:54:15 -05:00
chapter3 "Infix" --> "Prefix" in comment 2015-06-10 13:23:49 -04:00
chapter4 source code block for locally named lambdas 2015-01-06 18:27:45 -05:00
chapter5 chapter5/stlc/Check.hs: make case expression in check function more idiomatic 2015-02-13 17:02:53 +01:00
chapter6 changes to the Evaluation chapter 2015-02-14 16:11:43 +01:00
chapter7 add test output 2015-01-28 09:51:29 -05:00
chapter8 initial commit 2015-01-05 02:54:15 -05:00
chapter9 Fix ast type returned from parsing "false" atom. 2015-03-28 12:33:55 -04:00
chapter10 build environment 2015-11-21 09:52:39 -05:00
chapter11 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
chapter12 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
chapter27 Squashed commit of the following: 2015-01-18 21:04:01 -05:00
css fix css bugs 2015-01-19 11:09:46 -05:00
img Adding support for generating epub-kindle format. 2015-02-16 12:22:28 -04:00
js restore nav.js, make js directory 2015-01-06 18:12:50 -05:00
misc update rss 2015-01-24 14:39:48 -05:00
.gitignore added stack support 2015-11-26 19:16:46 -05:00
.travis.yml texlive extras to travis 2015-01-08 01:46:42 -05:00
000_introduction.md Some edits in "Code generation" section 2015-08-08 11:09:42 +02:00
001_basics.md Changes to the Monoids section of the Basics chapter 2015-02-13 22:28:27 +01:00
002_parsers.md small fix to Parsing chapter 2015-02-13 22:31:42 +01:00
003_lambda_calculus.md Some additions for clarification and minor changes 2015-08-08 23:18:06 +02:00
004_type_systems.md Added missing TArr to the type definition 2015-08-09 18:24:01 +02:00
005_evaluation.md changes to the Evaluation chapter 2015-02-14 16:11:43 +01:00
006_hindley_milner.md changes to the type inference examples 2015-02-20 01:04:50 +01:00
007_path.md fixes to the ProtoHaskell chapter 2015-02-27 21:56:47 +01:00
008_extended_parser.md changes to the Extended Parser chapter 2015-04-10 12:49:03 +02:00
009_datatypes.md build environment 2015-11-21 09:52:39 -05:00
010_renamer.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
011_pattern_matching.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
012_systemf.md added failure cases for poly 2015-01-28 09:31:19 -05:00
026_llvm.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
atom.xml update rss 2015-01-24 14:39:48 -05:00
contributing.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
CONTRIBUTORS.md Added Jake Taylor to contributors list 2015-05-16 23:12:01 -07:00
includes.hs experiment with epub generation 2015-01-08 20:36:34 -05:00
index.md build environment 2015-11-21 09:52:39 -05:00
latex_macros cleanup pdf warts 2015-01-11 13:52:00 -05:00
LICENSE initial commit 2015-01-05 02:54:15 -05:00
Makefile Merge branch 'master' of github.com:sdiehl/write-you-a-haskell 2015-03-17 14:25:29 -04:00
README.md added stack support 2015-11-26 19:16:46 -05:00
run-tests.sh don't build pdf on travis 2015-01-18 21:35:35 -05:00
stack.yaml added stack support 2015-11-26 19:16:46 -05:00
template.html page.tmpl -> template.html 2015-01-09 09:04:56 -05:00
template.latex bump git hash for release 2015-01-19 11:04:03 -05:00
title.md Squashed commit of the following: 2015-01-18 21:04:01 -05:00
write-you-a-haskell.cabal build environment 2015-11-21 09:52:39 -05:00


Building a modern functional compiler from first principles.

Stephen Diehl

Build Status Gitter MIT License

Read Online:

Releases

Building

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

Cabal

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

Stack

$ stack exec bash
$ make

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

$ sudo apt-get install texlive-xetex texlive-latex-extra
$ make pdf

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

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.