No GCC eles aprovaram a implementação do RUST (gccrs)

Recentemente, a notícia de que o Comitê Diretor do GCC aprovou a inclusão da implementação do gccrs (GCC Rust) do compilador Rust no núcleo GCC.

Com ele GCC (Coleção do compilador GNU) já tem um backend para Rust, através do projeto chamado rustc_codegen_gcc fundado por Antoni Boucher. Ainda é descrito como um trabalho em andamento, mas foi incorporado ao repositório principal do Rust em setembro de 2021.

Para quem não conhece o idioma Ferrugem, eles deveriam saber o que ée se concentra no gerenciamento seguro de memória e fornece os meios para alcançar alto paralelismo de trabalho. O manuseio seguro da memória, que exclui erros como acessar uma área de memória após liberá-la, desreferenciar ponteiros nulos e estouro de limites de buffer, é obtido em Rust em tempo de compilação através da verificação de referências, rastreamento de propriedade de objetos, contabilização do tempo de vida dos objetos (escopos ) e avaliar a correção do acesso à memória durante a execução do código.

Ferrugem também fornece proteção contra estouro de inteiro, requer que as variáveis ​​sejam inicializadas antes do uso, trata melhor os erros na biblioteca padrão, reforça o conceito de referências e variáveis ​​imutáveis ​​por padrão.

Depois de integrar a interface, no GCC padrão ele pode ser usado para compilar programas Rust sem a necessidade de instalar o compilador rustc construído com compilações LLVM.

Desde novembro de 2020, trabalho em tempo integral no front-end Rust para GCC, graças à Open Source Security, Inc e Embecosm. Como resultado, estou escrevendo para esta lista de discussão para buscar feedback da experiência coletiva aqui antecipadamente para planejar um caminho para o upload do front-end para o GCC.

A importância deste projeto é sua importância para o Linux, geralmente construído com GCC, onde os planos para permitir que Rust seja usado junto com C para código do kernel, por razões de segurança de memória, estão constantemente avançando.

Isso significa que o compilador Rust, rustc, pode ser usado com o backend GCC, O back-end é o gerador de código que suporta mais arquiteturas de CPU do que o LLVM, o compilador de back-end usual do Rust, embora existam limitações, como exigir uma versão corrigida do GCC.

A alternativa é ter uma cadeia de ferramentas GCC completa. Em janeiro de 2021, a Open Source Security, Inc, fabricante de uma versão reforçada do kernel Linux chamada Grsecurity, disse que financiaria um "esforço público de desenvolvimento" de uma interface GCC para Rust, alegando que melhorou a segurança. para misturar diferentes compiladores.

Do meu ponto de vista como líder neste front-end, estamos atualmente sob desenvolvimento pesado, então isso significa uma boa quantidade de código girando ainda, e não vejo isso mudando até que possamos compilar com sucesso a caixa libcore ainda este ano. Embora eu adoraria ver um ao outro fundido no GCC 13, quero ter certeza de que este projeto é um sucesso para tudo, e isso pode significar voltar para a próxima janela de lançamento para garantir que isso seja gerenciável para produzir um front-end de qualidade para sentar juntos Aos demais .

A empresa citou um artigo mostrando "como a segurança geral de um ambiente de tempo de execução pode ser reduzida pela introdução de código escrito em Rust ou outra linguagem em que o compilador não fornece a mesma segurança de nível binário".

Os desenvolvedores do gccrs são incentivados a começar a trabalhar com equipes de revisão e GCC Change Release para finalizar e aprovar patches em termos de atendimento aos requisitos técnicos para o código a ser adicionado ao GCC.

Supondo que o desenvolvimento do gccrs continue conforme planejado e nenhum problema imprevisto seja identificado, o front-end da linguagem Rust será integrado ao lançamento do GCC 13 programado para maio do próximo ano. A implementação do Rust no GCC 13 estará no status beta, ainda não habilitada por padrão.

Finalmente se você estiver interessado em saber mais sobre isso sobre o projeto, você pode consultar os detalhes em o seguinte link.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   qtrit dito

    Ótimo, espero que a implementação seja útil para muitos programadores.