Commit graph

622 commits

Author SHA1 Message Date
Eric Huss
59b80f598f Run cargo test on tidy itself. 2022-12-31 12:34:23 -08:00
Joshua Nelson
c8c849ef5c Use more consistent progress messages in bootstrap
Before:
```
Testing ["rustc_interface"] stage0 (aarch64-unknown-linux-gnu -> aarch64-unknown-linux-gnu)
```

After:
```
Testing {rustc_interface} stage0 (aarch64-unknown-linux-gnu -> aarch64-unknown-linux-gnu)
```

Note there is a slight consistency between `build` and `test`: The
former doesn't print "compiler artifacts". It would be annoying to fix
and doesn't hurt anything, so I left it be.

```
; x t rustc_interface --stage 0 --dry-run
Testing {rustc_interface} stage0 (aarch64-unknown-linux-gnu -> aarch64-unknown-linux-gnu)
; x b rustc_interface --stage 0 --dry-run
Building {rustc_interface} stage0 compiler artifacts (aarch64-unknown-linux-gnu -> aarch64-unknown-linux-gnu)
```
2022-12-30 20:37:48 +00:00
Joshua Nelson
cbede85538 Support x clean --stage 1 rustc_query_impl
Previously, clean only supported `--stage 0` for specific crates.

The new `crate_description` function generates a string that looks
like
```
: {rustc_query_impl}
```
2022-12-29 21:58:14 +00:00
Joshua Nelson
6d388a4ee3 Allow cleaning individual crates
As a bonus, this stops special casing `clean` in `Builder`.
2022-12-26 19:31:40 -06:00
bors
5e656baf8b Auto merge of #106070 - matthiaskrgr:rollup-jv9ctkl, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #105978 (Mark `proc_macro_decls_static` as always used)
 - #106051 (Allow building std with cranelift)
 - #106056 (Make `sess.bug` much less noisy)
 - #106057 (Give a more helpful error for "trimmed_def_paths constructed")
 - #106058 (Fix the issue number in comment for as_local_call_operand)
 - #106059 (Avoid running the `Profile` step twice on `x setup`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-12-23 02:44:32 +00:00
Matthias Krüger
49287a4095
Rollup merge of #106051 - jyn514:cranelift-std, r=bjorn3
Allow building std with cranelift

- Don't pass llvm-specific args when using cranelift
- Don't use `asm` in compiler_builtins when using cranelift

r? `@bjorn3` cc `@Mark-Simulacrum`
2022-12-23 01:17:50 +01:00
Joshua Nelson
f94c926aec Support documenting Cargo
The primary motivation is to have the cargo docs show up on https://doc.rust-lang.org/nightly/nightly-rustc/cargo, but as a nice side effect this makes `x doc cargo` work locally.
2022-12-22 14:33:22 -06:00
Joshua Nelson
0b3ffcbb0b Allow building std with cranelift
- Don't pass llvm-specific args when using cranelift
- Don't use `asm` in compiler_builtins when using cranelift
2022-12-22 11:50:19 -06:00
Nikita Popov
59b3157c45 Use LLVM_CMAKE_DIR for lld build
LLVM_CONFIG_PATH is no longer supported as of LLVM 16, switch to
using the cmake module instead.

We separately return the llvm-config and cmake directory paths,
because llvm-config always refers to the host binary, while
the cmake directory is for the target triple.
2022-12-22 12:48:57 +01:00
Matthias Krüger
3fb5d8e5dd
Rollup merge of #96584 - bentongxyz:x-setup-h-v-should-work, r=jyn514
Fix `x setup -h -v` should work

r? `@jyn514`

I have to convert profile to path and back in order to remove special-casing in bootstrap. I also check for `dry_run` so that `config.toml` and/ or `.git/hooks/pre-push` will not be created if `--dry-run` is specified.

