Tras un año de desarrollo, se lanzó GNU Mes 0.23, un kit de herramientas que proporciona arranque para GCC y permite una compilación de bucle cerrado desde el código fuente. Este kit aborda el problema de las compilaciones iniciales verificadas del compilador en las distribuciones, rompiendo el ciclo de reconstrucción (las compilaciones del compilador requieren ejecutables de un compilador ya compilado, y las compilaciones binarias del compilador son una fuente potencial de puertas traseras ocultas, lo que impide garantizar por completo la integridad de las compilaciones desde el código 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 de lenguaje Scheme es bastante compacto, ocupando aproximadamente 5000 líneas de código en un subconjunto simple del lenguaje C. Puede convertirse en un archivo ejecutable mediante el traductor universal M2-Planet o un compilador de C simple creado con el ensamblador hex0 autoensamblable, que no requiere dependencias externas. El intérprete también incluye un completo recolector de elementos no utilizados y proporciona una biblioteca de módulos cargables.
La nueva versión añade compatibilidad con la arquitectura ARM (armhf-linux y aarch-linux). Se ha añadido compatibilidad con Mes con un conjunto reducido de archivos de arranque del proyecto GNU Guix (GNU Guix Reduced Binary Seed). Se ha implementado la compatibilidad con la compilación de Mes y la biblioteca C de Mes con GCC 10.x. El compilador de MesCC ahora incluye su propia biblioteca libmescc.a (-lmescc), y se especifica "-lgcc" al compilar con GCC. Se ha añadido compatibilidad con la compilación de MesCC con Guile 3.0.x.
Fuente: opennet.ru
