Rust 1.62 traz novidades para Linux

Thunderbird adota código Rust
Rust Foundation lança programa Rust Community Grants

A linguagem de programação Rust 1.62 foi lançada como a atualização mais recente para sistemas com algumas mudanças notáveis. Primeiro, o destino x86_64-unknown-none do Rust foi promovido ao status de nível dois, que é seu estado “garantido para construir”. Portanto, a linguagem de programação Rust 1.62 traz novidades para Linux.

O alvo x86_64-unknown-none do Rust é para gerar binários ELF independentes/bare-metal x86_64 para firmware, kernels e outros softwares de baixo nível. Este destino de compilação cruzada não possui suporte à biblioteca padrão Rust, nenhum alocador padrão, não usa nenhum registro vetorial ou FP, mas deve funcionar para programas x86_64 bare metal.

Rust 1.62 traz novidades para Linux

Rust 1.62 traz novidades para Linux
Rust 1.62 traz novidades para Linux.

Também notável com o Rust 1.62 é a biblioteca padrão Rust no Linux, agora enviando uma implementação bruta baseada em Futex. O comportamento Mutex/Condvar/RwLock Rust foi implementado usando a biblioteca pthreads enquanto agora para Linux são implementações brutas baseadas em Futex para essas primitivas de bloqueio, então elas são mais leves, não requerem alocações extras e basicamente equivalem a ser “mais finas e mais rápido” do que as implementações anteriores.

A equipe Rust tem o prazer de anunciar uma nova versão do Rust, 1.62.0. Rust é uma linguagem de programação que permite a todos construir software confiável e eficiente.

Se você tiver uma versão anterior do Rust instalada via rustup, poderá obter a 1.62.0 com:

rustup update stable

O Rust 1.62 também estabiliza uma série de novas APIs, introduz o comando cargo add para adicionar dependências diretamente da linha de comando e outras melhorias. Downloads e mais detalhes sobre Rust 1.62 via Rust-Lang.org.

Outros detalhes do anúncio

Anteriormente, MutexCondvar, e RwLock eram suportados pela biblioteca pthreads no Linux. Os bloqueios pthreads suportam mais recursos do que as próprias APIs Rust, incluindo configuração de tempo de execução, e são projetados para serem usados ??em linguagens com menos garantias estáticas do que as fornecidas pelo Rust.

A implementação mutex, por exemplo, tem 40 bytes e não pode ser movida. Isso forçou a biblioteca padrão a alocar um Boxbackstage para cada novo mutex para plataformas que usam pthreads.

A biblioteca padrão do Rust agora vem com uma implementação bruta baseada em futex desses bloqueios no Linux, que é muito leve e não requer alocação extra. Na versão 1.62.0 Mutexsó precisa de 5 bytes para seu estado interno no Linux, embora isso possa mudar em versões futuras.

Isso faz parte de um longo esforço para melhorar a eficiência dos tipos de bloqueio do Rust, que inclui melhorias anteriores no Windows, como unboxing de seus primitivos. Você pode ler mais sobre esse esforço no problema de rastreamento.