Commit graph

4980 commits

Author SHA1 Message Date
Matthias Krüger
edea0d5179
Rollup merge of #115836 - RalfJung:rust_analyzer_settings.json, r=compiler-errors
update rust_analyzer_settings.json

This works around https://github.com/rust-lang/rust-analyzer/issues/15595, and avoids relying on the unspecified working directory of this command.
2023-09-16 23:20:41 +02:00
Michael Howell
7e86fd61e8 rustdoc: merge theme css into rustdoc.css
Based on
https://github.com/rust-lang/rust/pull/115812#issuecomment-1717960119

Having them in separate files used to make more sense, before the
migration to CSS variables made the theme files as small as they are
nowadays. This is already how docs.rs and mdBook do it.
2023-09-15 07:40:17 -07:00
Ralf Jung
9af39a69ac update SETTINGS_HASHES 2023-09-14 10:39:37 +02:00
Matthias Krüger
0a7451033b
Rollup merge of #115440 - RalfJung:bootstrap-fmt, r=Mark-Simulacrum
bootstrap/format: remove unnecessary paths.push

Cc https://github.com/rust-lang/rust/pull/106415#pullrequestreview-1606367042
I verified that this still formats all fileds when `get_modified_rs_files` is made to return an error.

r? ``@Nilstrieb``
2023-09-11 17:03:30 +02:00
bjorn3
238d8e3ec7 Allow testing cg_clif using ./x.py test 2023-09-10 15:56:56 +00:00
Guillaume Gomez
dcb465995d
Rollup merge of #115088 - LuuuXXX:issue-112009, r=albertlarsan68
Fix Step Skipping Caused by Using the `--exclude` Option

The original code was overreacting to the `--exclude` option,
eadf69a6c6/src/bootstrap/builder.rs (L257-L260)
For example:
When `x test --exclude alloc` or `x test --exclude library/alloc` is passed, the entire libraray test is skipped.

Related issues:
https://github.com/rust-lang/rust/issues/112009
2023-09-08 14:10:50 +02:00
LuuuX
45abd8caf2 Fix Issue 112009
modify fuction clond() -> cloned()

optimize the code

Handle the problem that the pathset is empty and modify the judgment of the builder::tests::test_exclude_kind

Delete unnecessary judegment conditions

skip test for library/std duo to OOM in benches as library/alloc

Add FIXME for WASM32
2023-09-08 17:10:32 +08:00
Goldstein
e0593f30fb
fix log formatting in bootstrap 2023-09-06 10:14:09 +03:00
bors
ab45885dec Auto merge of #114843 - Zalathar:test-coverage-map, r=oli-obk
coverage: Explicitly test the coverage maps produced by codegen/LLVM

Our existing coverage tests verify the output of end-to-end coverage reports, but we don't have any way to test the specific mapping information (code regions and their associated counters) that are emitted by `rustc_codegen_llvm` and LLVM. That makes it harder to to be confident in changes that would modify those mappings (whether deliberately or accidentally).

This PR addresses that by adding a new `coverage-map` test suite that does the following:
- Compiles test files to LLVM IR assembly (`.ll`)
- Feeds those IR files to a custom tool (`src/tools/coverage-dump`) that extracts and decodes coverage mappings, and prints them in a more human-readable format
- Checks the output of that tool against known-good snapshots

---

I recommend excluding the last commit while reviewing the main changes, because that last commit is just ~40 test files copied over from `tests/run-coverage`, plus their blessed coverage-map snapshots and a readme file. Those snapshots aren't really intended to be checked by hand; they're mostly there to increase the chances that an unintended change to coverage maps will be observable (even if it requires relatively specific circumstances to manifest).
2023-09-05 15:30:59 +00:00
bors
b402182d4e Auto merge of #115544 - onur-ozkan:patch-binaries-for-nix-configure, r=albertlarsan68
support `{disable,enable}-patch-binaries-for-nix` in configure.py

Provide the control of `patch-binaries-for-nix` flag from configure.py without requiring manual editing.

It's useful when:

bf1e3f31f9/src/bootstrap/bootstrap.py (L661-L667)
2023-09-05 11:52:21 +00:00
onur-ozkan
d454cab405 support {disable,enable}-patch-binaries-for-nix in configure.py
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-05 13:19:08 +03:00
Zalathar
004db4728b Add test suite coverage-map to test coverage mappings emitted by LLVM
We compile each test file to LLVM IR assembly, and then pass that IR to a
dedicated program that can decode LLVM coverage maps and print them in a more
human-readable format. We can then check that output against known-good
snapshots.

