Uscita di GNU Mes 0.22, lo strumento per la costruzione autonoma di distribuzioni

Presentato uscita dello strumento GNU Mes 0.22, che garantisce il processo di bootstrap per GCC e permette di ottenere un ciclo chiuso di ricompilazione a partire dai sorgenti.
Lo strumento risolve il problema della costruzione iniziale verificata del compilatore nelle distribuzioni, interrompendo la catena di ricompilazione ciclica (per costruire il compilatore sono necessari eseguibili già compilati, e le build binarie del compilatore possono essere una fonte potenziale di backdoor, il che non garantisce completamente l'integrità delle build dai sorgenti di riferimento).

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

L'interprete del linguaggio Scheme è sufficientemente compatto, occupa circa 5000 righe di codice nel più semplice sottoinsieme del linguaggio C e può essere convertito in un file eseguibile utilizzando un traduttore universale M2-Planet o un semplice compilatore C, costruito utilizzando un assemblatore autonomo hex0, che non richiede dipendenze esterne. Inoltre, l'interprete include un garbage collector completo e fornisce una libreria di moduli caricabili.

Nel nuovo rilascio è stato garantito il supporto per build ripetibili utilizzando combinazioni mes+mescc o guile+mescc nelle distribuzioni GNU Guix, Debian GNU/Linux e NixOS. È stata aggiunta la possibilità di avviare l'interprete Scheme Mes in GNU Hurd, ma il compilatore C mescc non funziona ancora a causa della mancanza di supporto per le chiamate di sistema necessarie (ad esempio, fork/exec). È stato aggiunto un supporto iniziale per la creazione di file eseguibili FreeBSD. È stato migliorato il supporto per il bootstrap della distribuzione Guix utilizzando solo componenti in Scheme (la shell Gash (Guile as Shell) al posto di bash e Gash Core Utils al posto di coreutils, grep, sed, gzip, make, awk e tar).

Nei prossimi rilasci è prevista l'introduzione del supporto per il bootstrapping per NixOS, l'attivazione del bootstrapping utilizzando solo componenti in linguaggio Scheme nella branch wip-bootstrap, supporto per l'architettura ARM, la possibilità di compilare Mes.c utilizzando M2-Planet, supporto completo per i moduli Guile e il funzionamento di mescc con il kernel Hurd.

Fonte: opennet.ru

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