[ANN] mlfront-shell - reference implementation of a build system

I’ve made a reference implementation (“mlfront-shell”) of a build system that is mostly working but has zero (0) performance work so far. Among the many existing build + package managers, the “mlfront-shell” tool sits closest to Nix. It works on Windows, can download binary assets, is language-neutral with an easy-to-parse JSON build file.

The reference implementation comes with a specification doc and a JSON schema. Since I’ll eventually be integrating the build system features into dk (my OCaml scripting tool), the docs live there. You’ll find a Quick Start guide and a Comparison table (the opam and dune comparisons are pertinent):

Huge thanks to the a la carte authors, and also to @hbr for fmlib_parse.

Aside: Wow, another Windows-friendly build system post at Porting my Toy OCaml Build System to Windows !

Links:

5 Likes

There have been many improvements since the last update. Here are some of them:

  1. The trace store (needed to not rebuild everything from scratch) has been implemented.
  2. Build file ASTs are parsed, marshalled and put into a key-value directory (which can be shared or cached in CI).
  3. Build keys are generated and used to protect sharing of the parsed AST.
  4. A full walkthrough of “building” the 7zip executable from 7zip binary assets (it is more complicated than it sounds) is on the documentation page
  5. An –autofix option to update build files with checksums, and allowing SHA1 checksum for local files (both are for eventual support of Meta’s watchman tool)
  6. A new format for the JSON files (many functions versus one). The old format is deprecated.
  7. Many many bug fixes, including specification updates.