ML compiler for the Z-Machine
  • ZAP 63.1%
  • OCaml 36.3%
  • Python 0.4%
  • Standard ML 0.1%
Find a file
2013-06-23 19:01:26 -05:00
core add minimal support for user-defined type constraints in the type inference engine 2013-06-23 19:01:26 -05:00
runtime add rudimentary support for arrays 2012-06-04 00:43:12 -05:00
test update code generation to match revised runtime API 2012-02-26 23:49:17 -06:00
.gitignore add .gitignore 2012-04-30 20:46:46 -05:00
CONCEPT.txt initial import: design documentation, and some skeleton assembly for laying out the memory map 2011-06-25 22:36:03 -05:00
DESIGN.txt minor documentation tweaks 2013-06-02 23:08:26 -05:00
LICENSE.COMPILER clarify the limits of GPL coverage 2012-04-30 19:58:35 -05:00
LICENSE.RUNTIME-LIB add simplified BSD license for the runtime 2012-04-30 19:51:34 -05:00
README.md add README 2012-04-30 20:27:43 -05:00
TODO.txt closure-convert external function definitions when they are treated as first-class 2012-05-26 22:21:33 -05:00

ZML README

ZML is a work-in-progress ML compiler which targets the Z-Machine (and probably also Glulx, at some point). The intent is to provide a feature set roughly comparable to Caml Light, including:

  • Hindley-Milner static type system with type inference
  • Mark/sweep/compact GC
  • Closures
  • Tail-call optimization
  • Arrays, lists, tuples, records
  • Variant types
  • Pattern matching
  • Parametric polymorphism

Think "OCaml, but without objects, modules, polymorphic variants, or labels."

This project is very incomplete and should not be considered "useful" at this point in time. But some of the harder problems have already been solved, and some toy programs can be compiled successfully.

LICENSE

The compiler is licensed under the GPL version 2; see LICENSE.COMPILER for details.

The runtime library is licensed under a simplified BSD license; see LICENSE.RUNTIME-LIB for details.