Uscita di GNU Mes 0.22, un toolkit per la costruzione autonoma di distribuzioni.

Presentato rilascio degli strumenti GNU Mes 0.22, che fornisce il processo di bootstrapping per GCC e consente di ottenere un ciclo di ricompilazione chiuso dai codici sorgente.
Questo strumento affronta il problema della costruzione iniziale verificata del compilatore nelle distribuzioni, interrompendo la catena di ricompilazione ciclica (per costruire un compilatore sono necessari file eseguibili già compilati, e le build binarie dei compilatori possono essere una fonte potenziale di backdoor, il che non garantisce completamente l'integrità delle build dai codici sorgente di riferimento).

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

L'interprete del linguaggio Scheme è piuttosto compatto, occupa circa 5000 righe di codice nella più semplice sotto-linguaggio del C ed è in grado di essere convertito in un file eseguibile utilizzando un compilatore universale. M2-Planet o un semplice compilatore C, costruito con un assemblatore auto-costruente hex0, senza necessitare di dipendenze esterne. In questo modo, l'interprete include un completo garbage collector e fornisce una libreria di moduli caricabili.

Nella nuova versione è stata aggiunta la supporto per build ripetibili utilizzando le combinazioni mes+mescc o guile+mescc nelle distribuzioni GNU Guix, Debian GNU/Linux e NixOS. È stata introdotta la possibilità di eseguire l'interprete Scheme Mes su GNU Hurd, anche se il compilatore C mescc non funziona ancora a causa della mancanza di supporto per le necessarie chiamate di sistema (ad esempio, fork/exec). È stata aggiunta una iniziale supporto per la creazione di file eseguibili su FreeBSD. È stata migliorata la supporto per il bootstrapping della distribuzione Guix utilizzando esclusivamente componenti nel linguaggio Scheme (la shell Gash (Guile as Shell) anziché bash e Gash Core Utils anziché coreutils, grep, sed, gzip, make, awk e tar).

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

Fonte: opennet.ru

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