A versão estável do Rust 1.60.0 foi lançada oficialmente .
Principais novas mudanças
A compilação incremental restaura o padrão habilitado
A versão 1.60 reativou a compilação incremental. A equipe Rust continua trabalhando na correção de bugs na compilação incremental, e nenhum problema que causa quebra generalizada foi identificado, então a compilação incremental foi reativada. Além disso, a equipe do compilador continua trabalhando em estratégias de longo prazo para evitar esses problemas no futuro.
cobertura de código baseado em fonte
O suporte para análise de cobertura baseada em LLVM no rustc atingiu um estado estável e agora pode ser usado -Cinstrument-coverage
para reconstruir o código, por exemplo:
RUSTFLAGS="-C instrument-coverage" cargo build
Depois disso, o desenvolvedor pode executar o binário gerado e ele irá gerar um default.profraw
arquivo no diretório atual (caminho e nome do arquivo podem ser substituídos por variáveis de ambiente, veja a documentação para detalhes ).
rustup component add llvm-tools-preview
$(rustc --print sysroot)/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -sparse default.profraw -o default.profdata
$(rustc --print sysroot)/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov show -Xdemangler=rustfilt target/debug/coverage-testing \
-instr-profile=default.profdata \
-show-line-counts-or-regions \
-show-instantiations
cargo --timings
A capacidade do Cargo de coletar informações de construção usando --timings
sinalizadores atingiu um estado estável.
$ cargo build --timings
Compiling hello-world v0.1.0 (hello-world)
Timing report saved to target/cargo-timings/cargo-timing-20220318T174818Z.html
Finished dev [unoptimized + debuginfo] target(s) in 0.98s
Nova sintaxe para Cargo
Esta versão apresenta duas novas alterações para melhorar o suporte ao Cargo e como eles interagem com dependências opcionais:
- Dependências com namespace
- Dependência fraca (dependência fraca )
Lista de API estável
Alguns métodos e implementações de traits foram estabilizados, clique aqui para detalhes .
Endereço de download: https://github.com/rust-lang/rust/releases/tag/1.60.0