Lanzamiento de GNU Mes 0.23, un conjunto de herramientas para la creación de distribuciones autónomas

Después de un año de desarrollo, se lanzó el kit de herramientas GNU Mes 0.23, que proporciona un proceso de arranque para GCC y permite un ciclo cerrado de reconstrucción a partir del código fuente. El conjunto de herramientas resuelve el problema del ensamblaje del compilador inicial verificado en las distribuciones, rompiendo la cadena de reconstrucción cíclica (para construir un compilador se necesitan archivos ejecutables de un compilador ya creado, y los ensamblajes del compilador binario son una fuente potencial de marcadores ocultos, lo que no permite garantizar completamente la integridad de los ensamblajes a partir de códigos fuente de referencia).

GNU Mes ofrece un intérprete autohospedado para el lenguaje Scheme, escrito en lenguaje C, y un compilador simple para el lenguaje C (MesCC), escrito en lenguaje Scheme. Ambos componentes son interensamblables. El intérprete Scheme permite construir el compilador MesCC C, que luego le permite construir una versión simplificada del compilador TinyCC (tcc), cuyas capacidades ya son suficientes para construir 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 se puede convertir en un archivo ejecutable usando el traductor universal M2-Planet o un compilador de C simple ensamblado usando el hex0 autoensamblado. ensamblador, que no requiere dependencias externas. Al mismo tiempo, el intérprete incluye un recolector de basura completo y proporciona una biblioteca de módulos cargables.

La nueva versión incluye soporte para la arquitectura ARM (armhf-linux y aarch-linux). Se agregó la capacidad de usar Mes junto con un conjunto reducido de archivos de arranque del proyecto GNU Guix (GNU Guix Reduced Binary Seed). Se implementó soporte para construir Mes y la biblioteca Mes C usando GCC 10.x. El compilador MesCC ahora incluye su propia biblioteca libmescc.a (-lmescc), y cuando se compila con GCC, ahora se especifica "-lgcc". Se brindó soporte para construir MesCC con Guile 3.0.x.

Fuente: opennet.ru

Añadir un comentario