diff --git a/HACKING b/HACKING index c5426366..a12a2534 100644 --- a/HACKING +++ b/HACKING @@ -67,7 +67,6 @@ mes.c. ** TODO *** release 0.x, unsorted - upstream mes-boot to GuixSD. - - add full source gcc-4.7 package build. - replace GuixSD bootstrap for x86. - replace bootstrap utils (with gash?): flex, bash, bzip2, coreutils, diffutils, gawk, grep, gzip, make, sed, tar. @@ -102,6 +101,7 @@ mes.c. - add x86_64, replace GuixSD's bootstrap binaries for x86_64. - more architectures (does GuixSD require this, i.e. before 1.0?). ** DONE +*** 0.17 GNU Mes is now an official GNU project and bootstraps gcc-4.7.4. *** 0.16.1 Mes now has info docs and installs ootb on Debian buster/testing. *** 0.16 Mes Lib C now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0. *** 0.15: MesCC now has a libc+gnu that supports compiling binutils-2.14, gcc-2.95.3 and glibc-2.2.5. diff --git a/INSTALL b/INSTALL index 505d6e02..7b32135e 100644 --- a/INSTALL +++ b/INSTALL @@ -48,17 +48,17 @@ similar way. * Bootstrap build -The bootstrap build is being developed in GuixSD, see -https://gitlab.com/janneke/guix/blob/wip-bootstrap/gnu/packages/mes.scm +The bootstrap build is being developed in Guix, on wip-bootstrap, see +http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/mes.scm?h=wip-bootstrap ** Prerequisites - [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.5 is known to work. - [[https://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work. - - [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.16 is known to work. + - [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.17 is known to work. ** Build it - + ./configure.sh [--prefix=] ./build.sh ** Check it diff --git a/NEWS b/NEWS index 4b5b174c..ef165bf0 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,14 @@ Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen Please send Mes bug reports to bug-mes@gnu.org. +* Changes in 0.17 since 0.16.1 +** Core +*** GNU Mes is now an official GNU package. +*** MesCC is now installed as a regular Guile package. +*** Support --srcdir build. +*** Support all standard GNU make targets. +** MesCC +*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4. * Changes in 0.16.1 since 0.16 ** Core *** Mes now builds out of the box on Debian buster/testing. @@ -19,10 +27,10 @@ Please send Mes bug reports to bug-mes@gnu.org. *** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails. * Changes in 0.16 since 0.15 ** Core -*** Support building with tcc, including Mes Lib C in-line assembly. +*** Support building with tcc, including Mes C Lib in-line assembly. *** core:execl now supports 1000 arguments. ** MesCC -*** Mes Lib C now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0. +*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0. *** MesCC binaries now run on Linux 4.17 too, i.e. survive Linus' new `sane mmap limits.' *** MesCC now runs with mescc-tools 0.5 (no = in long options). **** 3 new C test @@ -44,13 +52,13 @@ Please send Mes bug reports to bug-mes@gnu.org. *** 2 new functions drop, drop-right. ** MesCC -*** MesCC and Mes Lib C can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5. +*** MesCC and Mes C Lib can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5. *** MesCC now provides dummy crti.o, crtn.o so that tcc needs not be patched for those. -*** Mes Lib C now supports compiling glibc-2.2.25. -*** Mes Lib C now supports compiling gcc-2.95.3 -*** Mes Lib C now supports compiling binutils-2.30. -*** Mes Lib C now supports compiling m4-1.4. -*** Mes Lib C has been split into archs: gcc, x86-mes-gcc and x86-mes. +*** Mes C Lib now supports compiling glibc-2.2.25. +*** Mes C Lib now supports compiling gcc-2.95.3 +*** Mes C Lib now supports compiling binutils-2.30. +*** Mes C Lib now supports compiling m4-1.4. +*** Mes C Lib has been split into archs: gcc, x86-mes-gcc and x86-mes. *** MesCC now has a posixy command line interface. **** 70 new functions abs, access, alarm, alloca, atexit, atol, bcmp, bcopy, brk, bzero, diff --git a/README b/README index 872f2169..2ede3d44 100644 --- a/README +++ b/README @@ -8,25 +8,24 @@ source bootstrapping for GNU/Linux distributions such as [[https://www.gnu.org/software/guix][GuixSD]] as part of the [[http://bootstrappable.org][bootstrappable builds]] effort. -It currently consists of a mutual self-hosting Scheme interpreter -written in ~5,000 LOC of simple C and a Nyacc-based C compiler written -in Scheme. This mes.c is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by -[[https://github.com/oriansj/m2-planet][M2-Planet]]. +It consists of a mutual self-hosting Scheme interpreter written in +~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme. +This mes.c is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by [[https://github.com/oriansj/m2-planet][M2-Planet]]. -The Scheme interpreter prototype (mes.c) has a Garbage Collector, a -library of loadable Scheme modules-- notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]], -Pre-R6RS [[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]], -Guile's [[https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html][PEG]] --and test suite just barely enough to support a simple -REPL and simple C-compiler: MesCC. +The Scheme interpreter (mes.c) has a Garbage Collector, a library of +loadable Scheme modules-- notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]], Pre-R6RS +[[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]] --and test +suite just barely enough to support a simple REPL and simple +C-compiler: MesCC. Mes+MesCC can compile an only [[http://gitlab.com/janneke/tinycc][lightly patched TinyCC]] that is self-hosting. Using this tcc and the Mes C library we now have a reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5, -binutils-2.20.1, gcc-4.1.0. +binutils-2.20.1, gcc-4.7.4. -GNU Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%2525201.5%252520Programmers%252520Manual.pdf][LISP-1.5]] -- -John McCarthy page 13, GNU Guix's source/binary packaging transparency -and Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler. +Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John +McCarthy page 13, GNU Guix's source/binary packaging transparency and +Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler. GNU Mes is free software, it is distributed under the terms of the GNU General Public Licence version 3 or later. See the file [[file:COPYING][COPYING]]. diff --git a/build-aux/GNUmakefile.in b/build-aux/GNUmakefile.in index 8e3d412d..3990daf9 100644 --- a/build-aux/GNUmakefile.in +++ b/build-aux/GNUmakefile.in @@ -300,9 +300,20 @@ else $(warning update-hash: no guix) endif -release: update-hash +tag: + git tag -s v$(VERSION) -m "GNU Mes $(VERSION)." + +# Release process +# 0. doc: Release update, Release commit, make seed, test guix bootstrap +# 1. make tag +# 2. make dist +# 3. make release + +guix-build: ./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL) +release: update-hash | gen-announce guix-build + GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273 gen-announce: ../gnulib/build-aux/announce-gen\ diff --git a/doc/announce/ANNOUNCE-0.10 b/doc/announce/ANNOUNCE-0.10 index 2dcc64d5..29a19914 100644 --- a/doc/announce/ANNOUNCE-0.10 +++ b/doc/announce/ANNOUNCE-0.10 @@ -93,4 +93,4 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf diff --git a/doc/announce/ANNOUNCE-0.11 b/doc/announce/ANNOUNCE-0.11 index 958791e9..c49c3832 100644 --- a/doc/announce/ANNOUNCE-0.11 +++ b/doc/announce/ANNOUNCE-0.11 @@ -67,4 +67,4 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf diff --git a/doc/announce/ANNOUNCE-0.12 b/doc/announce/ANNOUNCE-0.12 index 32b45dcd..aec95bd2 100644 --- a/doc/announce/ANNOUNCE-0.12 +++ b/doc/announce/ANNOUNCE-0.12 @@ -93,5 +93,5 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [11] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.13 b/doc/announce/ANNOUNCE-0.13 index 6e3026fd..0d76babe 100644 --- a/doc/announce/ANNOUNCE-0.13 +++ b/doc/announce/ANNOUNCE-0.13 @@ -77,5 +77,5 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [11] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.14 b/doc/announce/ANNOUNCE-0.14 index e302a3c5..368adf37 100644 --- a/doc/announce/ANNOUNCE-0.14 +++ b/doc/announce/ANNOUNCE-0.14 @@ -97,5 +97,5 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [11] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.15 b/doc/announce/ANNOUNCE-0.15 index 588f222d..46480413 100644 --- a/doc/announce/ANNOUNCE-0.15 +++ b/doc/announce/ANNOUNCE-0.15 @@ -102,5 +102,5 @@ janneke [6] https://www.nongnu.org/nyacc/ [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc -[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [10] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.16 b/doc/announce/ANNOUNCE-0.16 index db0722f4..b0e6a1e9 100644 --- a/doc/announce/ANNOUNCE-0.16 +++ b/doc/announce/ANNOUNCE-0.16 @@ -96,5 +96,5 @@ janneke [7] https://www.nongnu.org/nyacc [8] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [9] https://gitlab.com/janneke/tinycc -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [11] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.17 b/doc/announce/ANNOUNCE-0.17 new file mode 100644 index 00000000..afc233c6 --- /dev/null +++ b/doc/announce/ANNOUNCE-0.17 @@ -0,0 +1,114 @@ +Subject: GNU Mes 0.17 released [alpha] + +<#secure method=pgpmime mode=sign> + +We are delighted to announce the release of GNU Mes 0.17, representing +55 commits over 5 weeks. + +Mes is now an official GNU package and we have bootstrapped gcc-4.7.4 +for x86-linux with a reduced binary seed (i.e., without regular toolchain). + +Next targets: + + - upstream the x86 Mes bootstrap to GuixSD + - create a x86_64 Mes C Lib, see if that is is enough to bootstrap x86_64 + - reduce the 1MB ASCII M1 seed to ~5000 LOC/~100KB of M2 source + - create a plan for Geesh and Gash and use them to reduce the + bootstrap binary dependencies + - and/or otherwise reduce the bootstrap binary dependencies + +Packages are available from Guix's wip-bootstrap branch. + +* About + +GNU Mes[0] aims to help create full source bootstrapping for GNU/Linux +distributions such as GuixSD[1] as part of the bootstrappable builds[2] +effort. + +It consists of a mutual self-hosting Scheme interpreter written in +~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme. +This mes.c is being simplified[3] to be transpiled by M2-Planet[4]. + +The Scheme interpreter (mes.c) has a Garbage Collector, a library of +loadable Scheme modules-- notably Dominique Boucher's LALR[5], +Pre-R6RS portable syntax-case[6] with R7RS ellipsis, Matt Wette's +Nyacc[7] --and test suite just barely enough to support a simple REPL +and simple C-compiler: MesCC. + +Mes+MesCC can compile an only lightly patched TinyCC[8] that is +self-hosting. Using this tcc and the Mes C library we now have a +reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5, +binutils-2.20.1, gcc-4.7.4. + +Mes is inspired by The Maxwell Equations of Software: LISP-1.5[9] -- +John McCarthy page 13, GNU Guix's source/binary packaging transparency +and Jeremiah Orians's stage0[10] ~500 byte self-hosting hex assembler. + +* Download + + git clone git://git.savannah.gnu.org/mes.git + + Here are the compressed sources and a GPG detached signature[*]: + https://alpha.gnu.org/gnu/mes/mes-0.17.tar.gz + https://alpha.gnu.org/gnu/mes/mes-0.17.tar.gz.sig + + Use a mirror for higher download bandwidth: + https://www.gnu.org/order/ftp.html + + Here are the MD5 and SHA1 checksums: + + 5e571c2f5ddaefbfe3dd618d69c40038 mes-0.17.tar.gz + 1fbebe64ab330aec4c7ffbca88ea04b7be17458d mes-0.17.tar.gz + + [*] Use a .sig file to verify that the corresponding file (without the + .sig suffix) is intact. First, be sure to download both the .sig file + and the corresponding tarball. Then, run a command like this: + + gpg --verify mes-0.17.tar.gz.sig + + If that command fails because you don't have the required public key, + then run this command to import it: + + gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273 + + and rerun the 'gpg --verify' command. + +Mes runs from the source tree and can also be built, packaged and +installed in Guix[SD] from a git checkout by running + + guix package -f .guix.scm + +* Get informed, get involved + + Join #bootstrappable on irc.freenode.net. + +* Changes in 0.17 since 0.16.1 + ** Core + *** GNU Mes is now an official GNU package. + *** MesCC is now installed as a regular Guile package. + *** Support --srcdir build. + *** Support all standard GNU make targets. + ** MesCC + *** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4. +* Changes in 0.16.1 since 0.16 + ** Core + *** Mes now builds out of the box on Debian buster/testing. + *** Mes now comes with a generic build recipe: build-aux/setup-mes.sh. + *** Mes now comes with INFO documentation. + ** MesCC + *** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails. + +Greetings, +janneke + +[0] https://www.gnu.org/software/mes +[1] https://www.gnu.org/software/guix +[2] http://bootstrappable.org +[3] https://github.com/oriansj/mes-m2 +[4] https://github.com/oriansj/m2-planet +[5] https://github.com/schemeway/lalr-scm +[6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html +[7] https://www.nongnu.org/nyacc +[8] https://gitlab.com/janneke/tinycc +[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf +[10] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.3 b/doc/announce/ANNOUNCE-0.3 index 90edec7d..6f3a2d56 100644 --- a/doc/announce/ANNOUNCE-0.3 +++ b/doc/announce/ANNOUNCE-0.3 @@ -96,4 +96,4 @@ Greetings, Jan [1] https://lists.nongnu.org/archive/html/guile-user/2016-09/msg00061.html -[2] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[2] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf diff --git a/doc/announce/ANNOUNCE-0.4 b/doc/announce/ANNOUNCE-0.4 index 13583037..c5fe2d12 100644 --- a/doc/announce/ANNOUNCE-0.4 +++ b/doc/announce/ANNOUNCE-0.4 @@ -100,4 +100,4 @@ Jan [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [3] https://www.nongnu.org/nyacc/ [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html -[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf diff --git a/doc/announce/ANNOUNCE-0.5 b/doc/announce/ANNOUNCE-0.5 index 4ed9d30b..7a04c7a4 100644 --- a/doc/announce/ANNOUNCE-0.5 +++ b/doc/announce/ANNOUNCE-0.5 @@ -74,6 +74,6 @@ janneke [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [3] https://www.nongnu.org/nyacc/ [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html -[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [6] https://www.gnu.org/software/guix/ [7] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.6 b/doc/announce/ANNOUNCE-0.6 index 38a55ff8..80bc457e 100644 --- a/doc/announce/ANNOUNCE-0.6 +++ b/doc/announce/ANNOUNCE-0.6 @@ -77,6 +77,6 @@ janneke [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [3] https://www.nongnu.org/nyacc/ [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html -[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [6] https://www.gnu.org/software/guix/ [7] https://github.com/oriansj/stage0 diff --git a/doc/announce/ANNOUNCE-0.7 b/doc/announce/ANNOUNCE-0.7 index 3f8e5812..27636eac 100644 --- a/doc/announce/ANNOUNCE-0.7 +++ b/doc/announce/ANNOUNCE-0.7 @@ -77,7 +77,7 @@ janneke [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [3] https://www.nongnu.org/nyacc/ [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html -[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [6] https://www.gnu.org/software/guix/ [7] https://github.com/oriansj/stage0 [8] https://gitlab.com/janneke/tinycc diff --git a/doc/announce/ANNOUNCE-0.8 b/doc/announce/ANNOUNCE-0.8 index c17e55bd..67950212 100644 --- a/doc/announce/ANNOUNCE-0.8 +++ b/doc/announce/ANNOUNCE-0.8 @@ -63,7 +63,7 @@ janneke [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [3] https://www.nongnu.org/nyacc/ [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html -[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf [6] https://www.gnu.org/software/guix/ [7] https://github.com/oriansj/stage0 [8] https://gitlab.com/janneke/tinycc diff --git a/doc/announce/ANNOUNCE-0.9 b/doc/announce/ANNOUNCE-0.9 index 662967ea..b4aac4a2 100644 --- a/doc/announce/ANNOUNCE-0.9 +++ b/doc/announce/ANNOUNCE-0.9 @@ -90,4 +90,4 @@ janneke [7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://gitlab.com/janneke/tinycc [9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html -[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf +[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf diff --git a/doc/mes.texi b/doc/mes.texi index 212b4974..5c43a8f8 100644 --- a/doc/mes.texi +++ b/doc/mes.texi @@ -283,7 +283,7 @@ distribution from source, using only an initial 500 byte binary seed? As fate would have it, I stumbled upon this @url{https://queue.acm.org/detail.cfm?id=1039523, interview with Alan Kay}, where he shares a revelation he had when reading John McCarthy's -@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf, +@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf, LISP-1.5} manual: @quotation