* General Information ** Do you agree to follow GNU policies? Yes, of course. ** Package name and version: Mes 0.16 ** Author Full Name : Jan (janneke) Nieuwenhuizen ** URL to package home page (if any): https://gitlab.com/janneke/mes I'm happy to move to savannah when Mes becomes a GNU package. ** URL to source tarball: https://gitlab.com/janneke/mes/-/archive/v0.16/mes-0.16.tar.gz or: git clone https://gitlab.com/janneke/mes ** Brief description of the package: Mes aims to help create full source bootstrapping for GuixSD as part of the bootstrappable builds effort (See https://bootstrappable.org/). It currently consists of a mutual self-hosting Scheme interpreter prototype written in C and a Nyacc-based C compiler written in Scheme. This C prototype is being simplified to be transpiled by M2-Planet. Mes+MesCC can compile an only lighty 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. * Code ** Dependencies: Mes can be built as a regular package, or as part of the full source (currently: reduced binary seed) bootstrap process. *** Regular build - https://github.com/mescc-tools, 0.5 is known to work. - https://savannah.gnu.org/projects/nyacc, 0.80.42 is known to work. - GNU Gcc, 4.9.3 is known to work. - GNU Guile, version 2.0.12 or is know to work. - SH, /bin/sh, GNU Bash 4.3 is known to work. - GNU coreutils - sed, GNU sed 4.2 is known to work. - git, 2.10 is known to work. - Perl, 5.22 is known to work. *** Bootstrap build - https://github.com/oriansj/mescc-tools, 0.5 is known to work. - https://savannah.gnu.org/projects/nyacc, 0.80.42 is known to work. - https://gitlab.com/janneke/mes-seed, 0.16 is known to work. ** Configuration, building, installation: *** Guix build, install guix build mes, guix package --install mes *** Regular build ./configure; make; make check; make install *** Bootstrap build sh build.sh sh check.sh sh install.sh ** Documentation: Mes does not yet have any documentation other than AUTHORS, HACKING, INSTALL, NEWS, README. When it does, it will be in Texinfo: I live in Emacs. I have initiated the GNU LilyPond documentation and website, which are written in texinfo. ** Internationalization: Mes does not have Internationalization. As it's an early bootstrap package, it's unsure if it will ever get that. I do have experience with adding Internationalization to GNU LilyPond. ** Accessibility: None. ** Security: Mes will be used as a critical link in our GNU bootstrapping chain. It is essential for Mes to get a proper review before it is put in place. * Licensing: GNU GPL 3, or later. * Similar free software projects: There are similarities with GNU Guile and to a lesser extent also with MIT/GNU Scheme and SCM; in fact Mes' scheme tries to be compatible with Guile Scheme. GNU Guile is about 30x faster than Mes. The main difference is that mes.c is ~5,000LOC of very simple C and can can be bootstrapped almost entirely from source, without any binary seed. Currently, it needs a ~1MB ASSCI seed. Guile is ~100,000LOC of full-blown C, not counting its dependencies such as libgc. Another difference with regular Scheme implementations, is that Mes does not strive for RXRS compliance, instead it strives for minimalism and Guile compatibility. If in doubt, please contact the GuixSD or Guile maintainers. * Any other information, comments, or questions: I am an original author of GNU LilyPond and current GuixSD developer. I have regular discussions about Mes and GuixSD with GuixSD and Guile maintainers. Mes currently targets only x86-linux, I would like some help to look at other architectures and esp. at targeting the Hurd. Greetings, janneke