utgivelse av verktøy , som sørger for oppstartsprosessen for GCC og tillater en lukket sløyfe-gjenoppbygging fra kildekoden.
Verktøysettet løser problemet med verifiserte innledende kompilatorbygg i distribusjoner, og bryter kjeden av sykliske gjenoppbygginger (bygging av kompilatoren krever kjørbare filer fra en allerede bygget kompilator, og binære kompilatorbygg er en potensiell kilde til skjulte bakdører, noe som ikke lar oss fullt ut garantere integriteten til bygg fra referansekildetekster).
I GNU Mess en selvvertende tolk for Scheme-språket, skrevet på C-språket, og en enkel kompilator for C-språket (MesCC), skrevet på Scheme-språket. Begge komponentene kan monteres sammen. Scheme-tolken gjør det mulig å bygge MesCC C-kompilatoren, som deretter lar deg bygge en nedstrippet versjon av kompilatoren (tcc), som allerede har nok muligheter til å bygge GCC.
Scheme-språktolken er ganske kompakt, og tar opp omtrent 5000 linjer med kode i den enkleste delmengden av C-språket, og kan konverteres til en kjørbar fil ved hjelp av en universell oversetter. eller den enkleste C-kompilatoren kompilert ved hjelp av en selvmonterende assembler , som ikke krever noen eksterne avhengigheter. Tolkeren inkluderer en fullverdig søppelinnsamler og tilbyr et bibliotek med lastbare moduler.
Den nye utgivelsen støtter repeterbare bygg ved bruk av mes+mescc- eller guile+mescc-pakker i GNU Guix-distribusjoner, Debian GNU/Linux og NixOS. La til støtte for å kjøre Mes Scheme-tolken i GNU Hurd, men mescc C-kompilatoren fungerer ikke ennå på grunn av manglende støtte for nødvendige systemkall (f.eks. fork/exec). Innledende støtte for å lage FreeBSD-kjørbare filer er lagt til. Forbedret støtte for oppstart av Guix-distribusjonen ved å bruke kun Scheme-språkkomponenter (Gash-kommandoskallet (Guile as Shell) i stedet for bash og Gash Core Utils i stedet for coreutils, grep, sed, gzip, make, awk og tar).
Fremtidige utgivelser inkluderer støtte for bootstrapping for NixOS, muliggjør bootstrapping ved bruk av kun Scheme-komponenter i wip-bootstrap-grenen, støtte for ARM-arkitekturen, muligheten til å kompilere Mes.c ved hjelp av M2-Planet, full støtte for Guile-moduler og å få mescc til å fungere med Hurd-kjernen.
Kilde: opennet.ru
