Liberazione di GNU Mes 0.23, un toolkit per a creazione di distribuzione autonoma

Dopu un annu di sviluppu, u toolkit GNU Mes 0.23 hè statu liberatu, chì furnisce un prucessu di bootstrap per GCC è permette un ciclu chjusu di ricustruzzione da u codice fonte. U toolkit risolve u prublema di l'assemblea di compilatore iniziale verificatu in distribuzioni, rompendu a catena di ricustruzzione ciclica (a custruzzione di un compilatore richiede i fugliali eseguibili di un compilatore digià custruitu, è l'assemblee di compilatore binari sò una fonte potenziale di marcati nascosti, chì ùn permettenu micca di guarantiscia cumpletamente. l'integrità di l'assemblee da i codici fonte di riferimentu).

GNU Mes offre un interprete self-hosting per a lingua Scheme, scritta in lingua C, è un compilatore simplice per a lingua C (MesCC), scritta in lingua Scheme. I dui cumpunenti sò interassemblable. L'interprete Scheme permette di custruisce u compilatore MesCC C, chì poi permette di custruisce una versione spogliata di u compilatore TinyCC (tcc), e capacità di quale sò digià abbastanza per custruisce GCC.

L'interprete di lingua Scheme hè abbastanza compactu, occupa circa 5000 linee di codice in u subset più simplice di a lingua C è pò esse cunvertitu in un schedariu eseguibile cù u traduttore universale M2-Planet o un compilatore C simplice assemblatu cù l'hex0 auto-assemblatu. assembler, chì ùn hà micca bisognu di dipendenze esterne. À u listessu tempu, l'interprete include un cullettore di basura cumpletu è furnisce una biblioteca di moduli caricabili.

A nova versione include supportu per l'architettura ARM (armhf-linux è aarch-linux). Aggiunta l'abilità di utilizà Mes inseme cù un settore ridottu di file bootstrap da u prughjettu GNU Guix (GNU Guix Reduced Binary Seed). Supportu implementatu per custruisce Mes è a libreria Mes C cù GCC 10.x. U cumpilatore MesCC hà avà a so propria libreria libmescc.a (-lmescc), è quandu si custruisce cù GCC, "-lgcc" hè avà specificatu. Furnitu supportu per custruisce MesCC cù Guile 3.0.x.

Source: opennet.ru

Add a comment