
A equipa responsável pelo desenvolvimento da linguagem de programação Rust acaba de disponibilizar a versão 1.92. Esta nova atualização traz alterações importantes focadas na fiabilidade do código e no refinamento das ferramentas de diagnóstico, continuando o trabalho de estabilização de funcionalidades críticas para os programadores.
Mais estabilidade nos diagnósticos de falhas
Uma das principais novidades desta versão reside na forma como o compilador lida com as tabelas de unwind. A partir de agora, estas tabelas são emitidas por predefinição, mesmo quando a opção -Cpanic=abort está ativa.
Esta alteração visa garantir que os backtraces — relatórios essenciais para identificar a origem de erros — funcionam de forma fiável em cenários onde o programa aborta inesperadamente. Anteriormente, a ausência destas tabelas podia dificultar a depuração nestes casos específicos. Para os utilizadores que, por motivos de otimização extrema ou restrições de sistema, prefiram não incluir estas tabelas, a equipa introduziu a possibilidade de as desativar explicitamente através do comando -Cforce-unwind-tables=no.
Refinamentos no sistema de tipos e atributos
A versão 1.92 continua também o esforço de longa data para estabilizar o "never type" (o tipo de dados que representa computações que nunca retornam). Como parte deste processo, dois avisos de compatibilidade futura — never_type_fallback_flowing_into_unsafe e dependency_on_unit_never_type_fallback — passaram a ter o estatuto de "deny-by-default". Isto significa que violações nestas regras resultarão agora em erros de compilação imediatos, em vez de avisos, forçando uma maior segurança no código.
No campo da análise de código (linting), houve ajustes inteligentes. O aviso unused_must_use deixa de ser disparado quando funções retornam tipos como Result ou ControlFlow. Visto que estes tipos de erro não podem ocorrer na prática, o compilador evita agora gerar ruído desnecessário durante o desenvolvimento.
Adicionalmente, o tratamento de atributos internos da linguagem foi revisto para ser mais rigoroso e consistente. O compilador apresentará diagnósticos mais claros, e erros como argumentos incorretos em macro_export nas dependências passam também a bloquear a compilação, garantindo uma base de código mais limpa, conforme detalhado no blog oficial da equipa Rust.










Nenhum comentário
Seja o primeiro!