On Tue, Dec 29, 2015 at 02:47:23AM +0100, Pjotr Prins wrote: > For anyone interested, Eelco's description of Maak, a functional make, > is here: > > http://nixos.org/~eelco/pubs/iscsd-scm11-submitted.pdf
This is actually an interesting topic. GNU Make does a number of things well (note, btw, that it has Guile support), but it has problems too. In short, in addition to 1. The sucky non-functional macro system 2. Make files are hard to read (and maintain) 3. Does dependencies on time stamps the last is a real problem on cluster builds, which becomes visible with bioinformatics pipelines using make. I propose we need a lazy functional system which (optionally) uses hash values rather than time stamps to decide what needs to be (re)built. Two years ago I wrote up a design for a Ruby DSL that uses futures to define dependencies. Futures make for easier reading of dependencies (you can ignore the Ruby syntax part) https://github.com/pjotrp/bioinformatics/blob/master/doc/design/workflow.md Pj.