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: 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



reply via email to

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