guix-devel
[Top][All Lists]
Advanced

[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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]