Izdanje GNU Mes 0.22, alata za izgradnju samostalne distribucije

Predstavljeno oslobađanje alata GNU Mes 0.22, koji omogućuje proces samoizgradnje (bootstrapping) za GCC i ponovnu izgradnju u zatvorenoj petlji iz izvornog koda.
Alat rješava problem provjerenih početnih kompajlerskih verzija u distribucijama, prekidajući lanac cikličkih ponovnih izgradnja (izgradnja kompajlera zahtijeva izvršne datoteke već izgrađenog kompajlera, a binarne kompajlerske verzije su potencijalni izvor skrivenih stražnjih vrata, što nam ne dopušta da u potpunosti jamčimo integritet verzija iz referentnih izvornih tekstova).

U GNU Mesu ponudio Samostalni interpreter za Scheme jezik, napisan u C-u, i jednostavni C kompajler (MesCC), napisan u Schemeu. Obje komponente su međusobno povezane. Scheme interpreter omogućuje izgradnju MesCC C kompajlera, koji zatim omogućuje izgradnju pojednostavljene verzije kompajlera. TinyCC (tcc), čije su mogućnosti već dovoljne za izgradnju GCC-a.

Interpreter jezika Scheme je prilično kompaktan, zauzima oko 5000 linija koda u najjednostavnijem podskupu jezika C, i može se pretvoriti u izvršnu datoteku pomoću univerzalnog prevoditelja. M2-Planet ili najjednostavniji C kompajler kompiliran pomoću samoasemblera hex0, što ne zahtijeva vanjske ovisnosti. Interpreter uključuje potpuni sakupljač smeća i pruža biblioteku modula koji se mogu učitati.

Novo izdanje pruža podršku za ponovljive izgradnje pomoću paketa mes+mescc ili guile+mescc u GNU Guix distribucijama, Debian GNU/Linux i NixOS. Dodana je podrška za pokretanje Mes Scheme interpretera u GNU Hurdu, ali mescc C kompajler još ne radi zbog nedostatka podrške za potrebne sistemske pozive (npr. fork/exec). Dodana je početna podrška za stvaranje izvršnih datoteka FreeBSD-a. Poboljšana je podrška za pokretanje Guix distribucije korištenjem samo Scheme-jezičnih komponenti (Gash naredbena ljuska (Guile kao Shell) umjesto bash i Gash Core Utils umjesto coreutils, grep, sed, gzip, make, awk i tar).

Buduća izdanja uključuju podršku za bootstrapping za NixOS, omogućavanje bootstrappinga korištenjem samo Scheme komponenti u grani wip-bootstrap, podršku za ARM arhitekturu, mogućnost kompajliranja Mes.c pomoću M2-Planeta, punu podršku za Guile module i omogućavanje rada mescc-a s Hurd kernelom.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster