oslobađanje alata , koji omogućuje proces samoizgradnje (bootstrapping) za GCC i ponovnu izgradnju u zatvorenoj petlji iz izvornog koda.
Alat rješava problem provjerenih početnih kompajlerskih verzija u distribucijama, prekidajući lanac cikličkih ponovnih izgradnja (izgradnja kompajlera zahtijeva izvršne datoteke već izgrađenog kompajlera, a binarne kompajlerske verzije su potencijalni izvor skrivenih stražnjih vrata, što nam ne dopušta da u potpunosti jamčimo integritet verzija iz referentnih izvornih tekstova).
U GNU Mesu Samostalni interpreter za Scheme jezik, napisan u C-u, i jednostavni C kompajler (MesCC), napisan u Schemeu. Obje komponente su međusobno povezane. Scheme interpreter omogućuje izgradnju MesCC C kompajlera, koji zatim omogućuje izgradnju pojednostavljene verzije kompajlera. (tcc), čije su mogućnosti već dovoljne za izgradnju GCC-a.
Interpreter jezika Scheme je prilično kompaktan, zauzima oko 5000 linija koda u najjednostavnijem podskupu jezika C, i može se pretvoriti u izvršnu datoteku pomoću univerzalnog prevoditelja. ili najjednostavniji C kompajler kompiliran pomoću samoasemblera , što ne zahtijeva vanjske ovisnosti. Interpreter uključuje potpuni sakupljač smeća i pruža biblioteku modula koji se mogu učitati.
Novo izdanje pruža podršku za ponovljive izgradnje pomoću paketa mes+mescc ili guile+mescc u GNU Guix distribucijama, Debian GNU/Linux i NixOS. Dodana je podrška za pokretanje Mes Scheme interpretera u GNU Hurdu, ali mescc C kompajler još ne radi zbog nedostatka podrške za potrebne sistemske pozive (npr. fork/exec). Dodana je početna podrška za stvaranje izvršnih datoteka FreeBSD-a. Poboljšana je podrška za pokretanje Guix distribucije korištenjem samo Scheme-jezičnih komponenti (Gash naredbena ljuska (Guile kao Shell) umjesto bash i Gash Core Utils umjesto coreutils, grep, sed, gzip, make, awk i tar).
Buduća izdanja uključuju podršku za bootstrapping za NixOS, omogućavanje bootstrappinga korištenjem samo Scheme komponenti u grani wip-bootstrap, podršku za ARM arhitekturu, mogućnost kompajliranja Mes.c pomoću M2-Planeta, punu podršku za Guile module i omogućavanje rada mescc-a s Hurd kernelom.
Izvor: opennet.ru
