[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 02/04: gnu: Add Poly/ML.
From: |
Ludovic Courtès |
Subject: |
Re: 02/04: gnu: Add Poly/ML. |
Date: |
Tue, 18 Jul 2017 13:51:04 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Mark H Weaver <address@hidden> skribis:
> 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.
Thank you for catching these things that I had overlooked!
Ludo’.