udgivelse af værktøjer , der muliggør bootstrap-processen for GCC og gør det muligt at opnå en lukket cyklus af genopbygning fra kildekoder.
Værktøjet løser opgaven med en verficeret initial opbygning af compilatoren i distributioner, hvilket bryder kæden af cyklisk genopbygning (for at opbygge compilatoren kræves eksekverbare filer fra en allerede samlet compilator, og binære opbygninger af compilatoren kan være en potentiel kilde til skjulte bagdøre, hvilket ikke tillader fuld garanti for integriteten af opbygningerne fra reference kildekoder).
I GNU Mes en selvforsynende interpreter til Scheme-sproget, skrevet i C, og den enkleste C-compiler (MesCC), skrevet i Scheme. Begge komponenter er gensidigt samlede. Scheme-interpreteren muliggør opbygningen af C-compileren MesCC, som derefter gør det muligt at opbygge en nedskåret version af compilatoren (tcc), hvis muligheder allerede er tilstrækkelige til at bygge GCC.
Scheme-sprogets interpreter er ganske kompakt, fylder omkring 5000 linjer kode i det enkleste delmængde af C og kan konverteres til en eksekverbar fil ved hjælp af en universel translator eller den enkleste C-compiler, som er bygget ved hjælp af den selvforsynende assembler , der ikke kræver eksterne afhængigheder. Samtidig inkluderer interpretereren en fuldt funktionel affaldsgenerator og tilbyder et bibliotek af dynamisk indlæste moduler.
Den nye udgave har sikret support for gentagne opbygninger ved hjælp af bundter af mes+mescc eller guile+mescc i GNU Guix, Debian GNU/Linux og NixOS distributioner. Muligheden for at køre Scheme-interpreteren Mes i GNU Hurd er blevet tilføjet, men C-compileren mescc fungerer endnu ikke på grund af mangel på støtte til de nødvendige systemopkald (f.eks. fork/exec). Grundlæggende støtte til oprettelse af eksekverbare filer på FreeBSD er blevet tilføjet. Støtten til bootstrapprocessen af Guix-distributionen er forbedret ved kun at bruge komponenter skrevet i Scheme (kommandolinje Gash (Guile as Shell) i stedet for bash og Gash Core Utils i stedet for coreutils, grep, sed, gzip, make, awk og tar).
I kommende udgivelser forventes der at blive tilføjet support til bootstrapping for NixOS, inkludering af bootstrapping udelukkende ved brug af komponenter skrevet i Scheme i wip-bootstrap-grenen, support til ARM-arkitektur, muligheden for at kompilere Mes.c ved hjælp af M2-Planet, fuld support til Guile-moduler og sikring af, at mescc fungerer med Hurd-kernen.
Kilde: opennet.ru
