Voltar
Rust 1.100.0 é anunciado
🦀CEVIU

Rust 1.100.0 é lançado com never type, APIs Allocator e DropGuard

Aprofundamento CEVIU

Aprofundamento

O Rust 1.100.0 estabiliza o never type (!), o tipo inabitado canônico, depois de 10 anos e 5 tentativas frustradas de estabilização. Ele representa computações que divergem, como return, break e std::process::exit, e permite coerção de ! para qualquer outro tipo, o que ajuda, por exemplo, a não retornar valor em um ramo de match ou if. Agora é possível nomear o tipo em qualquer lugar, não só no retorno de funções. Infallible virou alias de !.

Isso trouxe uma quebra: o "never type fallback" passa de () para ! nas edições 2015, 2018 e 2021, como já acontecia na 2024. O impacto deve ser raro (por exemplo, ao ignorar o resultado de função que retorna parâmetro genérico) e o compilador pode apontar mais código como inalcançável. A equipe avisou com warnings de compatibilidade futura e corrigiu crates públicas afetadas.

A versão também estabiliza o núcleo do allocator_api com a trait Allocator, por enquanto utilizável com Vec e Box. Entram ainda core::mem::DropGuard, que executa uma closure ao sair de escopo e tem dismiss para suportar rollback, e std::mem::conjure_zst, função unsafe para criar tipos de tamanho zero. No Cargo, há aviso de dependências não usadas, hash de build consistente no build-dir e min-publish-age (cooldown de dependências), que ignora versões publicadas há pouco tempo. O cargo install ignora essa regra.

Por que isso importa

Para quem mantém crates ou projetos em edições antigas, vale rodar o build e os testes com atenção ao novo fallback do never type. Para quem opera pipelines, o cooldown de dependências é uma camada barata contra versões maliciosas, mas a própria equipe diz que não substitui a revisão de atualizações. Quem escreve código de baixo nível ganha uma base oficial para custom allocators, ainda limitada a Vec e Box.

Linha do tempo

  1. CEVIU noticia o Rust 1.95.0, com cfg_select! e if let guards em match.

  2. Rust 1.96.0 estabiliza os tipos core::range.

  3. Rust 1.98.0 traz operações algébricas de ponto flutuante.

  4. Equipe do Rust anuncia a versão 1.100.0 com never type estável e allocator_api.

  5. Rust 1.100.0 chega estável com never type, Allocator, DropGuard e novidades no Cargo.

Perguntas frequentes

Como atualizar para o Rust 1.100.0?

Quem tem o Rust instalado via rustup pode atualizar pelo próprio rustup. Quem ainda não tem pode obter o rustup no site oficial do projeto. Também é possível testar versões futuras pelos canais beta e nightly.

A mudança do never type fallback pode quebrar meu código?

A equipe diz que o efeito deve passar despercebido na maioria dos casos. Pode afetar código em situações raras, como ignorar o resultado de uma função que retorna um parâmetro genérico. Se uma dependência falhar, atualizá-la costuma resolver, pois correções já foram publicadas.

O que é o min-publish-age do Cargo?

É a resolução de dependências que pula versões publicadas há menos tempo que o limite configurado em .cargo/config.toml. A ideia é dar tempo para que versões maliciosas sejam detectadas. Versões sem o campo pubtime no índice nunca são retidas.

Quais tipos já aceitam custom allocators?

Com a estabilização da trait Allocator, o suporte atual cobre Vec e Box. A equipe afirma que ainda falta expandir a API e estabilizar o uso em mais coleções e tipos de ponteiro.

Fontes

Avalie este artigo:
Categoria
CEVIU
Publicado
13 de novembro de 2026
Editoria
CEVIU

Quer receber mais sobre CEVIU?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser