A equipe de desenvolvimento está animada em apresentar o Rust 1.36!
O que há de novo no Rust 1.36?
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:
- A macro dbg!() agora pode receber vários argumentos.
- Várias APIs agora estão marcadas como const:
- Novas APIs que foram estabilizadas:
- Outras alterações na biblioteca padrão podem ser encontradas aqui aqui.
Outras mudanças Ferrugem, Carga и Clippy.
Fonte: linux.org.ru