“Por exemplo, a adição de ponto flutuante não é associativa, então uma soma como a + b + c + d deve ser avaliado na ordem associativa à esquerda em que é analisado, como ((a + b) + c) + d”, observou a equipe Rust. “Se você escrever a mesma soma que uma cadeia de algebraic_add chamadas, então o compilador está livre para reordená-lo, talvez como (a + b) + (c + d) avaliar as somas parciais simultaneamente. A vetorização de loop mais ampla geralmente também é possibilitada pelo uso desses métodos algébricos.”

Os métodos são não determinísticos, porque o compilador é livre para escolher diferentes otimizações, mas nunca causam comportamento indefinido, disse a equipe do Rust.

Rust 1.98.0 também introduz formatação de número inteiro em buffer. Todos os tipos inteiros primitivos agora possuem um format_into método que leva um &mut NumBuffer parâmetro, que é um buffer grande o suficiente para armazenar o formato decimal de qualquer valor do tipo. O format_into método retorna o formatado &str com uma vida útil emprestada do buffer e ignora grande parte do envio dinâmico de buffer write! formatação, melhorando o desempenho.