This test suite has some advantages over the existing `run-coverage` tests:

- We can test coverage instrumentation without needing to run target binaries.

- We can observe subtle improvements/regressions in the underlying coverage
mappings that don't make a visible difference to coverage reports.
2023-09-05 11:55:17 +10:00
Zalathar
1367104cb2 Add tool src/tools/coverage-dump for use by some new coverage tests 2023-09-05 11:11:48 +10:00
bors
49523e3360 Auto merge of #115448 - onur-ozkan:optimize-bootstrap-dep-tree, r=albertlarsan68
optimize bootstrap dep tree

bumped `pretty_assertations` in favor of removing duplicated `syn`, and bumped `hermit-abi` from the yanked version.
2023-09-03 12:55:10 +00:00
bors
9f5fc1bd44 Auto merge of #115471 - RalfJung:skipping-sanity, r=onur-ozkan
also skip musl checks when BOOTSTRAP_SKIP_TARGET_SANITY is set

Currently I cannot test musl targets in Miri via x.py; this PR fixes that.
2023-09-02 20:14:37 +00:00
Ralf Jung
9cae47ee87 also skip musl checks when BOOTSTRAP_SKIP_TARGET_SANITY is set 2023-09-02 10:25:06 +02:00
onur-ozkan
2a5a6bcb82 bump hermit-abi from yanked version(0.3.1) to 0.3.2
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-01 21:04:23 +03:00
onur-ozkan
cfd7ab3a3e bump pretty_assertions to 1.4
Removes the duplicated dependency(syn 1.0.102) from bootstrap dependency tree

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-01 20:39:41 +03:00
Ralf Jung
b8e0e797e7 bootstrap/format: remove unnecessary paths.push 2023-09-01 17:05:10 +02:00
Ralf Jung
270f777a30 bootstrap: use git merge-base for LLVM CI download logic 2023-08-31 15:45:15 +02:00
bors
008c21c977 Auto merge of #115323 - onur-ozkan:curl-download-checksum-fix, r=Mark-Simulacrum
avoid stdout redirection on `curl` executions

Avoid redirecting the curl output directly to the stdout. This alteration affects the integrity of the file during the retry process, as it also redirects the logs from the retries. Consequently, this leads to the bootstrap process failing because of an invalid checksum.

For more information, see the [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/checksum.20errors)

Fixes #115275
2023-08-31 02:19:55 +00:00
onur-ozkan
4ea90af70f avoid stdout redirection on curl executions
Avoid redirecting the curl output directly to the stdout. This alteration
affects the integrity of the file during the retry process, as it also redirects
the logs from the retries. Consequently, this leads to the bootstrap process failing
because of an invalid checksum.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-08-28 20:16:36 +03:00
Guillaume Gomez
1095175b51
Rollup merge of #115261 - onur-ozkan:replace-old-username, r=Mark-Simulacrum
replace outdated github username 'ozkanonur'
2023-08-27 20:12:48 +02:00
Matthias Krüger
ab1123b697
Rollup merge of #115111 - ozkanonur:check-rust-analyzer-if-enabled, r=Mark-Simulacrum
compile rust-anaylzer with `x check` if it's enabled

By default, `x check` doesn't compile the rust-analyzer. But when it's enabled in the config's tools section, there's no reason not to do it. This change allows `x check` to compile rust-analyzer if it's enabled in config's tools section.

Helps to #115031
2023-08-27 09:45:19 +02:00
ozkanonur
879e106460 replace outdated github username 'ozkanonur'
Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-08-27 06:26:02 +03:00
Weihang Lo
4369e24875
Rollup merge of #115117 - pnkfelix:detect-and-report-nix-shell, r=albertlarsan68
Detect and report nix shell

Better diagnostics for people using nix subshell on non-NixOS.

1. Turned patch-binaries-for-nix from a boolean into a ternary flag: true, false, and unset.

2. When patch-binaries-for-nix is unset, we continue with the existing NixOS detection heuristic (look for nixos in /etc/os-release, if present), but if we are not atop NixOS, then issue a note if we see the IN_NIX_SHELL environment variable telling the user to consider setting patch-binaries-for-nix explicitly.

