Também no Rust 1.82, aarch64-apple-darwin para macOS em CPUs Arm de 64 bits agora é um alvo Rust de nível 1, apoiado pela mais alta garantia de funcionamento adequado. Cada mudança no repositório Rust deve passar por testes completos em cada alvo de nível 1 antes de poder ser mesclada. Este alvo foi introduzido como nível 2 no Rust 1.49, disponibilizando-o em rustup. O novo marco coloca o alvo aarch64-apple-darwin no mesmo nível dos alvos Arm Linux de 64 bits e x86 macOS, Linux e Windows. Além disso, os alvos para Mac Catalyst, uma tecnologia da Apple para executar aplicativos iOS nativamente no Mac, agora são de nível 2.
Rust 1.82 segue o lançamento de 5 de setembro do Rust 1.81, que estabilizou o Error trait na biblioteca principal do Rust. Em outras partes do Rust 1.82:
- Rust agora suporta o
use<..>sintaxe dentro de certo impl Traitlimites para controlar quais parâmetros genéricos de tempo de vida são capturados. Posição de retornoimpl TraitOs tipos (RPIT) no Rust capturam certos parâmetros genéricos. A captura de um parâmetro genérico permite que o parâmetro seja usado no tipo oculto. Isso, por sua vez, afeta a verificação de empréstimos. - A sintaxe nativa para criar um ponteiro bruto é apresentada.
- É responsabilidade das pessoas que escrevem o
externbloco para garantir que todas as assinaturas contidas nele estão corretas; assim, os desenvolvedores agora podem escreverextern. Um benefício disso é que os itens dentro de um ambiente inseguroexternbloco pode ser marcado como seguro para uso. - Alguns atributos do Rust, como
no-manglepode ser usado para causar comportamento indefinido sem nenhum bloqueio inseguro. Se este fosse um código normal, seria necessário que estes fossem colocados em umunsafe {}bloco, mas até agora, os atributos não tiveram sintaxe comparável. Para refletir que estes atributos podem minar as garantias de segurança contra ferrugem, estes agora são considerados “inseguros” e devem ser escritos da seguinte forma:#unsafe(no_mangle)) pub fn my global_function (){} - Os padrões que correspondem a tipos vazios agora podem ser omitidos.
- Rust 1.82 padroniza um conjunto de regras sobre como
NaN(não um número) os valores se comportam. - O
constO operando assembly agora oferece uma maneira de usar números inteiros como imediatos sem primeiro armazená-los em um registro.
