[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to add /bin/sh to the build environment

From: Philip McGrath
Subject: Re: How to add /bin/sh to the build environment
Date: Mon, 8 Nov 2021 20:36:08 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1

(I wrote my earlier reply before I saw Leo's.)

On 11/8/21 17:23, Leo Famulari wrote:
It will be necessary to fix this issue in the SML/NJ package definition
(I think you've done this in a followup patch)

Is this <>, or somewhere else?

Guix does not
accept packages that rely on pre-built binaries — everything must be
built from source code. There are some exceptions but I don't think that
SML/NJ will qualify due to its obscurity compared to other language
implementations. If SML/NJ cannot be built without the binary bootfiles,
it probably won't be eligible for inclusion in GNU Guix.

Mostly I wanted to follow up to say that, from my perspective, SML/NJ is a very noteworthy and influential language implementation. Perhaps the most familiar example for Guix folks would be that Guile's fibers are based on Concurrent ML, which is an SML/NJ extension:

Personally I've only read ML, not written it, but from a Debian bug I found through searching online (<>), it appears that there are no known Standard ML implementations that avoid this bootstrapping problem. SML/NJ, in addition to being one of the most important implementations in its own right, is apparently capable of bootstrapping at least one other implementation, MLton. (Unlike some on that thread, I don't consider the 5x slowdown for the bootstrap build to be prohibitive: bootstrapping Chez Scheme via Racket has a 10x slowdown.)

It is very valuable that Guix maintains such high standards for bootstrapping from source. However, Guix does still contain some compilers that have bootstrapping limitations. SML/NJ is no worse that Chez Scheme in this respect, and comparably important. (One difference is that there is a path to backporting the bootstrap simulation from Racket's fork to the upstream variant, which would remove the problem---but I don't that wasn't true when Chez Scheme was first added to Guix.) The status quo is that no Standard ML language implementation at all seems to be in Guix. I think including SML/NJ would be better than waiting for someone to write a hypothetical Standard ML compiler in a host language with a better bootstrapping story.


reply via email to

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