Fix #115073
2023-08-24 22:53:58 +01:00
Felix S. Klock II
ec2c95e093 Accommodate tidy.
In addition: Incorporated some review feedback (namely, removed a useless
initial assignment to True that was never read), and unified code a bit more
between bootstrap.py and download.rs (by using the same variable name for the
same concept).
2023-08-23 23:29:34 -04:00
Guillaume Gomez
b88610fdb7
Rollup merge of #115109 - cuviper:yaml-404, r=albertlarsan68
Skip ExpandYamlAnchors when the config is missing

The dist-src tarball does not include `.github/` at all, so we can't
check whether it needs to be regenerated.
2023-08-23 17:46:35 +02:00
Guillaume Gomez
b3949c0174
Rollup merge of #115103 - djkoloski:disable_bootstrap_version_check, r=compiler-errors
Disable bootstrap rustc version check

Mitigates #115065
2023-08-23 17:46:34 +02:00
Felix S. Klock II
3c6f4cc743 Better diagnostics for people using nix subshell on non-NixOS.
1. Turned patch-binaries-for-nix from a boolean into a ternary flag: true,
   false, and unset.

2. When patch-binaries-for-nix is unset, we continue with the existing NixOS
   detection heuristic (look for nixos in /etc/os-release, if present), but if
   we are not atop NixOS, then issue a note if we see the IN_NIX_SHELL
   environment variable telling the user to consider setting
   patch-binaries-for-nix explicitly.
2023-08-22 17:45:54 -04:00
Felix S. Klock II
4332e8417d drive-by fix to Python doc comment. 2023-08-22 16:16:44 -04:00
ozkanonur
76c2316ff3 compile rust-anaylzer with x check if it's enabled
By default, `x check` doesn't compile the rust-analyzer. But when it's enabled in the config's
tools section, there's no reason not to do it. This change allows `x check` to compile rust-analyzer
if it's enabled in config's tools section.

Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-08-22 22:08:04 +03:00
Josh Stone
35187c7e64 Skip ExpandYamlAnchors when the config is missing
The dist-src tarball does not include `.github/` at all, so we can't
check whether it needs to be regenerated.
2023-08-22 10:42:12 -07:00
Michael Goulet
634ab606a4
Rollup merge of #115090 - eopb:dont-check-lib-bootstrap, r=ozkanonur
Always use `os-release` rather than `/lib` to detect `NixOS` (bootstrap)

[Two users over on zulip](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Bootstrapping.20on.20NixOS) bumped into issues where NixOS wasn't being properly detected.

I believe this was caused by the presence of `/lib` on their machines. `/lib` is not standard on NixOS but can still be created by users or scripts.

We are already checking `/etc/os-release`. The presence of `ID=nixos` in it's output should be trustworthy and we shouldn't then go on to also check for `/lib`.
2023-08-22 09:00:50 -07:00
Michael Goulet
e9897c3a71
Rollup merge of #115011 - compiler-errors:warn-on-elided-assoc-ct-lt, r=cjgillot
Warn on elided lifetimes in associated constants (`ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT`)

Elided lifetimes in associated constants (in impls) erroneously resolve to fresh lifetime parameters on the impl since #97313. This is not correct behavior (see #38831).

I originally opened #114716 to fix this, but given the time that has passed, the crater results seem pretty bad: https://github.com/rust-lang/rust/pull/114716#issuecomment-1682091952

This PR alternatively implements a lint against this behavior, and I'm hoping to bump this to deny in a few versions.
2023-08-22 09:00:49 -07:00
David Koloski
6aef5b331f Disable bootstrap rustc version check
Mitigates #115065
2023-08-22 15:33:10 +00:00
Ethan Brierley
0e070aa548
Always use os-release rather than /lib to detect NixOS
[Two users over on zulip](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Bootstrapping.20on.20NixOS) bumped into issues where NixOS wasn't being properly detected.

I believe this was caused by the presence of `/lib` on their machines. `/lib` is not standard on NixOS but can still be created by users or scripts.

