Lançamento do GNU Mes 0.25, um kit de ferramentas para construção de distribuição independente

Após um ano e meio de desenvolvimento, o kit de ferramentas GNU Mes 0.25 foi lançado, fornecendo um processo de inicialização para o GCC e permitindo um ciclo fechado de reconstrução a partir do código-fonte. O kit de ferramentas resolve o problema de montagem inicial verificada do compilador em distribuições, quebrando a cadeia de reconstrução cíclica (construir um compilador requer arquivos executáveis ​​​​de um compilador já construído, e montagens de compilador binário são uma fonte potencial de marcadores ocultos, o que não permite garantir totalmente a integridade dos assemblies dos códigos-fonte de referência).

GNU Mes oferece um intérprete auto-hospedado para a linguagem Scheme, escrito na linguagem C, e um compilador simples para a linguagem C (MesCC), escrito na linguagem Scheme. Ambos os componentes são intermontáveis. O interpretador Scheme torna possível construir o compilador MesCC C, que então permite construir uma versão simplificada do compilador TinyCC (tcc), cujos recursos já são suficientes para construir o GCC.

O interpretador da linguagem Scheme é muito compacto, ocupa cerca de 5000 linhas de código no subconjunto mais simples da linguagem C e pode ser convertido em um arquivo executável usando o tradutor universal M2-Planet ou um compilador C simples compilado usando um montador hex0 automontável que não requer dependências externas. Ao mesmo tempo, o intérprete inclui um coletor de lixo completo e fornece uma biblioteca de módulos carregáveis. O projeto também desenvolve a biblioteca Mes CC, suficiente para construir glibc 2.2.5, binutils 2.20.1 e gcc 2.95.3, necessária para implantar a distribuição Guix para i686-linux, x86_64-linux, armhf-linux e aarch64 -plataformas linux, usando apenas códigos fonte (Full Source Bootstrap).

A nova versão introduz suporte para a arquitetura RISC-V (RISC-V64-linux) e adiciona suporte para compilação usando o transpiler M2-Planet. Montagem suportada com versão M2-Planet 1.11.0 para a plataforma de destino x86_64-linux. A especificação de "--bootstrap-mode" ao usar o M2-Planet não é mais necessária. MesCC resolve problemas de compatibilidade com versões do GCC 10+, garante que os campos da estrutura sejam inicializados em 0 e restaura a capacidade de depurar arquivos binários no nível de funções individuais.

Em versões futuras, esperamos ver suporte para inicialização do NixOS apenas a partir do código-fonte, suporte para módulos totalmente compatíveis com Guile, capacidade de executar Gash e Gash-Utils, suporte para inicialização do gcc 4.6.4, bem como a capacidade de construir totalmente todo o sistema a partir da fonte em ambientes Linux baseados nas arquiteturas armhf e riscv64.

Fonte: opennet.ru

Adicionar um comentário