doc: Further work.

* doc/images/gcc-mesboot-graph.png: New file.
* install.sh: Install it.
* doc/mes.texi (The Mes Bootstrap Process): Show it.
  (Bootstrapping): Add missing Mes direntry.
  (Running the Test Suites): Fix example.
  Fix typos.
This commit is contained in:
Jan Nieuwenhuizen 2018-06-29 07:49:59 +02:00
parent c5bf550fff
commit 9ad4c789d7
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
3 changed files with 23 additions and 15 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -25,6 +25,9 @@ Documentation License''.
@dircategory Bootstrapping @dircategory Bootstrapping
@direntry @direntry
* Mes: (mes). A system bootstrap worthy of GNU.
* mes: (mes)Invoking mes. Running Mes, a minimalist Guile lookalike. * mes: (mes)Invoking mes. Running Mes, a minimalist Guile lookalike.
* mescc: (mes)Invoking MesCC. Running the MesCC bootstrap compiler. * mescc: (mes)Invoking MesCC. Running the MesCC bootstrap compiler.
@end direntry @end direntry
@ -122,8 +125,8 @@ intended to be bootstrappable using a very simple C compiler.
@section Software Freedom @section Software Freedom
@cindex purpose @cindex purpose
The four essential Freedoms of Software are at the core of our GNU The four essential Freedoms of Software are at the core of our GNU
community. Quoting the first freedom from community. Quoting@footnote{The four essential freedoms
@url{https://www.gnu.org/philosophy/free-sw.html} @url{https://www.gnu.org/philosophy/free-sw.html}} freedom #1
@quotation @quotation
The freedom to study how the program works, and change it so it does The freedom to study how the program works, and change it so it does
@ -146,8 +149,8 @@ untainted product of the source code that we studied?
@section Reproducible Builds @section Reproducible Builds
The current Reproducible Builds effort incubated in the Debian The current Reproducible Builds effort incubated in the Debian
project@footnote{http://debian.org} and was organized by Lunar. Quoting project@footnote{@url{http://debian.org, The Debian Project}} and was organized by Lunar. Quoting
the @url{https://reproducible-builds.org/} website the Reproducible Builds website@footnote{@url{https://reproducible-builds.org/,Reproducible Builds}}
@quotation @quotation
A build is reproducible if given the same source code, build environment A build is reproducible if given the same source code, build environment
@ -180,7 +183,7 @@ The idea of reproducible builds is not very new. It was implemented for
GNU tools in the early 1990s (which we learned, much later in 2017). In GNU tools in the early 1990s (which we learned, much later in 2017). In
the Debian world it was mentioned first in 2000 and then more explicitly the Debian world it was mentioned first in 2000 and then more explicitly
in 2007 on in 2007 on
debian-devel@footnote{@url{https://lists.debian.org/debian-devel/2007/09/msg00746.html}} debian-devel@footnote{@url{https://lists.debian.org/debian-devel/2007/09/msg00746.html,Martin Uecker on debian-devel on bit-reproducibility}}
@quotation @quotation
I think it would be really cool if the Debian policy required that I think it would be really cool if the Debian policy required that
@ -398,7 +401,8 @@ build-aux/check-mescc.sh
Run a single MesCC test Run a single MesCC test
@example @example
CC=gcc CC32=i686-unknown-linux-gnu-gcc MES=guile build-aux/test.sh CC=gcc CC32=i686-unknown-linux-gnu-gcc MES=guile \
build-aux/test.sh scaffold/tests/00-exit-0
@end example @end example
@node Bootstrapping @node Bootstrapping
@ -416,7 +420,7 @@ all from source code. In addition to the carefully signed source code
of all the programs (the `milk') an opaque binary seed (the `yogurt') is of all the programs (the `milk') an opaque binary seed (the `yogurt') is
injected as an essential dependency. injected as an essential dependency.
Why would this a problem, I hear you ask? This is how it is done, we Why would this be a problem, I hear you ask? This is how it is done, we
always did it this way, everyone does it like this! Indeed, a popular always did it this way, everyone does it like this! Indeed, a popular
way of handling the bootstrapping issue is by ignoring it. way of handling the bootstrapping issue is by ignoring it.
@ -424,7 +428,7 @@ way of handling the bootstrapping issue is by ignoring it.
Your compiler becoming self-hosting@dots{}a language creator's wet Your compiler becoming self-hosting@dots{}a language creator's wet
dream. dream.
@author Paul Hoogendijk @author PFH
@end quotation @end quotation
It seems that writing a self-hosting compiler is considered to be a It seems that writing a self-hosting compiler is considered to be a
@ -449,7 +453,7 @@ responsibility.
@section The Mes Bootstrap Process @section The Mes Bootstrap Process
The Mes full source bootstrap process@footnote{TBH, the current state of The Mes full source bootstrap process@footnote{TBH, the current state of
affairs demands to label this the reduced binary seed bootstrap} is affairs demands to label this a `reduced binary seed bootstrap'} is
currently being developed in GuixSD@footnote{See currently being developed in GuixSD@footnote{See
@file{gnu/packages/mes.scm} in the @var{wip-bootstrap} branch in Guix @file{gnu/packages/mes.scm} in the @var{wip-bootstrap} branch in Guix
git git
@ -476,6 +480,8 @@ binutils-source + binutils0 + gcc + glibc => binutils
gcc-source + binutils + gcc-core + glibc => gcc gcc-source + binutils + gcc-core + glibc => gcc
@end verbatim @end verbatim
@image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot}
Work is ongoing to remove these binary seeds that were intentionally Work is ongoing to remove these binary seeds that were intentionally
injected by our own doing as temporary shortcut injected by our own doing as temporary shortcut
@example @example
@ -770,8 +776,7 @@ guix environment -l guix.scm
Finally, you have to invoke @code{make check} to run tests Finally, you have to invoke @code{make check} to run tests
(@pxref{Running the Test Suites}). If anything fails, take a look at (@pxref{Running the Test Suites}). If anything fails, take a look at
installation instructions (@pxref{Installation}) or send a message to installation instructions (@pxref{Installation}) or send a message to
@email{janneke@@gnu.org, janneke} or to the @email{guix-devel@@gnu.org} the @email{guix-devel@@gnu.org} mailing list.
mailing list.
@node Running Mes From the Source Tree @node Running Mes From the Source Tree
@section Running Mes From the Source Tree @section Running Mes From the Source Tree
@ -837,8 +842,7 @@ Additionally, in Mes we prefer to format @code{if} statements like this
Development is done using the Git distributed version control system. Development is done using the Git distributed version control system.
Thus, access to the repository is not strictly necessary. We welcome Thus, access to the repository is not strictly necessary. We welcome
contributions in the form of patches as produced by @code{git contributions in the form of patches as produced by @code{git
format-patch} sent to @email{janneke@@gnu.org, janneke} or to the format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.
@email{guix-devel@@gnu.org} mailing list.
Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, Please write commit logs in the ChangeLog format (@pxref{Change Logs,,,
standards, GNU Coding Standards}); you can check the commit history for standards, GNU Coding Standards}); you can check the commit history for
@ -862,9 +866,13 @@ honesty with a more helpful and more blunt reminder of a mantra of Free
Software: Software:
@quotation @quotation
@table @strong
@item Q:
When@dots{}? When@dots{}?
@item A:
@dots{}sooner if you help. @dots{}sooner if you help.
@end table
@author Eric Raymond @author Eric Raymond
@end quotation @end quotation
@ -884,7 +892,7 @@ Orians, pdewacht, rain1, Ricardo Wurmus, Rutger van Beusekom.
We also thank Ludovic Courtès for creating GuixSD and making the We also thank Ludovic Courtès for creating GuixSD and making the
bootstrap problem so painfully visible, John McCarthy for creating bootstrap problem so painfully visible, John McCarthy for creating
LISP-1.5 and Alan Kay for their observation that Page 13 LISP-1.5 and Alan Kay for their inspiring comment on
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}. @url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
@c ********************************************************************* @c *********************************************************************

View File

@ -66,8 +66,8 @@ chmod -w+x $DESTDIR$prefix/bin/diff.scm
if [ -f doc/mes.info ]; then if [ -f doc/mes.info ]; then
mkdir -p $DESTDIR$prefix/share/info mkdir -p $DESTDIR$prefix/share/info
tar -cf- doc/mes.info* doc/images | tar -xf- --strip-components=1 -C $DESTDIR$prefix/share/info
install-info --info-dir=$DESTDIR$prefix/share/info doc/mes.info install-info --info-dir=$DESTDIR$prefix/share/info doc/mes.info
tar -cf- doc/mes.info* | tar -xf- --strip-components=1 -C $DESTDIR$prefix/share/info
fi fi
if [ -f doc/mes.1 ]; then if [ -f doc/mes.1 ]; then