Anunciando Rust 1.99.0.

Por The Rust Release Team01/10/2026 às 00:000 visualizações

A equipe do Rust tem o prazer de anunciar uma nova versão do Rust, 1.99.0. O Rust é uma linguagem de programação que capacita todos a construir softwares confiáveis e eficientes.

Se você já tem uma versão anterior do Rust instalada viarustup, você pode obter a 1.99.0 com:

$rustup update stable

Se você ainda não tem, pode obterrustupda página apropriada no nosso site, e confira oNotas de lançamento detalhadas para 1.99.0.

Se você quiser nos ajudar testando futuras versões, considere atualizar localmente para usar o canal beta (rustup padrão beta) ou o canal nightly (rustup padrão nightly). Por favorinformequalquer bug que você encontrar!

O que há na versão 1.99.0 estável?

A tradução do texto fornecido para o português brasileiro é: "extern 'C' variádicos"

A versão 1.99.0 do Rust estabiliza a definição de funções variádicas com os ABIs "C" e "C-unwind". As funções variádicas definidas dessa forma utilizam uma lista de argumentos variável....Rust poderia já chamar funções variádicas definidas externamente (por exemplo, ... ) e aceitar um número arbitrário de argumentos.libc::printfCom Rust 1.99, essas funções podem agora ser escritas em Rust propriamente dito:

///Segurança: deve ser chamada com (pelo menos) 2 argumentos i32.
inseguroexterno"C"função anônimaresumo(mutávelargumentos: ...)-> Parai32 {
 //SEGURANÇA: garantida pelo chamador.
leta =inseguro {args.próximo_arg::<i32>() };
letb =unsafe {args.next_arg::<i32>() };
a +b
}

fnfoo()->i32 {
inseguro {soma(0i32, 2i32) }
}

O tipo de...éVaListaque é compatível com o ABI (Interface Binária Aplicável) com a linguagem C.lista de argumentos variáveis.tipo em diferentes alvos. Quais tipos podem ser lidos de um?VaListé protegido pela.VaArgSafetraço.

Para mais detalhes sobre funções variádicas em C, consulte o...ReferênciaEsta liberação também estabiliza o suporte para definir funções variádicas "nudas" com ABIs não-"C", que devem ser escritas via assembly em linha.

Informações de layout a partir de ponteiros brutos

Esta liberação define os requisitos de segurança para recuperar o tamanho e o alinhamento de ponteiros brutos para ambosTipos dimensionados(seguros trivialmente, já possível na versão estável) e não-dimensionados.Tipos não dimensionadostipos.

Isso é feito ao estabilizar três funções:

Recomenda-se contra a liberação de ida e volta apósBox::vazamento

Embora não haja mudanças na semântica da linguagem em Rust 1.99, atualizamos a documentação emBox::vazamentoRecomenda-se evitar padrões que, posteriormente, liberem essa memória. Isso foi feito porque tal código foi encontrado com interações problemáticas com otimizações atuais e futuras do compilador, e é especialmente problemático com a estabilização iminente de alocadores personalizados. Em vez disso,Box::into_non_nulldeve ser preferido.

Esta orientação também se aplica a outrasfunções de vazamentona biblioteca padrão.

APIs Estabilizadas

Outras mudanças

Verifique tudo o que mudouRust, CargoeClippy.

Contribuidores para 1.99.0

Muitas pessoas se uniram para criar o Rust 1.99.0. Não teríamos conseguido sem vocês.Obrigado!

Fonte
Rust Blog
Abrir original ↗

⚙Conteúdo traduzido automaticamente por máquina.

Esta notícia foi útil?

Debates 0

Seja o primeiro a contribuir com o debate.

Difunda suas informações e promova seu argumento

Não se acanhe de publicar alguma informação ou dado que possa ser positivo ou útil.

Para participar do debate, entre com sua conta ou crie uma gratuita.