Subject: Re: bug#51745: [PATCH 0/1] Add smlnj.
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Foo Chuan Wei <[email-masked]>
Date: Fri, 10 Dec 2021 14:59:25 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Foo Chuan Wei <[email-masked]> skribis:

> This patch adds Standard ML of New Jersey 110.99.2 for x86_64-linux and
> i686-linux.
>
> There are some WIP patches in the guix-patches mailing list
> (https://issues.guix.gnu.org/38606), but those patches did not succeed
> in building smlnj + libraries.
>
> Note that binary patching is necessary to deal with a hardcoded
> "/bin/sh" in the bootfiles. Further reading about the /bin/sh issue:
> https://lists.gnu.org/archive/html/help-guix/2021-11/msg00031.html
>
> It is not feasible to avoid pre-built binaries. The documentation itself
> says:
>> When pulling the latest sources via subversion, there is no guarantee
>> that config/install.sh will operate successfully due to a lack of
>> usable bootfiles. In this case you might be able to generate new
>> bootfiles using the bootstrap compiler (of an older version). Even
>> that can be very difficult or even impossible [...]
> Source: https://www.smlnj.org/dist/working/110.99.2/index.html

Noted.  This is obviously below our demanding standards, but I
understand this is not avoidable right now.

It would be great if you could get in touch with upstream though.  You
could mention that OCaml is now bootstrapped from source, thanks to the
work by Gabriel Scherrer, Julie Lepiller, et al.  Perhaps that’s enough
of an incentive to get SMLNJ bootstrapped?  :-)

> Credits:
> * Brett Gilio's smlnj patch (https://issues.guix.gnu.org/38606#3), which
>   this patch builds upon.
> * I got help from Josselin Poiret on IRC
>   (https://logs.guix.gnu.org/guix/2021-11-08.log#135443).
> * I looked at how smlnj is packaged in NixOS:
>   * https://github.com/NixOS/nixpkgs/blob/21.05/pkgs/development/compilers/smlnj/default.nix
>   * https://web.archive.org/web/20140704103009/http://lists.science.uu.nl/pipermail/nix-dev/attachments/20101215/e1beb921/attachment.obj

I added Brett as co-author in the commit log.

> * gnu/packages/sml.scm (smlnj): New variable.

Applied, thank you and everyone involved!

Ludo’.