Right now "Clarification of build command's stdout" topic
shows up under the "Environment Variables" which is not correct.
This commit aims to fix this problem.
Signed-off-by: ozkanonur <work@onurozkan.dev>
- Move the reference for directories and actions to the very end; it's the most rare to need to know
- Add `RUSTDOCFLAGS*`, `CARGOFLAGS*`, `-vvv`, and `--test-args`
- Remove the incorrect `--on-fail` command
This diagram is based on the diagram in Joshua Nelson's talk on
bootstrapping at RustConf 2022 [1]. I converted it to Mermaid and made
some tweaks to simplify it and bring it closer to bootstrap's
terminology, and then Ralf Jung added nodes for copying artifacts.
[1]: https://rustconf.com/schedule#bootstrapping-the-once-and-future-compiler
Co-authored-by: Joshua Nelson <github@jyn.dev>
Co-authored-by: Ralf Jung <post@ralfj.de>
Since https://github.com/rust-lang/rust/pull/95503, `library/std` means
"build just std and its dependencies"; to get the old behavior that built
`proc_macro` and `test`, you need `x build library`.
- Update `library/std` to `library`
- Remove the `-i` suggestions; `incremental = true` is already the default for most profiles, in
which case `-i` does nothing. If you don't have incremental enabled, I still think suggesting `-i`
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole
compiler / standard library.
- Remove a few repetitive sections and don't discuss incremental in such detail
Incremental works well enough that it should "just work" for most people;
I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that `test library/std` *only* tests libstd in a few places
Use paragraphs instead of bullet-points.
Edits throughout for clarity.
Use semantic line breaks in edited sections.
Co-authored-by: Joshua Nelson <github@jyn.dev>
* Move 'force-unstable-if-unmarked' to the bootstrapping chapter
* Document how to stabilize a library feature
Note that features can't be stabilized until they go through FCP and
that FCP happens on the tracking issue, not the PR.
* Fix wrong glob
By default `**` behaves the same as two `*` side by side, i.e. it only
globs file paths, not directories. `shopt -s globstar` needs to be set
for it to mean a directory. I didn't notice this before now because
`globstar` is set by default in interactive mode, but not otherwise.
* Explain stages in terms of the compiler currently running
- Address some confusing points
+ stage N+1 -> stage N artifacts
+ Use more likely examples of an ABI break
+ stage N -> stage N compiler
- Mention why rustc occasionally uses `cfg(bootstrap)`
- Note that stage1 is built using two different versions
- Add lots of examples
+ `test src/test/ui` and `test compiler/rustc` run different compilers 😢
+ Separate examples of what to do from examples of what not to do
- 'ship stage 1 artifacts' -> 'ship stage 2 compiler'
This is hopefully less confusing.
* build -> x.py build
* Add section on build artifacts
* Improve wording
Co-authored-by: Camelid <37223377+camelid@users.noreply.github.com>
* uplifted -> assembled
Co-authored-by: Camelid <37223377+camelid@users.noreply.github.com>
Previously, 'How to build and run' had a long section on the different
stages of boostrap. But new contributors aren't interested in bootstrap;
they want to start their build (because they heard it takes forever and
want to start it so they aren't waiting more than necessary).
This moves the section on stages into the bootstrapping page, and links
there instead of discussing it on the main page.