Subject: Re: bug#54394: [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap

From: Ludovic Courtès <[email-masked]>
Date: Wed, 16 Mar 2022 18:25:01 +0100

Hello!

Timothy Sample <[email-masked]> skribis:

> This is culmination of a lot of work, so I’m excited to be submitting
> it!  The main thrust of this series is to update Gash and Gash-Utils,
> and then remove most of the old GNU utilities we use during early
> bootstrap.  To elaborate, the current situation is that we climb a
> ladder through time: first we build Bash 2, then we build Bash 4, and
> finally we build Bash 5.  This is true for most GNU utilities: Sed,
> Gawk, Coreutils, etc.  The reason?  Until now, our Scheme
> implementations of those utilities (Gash and Gash-Utils) were very
> limited.  Bash 2 used to be a lot more useful then Gash, for example.
> Now, with recent releases of Gash and Gash-Utils, the Scheme utilities
> are, in general, capable of powering the builds of modern GNU software.

Woohoo!  Shortening the ladder, and doing it “the nice way”, is a much
welcome improvement.

> To be clear, we still climb the time-ladder in a few cases.  The main
> ones are GCC, Glibc, and Binutils.  For example, we have to use GCC 2 to
> transition from TCC To GCC 4 (which is the last non-C++ GCC [1]).
> Fixing this would require quite a bit of TCC hacking, I imagine.  There
> are others, though.  We still use old versions of Gzip, Make, patch, and
> Gawk.  The fact that Gawk is still there disappoints me quite a bit, but
> ‘glibc-mesboot’ fails in a way that I just can’t figure out when
> building with Gash-Utils.  Gzip is not strictly necessary, but also
> pretty easy to replace.  I’m not sure, but I think patch is only there
> to avoid using patches in ‘origin’ records during bootstrap.  We now
> have a way to do that, so it may no longer be necessary.  Make will
> likely need to be rewritten in Scheme, but we have a head start: Potato
> Make [2].
>
> [1] https://bootstrappable.org/projects.html
> [2] https://github.com/spk121/potato-make

Yes, the C compiler situation is tricky; Make looks like a fun target.

[...]

> The next three are updates.  The bootar update optimistically assumes
> that someone with access will upload the source file to the Guix mirror
> URL: “mirror://gnu/guix/...” as was done with previous versions.

Sure.

>  5 files changed, 192 insertions(+), 788 deletions(-)

Yay!

Ludo’.