Mark H Weaver <m...@netris.org> skribis: > 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.
Thank you for catching these things that I had overlooked! Ludo’.