(Sorry, initially forgot to do reply all and only sent it to bug-mes)

2024 m. liepos 9 d., antradienis 18:18:19 GMT+1 Simon Tournier rašė:
> Hi Janneke,
> 
> On Sat, 06 Jul 2024 at 11:16, Janneke Nieuwenhuizen <jann...@gnu.org> wrote:
> > We are happy to announce the release of GNU Mes 0.27.
> 
> Cool!  Really nice.
> 
> >                                               Remove indirect Guile
> > 
> > dependencies (via Gash and Gash-Utils) from the Mes bootstrap in Guix.
> 
> Do you mean remove guile-bootstrap from the picture?  The root of this
> graph:

I think what janneke means (correct me if I'm wrong) is that before now gash 
and gash utils could only run on guile but not on mes. So that arrow that was 
pointing from gash to guile-bootstrap will point to mes.

> 
>     https://www.gnu.org/software/mes/manual/images/gcc-mesboot-graph.png
> 
> ?  What’s the plan?  Replace the requirements of stage0-posix provided
> by Gash and Gash-Utils by increasing bootstrap-seeds?

bootstrap seeds bubble in that graph refers to [1], so it wouldn't be changing 
as we don't add anything else there.

stage0-posix requirements are related to package manager and/or limitations of 
source distribution method. If stage0-posix exists in unpacked form, it can 
run the whole bootstrap chain itself using either kaem-optional-seed [2] in 
userspace/POSIX bootstrap (e.g. just kernel and initramfs with bootstrap-seeds 
and source) or builder-hex0 [3] (plus sources) in MBR/BIOS bootstrap (where we 
bootstrap linux kernel too). And then no guile-bootstrap is needed at all. 
Both of these problems are already solved on x86 (though now new x86 machines 
generally come without BIOS and bootstrapping on UEFI is only partially done).

But this method of running bootstrap from just sub 1KB bootstrap-seeds (and no 
guile-bootstrap) cannot be directly implemented in Guix or any other package 
manager. They'll always need some extra seeds that run package manager itself.
At best we can hope to make those additional seeds smaller, e.g. replace 
guile-bootstrap with mes and make Guix run in mes but we can't replace guile-
bootstrap with kaem-optional-seed and still keep package manager 
functionality.

What would be interesting from bootstrapping perspective is to make those 
additional seeds (guile-bootstrap in particular) fully bootstrappable/
reproducible not just from inside Guix but also without Guix, so that we don't 
have chicken and egg problem of how to build guile-bootstrap binary when we
don't yet have Guix.
> 
> Well, gcc-core-mesboot0 which is higher in the graph also depends on
> guile-bootstrap, right?

I think janneke hopes that one day guile-bootstrap will be replaced by mes. 
mes is also much easier to irreducibly bootstrap than guile.

Andrius

[1] https://github.com/oriansj/bootstrap-seeds/
[2] https://github.com/oriansj/bootstrap-seeds/tree/master/POSIX/x86
[3] https://github.com/oriansj/bootstrap-seeds/tree/master/NATIVE/x86





Reply via email to