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
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,
Mutex
,Condvar
, eRwLock
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
Box
backstage 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
Mutex
só 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.