Efter ett och ett halvt Ärs utveckling har GNU Mes 0.25 slÀppts, ett verktyg som möjliggör bootstrap-processen för GCC och gör det möjligt att uppnÄ en sluten omkompilering frÄn kÀllkod. Verktyget löser problemet med verifierad initial kompilering av kompilatorn i distributioner, vilket bryter cykeln av omkompilering (för att bygga kompilatorn krÀvs körbara filer frÄn en redan kompilerad kompilator, och binÀra kompilatorbyggen Àr potentiella kÀllor till dolda bakdörrar, vilket hindrar oss frÄn att helt garantera integriteten av byggena frÄn referenskÀllorna).
GNU Mes erbjuder en sjÀlvhostad tolk för sprÄket Scheme, skriven i C, samt en enklare kompilator för C (MesCC) som Àr skriven i Scheme. BÄda komponenterna kan kompilera varandra. Scheme-tolken gör det möjligt att kompilera C-kompilatorn MesCC, som i sin tur kan bygga en nedskuren version av kompilatorn TinyCC (tcc), vars funktionalitet Àr tillrÀcklig för kompilering av GCC.
Scheme-tolken Àr mycket kompakt, bestÄr av cirka 5000 rader kod i en enkel delmÀngd av C och kan omvandlas till en körbar fil med hjÀlp av den universella översÀttaren M2-Planet eller en grundlÀggande C-kompilator, som Àr byggd med den sjÀlvkompilerande assemblatorn hex0 och inte krÀver externa beroenden. Tolken inkluderar dessutom en fullstÀndig skrÀpsamlare och tillhandahÄller ett bibliotek med laddningsbara moduler. Projektet utvecklar ocksÄ C-biblioteket Mes C, som Àr tillrÀckligt för att bygga glibc 2.2.5, binutils 2.20.1 och gcc 2.95.3, som behövs för att distribuera Guix för plattformarna i686-linux, x86_64-linux, armhf-linux och aarch64-linux, med enbart kÀllkoden (Full Source Bootstrap).
I den nya utgĂ„van har stöd för RISC-V-arkitekturen (RISC-V64-linux) implementerats och stöd för kompilering med transpiler M2-Planet har lagts till. Byggnad stöds med version M2-Planet 1.11.0 för mĂ„lenheten x86_64-linux. Att ange lĂ€get 'âbootstrap-mode' nĂ€r man anvĂ€nder M2-Planet krĂ€vs inte lĂ€ngre. I MesCC har kompatibilitetsproblem med GCC-versioner 10+ Ă„tgĂ€rdats, initialisering av strukturfĂ€lt till vĂ€rdet 0 har sĂ€kerstĂ€llts och möjligheten att debugga binĂ€ra filer pĂ„ nivĂ„ med individuella funktioner har Ă„terstĂ€llts.
I kommande versioner förvÀntas stöd för bootstrap av NixOS enbart frÄn kÀllkod, stöd för moduler som Àr helt kompatibla med Guile, möjlighet att köra Gash och Gash-Utils, stöd för bootstrap av gcc 4.6.4, samt möjlighet till fullstÀndig byggnation av hela systemet frÄn kÀllkod i Linux-miljöer baserade pÄ armhf och riscv64-arkitekturer.
KĂ€lla: opennet.ru
