闽公网安备 35020302035485号
• 常量上下文和小API改进 - 一堆小而美的稳定化改进,包括整数/浮点数辅助函数和trait实现
# 使用包含1.90的稳定工具链 rustup update stable rustup default stable2. 测量冷构建和增量重建。用中等或大型代码库效果更明显(比如ripgrep或类似的CLI工具):
# 测量完整构建 time cargo build --bin your_bin # 做个小改动然后测量增量 time cargo build --bin your_bin预期结果:在ripgrep的例子中,Rust团队报告增量重建的链接时间减少了7倍,端到端增量编译时间减少了约40%。完整调试构建显示约20%的端到端改进。
# .cargo/config.toml [target.x86_64-unknown-linux-gnu] rustflags = ["-Clinker-features=-lld"]或者设置RUSTFLAGS:
export RUSTFLAGS="-Clinker-features=-lld"详细说明:回退的情况很少见;团队预计LLD在绝大多数情况下都是安全的直接替换。
[workspace]
members = ["crate-a", "crate-b"]
crate-a/Cargo.toml:
[package]
name = "crate-a"
version = "0.1.0"
crate-b/Cargo.toml:
[package]
name = "crate-b"
version = "0.1.0"
[dependencies]
crate-a = { path = "../crate-a" }
发布命令:
# 这会先发布crate-a,然后crate-b
cargo publish --workspace
结果:Cargo将工作区发布作为一个单元进行验证,并按依赖顺序发布crate。发布验证会像它们已经发布一样在整个集合上运行构建。网络故障仍然可能导致部分发布的工作区(发布不是原子性的)。+-----------+ +-------------+ +---------+
| rustc | ---> | object files| ---> | system |
| (compile) | | (.o/.rlib) | | linker |
+-----------+ +-------------+ +---------+
|
v
slow serial linker
Rust 1.9.0 (LLD)
+-----------+ +-------------+ +---------+
| rustc | ---> | object files| ---> | rust-lld|
| (compile) | | (.o/.rlib) | | (parallel) |
+-----------+ +-------------+ +---------+
|
v
faster parallel linking -> binary
最后说两句