l...@gnu.org (Ludovic Courtès) writes: > civodul pushed a commit to branch master > in repository guix. > > commit 9b7ee28d5700b47ae34bd47c32d250f042fbdbbd > Author: Andy Patterson <ajpat...@uwaterloo.ca> > Date: Sat Jul 15 18:17:25 2017 -0400 > > gnu: Add Poly/ML. > > * gnu/packages/sml.scm: New file. > * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
Thank you for this! I've become interested in some projects that require Poly/ML, notably CakeML and Milawa/Jitawa which are based on HOL4 and apparently require Poly/ML. Now I can play with those things :) > + (modify-phases %standard-phases > + (add-after 'build 'build-compiler > + (lambda* (#:key make-flags parallel-build? #:allow-other-keys) > + (define flags > + (if parallel-build? > + (cons (format #f "-j~d" (parallel-job-count)) > + make-flags) > + make-flags)) > + (apply system* "make" (append flags (list "compiler")))))))) This is not quite right. Phase procedures return a boolean value to indicate success or failure. 'system*' returns a numeric status code. All numbers are treated as true by Scheme, so this will fail to detect errors. By our usual conventions, we would replace the final expression above with: (zero? (apply system* "make" (append flags (list "compiler")))) > + (home-page "http://www.polyml.org/") > + (synopsis "Standard ML implementation") > + (description "Poly/ML is a Standard ML implementation. It is fully > +compatible with the ML97 standard. It includes a thread library, a foreign > +function interface, and a symbolic debugger.") It might be worth mentioning that Poly/ML cannot be bootstrapped from source code, and includes a precompiled version of itself, or at least that's my understanding. Anyway, thanks again for this contribution. Mark