- 主要观点:为加快开发并确保
gccrs
在关键编译器传递中与rustc
有相同行为,去年开始尽可能复用rustc
的组件和 crate。目标是探讨这些组件,解释复用原因及整合方式。 关键信息:
- 已添加到
gccrs
的首个rustc
组件是rustc_parse_format
,用于解析 Rust 格式字符串。 - 正在复用的关键组件是
polonius
,下一代 Rust 借用检查器。 - 未来计划添加更多
rustc
组件,如新的 trait 求解器等,但由于内部表示不同,并非所有组件都可复用。 - 复用
rustc
组件很重要,如在借用检查、字符串模板解析等方面,可减少差异并确保行为一致。 - 目前通过
cargo
和rustc
编译复用的组件,之后计划通过引导过程将其整合到gccrs
中。
- 已添加到
重要细节:
rustc_parse_format
解析模板字符串及其中的“片段”,生成 Rust 代码调用core::fmt
函数。polonius
已可在rustc
的 nightly 版本中使用-Z polonius
选项,目前正在重写。rustc
和gccrs
在 AST 结构上对“块”表达式的表示不同,影响某些算法的处理。- 引导过程中先使用无借用检查的 C++编译器构建
gccrs
,再用其编译polonius
及其他 Rust 组件,最后验证编译后的组件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。