Ferrugem 1.36

A equipe de desenvolvimento está animada em apresentar o Rust 1.36!

O que há de novo no Rust 1.36?
Traço futuro estabilizado, do novo: alloc crate, MaybeUninit , NLL para ferrugem 2015, uma nova implementação do HashMap e uma nova bandeira -offline para Cargo.


E agora mais:

  • Finalmente em Rust 1.36 estabilizado traço Futuro.
  • Alocação de caixa.
    A partir do Rust 1.36, partes do std que dependem do alocador global (como Vec ), estão na caixa de alocação. Agora o std irá reexportar essas peças. Mais sobre isso.
  • TalvezUnidade em vez de mem::não inicializado.
    Nas versões anteriores, mem::uninitialized permitia ignorar a verificação de inicialização, era usado para alocação lenta de array, mas esta função é bastante perigosa (mais), então o tipo MaybeUninit foi estabilizado , o que é mais seguro.
    Bem, já que MaybeUninit é uma alternativa mais segura, então, a partir do Rust 1.38, mem::uninitialized será um recurso obsoleto.
    Se quiser saber mais sobre memória não inicializada, você pode ler esta postagem no blog de Alexis Beingessner.
  • NLL para ferrugem 2015.
    No anúncio Ferrugem 1.31.0 Os desenvolvedores nos falaram sobre o NLL (Non-Lexical Lifetime), uma melhoria na linguagem que torna o verificador de empréstimos mais inteligente e fácil de usar. Exemplo:
    fn principal() {
    seja mut x = 5;
    seja y = &x;
    seja z = &mut x; // Isso não era permitido antes de 1.31.0.
    }

    Na versão 1.31.0, o NLL funcionou apenas no Rust 2018, com a promessa de que os desenvolvedores adicionarão suporte no Rust 2015.
    Se você quiser saber mais sobre NLL, você pode ler mais neste entradas de blog (Félix Klocks).

  • A nova bandeira para Cargo é —offline.
    Rust 1.36 estabilizou uma nova bandeira para Cargo. O sinalizador --offline diz ao Cargo para usar dependências armazenadas em cache localmente para que possam ser usadas offline posteriormente. Quando as dependências necessárias não estiverem disponíveis offline e se a Internet ainda for necessária, o Cargo retornará um erro. Para fazer o pré-download das dependências, você pode usar o comando cargo fetch, que fará o download de todas as dependências.
  • é você pode ler uma visão geral mais detalhada das mudanças.

Também há alterações na biblioteca padrão:

Outras mudanças Ferrugem, Carga и Clippy.

Fonte: linux.org.ru

Adicionar um comentário