Update some out-of-date information
This commit is contained in:
parent
7fde8950cf
commit
4895d26d5e
|
|
@ -10,4 +10,4 @@ enlightening?
|
||||||
- [Rust Koans](https://users.rust-lang.org/t/rust-koans/2408)
|
- [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)
|
- [`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/)
|
- [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)
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,9 @@ Example PRs look like:
|
||||||
|
|
||||||
## Feature updates
|
## Feature updates
|
||||||
|
|
||||||
> Note that this is all information as applies to the current day in age. This
|
> Note that this information is as of the time of this writing (December 2018
|
||||||
> process for updating LLVM changes with practically all LLVM updates, so this
|
> <!-- date: 2018-12 -->. The process for updating LLVM changes with practically
|
||||||
> may be out of date!
|
> all LLVM updates, so this may be out of date!
|
||||||
|
|
||||||
Unlike bugfixes, updating to pick up a new feature of LLVM typically requires a
|
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
|
lot more work. This is where we can't reasonably cherry-pick commits backwards
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ relevant to your desired goal.
|
||||||
|
|
||||||
For very new targets, you may need to use a different fork of LLVM
|
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
|
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
|
check` at least once so the submodule is updated), check out the
|
||||||
appropriate commit for your fork, then commit that new submodule
|
appropriate commit for your fork, then commit that new submodule
|
||||||
reference in the main Rust repository.
|
reference in the main Rust repository.
|
||||||
|
|
@ -16,7 +16,7 @@ reference in the main Rust repository.
|
||||||
An example would be:
|
An example would be:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd src/llvm_project
|
cd src/llvm-project
|
||||||
git remote add my-target-llvm some-llvm-repository
|
git remote add my-target-llvm some-llvm-repository
|
||||||
git checkout my-target-llvm/my-branch
|
git checkout my-target-llvm/my-branch
|
||||||
cd ..
|
cd ..
|
||||||
|
|
@ -24,12 +24,6 @@ git add llvm_target
|
||||||
git commit -m 'Use my custom LLVM'
|
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
|
## Creating a target specification
|
||||||
|
|
||||||
You should start with a target JSON file. You can see the specification
|
You should start with a target JSON file. You can see the specification
|
||||||
|
|
|
||||||
|
|
@ -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
|
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
|
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
|
[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
|
provide some recommendations here that should work for most, but [check out
|
||||||
this chapter for more info][config].
|
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:
|
In the top level of the repo:
|
||||||
|
|
||||||
```sh
|
```console
|
||||||
$ x.py setup
|
$ x.py setup
|
||||||
```
|
```
|
||||||
|
|
||||||
This will walk you through an interactive setup for x.py that looks like this:
|
This will walk you through an interactive setup for x.py that looks like this:
|
||||||
|
|
||||||
```
|
```console
|
||||||
$ x.py setup
|
$ x.py setup
|
||||||
Welcome to the Rust project! What do you want to do with x.py?
|
Welcome to the Rust project! What do you want to do with x.py?
|
||||||
a) Contribute to the standard library
|
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
|
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
|
`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
|
and thus needs to be compiled by itself. So where do you
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ and designs for the trait system.
|
||||||
|
|
||||||
**rustc**. Once we are happy with the logical rules, we proceed to
|
**rustc**. Once we are happy with the logical rules, we proceed to
|
||||||
implementing them in rustc. We map our struct, trait, and impl declarations
|
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
|
[chalk]: https://github.com/rust-lang/chalk
|
||||||
[rustc_traits]: https://github.com/rust-lang/rust/tree/master/compiler/rustc_traits
|
[rustc_traits]: https://github.com/rust-lang/rust/tree/master/compiler/rustc_traits
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue