Rilascio di GNU Mes 0.23, un toolkit per la creazione di distribuzioni autonome

Dopo un anno di sviluppo, è stato rilasciato il toolkit GNU Mes 0.23, che fornisce un processo di bootstrap per GCC e consente un ciclo chiuso di ricostruzione dal codice sorgente. Il toolkit risolve il problema dell'assemblaggio iniziale verificato del compilatore nelle distribuzioni, interrompendo la catena di ricostruzione ciclica (la creazione di un compilatore richiede file eseguibili di un compilatore già creato e gli assemblaggi binari del compilatore sono una potenziale fonte di segnalibri nascosti, che non consente di garantire pienamente l'integrità degli assemblaggi dai codici sorgente di riferimento).

GNU Mes offre un interprete self-hosting per il linguaggio Scheme, scritto in linguaggio C, e un semplice compilatore per il linguaggio C (MesCC), scritto in linguaggio Scheme. Entrambi i componenti sono interassemblabili. L'interprete Scheme rende possibile costruire il compilatore MesCC C, che poi permette di costruire una versione ridotta del compilatore TinyCC (tcc), le cui capacità sono già sufficienti per costruire GCC.

L'interprete del linguaggio Scheme è abbastanza compatto, occupa circa 5000 righe di codice nel sottoinsieme più semplice del linguaggio C e può essere convertito in un file eseguibile utilizzando il traduttore universale M2-Planet o un semplice compilatore C assemblato utilizzando l'hex0 autoassemblato assembler, che non richiede dipendenze esterne. Allo stesso tempo, l'interprete include un vero e proprio garbage collector e fornisce una libreria di moduli caricabili.

La nuova versione include il supporto per l'architettura ARM (armhf-linux e aarch-linux). Aggiunta la possibilità di utilizzare Mes insieme a un set ridotto di file bootstrap dal progetto GNU Guix (GNU Guix Reduced Binary Seed). Implementato il supporto per la creazione di Mes e della libreria Mes C utilizzando GCC 10.x. Il compilatore MesCC ora fornisce la propria libreria libmescc.a (-lmescc) e quando si compila con GCC, ora viene specificato "-lgcc". Fornito supporto per la creazione di MesCC con Guile 3.0.x.

Fonte: opennet.ru

Aggiungi un commento