We are already checking `/etc/os-release`. The presence of `ID=nixos` in it's output should be trustworthy and we shouldn't then go on to also check for `/lib`.
2023-08-22 11:06:43 +01:00
Ralf Jung
28de139d35 bootstrap/miri: respect config_locked_deps 2023-08-22 08:54:51 +02:00
Michael Goulet
b1c609e2a6 Fix elided lifetimes in rust-lang/rust 2023-08-21 23:53:09 +00:00
dirreke
74817b7053 Upgrade Object and related deps 2023-08-14 23:05:45 +08:00
Dirreck
712f448168 Update llvm.rs 2023-08-14 23:02:37 +08:00
Dirreke
184a9afffb add details for csky-unknown-linux-gnuabiv2 and add docs 2023-08-14 23:02:37 +08:00
Dirreke
d16409fe22 add a csky-unknown-linux-gnuabiv2 target 2023-08-14 23:02:36 +08:00
bors
1b198b3a19 Auto merge of #114786 - GuillaumeGomez:rollup-0cos5gn, r=GuillaumeGomez
Rollup of 5 pull requests

Successful merges:

 - #94667 (Add `Iterator::map_windows`)
 - #114069 (Allow using external builds of the compiler-rt profile lib)
 - #114354 (coverage: Store BCB counter info externally, not directly in the BCB graph)
 - #114625 (CI: use smaller machines in PR runs)
 - #114777 (Migrate GUI colors test to original CSS color format)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-08-13 20:22:36 +00:00
Guillaume Gomez
99144c3f04
Rollup merge of #114069 - cuviper:profiler-path, r=Mark-Simulacrum
Allow using external builds of the compiler-rt profile lib

This changes the bootstrap config `target.*.profiler` from a plain bool
to also allow a string, which will be used as a path to the pre-built
profiling runtime for that target. Then `profiler_builtins/build.rs`
reads that in a `LLVM_PROFILER_RT_LIB` environment variable.
2023-08-13 21:00:45 +02:00
bors
ebbd7154a7 Auto merge of #114480 - ozkanonur:fix-stage0-compiler-llvm, r=Mark-Simulacrum
copy the correct version of LLVM into the stage0 sysroot

In some cases(see https://github.com/rust-lang/rust/issues/109314), when the stage0
compiler relies on more recent version of LLVM than the beta compiler, it may not
be able to locate the correct LLVM in the sysroot. This situation typically occurs
when we upgrade LLVM version while the beta compiler continues to use an older version.

Fixes #109314
2023-08-13 18:36:44 +00:00
bors
faee636ebf Auto merge of #114697 - matthiaskrgr:rollup-ywooy8x, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #114278 (better error handling for `rust.codegen-backends` on deserialization)
 - #114674 (Add clubby789 to `users_on_vacation`)
 - #114678 (`Expr::can_have_side_effects()` is incorrect for struct/enum/array/tuple literals)
 - #114681 (doc (unstable-book): fix a typo)
 - #114684 (Remove redundant calls to `resolve_vars_with_obligations`)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-08-10 15:46:39 +00:00
Matthias Krüger
b9648d4c62
Rollup merge of #114278 - ozkanonur:validate-codegen-backend-config, r=clubby789
better error handling for `rust.codegen-backends` on deserialization

Fixes #109315
2023-08-10 15:08:52 +02:00
bors
9fa6bdd764 Auto merge of #112482 - tgross35:ci-non-rust-linters, r=pietroalbini
Add support for tidy linting via external tools for non-rust files

This change adds the flag `--check-extras` to `tidy`. It accepts a comma separated list of any of the options:

* py (test everything applicable for python files)
* py:lint (lint python files using `ruff`)
* py:fmt (check formatting for python files using `black`)
* shell or shell:lint (lint shell files using `shellcheck`)

Specific files to check can also be specified via positional args. Examples:

* `./x test tidy --check-extras=shell,py`
* `./x test tidy --check-extras=py:fmt -- src/bootstrap/bootstrap.py`
* `./x test tidy --check-extras=shell -- src/ci/*.sh`
* Python formatting can be applied with bless: `./x test tidy --ckeck-extras=py:fmt --bless`

`ruff` and `black` need to be installed via pip; this tool manages these within a virtual environment at `build/venv`. `shellcheck` needs to be installed on the system already.

---

This PR doesn't fix any of the errors that show up (I will likely go through those at some point) and it doesn't enforce anything new in CI. Relevant zulip discussion: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/Other.20linters.20in.20CI
2023-08-10 13:07:18 +00:00
bors
abc910be6f Auto merge of #114001 - meysam81:issue-111894-fix, r=clubby789
fix(bootstrap): rename exclude flag to skip 🐛

fixes #111894
2023-08-10 04:36:51 +00:00