Rilascio di GNU Mes 0.27, un toolkit per la compilazione autonoma di distribuzioni.

È stato pubblicato il rilascio dello strumento GNU Mes 0.27, che fornisce il processo di bootstrap per GCC e consente di ottenere un ciclo di ricompilazione chiuso a partire dai codici sorgente. Lo strumento affronta il problema della creazione iniziale verificabile del compilatore nelle distribuzioni, interompendo il ciclo di ricompilazione (per costruire il compilatore sono necessari file eseguibili di un compilatore già compilato, e le versioni binarie del compilatore possono rappresentare fonti potenziali di backdoor, il che non consente di garantire completamente l'integrità delle build a partire dai codici sorgente ufficiali).

In GNU Mes è presente un interprete autonomo (self-hosting) per il linguaggio Scheme, scritto in C, e un compilatore di base per il linguaggio C (MesCC), scritto in Scheme. Entrambi i componenti sono incapsulabili. L'interprete Scheme consente di costruire il compilatore C MesCC, che a sua volta permette di compilare una versione ridotta del compilatore TinyCC (tcc), le cui capacità sono già sufficienti per compilare GCC.

L'interprete del linguaggio Scheme è molto compatto, occupa circa 5000 righe di codice nel più semplice sottoinsieme del linguaggio C e può essere trasformato in un file eseguibile utilizzando il traduttore universale M2-Planet o un semplice compilatore C costruito con l'assembler auto-compilante hex0, che non richiede dipendenze esterne. Inoltre, l'interprete include un completo garbage collector e fornisce una libreria di moduli caricabili. Il progetto sviluppa anche la libreria C Mes, che è sufficiente per compilare glibc 2.2.5, binutils 2.20.1 e gcc 2.95.3, necessari per il deployment della distribuzione Guix su piattaforme i686-linux, x86_64-linux, armhf-linux e aarch64-linux, utilizzando solo i codici sorgente (Full Source Bootstrap).

Nel nuovo rilascio è stata ripristinata la compatibilità per eseguire Mes nell'ambiente GNU Hurd. Sono stati aggiunti nuovi moduli: rnrs (aritmetica bitwise) e srfi (srfi-39). Per la compatibilità con Guile, il modulo srfi viene caricato per impostazione predefinita. Sono state aggiunte nuove funzioni: pair-for-each e with-fluids*. Nel compilatore MesCC è stata implementata la possibilità di lavorare con moduli per generare parser e analizzatori lessicali NYACC dalle versioni 0.99.0 a 1.09.4. È stata rimossa la possibilità di utilizzare moduli obsoleti in stile mes per NYACC e MesCC.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster