Subject: [bug#39655] [PATCH core-updates] doc: Add 'Scheme-only Bootstrap' node.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 19 Feb 2020 16:58:12 +0100

Hi!

Jan Nieuwenhuizen <[email-masked]> skribis:

> * doc/guix.texi (@detailmenu): Add Bootstrapping menu.
> (Scheme-only Bootstrap): New node.
> * doc/images/gcc-core-mesboot0-scheme-only-graph.dot: New image.
> * doc/local.mk (DOT_FILES): Add it.

Great!  I wonder if we need a new section though.  Do you think we could
just keep it all in a single bootstrapping section that would describe
the current state of affairs, possibly with a “Bootstrapping History”
section or similar that would describe the milestones that got us there?

In fact, part of what you write here could very much go straight to such
a “History” section.  I think the terms “Full Source Bootstrap”,
“Scheme-Only Bootstrap”, etc. should only appear there, for clarity.

That way, the main bootstrapping section would simply describe the
current status in a standalone fashion.

Does that make sense?

> +The next step that Guix has taken towards a Full Source Bootstrap is to
> +replace the shell and all its utilities with implementations in Guile
> +Scheme.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a
> +POSIX-compatible shell that replaces Bash, and it comes with Gash Utils
> +which has minimalist replacements for Awk, the GNU Core Utilities, Grep,
> +Gzip, Sed, and Tar.  The rest of the bootstrap binary seeds that were
> +removed are now built from source by adding a new set of
> +@c
> +packages@footnote{@c
> +gash-boot,
> +gash-utils-boot,
> +%bootstrap-mes-rewired,
> +gzip-mesboot,

I wouldn’t list them all here because (1) it’s hard to understand what
these names refer to, unless reading commencement.scm is your favorite
hobby ;-), and (2) it’s bound to become outdated.

WDYT?

> +As Gash and Gash Utils mature, and GNU packages become more
> +bootstrappable (e.g., new releases of GNU Sed will also ship in
> +@code{tar.gz} format), this set of added packages can hopefully be
> +reduced again.
> +
> +@c ./pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' | sed -re 's,((bootstrap-mescc-tools|bootstrap-mes|guile-bootstrap).*shape =) box,\1 ellipse,' > doc/images/gcc-core-mesboot0-scheme-only-graph.dot
> +@image{images/gcc-core-mesboot0-scheme-only-graph,6in,,Dependency graph of gcc-core-mesboot0}

It would be nice to have a couple of lines commenting the graph, like:

  The graph below shows the resulting dependency graph.  At its root
  there’s X and at the top there’s Y, etc.

Thank you, and apologies for suggesting more work!  :-)

Ludo’.