本文档翻译自https://rustc-dev-guide.rust-lang.org/getting-started.html

本文档并不全面;它只关注最有用的一些东西,以方便快速入门。获取更多信息,请参阅本章以了解如何构建和运行编译器。

提出问题

rust编译器团队(即t-compiler)经常在Zulip上划水,你可以很容易在这里找到问题的答案。

**请大胆提问!**很多人觉得提问会浪费专家的时间,但没有任何一个t-compiler的专家会这样认为,贡献者对我们来说十分重要。

还有,如果你不介意,请使用公共主题,这样别人也可以看到问题和答案,而且有可能将你的问题和答案整合到本文档中。

专家介绍

并非所有t-compiler专家都精通rustc的任何细节,毕竟这是一个很大的项目。要了解每个专家擅长的部分,可以查阅专家映射表

这个专家映射表并不完整,如果找不到要咨询的专家,也欢迎提问。

礼貌

我们确实要求您注意在您的问题中包含尽可能多的有用信息,但我们认识到,如果您不熟悉Rust,这可能会很困难。

只是在不提供任何上下文的情况下 ping 某人可能会有点烦人并且只会产生噪音,毕竟每一个t-compiler人员每天会收到很多的ping。

克隆并构建

系统要求

网络要连上。
首先需要有python,2或3都可以。至于硬件,最好有30G以上的硬盘空间、8G以上的内存以及2个以上的处理器。更好的电脑可以构建得更快。在接下来的章节中,将介绍几种策略来应对硬件能力不足的问题。

有关软件和硬件先决条件的更多详细信息,请参阅本章

克隆源代码

就和一般的仓库一样克隆即可。

1
2
git clone https://github.com/rust-lang/rust.git
cd rust

x.py介绍

rustc是一个自举的编译器,这使得它比一般的rust程序更加复杂。这导致的后果是你不能使用Cargo来编译而必须使用特殊工具x.py。x.py用来取代Cargo的工作,如构建、测试、发布等等。

配置编译器

在仓库的顶层目录执行下属命令。

1
./x.py setup

这条命令将进行一些初始化,并引导你完成交互设置以创建主要配置文件config.toml。

有关配置的更多信息,请参阅本章

常用x.py命令

当你开发rustc、std、rustdoc以及其他的工具时,以下命令会经常使用到。

命令 何时使用
./x.py check 快速检查是否大多数目标已经编译; rust-analizer会自动帮你运行这条命令
./x.py build 构建rustc、std和rustdoc
./x.py test 运行所有测试
./x.py fmt 格式化代码

这些命令中的每一个都有值得学习的选项和论据,特别是 ./x.py build 和 ./x.py test。 他们提供了许多编译或测试代码子集的方法,可以节省大量时间。

更多信息请查阅buildtestrustdoc

为其他rust项目贡献代码

在 rust-lang/rust 存储库之外,您还可以为许多其他项目做出贡献,包括 clippy、miri、chalk 和许多其他项目。

这些仓库可能有自己的贡献指南和程序。 其中许多归工作组所有。 有关更多信息,请参阅这些仓库的自述文件中的文档。

通过其他方式贡献代码

略。