Lançamento do GNU Mes 0.25, uma ferramenta para construção autossuficiente de distribuições.

Após um ano e meio de desenvolvimento, foi lançado o conjunto de ferramentas GNU Mes 0.25, que possibilita o processo de bootstrapping para o GCC e permite alcançar um ciclo de recompilação fechado a partir de textos fonte. Este conjunto de ferramentas resolve o problema da construção inicial verificada do compilador em distribuições, rompendo a cadeia de recompilação cíclica (para a construção do compilador, são necessários arquivos executáveis de um compilador já compilado, e as compilações binárias do compilador podem ser fontes potenciais de backdoors ocultos, o que não garante totalmente a integridade das compilações a partir de textos 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).

A nova versão implementa suporte à arquitetura RISC-V (RISC-V64-linux) e adiciona suporte para compilação usando o transpiler M2-Planet. A compilação com a versão M2-Planet 1.11.0 para a plataforma alvo x86_64-linux é suportada. A especificação do modo ‘—bootstrap-mode’ ao usar o M2-Planet não é mais necessária. O MesCC resolve problemas de compatibilidade com versões do GCC 10+, garante a inicialização de campos de estruturas com valor 0 e restabelece a capacidade de depuração de arquivos binários ao nível de funções individuais.

Versões futuras devem trazer suporte ao bootstrapping do NixOS apenas a partir de textos fonte, suporte a módulos totalmente compatíveis com Guile, capacidade de execução do Gash e Gash-Utils, suporte ao bootstrapping do gcc 4.6.4, além da possibilidade de uma compilação completa de todo o sistema a partir de textos fonte em ambientes Linux baseados nas arquiteturas armhf e riscv64.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster