Rust 1.77, a versão mais recente da linguagem de programação fundada pela Mozilla Research focada em segurança, velocidade e simultaneidade, adiciona suporte para literais de string C.
Literais de string C em Rust se expandem para uma string terminada em byte nulo na memória do tipo & ‘static CStr
. Isso torna mais fácil escrever código que irá interoperar com interfaces de linguagem estrangeira que requerem strings terminadas em nulo. Todas as verificações de erros relevantes, como a falta de um byte nulo interior, são executadas em tempo de compilação.
Anunciado em 21 de março, o Rust 1.77 pode ser instalado usando o Rustup:
$ rustup update stable
Outra melhoria no Rust 1.77 é o suporte para recursão em async fn
. Anteriormente, as funções assíncronas não podiam ser chamadas devido a uma limitação do compilador, mas o Rust 1.77 elimina essa limitação. Chamadas recursivas agora são permitidas desde que usem uma forma indireta para evitar um tamanho infinito para o estado da função.
Também no Rust 1.77, o offsetof!
macro para campos struct foi estabilizada. Isto fornece acesso ao deslocamento de bytes do campo público relevante de uma estrutura. Esta macro pode ser mais útil quando o deslocamento de um campo é necessário sem uma instância existente de um tipo, disse a equipe do Rust.
Além disso, os perfis do gerenciador de pacotes Cargo no Rust 1.77 que não habilitam debuginfo nas saídas habilitarão strip = "debugiinfo"
por padrão. Isso é necessário principalmente porque a biblioteca padrão pré-compilada vem com debuginfo, o que significa que os resultados vinculados estaticamente incluiriam o debuginfo da biblioteca padrão, mesmo que a compilação local não solicitasse explicitamente o debuginfo.
Finalmente, Clippy in Rust 1.77 adiciona um novo lint, incompatible_msrv
que informará aos usuários se a funcionalidade referenciada está disponível apenas em versões mais recentes do que a versão mínima declarada do Rust com suporte.
Rust 1.77 segue o lançamento do Rust 1.76 do mês passado, que apresentava atualizações de compatibilidade ABI.