PĂ€rast rohkem kui aasta pikkust arendust on vĂ€lja antud GNU Mes 0.25 tööriistade kogum, mis vĂ”imaldab GCC jaoks bootstrapping'i protsessi ja saavutab iseseisva ringkonnaga ĂŒmberkompileerimise lĂ€htekoodidest. Tööriist lahendab verifitseeritud algse kompilaatori ĂŒlesannete kogumise probleem, katkestades ringse ĂŒmberkompileerimise ahelat (kompilaatori kogumiseks on juba kogutud kompilaatori tĂ€itefailid vajalikud, ja kompilaatori binaarsed kogumid on potentsiaalne varjatud tagavarade allikas, mis ei vĂ”imalda tĂ€ielikult tagada ehtsate lĂ€htekoodide kogude terviklikkust).
GNU Mes pakub isetÀiendavat Scheme'i tÔlgendajat, mis on kirjutatud C keeles, ja lihtsaimat C kompilaatorit (MesCC), mis on kirjutatud Scheme'is. MÔlemad komponendid vÔivad omavahel kokkupuudet teha. Scheme'i tÔlgendaja vÔimaldab koguda C kompilaatorit MesCC, mis omakorda vÔimaldab luua vÀhendatud versiooni TinyCC-st (tcc), mille vÔimalused on piisavad GCC-i kompileerimiseks.
Scheme'i keele tĂ”lgendi kood on vĂ€ga kompaktne, umbes 5000 rida koodi lihtsaimas C keele osade kogumikus ja seda saab muuta tĂ€idetavaks failiks M2-Planet universaalse tĂ”lkija abil vĂ”i lihtsa C kompilaatori kaudu, mis on koostatud iseeneslikust assemblerist hex0, mis ei nĂ”ua vĂ€liseid sĂ”ltuvusi. Lisaks sisaldab tĂ”lgendi tĂ€ielik prĂŒgikoguja ja pakub allalaetavaid mooduleid. Projekt arendab ka Mes C keele teeki, mis on piisav glibc 2.2.5, binutils 2.20.1 ja gcc 2.95.3 kompileerimiseks, mis on vajalik Guix'i levitamiseks platvormidele i686-linux, x86_64-linux, armhf-linux ja aarch64-linux, kasutades ainult algdokumente (Full Source Bootstrap).
Uues versioonis on rakendatud RISC-V arhitektuuri tugi (RISC-V64-linux) ja lisatud toimetamise toetamine M2-Planet transpileerijaga. Toetatakse kogumist M2-Planet versiooniga 1.11.0 sihtplatvormil x86_64-linux. ReĆŸiimi ââbootstrap-modeâ nĂ€itamine M2-Planet'i kasutamisel ei ole enam vajalik. MesCC-s on lahendatud ĂŒhilduvuse probleemid GCC versioonidega 10+, tagatud struktuuride vĂ€ljade initsialiseerimine vÀÀrtusega 0 ja taastatud vĂ”imalus tĂ”rkeotsinguks binaarfailides eraldi funktsioonide tasemel.
JĂ€rgmistes vĂ€ljaannetes oodatakse NixOS-i bootstrapping'i tuge ainult lĂ€htekoodidest, moodulite toetust, mis on tĂ€ielikult ĂŒhilduvad Guile'iga, Gash'i ja Gash-Utils'i kĂ€ivitamise vĂ”imalust, gcc 4.6.4 bootstrapping'i toetust ning samuti vĂ”imalust kogu sĂŒsteemi kogumiseks ainult lĂ€htekoodidest Linuxi keskkondades, mis pĂ”hinevad armhf ja riscv64 arhitektuuridel.
Allikas: opennet.ru
