Resync part numbers between README, after.kaem.run and run.sh.

This commit is contained in:
Andrius Štikonas 2021-02-21 15:44:10 +00:00
parent d5c8698964
commit 9b314af3f0
3 changed files with 26 additions and 24 deletions

View File

@ -211,12 +211,14 @@ Going forward, we can now use `.tar.gz` for source code.
more complex edits, including just changes to lines. Luckily, we are able to
patch patch using sed only.
#### Part 12: patched mes-libc
#### Part 12: sha-2
#### Part 13: patched mes-libc
Since patch is available at this point, we can apply additional fixes to
mes-libc that are not included in the wip-m2 branch and recompile libc.
#### Part 13: patched tinycc
#### Part 14: patched tinycc
In Guix, tinycc is patched to force static linking. Prior to this step, we have
been forced to manually specify static linking for each tool. Now that we have
@ -225,18 +227,18 @@ patch, we can patch tinycc to force static linking and then recompile it.
Note that we have to do this using tinycc 0.9.26, as tinycc 0.9.27 cannot
recompile itself for unknown reasons.
#### Part 14: make 3.80
#### Part 15: make 3.80
GNU `make` is now built so we have a more robust building system. `make` allows
us to do things like define rules for files rather than writing complex kaem
scripts.
#### Part 15: bzip2 1.0.8
#### Part 16: bzip2 1.0.8
`bzip2` is a compression format that compresses more than `gzip`. It is
preferred where we can use it, and makes source code sizes smaller.
#### Part 16: coreutils 5.0.0
#### Part 17: coreutils 5.0.0
GNU Coreutils is a collection of widely used utilities such as `cat`, `chmod`,
`chown`, `cp`, `install`, `ln`, `ls`, `mkdir`, `mknod`, `mv`, `rm`, `rmdir`,
@ -245,14 +247,14 @@ GNU Coreutils is a collection of widely used utilities such as `cat`, `chmod`,
A few of the utilities cannot be easily compiled with Mes C library, so we skip
them.
#### Part 17: heirloom devtools
#### Part 18: heirloom devtools
`lex` and `yacc` from the Heirloom project. The Heirloom project is a collection
of standard UNIX utilities derived from code by Caldera and Sun. Differently
from the analogous utilities from the GNU project, they can be compiled with a
simple `Makefile`.
#### Part 18: bash 2.05b
#### Part 19: bash 2.05b
GNU `bash` is the most well known shell and the most complex piece of software
so far. However, it comes with a number of great benefits over kaem, including
@ -262,7 +264,7 @@ Bash ships with a bison pre-generated file here which we delete. Unfortunately,
we have not bootstrapped bison but fortunately for us, heirloom yacc is able to
cope here.
#### Part 19: flex 2.5.11
#### Part 20: flex 2.5.11
`flex` is a tool for generating lexers or scanners: programs that recognize
lexical patters.
@ -273,7 +275,7 @@ that it can be processed by lex for the Heirloom project (the required
modifications are mostly syntactical, plus a few workarounds to avoid some flex
advanced features).
#### Part 20: musl 1.1.24
#### Part 21: musl 1.1.24
`musl` is a C standard library that is lightweight, fast, simple, free, and
strives to be correct in the sense of standards-conformance and safety. `musl`
@ -285,28 +287,28 @@ complex programs.
patches. In particular, we replace all weak symbols with strong symbols and will
patch `tcc` in the next step to ignore duplicate symbols.
#### Part 21: tcc 0.9.27 (musl)
#### Part 22: tcc 0.9.27 (musl)
We recompile `tcc` against musl. This is a two stage process. First we build
tcc-0.9.27 that itself links to Mes C library but produces binaries linked to
musl. Then we recompile newly produced tcc with itself. Interestingly,
tcc-0.9.27 linked against musl is self hosting. Finally, we rebuild musl once more
with the new `tcc`.
with the new `tcc` and rebuild `tcc against new `musl`.
#### Part 22: m4 1.4.7
#### Part 23: m4 1.4.7
`m4` is the first piece of software we need in the autotools suite, flex
2.6.4 and bison. It allows macros to be defined and files to be generated from those
macros.
#### Part 23: flex 2.6.14
#### Part 24: flex 2.6.14
We recompile unpatched GNU `flex` using older flex 2.5.11. This is again a two
stage process, first compiling flex using `scan.c` (from `scan.l`) created by
old flex, then recompile `scan.c` using the new version of flex to remove any
buggy artifacts from the old flex.
#### Part 24: bison 3.4.1
#### Part 25: bison 3.4.1
GNU `bison` is a parser generator. With `m4` and `flex` we can now bootstrap it
following https://gitlab.com/giomasce/bison-bootstrap. It's a 3 stage process:
@ -317,27 +319,27 @@ following https://gitlab.com/giomasce/bison-bootstrap. It's a 3 stage process:
Finally we have a fully functional `bison` executable.
#### Part 25: grep 2.4
#### Part 26: grep 2.4
GNU `grep` is a pattern matching utility. Is is not immediately needed but will
be useful later for autotools.
#### Part 26: diffutils 2.7
#### Part 27: diffutils 2.7
`diffutils` is useful for comparing two files. It is not immediately needed but
is required later for autotools.
#### Part 27: coreutils 5.0
#### Part 28: coreutils 5.0
`coreutils` is rebuilt against musl. Additional utilities are built including
`comm`, `expr`, `date`, `dd`, `sort`, `uname`, and `uniq`.
#### Part 28: gawk 3.0.4
#### Part 29: gawk 3.0.4
`gawk` is the GNU implementation of `awk`, yet another pattern matching and data
extraction utility. It is also required for autotools.
#### Part 29: perl 5.000
#### Part 30: perl 5.000
Perl is a general purpose programming language that is especially suitable for
text processing. It is essential for autotools build system because automake
@ -352,14 +354,14 @@ pre-generated Configure script.
At this first step we build `miniperl` which is `perl` without support for
loading modules.
#### Part 30: perl 5.003
#### Part 31: perl 5.003
We now use `perl` from the previous stage to recreate pre-generated files that
are shipped in perl 5.003. But for now we still need to use handwritten makefile
instead of `./Configure` script.
#### Part 31: perl 5.004_05
#### Part 32: perl 5.004_05
Yet another version of perl.
#### Part 32: perl 5.005_03
#### Part 33: perl 5.005_03

View File

@ -92,7 +92,7 @@ cd ${pkg}
kaem --file ${pkg}.kaem
cd ..
# Part 13: Check all up to this part as sha256sum
# Part 12a: Check all up to this part as sha256sum
sha256sum -c pre-sha.sha256sums
# Part 13: mes-libc-patched

View File

@ -12,7 +12,7 @@ set -e
export PREFIX=/after
# Part 20
# Part 20
build flex-2.5.11
# Part 21