Hi Mark, On Mon, 17 Jul 2017 12:01:33 -0400 Mark H Weaver <m...@netris.org> wrote:
> 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")))) > Oh yeah; whoops. Appending a patch to fix that. > > + (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. Hmm, I worked on this because I wanted to have a non-bootstrapped sml. I looked all over the place for binaries and I didn't find any. I guess we could just ask? > > Anyway, thanks again for this contribution. > > Mark As for your building issues - I didn't experience any issues so I'm not sure what to suggest. I'm not familiar with the project. Maybe we need to turn off parallel builds or tests? Thanks, -- Andy From 2505b5806e6a1cb88947dc253bd0f22ce5ce9fe1 Mon Sep 17 00:00:00 2001 From: Andy Patterson <ajpat...@uwaterloo.ca> Date: Mon, 17 Jul 2017 20:51:52 -0400 Subject: [PATCH] gnu: polyml: Ensure that the compiler is built. * gnu/packages/sml.scm (polyml)[arguments]<#:phases>: Check the return code of "make compiler" in the 'build-compiler phase. --- gnu/packages/sml.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm index 6e57c4a4a..088109465 100644 --- a/gnu/packages/sml.scm +++ b/gnu/packages/sml.scm @@ -60,7 +60,8 @@ (cons (format #f "-j~d" (parallel-job-count)) make-flags) make-flags)) - (apply system* "make" (append flags (list "compiler")))))))) + (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 -- 2.13.2