UtgÄvan av verktyget GNU Mes 0.26 har publicerats, vilket möjliggör bootstrapping-processen för GCC och gör det möjligt att uppnÄ en sluten cykel av ombyggnad frÄn kÀllkoder. Verktyget löser problemet med verifierad initial byggnad av kompilatorn i distributioner, vilket bryter cykeln av cyklisk ombyggnad (för att bygga kompilatorn krÀvs körbara filer frÄn en redan byggd kompilator, och binÀra byggnader av kompilatorn kan vara en potentiell kÀlla till dolda bakdörrar, vilket inte helt kan garantera integriteten hos byggnader frÄn referenskÀllkoder).
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 moduler som Ă€r helt kompatibla med Guile lagts till och möjligheten att köra Gash och Gash-Utils har tillhandahĂ„llits. ĂvergĂ„ngen frĂ„n assert till anvĂ€ndning av undantag har genomförts. Stöd för reguljĂ€ra uttryck har lagts till. Nio nya moduler (ftw, i18n, receive, regex, io ports, bytevectors, srfi-2, srfi-11 och srfi-37) har implementerats. 46 nya funktioner har lagts till, inklusive chdir, clone-port, closedir, concatenate, drop, environ, execle, mkdir, opendir, partition, pipe, readdir, reduce, rmdir, seek, span, sleep, umask, uname och utimes. I kommande utgĂ„vor förvĂ€ntas stöd för bootstrapping av NixOS enbart frĂ„n kĂ€llkoder, möjligheten att bootstrappa gcc 4.6.4 samt stöd för fullstĂ€ndig byggnad av hela systemet frĂ„n kĂ€llkoder i Linux-miljöer baserade pĂ„ arkitekturerna armhf och riscv64.
KĂ€lla: opennet.ru
