65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
# Quickstart
|
|
|
|
This is a quickstart guide about getting the compiler running. For more information in the individual steps,
|
|
see the other pages in this chapter.
|
|
|
|
First, clone the repository:
|
|
|
|
```sh
|
|
git clone https://github.com/rust-lang/rust.git
|
|
cd rust
|
|
```
|
|
|
|
When building the compiler, we don't use `cargo` directly, instead we use a wrapper called "x".
|
|
It is invoked with `./x`.
|
|
|
|
We need to create a configuration for the build. Use `./x setup` to create a good default.
|
|
|
|
```sh
|
|
./x setup
|
|
```
|
|
|
|
Then, we can build the compiler. Use `./x build` to build the compiler, standard library and a few tools.
|
|
You can also `./x check` to just check it.
|
|
All these commands can take specific components/paths as arguments, for example `./x check compiler` to just check the compiler.
|
|
|
|
```sh
|
|
./x build
|
|
```
|
|
|
|
> When doing a change to the compiler that does not affect the way it compiles the standard library
|
|
(so for example, a change to an error message), use `--keep-stage-std 1` to avoid recompiling it.
|
|
|
|
After building the compiler and standard library, you now have a working compiler toolchain.
|
|
You can use it with rustup by linking it.
|
|
|
|
```sh
|
|
rustup toolchain link stage1 build/host/stage1
|
|
```
|
|
|
|
Now you have a toolchain called `stage1` linked to your build. You can use it to test the compiler.
|
|
|
|
```sh
|
|
rustc +stage1 testfile.rs
|
|
```
|
|
|
|
After doing a change, you can run the compiler test suite with `./x test`.
|
|
|
|
`./x test` runs the full test suite, which is slow and rarely what you want.
|
|
Usually, `./x test tests/ui` is what you want after a comiler change,
|
|
testing all [UI tests](../tests/ui.md) that invoke the compiler on a specific test file and check the output.
|
|
|
|
```sh
|
|
./x test tests/ui
|
|
```
|
|
|
|
Use `--bless` if you've made a change and want to update the `.stderr` files with the new output.
|
|
|
|
> `./x suggest` can also be helpful for suggesting which tests to run after a change.
|
|
|
|
Congrats, you are now ready to make a change to the compiler! If you have more questions,
|
|
[the full chapter](./how-to-build-and-run.md) might contain the answers, and if it doesn't,
|
|
feel free to ask for help on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp).
|
|
|
|
If you use VSCode, `./x setup` will ask you if you want to set up the config. For other editors, check out [suggested workflows](./suggested.md).
|