Vydání GNU Mes 0.25, sady nástrojů pro samostatnou distribuci

Po roce a půl vývoje byla vydána sada nástrojů GNU Mes 0.25, která poskytuje proces bootstrap pro GCC a umožňuje uzavřený cyklus přestavby ze zdrojového kódu. Sada nástrojů řeší problém ověřeného počátečního sestavení kompilátoru v distribucích, přeruší řetězec cyklického přestavování (sestavení kompilátoru vyžaduje spustitelné soubory již postaveného kompilátoru a binární kompilátorová sestavení jsou potenciálním zdrojem skrytých záložek, což neumožňuje plně zaručit integrita sestav z referenčních zdrojových kódů).

GNU Mes nabízí samohostitelský interpret pro jazyk Scheme napsaný v jazyce C a jednoduchý kompilátor pro jazyk C (MesCC) napsaný v jazyce Scheme. Oba komponenty jsou vzájemně smontovatelné. Interpret schématu umožňuje sestavit kompilátor MesCC C, který pak umožňuje sestavit ořezanou verzi kompilátoru TinyCC (tcc), jehož schopnosti jsou již dostatečné pro sestavení GCC.

Interpret jazyka Scheme je velmi kompaktní, zabere asi 5000 řádků kódu v nejjednodušší podmnožině jazyka C a lze jej převést do spustitelného souboru pomocí univerzálního překladače M2-Planet nebo jednoduchého kompilátoru C zkompilovaného pomocí samoskládacího hex0 assembleru. který nevyžaduje externí závislosti. Interpret zároveň obsahuje plnohodnotný garbage collector a poskytuje knihovnu načítatelných modulů. Projekt také vyvíjí knihovnu Mes C C, která je dostatečná pro sestavení glibc 2.2.5, binutils 2.20.1 a gcc 2.95.3, nezbytné pro nasazení distribuce Guix pro i686-linux, x86_64-linux, armhf-linux a aarch64 -linuxové platformy, používající pouze zdrojové kódy (Full Source Bootstrap).

Nová verze zavádí podporu pro architekturu RISC-V (RISC-V64-linux) a přidává podporu pro kompilaci pomocí transpileru M2-Planet. Podporované sestavení s verzí M2-Planet 1.11.0 pro cílovou platformu x86_64-linux. Zadání "--bootstrap-mode" při použití M2-Planet již není vyžadováno. MesCC řeší problémy s kompatibilitou s verzemi GCC 10+, zajišťuje inicializaci polí struktury na 0 a obnovuje možnost ladění binárních souborů na úrovni jednotlivých funkcí.

V budoucích verzích očekáváme, že uvidíme podporu pro bootstrapping NixOS pouze ze zdroje, podporu pro moduly, které jsou plně kompatibilní s Guile, možnost spouštět Gash a Gash-Utils, podporu pro bootstrapping gcc 4.6.4, stejně jako možnost plně postavit celý systém ze zdroje v prostředí Linuxu založeném na architekturách armhf a riscv64.

Zdroj: opennet.ru

Přidat komentář