This is a fork of this Rust implementation of mincaml
- a compiler for a call-by-value ML-like language, updated to recent versions of cranelift.
It appears the original author has abandoned this project (and is on to better things!), so I'm going to pick it up and try and do some fun stuff with it as I play around with functional language compilation.
- Implement an LLVM backend.
- I should probably make it properly polymorphic.
- Maybe, just maybe -- I'll add a GC!
- What if we had a compile-time GC using uniqueness/linear types?
- Wow, 1ML looks crazy!
- But
System F
seems to be a concise language core... - Even Simon admits that a strict Haskell might have been good...
- Also, Koka seems to be built on top of
System F
...
Build the compiler -- this will place wmlcc
into target
.
cargo build
After building, you should be able to use the compiler on ubuntu-latest
, even apple-darwin
.
Assuming you have a reference ocamlc
on $PATH
, you can run all the test programs with
./target/debug/test