Rust 1.36

A equipe de desenvolvedores tem o prazer de apresentar a você o Rust 1.36!

O que há de novo no Rust 1.36?
O trait Future foi estabilizado, dentre as novidades: o crate alloc, MaybeUninit, NLL para Rust 2015, uma nova implementação de HashMap e um novo flag —offline para o Cargo.


E agora, mais detalhes:

  • No Rust 1.36, finalmente foi estabilizado o trait Future.
  • O crate alloc.
    A partir do Rust 1.36, partes da std que dependem do alocador global (por exemplo, Vec) estão no crate alloc. Agora, a std reexporta essas partes. Mais sobre isso.
  • MaybeUninit em vez de mem::uninitialized.
    Nas versões anteriores, mem::uninitialized permitia que você contornasse a verificação de inicialização, usada para alocação preguiçosa de arrays, mas essa função é bastante perigosa (mais detalhes), por isso foi estabilizado o tipo MaybeUninit, que é mais seguro.
    E assim, como MaybeUninit é uma alternativa mais segura, a partir do Rust 1.38, mem::uninitialized será uma função obsoleta.
    Se você quiser saber mais sobre memória não inicializada, pode ler a postagem no blog (Alexis Beingessner).
  • NLL para Rust 2015.
    No anúncio Rust 1.31.0 os desenvolvedores nos contaram sobre NLL (Non-Lexical Lifetime), uma melhoria para a linguagem que torna o borrow checker mais inteligente e amigável ao usuário. Exemplo:
    fn main() {
    let mut x = 5;
    let y = &x;
    let z = &mut x; // Isso não era permitido antes do 1.31.0.
    }

    No 1.31.0, NLL funcionava apenas no Rust 2018, prometendo que os desenvolvedores adicionariam suporte também no Rust 2015.
    Se você quiser saber mais sobre NLL, pode ler mais nesta postagem no blog (Felix Klocks).

  • Novo flag para o Cargo —offline.
    No Rust 1.36, foi estabilizado um novo flag para o Cargo. O flag —offline informa ao Cargo usar dependências em cache localmente, para que possam ser utilizadas posteriormente sem internet. Quando as dependências necessárias não estão disponíveis offline, e se a internet for necessária, o Cargo retornará um erro. Para pré-baixar as dependências, você pode usar o comando cargo fetch, que fará o download de todas as dependências.
  • Aqui você pode ler uma visão geral mais detalhada das mudanças.

Também há mudanças na biblioteca padrão:

Outras alterações Rust, Cargo e Clippy.

Fonte: linux.org.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