Foi lançado o GNU Mes 0.27, que fornece um processo de bootstrap para o GCC e permite alcançar um ciclo fechado de recompilação a partir dos códigos-fonte. Esta ferramenta resolve a tarefa da construção inicial verificada do compilador em distribuições, rompendo a cadeia de recompilação cíclica (é necessário ter arquivos executáveis de um compilador já construído para compilar o novo compilador, e as compilações binárias de um compilador podem esconder backdoors, o que impede a garantia completa da integridade das compilações a partir dos códigos-fonte de referência).
O GNU Mes oferece um interpretador autocontido (self-hosting) para a linguagem Scheme, escrito em C, e um compilador simples para a linguagem C (MesCC), escrito em Scheme. Ambos os componentes são mutuamente compiláveis. O interpretador de Scheme permite a compilação do compilador C MesCC, que, por sua vez, permite compilar uma versão reduzida do compilador TinyCC (tcc), cujas funcionalidades já são suficientes para compilar o GCC.
O interpretador de Scheme é muito compacto, ocupando cerca de 5000 linhas de código em um subconjunto simples da linguagem C e pode ser convertido em um arquivo executável usando o tradutor universal M2-Planet ou um compilador C simples, que é compilado usando o montador autocontido hex0, que não requer dependências externas. O interpretador inclui um coletor de lixo completo e fornece uma biblioteca de módulos carregáveis. O projeto também desenvolve a biblioteca C Mes, que é suficiente para compilar o glibc 2.2.5, binutils 2.20.1 e gcc 2.95.3, necessários para o deployment do Guix nas plataformas i686-linux, x86_64-linux, armhf-linux e aarch64-linux, usando apenas os códigos-fonte (Bootstrap Completo).
Nesta nova versão, foi retomado o suporte para executar o Mes no ambiente GNU Hurd. Novos módulos foram adicionados: rnrs (aritmética bit a bit) e srfi (srfi-39). Para compatibilidade com o Guile, o módulo srfi é carregado por padrão. Novas funções foram adicionadas: pair-for-each e with-fluids*. O compilador MesCC agora suporta módulos para a geração de parsers e analisadores léxicos NYACC das versões 0.99.0 a 1.09.4. A possibilidade de usar módulos obsoletos no estilo mes para NYACC e MesCC foi removida.
Fonte: opennet.ru
