Commit Graph

192 Commits

Author SHA1 Message Date
Tshepang Mbambo ea43d6b258 typo 2022-08-27 06:25:51 +02:00
Micah Weston 39fa4dbe24 Updates text to refer to LLVM documentation. 2022-08-27 06:25:51 +02:00
Micah Weston 55b49dbc3b Updates LLVM prereqs since upgrade to C++17. 2022-08-27 06:25:51 +02:00
Noah Lev 04b006fd12 Fix legend colors in dark mode 2022-08-09 16:47:22 -05:00
Noah Lev 31e4869545 Add color for downloaded nodes 2022-08-09 16:44:20 -05:00
Noah Lev 27512fd7ff Add colors to diagram 2022-08-09 16:44:20 -05:00
Noah Lev ebad7d357a Add bootstrapping diagram
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>
2022-08-09 16:44:20 -05:00
Tshepang Mbambo 8194045511 make date-check more lightweight (#1394)
* make date-check lightweight

This avoids having to write the date twice when updating date-check.

Before "As of <-- 2022-07 --> July 2022"
After "As of July 2022"

* please clippy

* update date-check docs

* accept review suggestion

Co-authored-by: Noah Lev <camelidcamel@gmail.com>

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#pullrequestreview-1042163557

* accept review suggestion

Co-authored-by: Noah Lev <camelidcamel@gmail.com>

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#pullrequestreview-1042167261

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#issuecomment-1189105017

* this breaks markdown

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#discussion_r934018268

This led to a more robust regex, though making the tool more picky.
It also found a wrong date format that was missed.

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#discussion_r934018419

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#discussion_r934018816

* accept review suggestion

This was reverted by mistake

Co-authored-by: Noah Lev <camelidcamel@gmail.com>

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#discussion_r934019395

* use a more simple fn

* address review comment

https://github.com/rust-lang/rustc-dev-guide/pull/1394#discussion_r934018981

Much more clean

* nit

* accept review suggestion

Co-authored-by: Noah Lev <camelidcamel@gmail.com>

* avoid a failed regex

Also, test new shape

* adjust to new regex (which uses named groups)

New regex was introduced by 456008cc35

Co-authored-by: Noah Lev <camelidcamel@gmail.com>
2022-08-02 13:50:32 -07:00
Tshepang Mbambo c3aca0df58 address review comment
https://github.com/rust-lang/rustc-dev-guide/pull/1402#discussion_r933905339
2022-07-31 07:46:57 +02:00
Tshepang Mbambo 57401f4f39 accept review suggestion
Co-authored-by: Joshua Nelson <github@jyn.dev>
2022-07-31 07:46:57 +02:00
Tshepang Mbambo 1046f3e6e8 try address review comments 2022-07-31 07:46:57 +02:00
Tshepang Mbambo 6469d7444e summary of chapter 2022-07-31 07:46:57 +02:00
Tshepang Mbambo 0c77aa9c9e Update src/building/compiler-documenting.md
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
2022-07-31 07:46:57 +02:00
Tshepang Mbambo 13a6ec809d revamp doc-build chapter 2022-07-31 07:46:57 +02:00
Tshepang Mbambo f354a7433b minor fixes 2022-07-30 19:54:34 -04:00
Yuki Okushi 769f69ca59 Prefer relative links
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-29 20:12:26 -04:00
Urgau 5b3ecceecc Add instructions to fix build errors in std after adding a new target 2022-07-29 17:13:46 -04:00
bstrie 3cf8dd467e Document how to build a cross-compiler 2022-07-26 11:07:55 -04:00
Tshepang Mbambo f55e5dfaa5 replace misleading name (#1401) 2022-07-19 15:56:24 +09:00
Tshepang Mbambo 061577567f use relative links
Used the following command, followed by some manual tweaking:

  sd 'https://rustc-dev-guide.rust-lang.org/(.+).html' '$1.md' (fd)
2022-07-17 02:32:44 +02:00
Tshepang Mbambo 767d2b1135 fix some typos (#1398) 2022-07-17 06:45:36 +09:00
Joshua Nelson d7ead280b4 Update the build instructions for the standard library
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
2022-07-11 07:22:24 +02:00
Santiago Pastorino 570043de71 Revert "Add the config needed to get rust-analyzer working on src/bootstrap (#1381)"
This reverts commit d955bab63c.
2022-07-07 07:10:35 +02:00
Joshua Nelson 964a0c4390 Use `x.py check` instead of `cargo check` for build scripts (#1384)
Cargo check isn't supported and gives an error that CFG_CHANNEL is missing.
It also generates a new target dir and recompiles dependencies.
Use x.py instead, which avoids both issues.
2022-07-06 18:36:22 -03:00
Joshua Nelson 96c3ff376a Suggest a separate build directory for rust-analyzer (#1378) 2022-07-03 15:17:39 +09:00
Yutaro Ohno 32d3192152 Change the old filename, "src/stage0.txt" to "src/stage0.json" (#1383) 2022-07-03 15:10:25 +09:00
Joshua Nelson 2f2967866f Add the config needed to get rust-analyzer working on src/bootstrap (#1381) 2022-07-03 15:06:54 +09:00
Ralf Jung 3fea5da33d leave formatOnSave to the user (#1380) 2022-07-02 00:35:13 +09:00
Jonas Schievink d292267144 Make build scripts and proc macros work with the suggested rust-analyzer config (#1365) 2022-06-08 08:06:32 +09:00
Andrew Dona-Couch -- GitHub drop ICE 3552ec5286 Clarify cargo fallback behavior for rustup link (#1273) 2022-06-07 08:37:50 +09:00
Eric Huss 7d8e3fd2cd Add note about patching dependencies and warnings. (#1354) 2022-05-21 12:53:51 +09:00
Yuki Okushi 6ec2a84d4d Update some links and docs (#1340) 2022-05-17 07:54:45 +09:00
Waffle Maybe 0c88f29374 Fix configuration names for vscode/r-a (#1352) 2022-05-12 13:56:14 +09:00
Yutaro Ohno f76f69f603 Fix format (#1349) 2022-05-09 09:17:51 +09:00
Noah Lev a6a8701a86 r-a: Use `python3 x.py` instead of `./x.py` (#1335) 2022-04-09 17:31:23 +09:00
skippy10110 16d33733da update winget install instructions to ensure proper packages are installed (-e for --exact, and full package names to ensure arbitrary packages from the msstore source aren't installed)
fixes #1324
2022-03-14 08:40:37 -07:00
James Cole 1d9f534e4e Add architecture suggestion for Apple silicon (#1320) 2022-03-01 10:45:24 -06:00
Téo Bouvard 700361ae97 Fix typo (#1315) 2022-02-24 11:27:21 -08:00
Raoul Strackx 9a346dc04d Correction, building stage3 compiler (#1298) 2022-02-11 08:42:50 -05:00
Georgiy Komarov e3da6331dd Spelling: Rename `rust` to `Rust` (#1288) 2022-01-18 11:09:37 -03:00
Nicholas Nethercote 08019e25d1 Address more review comments in #1286. 2022-01-05 23:26:43 -06:00
Nicholas Nethercote e3512c8cd8 Streamline "Getting Started" some more.
This is a follow-up to #1279.

The "Getting Started" chapter is, TBH, pretty bad when it comes to the
stuff about building and testing. It has far too much detail and lots of
repetition, which would be overwhelming to a newcomer.

This commit removes most of it, leaving behind just quick mentions of
the most common `x.py` commands: `check`, `build`, `test`, `fmt`, with
links to the appropriate chapters for details. There were a few
interesting details that weren't covered elsewhere, so I moved those
into other chapters.
2022-01-05 23:26:43 -06:00
Noah Lev ce4ae4004c Update link to moved section (#1282)
The section was removed in #1030 and re-added in a different place in
2d42cf7.
2021-12-28 22:17:49 -06:00
Nicholas Nethercote 2c2ebc2fae Streamline "Getting Started" (#1279)
* Move `x.py` intro section before first use, and shorten it.

* Improve `x.py setup` docs.

In "Getting Started", strip it back to the bare minimum. Some of this is
moved into the later section.

In the later section, add notable details like config.toml.example how
and `profile` works. Also make the config.toml example more concise.

* Move details about the repository.

Less detail in "Getting Started", more in the later sections.

* Move details about the prereqs.

Less detail in "Getting Started", more in the later sections.
2021-12-24 12:52:31 -03:00
Lucas Kent 9074afb8da Improve 'Running tests manually' section 2021-11-27 03:45:39 -05:00
Yuki Okushi a7abb26bfe Fix some links 2021-11-24 10:23:07 -05:00
Ken Matsui e1babf580d Unify `x.py` usage (#1258) 2021-11-16 07:44:50 +09:00
Noah Lev e0ddc301da Fix broken link in "Bootstrapping"
The italics added in #1239 broke the implicitly-resolved link.
2021-11-09 21:46:27 -06:00
asquared31415 42e31a049e Add note to emphasize replacing TARGET_TRIPLE (#1250) 2021-11-06 18:32:55 +09:00
pierwill b547c04d8e Edit introduction to bootstrapping
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>
2021-11-02 15:06:56 -05:00
Joshua Nelson 4dcc29161b Remove docs on Assemble step (#1233) 2021-10-18 02:17:19 +09:00
Noah Lev 632f2b7484 Recommend `rustfmt --edition=2021` 2021-10-10 08:28:12 -05:00
Frank Steffahn 99e53983ad Make indentation consistent in example vscode config file 2021-09-17 16:52:56 -05:00
Frank Steffahn ee4b32b958 Suggests `--edition=2018` argument when using stage0/bin/rustfmt directly 2021-09-17 14:53:44 -05:00
Andrey Cherkashin 6b747c6cf2 remove ctag section 2021-09-08 15:13:44 -05:00
Andrey Cherkashin ce27f4801d Update suggested.md 2021-09-08 15:13:44 -05:00
Andrey Cherkashin 4105934b90 Move ctag section to "Suggested Workflow" 2021-09-08 15:13:44 -05:00
Andrey Cherkashin 7c4410ed50 Delete ctags.md 2021-09-08 15:13:44 -05:00
Joshua Nelson 8b64a80ccc Add rustc-source to suggested rust-analyzer config (#1189)
This allows loading the sources for crates loaded from the sysroot.
2021-08-31 10:13:18 -07:00
Rahul Butani 6893645e60 Remove a dead link in `new-target.md` + other nits (#1186) 2021-08-10 20:41:44 +09:00
Ben Reeves a7f22be835 Fix typo in building/bootstrapping.md (#1175) 2021-07-26 00:37:28 +02:00
Jade 18493f62b0 Add suggested settings note for coc (#1144) 2021-06-13 01:17:06 +09:00
二手掉包工程师 3f01b29957 Unified CPU Requirements (#1126) 2021-05-10 13:38:24 +09:00
Joshua Nelson 90e1d1fa43 Add sample nix shell
This also suggests using `x.py setup` instead of copying config.toml.
2021-04-27 08:52:22 -04:00
Ralf Jung 6bace78929 more RA config suggestions (#1114) 2021-04-26 18:34:50 -04:00
AngelicosPhosphoros fd8f1fee4e Mention CI build of LLVM in build instruction 2021-04-03 22:28:35 -04:00
Wesley Wiser 0c6cccc215 Update cmake version in prerequisites.md (#1077)
LLVM requires at least cmake 3.13.4.

https://www.llvm.org/docs/CMake.html
2021-03-09 20:00:12 +01:00
Camelid d6f81b211f Restore instructions for using system LLVM
They were removed in #1030, but are still useful.
2021-02-26 15:38:01 -05:00
Camelid 4895d26d5e Update some out-of-date information 2021-02-26 15:38:01 -05:00
dmezh c6cf4c04da Fix typo (#1063) 2021-02-18 19:37:43 +01:00
Joshua Nelson 2e19c8ecc0 Document how to stabilize a library feature (#1036)
* 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.
2021-02-01 19:31:00 +01:00
Henry Boisdequin 21745b2014 put `x.py` in ticks 2021-01-30 10:59:57 +02:00
Joshua Nelson 53a45a9a19 Remove "Skipping LLVM build" section
`download-ci-llvm` is available and enabled by default for all tier 1
platforms, so there is no need to change it. Using system LLVM over CI
llvm is still supported, but is not recommended. Building LLVM from
source is still supported.

This also notes that you need to explicitly disable downloading LLVM
when updating the submodule.
2021-01-20 13:45:05 -05:00
Iñaki Garay 7a80b01e01 Add mdbook-toc, markers, and documentation (#1028)
* Add mdbook-toc to travis, book.toml  and documentation

* Add toc markers

* Whitespace cleanup and some punctuation

* Addressed comments
2021-01-20 14:33:11 -03:00
Joshua Nelson 403521f1b9 Note that `--check` now allows using any stage 2021-01-17 05:51:00 +02:00
Joshua Nelson c74f970ae3 Clarify that `check` uses a different stage than `build` (#999) 2021-01-01 20:59:23 +00:00
Joshua Nelson 43fa1342f0 Document what 'sysroot' means 2020-11-29 20:02:55 -05:00
Gabriel de Perthuis ced315b860 Update bootstrap documentation with the new envvars for RUSTFLAGS
This follows <https://github.com/rust-lang/rust/pull/63722>.
2020-11-24 09:06:33 -05:00
Casey Rodarmor d7bb0ad45d Update src/building/how-to-build-and-run.md
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-11-09 09:07:41 +02:00
Casey Rodarmor 79d3ceb2fa Fix install command 2020-11-09 09:07:41 +02:00
Casey Rodarmor ac0b94deff Document `src/tools/x`, an `x.py` wrapper
Document the newly added `x` binary that wraps `x.py`, which can be
installed system-wide, and can be run from any subdirectory of a rust
repo checkout.
2020-11-09 09:07:41 +02:00
Yuki Okushi e55ee68ed0 Improve prerequisites section for Windows (#934)
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-10-26 08:15:21 +09:00
Joshua Nelson d056730692 Recommend debug-logging instead of debug
This makes the compiler faster to running without sacrificing too much
performance. It still shows logging so contributors aren't confused by
`debug!` doing nothing.
2020-10-08 16:15:06 -05:00
Justus K 1ae9303960 Update more occurrences of system llvm link 2020-10-08 11:47:32 -04:00
Cass 9ccc69f152 Add section describing git hook functionality
This is a companion to [this PR](https://github.com/rust-lang/rust/pull/76356), which deals with including functionality for automatically running `tidy --bless` on each commit.

Undo editor auto-formatting and clarify git hook renaming

a word

Phrasing

Apply suggestions from code review

Co-authored-by: Camelid <37223377+camelid@users.noreply.github.com>
2020-10-07 22:30:24 -04:00
Joshua Nelson 5fabea540a Document `Assemble` 2020-10-04 11:59:58 -04:00
Joshua Nelson fcc93a7043 Explain stages in terms of the compiler currently running (take N+1) (#857)
* 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>
2020-10-04 16:25:02 +02:00
Who? Me?! 3b4462f582 Link to .md files, rather than .html
Co-authored-by: Camelid <37223377+camelid@users.noreply.github.com>
2020-10-04 10:14:22 -04:00
mark 42173ef770 address lingering reviewer comments 2020-10-04 10:14:22 -04:00
Gus Wynn 08d244e06c Apply suggestions from code review
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-10-04 10:14:22 -04:00
Gus Wynn 58255429d8 add note 2020-10-04 10:14:22 -04:00
Gus Wynn c3a67e32dc add suggested workflow to setup nightly rustup for rustc 2020-10-04 10:14:22 -04:00
Aleksey Kladov d1651dbd5e Document new way to not build LLVM
Implemented in https://github.com/rust-lang/rust/pull/76349
2020-10-03 20:39:32 -04:00
Joshua Nelson 81f52ce0db Fix other library commands 2020-09-10 23:56:41 -04:00
Joshua Nelson 86e02cda81 Fix incorrect docs about stages
`build library/core` builds the compiler, not just the standard library.
2020-09-10 23:56:41 -04:00
Joshua Nelson 185f43c746 Use imprecise times, because the time to build depends on your computer
Co-authored-by: Camelid <37223377+camelid@users.noreply.github.com>
2020-09-09 20:58:30 -04:00
Camelid 350ee4b260 Minor cleanup for "How to build and run" 2020-09-09 20:58:30 -04:00
Joshua Nelson f3b5db1057 Fix nit 2020-09-09 21:39:55 +02:00
Tshepang Lekhonkhobe dc0cff54bb Update src/building/new-target.md 2020-09-09 21:39:55 +02:00
Joshua Nelson 059ad38ddf Document how to promote a target from cross-compiled to hosted 2020-09-09 21:39:55 +02:00