[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 02/04: gnu: Add Poly/ML.
From: |
Mark H Weaver |
Subject: |
Re: 02/04: gnu: Add Poly/ML. |
Date: |
Mon, 17 Jul 2017 12:01:33 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> civodul pushed a commit to branch master
> in repository guix.
>
> commit 9b7ee28d5700b47ae34bd47c32d250f042fbdbbd
> Author: Andy Patterson <address@hidden>
> 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
- Re: 02/04: gnu: Add Poly/ML.,
Mark H Weaver <=