izdala je alat , koji osigurava proces bootstrappinga za GCC i omogućava zatvoren ciklus ponovne izrade iz izvornog koda.
Ovaj alat rješava izazov verifikovane početne izrade kompajlera u distribucijama, prekidajući lanac ciklične ponovne izrade (za izradu kompajlera potrebni su izvršni datoteke već izgrađenog kompajlera, a binarne izrade kompajlera su potencijalni izvor skrivenih zaklada, što ne omogućava potpuno jamstvo cjelovitosti izrada iz referentnog izvornog koda).
U GNU Mes samodostatan (self-hosting) interpreter za jezik Scheme, napisan u C-u, i najjednostavniji kompajler za jezik C (MesCC), napisan na jeziku Scheme. Oba komponenta su međusobno sastavljiva. Interpreter Scheme omogućava izradu C kompajlera MesCC, koji zatim omogućava izradu skraćene verzije kompajlera (tcc), čije mogućnosti su već dovoljne za izradu GCC-a.
Interpreter jezika Scheme je dovoljno kompaktan, zauzima oko 5000 redaka koda na najjednostavnijem podskupu jezika C i može se pretvoriti u izvršni datoteku koristeći univerzalni prevoditelj ili najjednostavniji C-kompajler, izrađen korištenjem samoproizvedenog assemblera , koji ne zahtijeva vanjske ovisnosti. Pri tome, interpreter uključuje punopravni sakupljač smeća i pruža biblioteku učitavanih modula.
U novom izdanju osigurana je podrška za ponovljive izrade koristeći kombinacije mes+mescc ili guile+mescc u distribucijama GNU Guix, Debian GNU/Linux i NixOS. Dodana je mogućnost pokretanja Scheme-interpretera Mes u GNU Hurd, ali C-kompajler mescc još ne radi zbog nedostatka podrške za potrebne sistemske pozive (na primjer, fork/exec). Dodana je početna podrška za stvaranje izvršnih datoteka za FreeBSD. Poboljšana je podrška za bootstrapping distribucije Guix samo koristeći komponente na jeziku Scheme (ljuska Gash (Guile kao ljuska) umjesto bash i Gash Core Utils umjesto coreutils, grep, sed, gzip, make, awk i tar).
U narednim izdanjima očekuje se uvođenje podrške za bootstrapping za NixOS, uključivanje bootstrappinga isključivo korištenjem komponenti na jeziku Scheme u grani wip-bootstrap, podrška za ARM arhitekturu, mogućnost kompilacije Mes.c koristeći M2-Planet, potpuna podrška za Guile module, te omogućavanje rada mescc s Hurd jezgrom.
Izvor: opennet.ru
