├── .github └── workflows │ └── ci.yml ├── .gitignore ├── ChangeLog.md ├── Dockerfile ├── LICENSE ├── README.md ├── Setup.hs ├── app └── Main.hs ├── finish-testing ├── build.sh └── test.ll ├── hang.tl ├── justfile ├── odd-perfect.tl ├── package.yaml ├── runtime.c ├── simple.tl ├── src ├── ANorm.hs ├── CmdLine.hs ├── CmdLineArgs.hs ├── CodegenMonad.hs ├── Fresh.hs ├── HighLevel.hs ├── Infer.hs ├── LowLevel.hs ├── ParseLisp.hs ├── Parsing.hs ├── Pretty.hs ├── RuntimeDefs.hs ├── Scope.hs └── Types.hs ├── stack.yaml ├── stack.yaml.lock ├── test ├── ANormSpec.hs ├── ExecutionSpec.hs ├── LLSpec.hs ├── ParseLispSpec.hs ├── RuntimeSpec.hs ├── Spec.hs └── golden │ ├── add.gold │ ├── add.tl │ ├── arith.gold │ ├── arith.tl │ ├── closure.gold │ ├── closure.tl │ ├── fact.gold │ ├── fact.tl │ ├── if_simple.gold │ ├── if_simple.tl │ ├── if_tail.gold │ ├── if_tail.tl │ ├── if_tail_nested.gold │ ├── if_tail_nested.tl │ ├── lambda_double_nest.gold │ ├── lambda_double_nest.tl │ ├── let.gold │ ├── let.tl │ ├── letrec.gold │ ├── letrec.tl │ ├── mutual_rec.gold │ ├── mutual_rec.tl │ ├── nested_lambda.gold │ ├── nested_lambda.tl │ ├── tail.gold │ └── tail.tl └── tutorial.pdf /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/.gitignore -------------------------------------------------------------------------------- /ChangeLog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/ChangeLog.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/README.md -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /app/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/app/Main.hs -------------------------------------------------------------------------------- /finish-testing/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/finish-testing/build.sh -------------------------------------------------------------------------------- /finish-testing/test.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/finish-testing/test.ll -------------------------------------------------------------------------------- /hang.tl: -------------------------------------------------------------------------------- 1 | (letrec [u u] u) 2 | -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/justfile -------------------------------------------------------------------------------- /odd-perfect.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/odd-perfect.tl -------------------------------------------------------------------------------- /package.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/package.yaml -------------------------------------------------------------------------------- /runtime.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/runtime.c -------------------------------------------------------------------------------- /simple.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/simple.tl -------------------------------------------------------------------------------- /src/ANorm.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/ANorm.hs -------------------------------------------------------------------------------- /src/CmdLine.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/CmdLine.hs -------------------------------------------------------------------------------- /src/CmdLineArgs.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/CmdLineArgs.hs -------------------------------------------------------------------------------- /src/CodegenMonad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/CodegenMonad.hs -------------------------------------------------------------------------------- /src/Fresh.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Fresh.hs -------------------------------------------------------------------------------- /src/HighLevel.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/HighLevel.hs -------------------------------------------------------------------------------- /src/Infer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Infer.hs -------------------------------------------------------------------------------- /src/LowLevel.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/LowLevel.hs -------------------------------------------------------------------------------- /src/ParseLisp.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/ParseLisp.hs -------------------------------------------------------------------------------- /src/Parsing.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Parsing.hs -------------------------------------------------------------------------------- /src/Pretty.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Pretty.hs -------------------------------------------------------------------------------- /src/RuntimeDefs.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/RuntimeDefs.hs -------------------------------------------------------------------------------- /src/Scope.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Scope.hs -------------------------------------------------------------------------------- /src/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/src/Types.hs -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/stack.yaml -------------------------------------------------------------------------------- /stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/stack.yaml.lock -------------------------------------------------------------------------------- /test/ANormSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/ANormSpec.hs -------------------------------------------------------------------------------- /test/ExecutionSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/ExecutionSpec.hs -------------------------------------------------------------------------------- /test/LLSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/LLSpec.hs -------------------------------------------------------------------------------- /test/ParseLispSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/ParseLispSpec.hs -------------------------------------------------------------------------------- /test/RuntimeSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/RuntimeSpec.hs -------------------------------------------------------------------------------- /test/Spec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/Spec.hs -------------------------------------------------------------------------------- /test/golden/add.gold: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /test/golden/add.tl: -------------------------------------------------------------------------------- 1 | (+ 3 4) 2 | -------------------------------------------------------------------------------- /test/golden/arith.gold: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /test/golden/arith.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/arith.tl -------------------------------------------------------------------------------- /test/golden/closure.gold: -------------------------------------------------------------------------------- 1 | 12 2 | -------------------------------------------------------------------------------- /test/golden/closure.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/closure.tl -------------------------------------------------------------------------------- /test/golden/fact.gold: -------------------------------------------------------------------------------- 1 | 120 2 | -------------------------------------------------------------------------------- /test/golden/fact.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/fact.tl -------------------------------------------------------------------------------- /test/golden/if_simple.gold: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /test/golden/if_simple.tl: -------------------------------------------------------------------------------- 1 | (if0 1 5 9) 2 | -------------------------------------------------------------------------------- /test/golden/if_tail.gold: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /test/golden/if_tail.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/if_tail.tl -------------------------------------------------------------------------------- /test/golden/if_tail_nested.gold: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /test/golden/if_tail_nested.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/if_tail_nested.tl -------------------------------------------------------------------------------- /test/golden/lambda_double_nest.gold: -------------------------------------------------------------------------------- 1 | 4 2 | -------------------------------------------------------------------------------- /test/golden/lambda_double_nest.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/lambda_double_nest.tl -------------------------------------------------------------------------------- /test/golden/let.gold: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /test/golden/let.tl: -------------------------------------------------------------------------------- 1 | (let (x 5) 2 | (+ x 4)) -------------------------------------------------------------------------------- /test/golden/letrec.gold: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /test/golden/letrec.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/letrec.tl -------------------------------------------------------------------------------- /test/golden/mutual_rec.gold: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /test/golden/mutual_rec.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/mutual_rec.tl -------------------------------------------------------------------------------- /test/golden/nested_lambda.gold: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /test/golden/nested_lambda.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/nested_lambda.tl -------------------------------------------------------------------------------- /test/golden/tail.gold: -------------------------------------------------------------------------------- 1 | 4 2 | -------------------------------------------------------------------------------- /test/golden/tail.tl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/test/golden/tail.tl -------------------------------------------------------------------------------- /tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyehle/llvm-lambda/HEAD/tutorial.pdf --------------------------------------------------------------------------------