Lanzamiento de GNU Mes 0.22, una herramienta para la construcción autónoma de distribuciones

Presentado lanzamiento de herramientas GNU Mes 0.22, que proporciona el proceso de arranque (bootstrap) para GCC y permite lograr un ciclo de recompilación cerrado a partir de fuentes originales.
El conjunto de herramientas aborda la tarea de una construcción inicial verificada del compilador en las distribuciones, rompiendo la cadena de recompilación cíclica (para compilar el compilador se requieren ejecutables de un compilador ya construido, y las compilaciones binarias del compilador son una fuente potencial de puertas traseras ocultas, lo que no garantiza completamente la integridad de las compilaciones a partir de fuentes de referencia).

En GNU Mes se sugiere un intérprete autosuficiente (self-hosting) para el lenguaje Scheme, escrito en C, y un compilador básico para el lenguaje C (MesCC), escrito en Scheme. Ambos componentes son auto-construibles. El intérprete Scheme permite construir el compilador C MesCC, que a su vez permite construir una versión reducida del compilador TinyCC (tcc), cuya funcionalidad ya es suficiente para compilar GCC.

El intérprete del lenguaje Scheme es bastante compacto, ocupa alrededor de 5000 líneas de código en el subconjunto más simple del lenguaje C y puede transformarse en un archivo ejecutable utilizando un compilador C universal M2-Planet o un compilador C simple construido con un ensamblador autorreferencial hex0, que no requiere dependencias externas. Además, el intérprete incluye un recolector de basura completo y proporciona una biblioteca de módulos cargables.

La nueva versión garantiza soporte para compilaciones repetibles utilizando combinaciones mes+mescc o guile+mescc en las distribuciones GNU Guix, Debian GNU/Linux y NixOS. Se ha añadido la posibilidad de ejecutar el intérprete Scheme Mes en GNU Hurd, aunque el compilador C mescc aún no funciona debido a la falta de soporte para llamadas al sistema necesarias (por ejemplo, fork/exec). Se ha añadido soporte inicial para crear archivos ejecutables en FreeBSD. Se ha mejorado el soporte para el arranque de la distribución Guix utilizando solo componentes en el lenguaje Scheme (la shell Gash (Guile as Shell) en lugar de bash y Gash Core Utils en lugar de coreutils, grep, sed, gzip, make, awk y tar).

En próximas versiones se espera soportar el arranque para NixOS, incluir el arranque utilizando solo componentes en el lenguaje Scheme en la rama wip-bootstrap, soporte para la arquitectura ARM, la posibilidad de compilar Mes.c utilizando M2-Planet, soporte completo para módulos Guile, y asegurar que mescc funcione con el núcleo Hurd.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster