doc: Update dependencies, add M2-Planet.

* INSTALL (Other GNU/Linux): Update mescc-tools requirement, mention
M2-Planet.
(Prerequisites): Likewise.
* doc/mes.texi (Regular Requirements): Likewise.  Rename to...
(Requirements): ...this.
(Bootstrap Requirements): Likewise.
(Building from Git): Mention dependencies on GNU Texinfo, GNU help2man,
graphviz, and perl.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2022-04-30 11:12:48 +02:00
parent 796dc2dc39
commit 28a828ff4d
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
2 changed files with 56 additions and 36 deletions

View file

@ -26,14 +26,14 @@ similar way.
#+END_SRC #+END_SRC
*** Other GNU/Linux *** Other GNU/Linux
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.0.1 is known to work. - [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
- [[https://github.com/oriansj/m2-planet][M2-Planet]] (optional), 1.9.0 is known to work.
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work. - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
- GNU Gcc, 7.5.0 is known to work. - GNU Gcc, 7.5.0 is known to work.
- GNU Guile, version 3.0.4 is know to work. - GNU Guile, version 3.0.4 is know to work.
- SH, /bin/sh, GNU Bash 5.0.16 is known to work. - SH, /bin/sh, GNU Bash 5.0.16 is known to work.
- GNU coreutils - GNU coreutils
- sed, GNU sed 4.8 is known to work. - sed, GNU sed 4.8 is known to work.
- Perl, 5.30 is known to work.
** Build it ** Build it
@ -79,7 +79,8 @@ The bootstrap build is part of Guix, see
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm
** Prerequisites ** Prerequisites
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.0.1 is known to work. - [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
- [[https://github.com/oriansj/m2-planet][M2-Planet]], 1.9.0 is known to work.
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work. - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
** Build it ** Build it

View file

@ -48,7 +48,7 @@ Edition @value{EDITION} @*
@contents @contents
@c ********************************************************************* @c *********************************************************************
@node Top, Introduction, (dir), (dir) @node Top
@top GNU Mes @top GNU Mes
This document describes GNU Mes version @value{VERSION}, a bootstrappable This document describes GNU Mes version @value{VERSION}, a bootstrappable
@ -77,7 +77,7 @@ Software Freedom
Installation Installation
* Regular Requirements:: Software needed to build and run Mes. * Requirements:: Software needed to build and run Mes.
* Bootstrap Requirements:: Software needed to bootstrap Mes. * Bootstrap Requirements:: Software needed to bootstrap Mes.
* Running the Test Suites:: Testing Mes. * Running the Test Suites:: Testing Mes.
@ -109,7 +109,7 @@ Contributing
@end menu @end menu
@c ********************************************************************* @c *********************************************************************
@node Introduction, Installation, Top, Top @node Introduction
@chapter Introduction @chapter Introduction
@quotation @quotation
@ -191,7 +191,7 @@ Freedom 1.
* LISP as Maxwell's Equations of Software:: Auditable elegance. * LISP as Maxwell's Equations of Software:: Auditable elegance.
@end menu @end menu
@node Reproducible Builds, Bootstrappable Builds, Introduction, Introduction @node Reproducible Builds
@section Reproducible Builds @section Reproducible Builds
The current Reproducible Builds effort incubated in the Debian The current Reproducible Builds effort incubated in the Debian
@ -240,7 +240,7 @@ packages could be rebuild bit-identical from source.
@author Martin Uecker @author Martin Uecker
@end quotation @end quotation
@node Bootstrappable Builds, Full Source Bootstrap, Reproducible Builds, Introduction @node Bootstrappable Builds
@section Bootstrappable Builds @section Bootstrappable Builds
Software distributions that take reproducible builds seriously are Software distributions that take reproducible builds seriously are
@ -295,7 +295,7 @@ This was a very important step because the ~250MB @emph{seed} of binary
code was practically non-auditable, which makes it hard to establish code was practically non-auditable, which makes it hard to establish
what source code produced them. what source code produced them.
@node Full Source Bootstrap, , Bootstrappable Builds, Introduction @node Full Source Bootstrap
@section Full Source Bootstrap @section Full Source Bootstrap
There is an obvious solution: we cannot allow any binary seeds in our There is an obvious solution: we cannot allow any binary seeds in our
@ -480,7 +480,7 @@ It is our sincerest hope to bring back this level of quality and
elegance.. elegance..
@c ********************************************************************* @c *********************************************************************
@node Installation, Bootstrapping, Introduction, Top @node Installation
@chapter Installation @chapter Installation
@cindex installing Mes @cindex installing Mes
@ -491,13 +491,13 @@ to use it.
@menu @menu
* Regular Requirements:: Software needed to build and run Mes. * Requirements:: Software needed to build and run Mes.
* Bootstrap Requirements:: Software needed to bootstrap Mes. * Bootstrap Requirements:: Software needed to bootstrap Mes.
* Running the Test Suites:: Testing Mes. * Running the Test Suites:: Testing Mes.
@end menu @end menu
@node Regular Requirements, Bootstrap Requirements, Installation, Installation @node Requirements
@section Regular Requirements @section Requirements
This section lists requirements when building Mes from source. The This section lists requirements when building Mes from source. The
build procedure for Mes is the same as for other GNU software, and is build procedure for Mes is the same as for other GNU software, and is
@ -512,7 +512,14 @@ later, including 2.2.x and 3.0.x,
@item @url{http://www.gnu.org/software/make/, GNU Make}. @item @url{http://www.gnu.org/software/make/, GNU Make}.
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2, @item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
@item @url{http://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later, including 10.2.0, @item @url{http://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later, including 10.2.0,
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.0.1 or later, @item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
@end itemize
The following dependencies are optional:
@itemize
Support for building the bootstrap @file{bin/mes-m2} depends on
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
@end itemize @end itemize
@cindex Guile, compatibility @cindex Guile, compatibility
@ -520,7 +527,7 @@ Mes is compatible with GNU Guile, so it is possible to share the same
Scheme code between both. Currently Mes only supports the minimal Scheme code between both. Currently Mes only supports the minimal
subset of R5RS and Guile extensions to run MesCC. subset of R5RS and Guile extensions to run MesCC.
@node Bootstrap Requirements, Running the Test Suites, Regular Requirements, Installation @node Bootstrap Requirements
@section Bootstrap Requirements @section Bootstrap Requirements
This section lists requirements when building Mes as a bootstrap This section lists requirements when building Mes as a bootstrap
@ -541,11 +548,12 @@ Bootstrapping Mes depends on the following packages:
@itemize @itemize
@item a POSIX-compatible shell @item a POSIX-compatible shell
@item @url{https://github.com/oriansj/mescc-tools/, mescc-tools}, version 1.0.1 or later. @item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2, @item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
@end itemize @end itemize
@node Running the Test Suites, , Bootstrap Requirements, Installation @node Running the Test Suites
@section Running the Test Suites @section Running the Test Suites
@cindex test suites @cindex test suites
@ -588,7 +596,7 @@ CC=gcc CC32=i686-unknown-linux-gnu-gcc MES=guile \
build-aux/test.sh scaffold/tests/00-exit-0 build-aux/test.sh scaffold/tests/00-exit-0
@end example @end example
@node Bootstrapping, Contributing, Installation, Top @node Bootstrapping
@chapter Bootstrapping @chapter Bootstrapping
@quotation @quotation
@ -633,7 +641,7 @@ responsibility.
* Invoking mesar:: * Invoking mesar::
@end menu @end menu
@node The Mes Bootstrap Process, Invoking mes, Bootstrapping, Bootstrapping @node The Mes Bootstrap Process
@section The Mes Bootstrap Process @section The Mes Bootstrap Process
The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See
@ -711,7 +719,7 @@ Although we think these are less essential and thus less interesting
than the GNU toolchain triplet that we focussed on initially, our next than the GNU toolchain triplet that we focussed on initially, our next
priority is to eleminate these one by one. priority is to eleminate these one by one.
@node Invoking mes, Invoking mescc, The Mes Bootstrap Process, Bootstrapping @node Invoking mes
@section Invoking mes @section Invoking mes
@cindex repl @cindex repl
@ -787,7 +795,7 @@ Display the current version of mes%, and then exit.
* Environment Variables:: If the bits won't change, change their habitat. * Environment Variables:: If the bits won't change, change their habitat.
@end menu @end menu
@node Environment Variables, , Invoking mes, Invoking mes @node Environment Variables
@subsection Environment Variables @subsection Environment Variables
@cindex environment variables @cindex environment variables
@cindex shell @cindex shell
@ -865,7 +873,7 @@ Mes uses @var{@strong{GUILE}_LOAD_PATH} for compatibility with Guile.
@end table @end table
@node Invoking mescc, Invoking mesar, Invoking mes, Bootstrapping @node Invoking mescc
@section Invoking mescc @section Invoking mescc
@example @example
@ -947,7 +955,7 @@ specify LANGUAGE of the following input files
* MesCC Environment Variables:: There's no NIX like POSIX. * MesCC Environment Variables:: There's no NIX like POSIX.
@end menu @end menu
@node MesCC Environment Variables, , Invoking mescc, Invoking mescc @node MesCC Environment Variables
@subsection MesCC Environment Variables @subsection MesCC Environment Variables
@table @env @table @env
@ -976,7 +984,7 @@ during the parsing phase.
@end table @end table
@node Invoking mesar, , Invoking mescc, Bootstrapping @node Invoking mesar
@section Invoking mesar @section Invoking mesar
@example @example
@ -1006,7 +1014,7 @@ display version and exit
@end table @end table
@c ********************************************************************* @c *********************************************************************
@node Contributing, Acknowledgments, Bootstrapping, Top @node Contributing
@chapter Contributing @chapter Contributing
@menu @menu
@ -1018,7 +1026,7 @@ display version and exit
* Submitting Patches:: Share your work. * Submitting Patches:: Share your work.
@end menu @end menu
@node Building from Git, Running Mes From the Source Tree, Contributing, Contributing @node Building from Git
@section Building from Git @section Building from Git
If you want to hack GNU Mes itself, it is recommended to use the latest If you want to hack GNU Mes itself, it is recommended to use the latest
@ -1037,12 +1045,23 @@ hack on Mes:
guix shell guix shell
@end example @end example
If you are unable to use Guix when building Mes from a Git checkout,
the following are the required packages in addition to those mentioned
in the installation instructions (@pxref{Requirements}).
@itemize
@item @url{https://gnu.org/software/help2man/, GNU Help2man};
@item @url{https://gnu.org/software/texinfo/, GNU Texinfo};
@item @url{https://www.graphviz.org/, Graphviz};
@item @url{https://www.perl.org/, Perl}.
@end itemize
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
the @email{bug-mes@@gnu.org} mailing list. the @email{bug-mes@@gnu.org} mailing list.
@node Running Mes From the Source Tree, Porting GNU Mes, Building from Git, Contributing @node Running Mes From the Source Tree
@section Running Mes From the Source Tree @section Running Mes From the Source Tree
First, you need to have an environment with all the dependencies First, you need to have an environment with all the dependencies
@ -1050,7 +1069,7 @@ available (@pxref{Building from Git}), and then simply prefix each
command by @command{./pre-inst-env} (the @file{pre-inst-env} script command by @command{./pre-inst-env} (the @file{pre-inst-env} script
lives in the top build tree of Mes). lives in the top build tree of Mes).
@node Porting GNU Mes, The Perfect Setup, Running Mes From the Source Tree, Contributing @node Porting GNU Mes
@section Porting GNU Mes @section Porting GNU Mes
Mes is supported for x86-linux and armhf-linux. A 64 bit (x86_64-linux) Mes is supported for x86-linux and armhf-linux. A 64 bit (x86_64-linux)
@ -1083,7 +1102,7 @@ Porting MesCC:
@file{mes/module/mescc/i386/info.mes} @file{mes/module/mescc/i386/info.mes}
@end example @end example
@node The Perfect Setup, Coding Style, Porting GNU Mes, Contributing @node The Perfect Setup
@section The Perfect Setup @section The Perfect Setup
The Perfect Setup to hack on Mes is basically the perfect setup used The Perfect Setup to hack on Mes is basically the perfect setup used
@ -1098,7 +1117,7 @@ on-line documentation (docstrings), context-sensitive completion,
@kbd{M-.} to jump to an object definition, a REPL to try out your code, @kbd{M-.} to jump to an object definition, a REPL to try out your code,
and more (@pxref{Introduction,,, geiser, Geiser User Manual}). and more (@pxref{Introduction,,, geiser, Geiser User Manual}).
@node Coding Style, Submitting Patches, The Perfect Setup, Contributing @node Coding Style
@section Coding Style @section Coding Style
In general our code follows the GNU Coding Standards (@pxref{Top,,, In general our code follows the GNU Coding Standards (@pxref{Top,,,
@ -1134,7 +1153,7 @@ Additionally, in Mes we prefer to format @code{if} statements like this
else)) else))
@end example @end example
@node Submitting Patches, , Coding Style, Contributing @node Submitting Patches
@section Submitting Patches @section Submitting Patches
Development is done using the Git distributed version control system. Development is done using the Git distributed version control system.
@ -1184,7 +1203,7 @@ Join us on @code{#bootstrappable} on the Libera Chat IRC network or on
Please send bug reports with full details to @email{bug-mes@@gnu.org}. Please send bug reports with full details to @email{bug-mes@@gnu.org}.
@c ********************************************************************* @c *********************************************************************
@node Acknowledgments, Resources, Contributing, Top @node Acknowledgments
@chapter Acknowledgments @chapter Acknowledgments
We would like to thank the following people for their help: Jeremiah We would like to thank the following people for their help: Jeremiah
@ -1196,7 +1215,7 @@ 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 *********************************************************************
@node Resources, GNU Free Documentation License, Acknowledgments, Top @node Resources
@chapter Resources @chapter Resources
@itemize @itemize
@ -1230,17 +1249,17 @@ at the Libera Chat IRC network.
@end itemize @end itemize
@c ********************************************************************* @c *********************************************************************
@node GNU Free Documentation License, Concept Index, Resources, Top @node GNU Free Documentation License
@appendix GNU Free Documentation License @appendix GNU Free Documentation License
@cindex license, GNU Free Documentation License @cindex license, GNU Free Documentation License
@include fdl-1.3.texi @include fdl-1.3.texi
@c ********************************************************************* @c *********************************************************************
@node Concept Index, Programming Index, GNU Free Documentation License, Top @node Concept Index
@unnumbered Concept Index @unnumbered Concept Index
@printindex cp @printindex cp
@node Programming Index, , Concept Index, Top @node Programming Index
@unnumbered Programming Index @unnumbered Programming Index
@syncodeindex tp fn @syncodeindex tp fn
@syncodeindex vr fn @syncodeindex vr fn