Please help me see if this is ok, thanks alot!
2022-12-18 18:57:02 +01:00
Benjamin Tong
fca829075f Remove special cases for setup subcommand
- Remove setup special-casing in Flags::parse
2022-12-17 16:59:03 -06:00
Martin Kröning
23a34c18f7 bootstrap: Allow installing llvm-tools 2022-12-11 12:19:17 +01:00
Matthias Krüger
e5a01b97ee
Rollup merge of #104439 - ferrocene:pa-generate-copyright, r=pnkfelix
Add prototype to generate `COPYRIGHT` from REUSE metadata

This PR adds a prototype to generate the `COPYRIGHT` file from the metadata gathered with REUSE. There are two new tools:

* `src/tools/collect-license-metadata` invokes REUSE, parses its output and stores a concise JSON representation of the metadata in `src/etc/license-metadata.json`.
* `src/tools/generate-copyright` parses the metadata generated above, (in the future will) gather crate dependencies metadata, and renders the `COPYRIGHT.md` file.

Note that since the contents of those files are currently incorrect, rather than outputting in the paths above, the files will be stored in `build/` and not committed. This will be changed once we're confident about the metadata.

Eventually, `src/etc/license-metadata.json` will be committed into the repository and verified to be up to date by CI (similar to our GitHub Actions configuration), to avoid having people install REUSE on their local machine in most cases.

You can see the (incorrect) generated files in https://gist.github.com/pietroalbini/3f3f22b6f9cc8533abf7494b6a50cf97.

r? `@pnkfelix`
2022-12-06 13:27:40 +01:00
Nixon Enraght-Moony
4b2a1eb775 Support unit tests for jsondoclint 2022-11-26 15:32:49 +00:00
Dylan DPC
d3e9191875
Rollup merge of #104286 - ozkanonur:fix-doc-bootstrap-recompilation, r=jyn514
copy doc output files by format

This pr provides copying doc outputs by checking output format without removing output directory on each trigger.

Resolves #103785
2022-11-23 20:32:36 +05:30
ozkanonur
7e28df9561 refactor doc copying process
Signed-off-by: ozkanonur <work@onurozkan.dev>
2022-11-20 15:51:50 +03:00
Pietro Albini
4af7de13d2
initial prototype of the tool to generate copyright notices 2022-11-15 15:02:03 +01:00
Pietro Albini
13efb20846
add tool to collect license metadata from REUSE 2022-11-15 14:50:20 +01:00
Joshua Nelson
fb471de5a9 Make all download functions need only Config, not Builder
This also adds a new `mod download` instead of scattering the download code
across `config.rs` and `native.rs`.
2022-11-13 21:56:52 -05:00
Joshua Nelson
34972c512b Distinguish --dry-run from the automatic dry run check 2022-11-12 15:37:58 -06:00
Michael Goulet
7124590dcc
Rollup merge of #104046 - RalfJung:run-miri-run, r=oli-obk
bootstrap: add support for running Miri on a file

This enables:
```
./x.py run src/tools/miri --stage 0 --args src/tools/miri/tests/pass/hello.rs
```
That can be super helpful for debugging.

Also avoid sharing the Miri sysroot dir with a system-wide (rustup-managed) installation of Miri.

Fixes https://github.com/rust-lang/rust/issues/76666
2022-11-09 21:53:35 -08:00
Ralf Jung
c199a39884 bootstrap: add support for running Miri on a file 2022-11-06 09:52:31 +01:00
Pietro Albini
6bc36d18ce
move browser opening logic in Builder
This allows open() to be called from other places in bootstrap (I need
this for Ferrocene), and it simplifies the callers by moving the
"was_invoked_explicitly" check into the function.
2022-11-03 11:42:51 +01:00
Jakob Degen
17395b45b1 Detect unused files in src/test/mir-opt and error on them in tidy. 2022-10-31 21:45:41 -07:00
bors
024207ab43 Auto merge of #102950 - oli-obk:check_miri, r=RalfJung
Enable `x.py check` for miri

Now that the miri subtree is working properly, let's add it to x.py check.

cc `@rust-lang/miri`
2022-10-31 23:03:39 +00:00
Oli Scherer
f882309f4d Add cargo miri to x.py check 2022-10-26 10:28:27 +00:00
Dylan DPC
f8723f9651
Rollup merge of #102239 - joshtriplett:style-guide, r=calebcartwright
Move style guide to rust-lang/rust

