Vydanie GNU Mes 0.25, nástroja na samostatné zostavovanie distribúcií.

Po jednom a pol roku vývoja bol vydaný nástroj GNU Mes 0.25, ktorý zabezpečuje proces bootstrappingu pre GCC a umožňuje dosiahnuť uzavretý cyklus prekompilácie z pôvodných textov. Nástroj rieši úlohu overenej počiatočnej kompilácie prekompilátora v distribúciách, čím preruší reťazec cyklickej prekompilácie (prekompilátor si vyžaduje spustiteľné súbory už zostaveného prekompilátora, a binárne zostavy prekompilátora môžu byť potenciálnym zdrojom skrytých zadných vrátok, čo neumožňuje úplne zaručiť celistvosť zostáv z referenčných pôvodných textov).

V GNU Mes je navrhnutý samostatný interpret pre jazyk Scheme, napísaný v jazyku C, a najjednoduchší kompilátor pre jazyk C (MesCC), napísaný v jazyku Scheme. Obe komponenty sú vzájomne zostaviteľné. Interpret Scheme umožňuje zostaviť C-kompilátor MesCC, ktorý potom umožňuje zostaviť obmedzenú verziu kompilátora TinyCC (tcc), ktorého schopnosti sú už dostatočné na zostavenie GCC.

Interpret jazyka Scheme je veľmi kompaktný a zaberá približne 5000 riadkov kódu v najjednoduchšom podmnožine jazyka C, pričom môže byť pretransformovaný na spustiteľný súbor pomocou univerzálneho prekladača M2-Planet alebo najjednoduchšieho C-kompilátora zostaveného pomocou samoukúceho assembleru hex0, ktorý nevyžaduje vonkajšie závislosti. Tento interpreter obsahuje plnohodnotný garbage collector a poskytuje knižnicu načítateľných modulov. Projekt tiež vyvíja C-knižnicu Mes C, ktorá je dostatočná na zostavenie glibc 2.2.5, binutils 2.20.1 a gcc 2.95.3, ktoré sú potrebné na nasadenie distribúcie Guix pre platformy i686-linux, x86_64-linux, armhf-linux a aarch64-linux, použijúc len zdrojové texty (Full Source Bootstrap).

V novom vydaní bola implementovaná podpora architektúry RISC-V (RISC-V64-linux) a pridaná podpora kompilácie pomocou transpilera M2-Planet. Podporuje sa zostavovanie s verziou M2-Planet 1.11.0 pre cieľovú platformu x86_64-linux. Uvedenie režimu „—bootstrap-mode“ pri používaní M2-Planet už nie je potrebné. V MesCC boli vyriešené problémy s kompatibilitou s verziami GCC 10+, bola zabezpečená inicializácia polí štruktúr na hodnotu 0 a bola obnovená možnosť ladenia binárnych súborov na úrovni jednotlivých funkcií.

V nasledujúcich vydaniach sa očakáva podpora bootstrappingu NixOS výhradne z pôvodných textov, podpora modulov plne kompatibilných s Guile, možnosť spúšťania Gash a Gash-Utils, podpora bootstrappingu gcc 4.6.4, ako aj možnosť úplnej zostavy celej systému z pôvodných textov v prostrediach Linux založených na architektúrach armhf a riscv64.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster