From 07b5693a90ff790b00635a2db020bb13f908c61a Mon Sep 17 00:00:00 2001 From: Camelid Date: Wed, 27 Jan 2021 17:49:24 -0800 Subject: [PATCH] Update some out-of-date information --- src/appendix/humorust.md | 2 +- src/backend/updating-llvm.md | 6 +++--- src/building/new-target.md | 10 ++-------- src/getting-started.md | 18 +++++++++++------- src/traits/chalk.md | 2 +- 5 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/appendix/humorust.md b/src/appendix/humorust.md index 3bbedf5bb..1171161bd 100644 --- a/src/appendix/humorust.md +++ b/src/appendix/humorust.md @@ -10,4 +10,4 @@ enlightening? - [Rust Koans](https://users.rust-lang.org/t/rust-koans/2408) - [`break rust;`](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0ab2bd6a9d722e0f05a95e2a5dcf89cc) - [The Nomicon Intro](https://doc.rust-lang.org/stable/nomicon/) -- [`rustc-ty` renaming punfest](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rustc-ty.20naming.20bikeshed.20.2F.20punfest.20(was.3A.20design.20meeting.202.2E.2E.2E/near/189906455 ) +- [`rustc-ty` renaming punfest](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rustc-ty.20naming.20bikeshed.20.2F.20punfest.20\(was.3A.20design.20meeting.202.2E.2E.2E/near/189906455) diff --git a/src/backend/updating-llvm.md b/src/backend/updating-llvm.md index a769b428d..3e08b3f69 100644 --- a/src/backend/updating-llvm.md +++ b/src/backend/updating-llvm.md @@ -66,9 +66,9 @@ Example PRs look like: ## Feature updates -> Note that this is all information as applies to the current day in age. This -> process for updating LLVM changes with practically all LLVM updates, so this -> may be out of date! +> Note that this information is as of the time of this writing (December 2018 +> . The process for updating LLVM changes with practically +> all LLVM updates, so this may be out of date! Unlike bugfixes, updating to pick up a new feature of LLVM typically requires a lot more work. This is where we can't reasonably cherry-pick commits backwards diff --git a/src/building/new-target.md b/src/building/new-target.md index 4873e6652..305aa4de7 100644 --- a/src/building/new-target.md +++ b/src/building/new-target.md @@ -8,7 +8,7 @@ relevant to your desired goal. For very new targets, you may need to use a different fork of LLVM than what is currently shipped with Rust. In that case, navigate to -the `src/llvm_project` git submodule (you might need to run `x.py +the `src/llvm-project` git submodule (you might need to run `x.py check` at least once so the submodule is updated), check out the appropriate commit for your fork, then commit that new submodule reference in the main Rust repository. @@ -16,7 +16,7 @@ reference in the main Rust repository. An example would be: ``` -cd src/llvm_project +cd src/llvm-project git remote add my-target-llvm some-llvm-repository git checkout my-target-llvm/my-branch cd .. @@ -24,12 +24,6 @@ git add llvm_target git commit -m 'Use my custom LLVM' ``` -If you have a local LLVM checkout that is already built, you *may* be -able to configure Rust to treat your build as the [system -LLVM][sysllvm] to avoid redundant builds. - -[sysllvm]: ./suggested.md#skipping-llvm-build - ## Creating a target specification You should start with a target JSON file. You can see the specification diff --git a/src/getting-started.md b/src/getting-started.md index 99511e8ea..eed8855c7 100644 --- a/src/getting-started.md +++ b/src/getting-started.md @@ -79,7 +79,7 @@ recommend trying to build on a Raspberry Pi :P Building the compiler takes more than half an hour on my moderately powerful laptop. The first time you build the compiler, LLVM will also be built unless -you use your system's LLVM ([see below][configsec]). +you use CI-built LLVM ([see below][configsec]). [configsec]: #configuring-the-compiler @@ -123,17 +123,17 @@ The compiler has a configuration file which contains a ton of settings. We will provide some recommendations here that should work for most, but [check out this chapter for more info][config]. -[config]: ./building/how-to-build-and-run.html#create-a-configtoml +[config]: ./building/how-to-build-and-run.md#create-a-configtoml In the top level of the repo: -```sh +```console $ x.py setup ``` This will walk you through an interactive setup for x.py that looks like this: -``` +```console $ x.py setup Welcome to the Rust project! What do you want to do with x.py? a) Contribute to the standard library @@ -150,11 +150,15 @@ To get started, try one of the following commands: For more suggestions, see https://rustc-dev-guide.rust-lang.org/building/suggested.html ``` -You may also want to set up [system LLVM][sysllvm] to avoid building LLVM from source. +Note that by default, `x.py setup` will use CI-built LLVM if available for your +platform so that you don't need to build LLVM in addition to building the +compiler. In some circumstances, such as when updating the version of LLVM used +by `rustc`, you may want to temporarily disable this feature. See the ["Updating +LLVM"] for more. -[sysllvm]: ./building/suggested.html#skipping-llvm-build +["Updating LLVM"]: https://rustc-dev-guide.rust-lang.org/backend/updating-llvm.html?highlight=download-ci-llvm#feature-updates -### `./x.py` Intro +### x.py Intro `rustc` is a _bootstrapping_ compiler, which means that it is written in Rust and thus needs to be compiled by itself. So where do you diff --git a/src/traits/chalk.md b/src/traits/chalk.md index 24f2d749a..db3c19a38 100644 --- a/src/traits/chalk.md +++ b/src/traits/chalk.md @@ -34,7 +34,7 @@ and designs for the trait system. **rustc**. Once we are happy with the logical rules, we proceed to implementing them in rustc. We map our struct, trait, and impl declarations -into logical inference rules in the [lowering module in rustc](./lowering-module.md). +into logical inference rules in the lowering module in rustc. [chalk]: https://github.com/rust-lang/chalk [rustc_traits]: https://github.com/rust-lang/rust/tree/master/compiler/rustc_traits