Per [RFC 3309](https://rust-lang.github.io/rfcs/3309-style-team.html).
2022-10-12 11:11:24 +05:30
fee1-dead
0cee03dfff
Rollup merge of #102178 - RalfJung:bootstrap-backtrace, r=Mark-Simulacrum
bootstrap: the backtrace feature is stable, no need to allow it any more
2022-09-26 13:09:42 +08:00
bors
3f83906b30 Auto merge of #98483 - dvtkrlbs:bootstrap-dist, r=jyn514
Distribute bootstrap in CI

This pre-compiles bootstrap from source and adds it to the existing `rust-dev` component. There are two main goals here:
1. Make it faster to build rust from source, both the first time and incrementally
2. Make it easier to add non-python entrypoints, since they can call out to bootstrap directly rather than having to figure out the right flags to pre-compile it. This second part is still in a bit of flux, see the tracking issue below for more information.

There are also several changes to make bootstrap able to run on a machine other than the one it was built (particularly around `config.src` and `config.out` detection). I (`@jyn514)` am slightly concerned these will regress unless tested - maybe we should add an automated test that runs bootstrap in a chroot or something? Unclear whether the effort is worth the test coverage.

Helps with https://github.com/rust-lang/rust/issues/94829.
2022-09-24 20:00:51 +00:00
Josh Triplett
39484ac3b0 Move style guide to rust-lang/rust
Per [RFC 3309](https://rust-lang.github.io/rfcs/3309-style-team.html).
2022-09-24 19:49:58 +01:00
Ralf Jung
c8d346e527 bootstrap: the backtrace feature is stable, no need to allow it any more 2022-09-23 11:07:16 +02:00
bors
c8e12cc8bf Auto merge of #101799 - LukeMathWalker:distribute-json-doc, r=jyn514
Distribute json doc

# Overview

We add a new component, `rust-json-docs`, to distribute the JSON version of rustdoc's output for public compiler crates (i.e. `std`, `alloc`, `proc_macro`, `core` and `test`).
As discussed in #101383, we do not bundle this up as part of the existing `rust-docs` component since `rustdoc`'s JSON format is still unstable.

# Open questions / Doubts

I tried my best, but I never touched this codebase and I couldn't find much documentation on how `dist` works - I pattern-matched existing code, which might have led to some non-sensical choices in the eyes of people more familiar with the codebase. In particular, I am not sure if my choice of adding a new config flag is appropriate or if the decision to build/not build the JSON docs is more appropriately gated by one of the existing flags.
Any suggestion is more than welcome.

Closes #101383
2022-09-19 02:13:54 +00:00
bors
5253b0a0a1 Auto merge of #101949 - matthiaskrgr:rollup-xu5cqnd, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #101093 (Initial version of 1.64 release notes)
 - #101713 (change AccessLevels representation)
 - #101821 (Bump Unicode to version 15.0.0, regenerate tables)
 - #101826 (Enforce "joined()" and "joined_with_noop()" test)
 - #101835 (Allow using vendoring when running bootstrap from outside the source root)
 - #101942 (Revert "Copy stage0 binaries into stage0-sysroot")
 - #101943 (rustdoc: remove unused CSS `.non-exhaustive { margin-bottom }`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-09-17 22:04:28 +00:00
Luca Palmieri
235dccef2b Add a new component, rust-json-docs, to distribute the JSON-formatted documentation for std crates in nightly toolchains.
We also add a new flag to `x doc`, `--json`, to render the JSON-formatted version alongside the HTML-formatted one.
2022-09-17 21:58:34 +02:00
Chris Wailes
d1291dc8b4 Improve handing of env vars during bootstrap process
This CL modifies the handing of env vars during the bootstrap process in
two ways:
1. Replaces '-' characters with '_' characters in target names to
   increase compatibility with different shells
2. Passes Stage0 snapshot compiler related env vars to early invocations
   of Cargo
2022-09-16 15:03:11 -07:00
Joshua Nelson
63b8d9b689 Allow using vendoring when running bootstrap from outside the current working directory 2022-09-14 22:02:13 -05:00
Tuna
282b1e4768 Distribute bootstrap in CI artifacts
- Add a new `bootstrap` component

Originally, we planned to combine this with the `rust-dev` component.
However, I realized that would force LLVM to be redownloaded whenever bootstrap is modified.
LLVM is a much larger download, so split this to get better caching.

- Build bootstrap for all tier 1 and 2 targets
2022-09-14 18:26:59 -05:00
Dezhi Wu
b1430fb7ca Fix a bunch of typo
This PR will fix some typos detected by [typos].

I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.

[typos]: https://github.com/crate-ci/typos
2022-08-31 18:24:55 +08:00
Eric Huss
4a7e2fbb7b Sunset RLS 2022-08-27 21:36:08 -07:00
est31
d32ff14b86 Add replace-version-placeholder tool
This tool is to be ran at specific points in the release process to replace
the version place holder made by stabilizations with the version number.
2022-08-27 17:39:11 +02:00
bors
450e99f937 Auto merge of #98051 - davidtwco:split-dwarf-stabilization, r=wesleywiser
session: stabilize split debuginfo on linux

Stabilize the `-Csplit-debuginfo` flag...

- ...on Linux for all values of the flag. Split DWARF has been implemented for a few months, hasn't had any bug reports and has had some promising benchmarking for incremental debug build performance.
- ..on other platforms for the default value. It doesn't make any sense that `-Csplit-debuginfo=packed` is unstable on Windows MSVC when that's the default behaviour, but keep the other values unstable.
2022-08-26 15:47:26 +00:00
David Wood
cf2c492ef8 session: stabilize split debuginfo on linux
Stabilize the `-Csplit-debuginfo` flag...

- ...on Linux for all values of the flag. Split DWARF has been
  implemented for a few months, hasn't had any bug reports and has had
  some promising benchmarking for incremental debug build performance.
- ..on other platforms for the default value. It doesn't make any sense
  that `-Csplit-debuginfo=packed` is unstable on Windows MSVC when
  that's the default behaviour, but keep the other values unstable.

Signed-off-by: David Wood <david.wood@huawei.com>
2022-08-18 15:19:40 +01:00
Alex Macleod
23abd599e7 bootstrap: don't apply -Ztls-model=initial-exec to proc macros 2022-08-16 21:22:02 +00:00
Amos Wenger
6ea7d82dcc Ship rust-analyzer-proc-macro-srv binary with dist::Rustc
This builds `src/tools/rust-analyzer/crates/proc-macro-srv-cli` and
ships it as part of Rustc's dist component. This allows rust-analyzer's
proc macro support to work on all rustc versions (stable, beta and
nightly) starting now.
2022-07-27 15:52:57 +02:00
Amos Wenger
4ea2f8e48f Add test step for rust-analyzer, run it by default 2022-07-24 10:37:47 +02:00
Amos Wenger
9cf485c3db Add check step, stuck on 'no output generated for libgoto_def-hash rmeta' 2022-07-24 10:37:36 +02:00
Amos Wenger
0f2266d3cc Convert rust-analyzer to 'in-tree' tool, pass 'in-rust-tree' feature by default 2022-07-24 10:37:29 +02:00
bors
03d488b48a Auto merge of #98843 - Urgau:check-cfg-stage0, r=Mark-Simulacrum
Enable check-cfg in stage0

Now that the bootstrap cargo supports `rustc-check-cfg` we can now enable it with `-Zcheck-cfg=output` and use it in `rustc_llvm` to unblock `--check-cfg` support in stage0.

r? `@Mark-Simulacrum`
2022-07-20 04:23:09 +00:00
Petr Sumbera
1e64a7b4f1 solaris: unbreak build on native platform
Fixes: #99208
2022-07-14 13:44:40 +02:00
Guillaume Gomez
0b3644e1f3
Rollup merge of #98848 - flip1995:clippy-book, r=jyn514
Build the Clippy book as part of x.py doc

r? ``@ehuss`` since you said you would be interested in helping moving this forward.

cc ``@jyn514`` as part of the bootstrap team.
2022-07-13 10:38:42 +02:00