A equipe de desenvolvedores tem o prazer de apresentar a você o Rust 1.36!
O que há de novo no Rust 1.36?
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:
- Agora, o macro dbg!() pode aceitar múltiplos argumentos.
- Um número de APIs agora estão marcadas como const:
- Novas APIs que foram estabilizadas:
- Você pode encontrar outras alterações na biblioteca padrão aqui.
Outras alterações Rust, Cargo e Clippy.
Fonte: linux.org.ru
