This is a ML dialect with first-class cases (first-class pattern matching) and row-polymorphism that solves the expression problem directly with language features.
Install SML/NJ, tested with v110.75 and v110.87 on Linux (make sure it has ML-lex) and build with this command:
make
and that's it.
There's a LaTeXed PDF manual is in doc/
, which is excatly the same as language spec.
There are also a compiler overview, a paper, and a PhD thesis about MLPolyR.
For code editing, we've created an IntelliJ plugin for MLPolyR.
It builds and produce PPC assembly code, which cause failure upon linking phase.
Call mlpolyrc
with command line switch -S
emits assembly code without linking, which is a viable option if you
only want typechecking programs. Other switches all requires linking.
Now you can call with -t
to typecheck without doing codegen.
Now you use -e
to eval. However, I/O operation is not yet supported, which means
all you can do is integer arith stuff.