Commit graph

298901 commits

Author SHA1 Message Date
Lukas Wirth
8632b52721
Merge pull request #19670 from Veykril/push-owsrlsmlzttm
minor: Mark `incorrect_generics_len` diagnostic as experimental
2025-04-23 10:41:49 +00:00
sayantn
e61df091c1 Remove workarounds for llvm/llvm-project#98306 2025-04-23 10:40:09 +00:00
sayantn
444c636fdb Re-enable armv7-unknown-linux-gnueabihf 2025-04-23 10:40:09 +00:00
Luca Barbato
5fb4fabbfc Add power9 and power8 target-features 2025-04-23 10:38:58 +00:00
Folkert de Vries
e0b634ecae reset the host linker
The host's linker is used to compile build.rs files (e.g. for libc).
When the user configures a custom liker (e.g. mold) in their own
.cargo/config.toml or ~/.cargo/config.toml, that linker will likely not
work when running run-docker.sh. So, we now reset it to `cc`, which
should always be installed in the docker container.
2025-04-23 10:38:19 +00:00
Folkert de Vries
a4ddd6c5ff run cargo generate-lockfile before running docker 2025-04-23 10:38:19 +00:00
Folkert de Vries
f77386cf2b run powerpc64le assert_instr on CI 2025-04-23 10:38:19 +00:00
Lukas Wirth
677505f1fa Mark incorrect_generics_len diagnostic as experimental 2025-04-23 12:28:47 +02:00
Nicholas Nethercote
7fe6bc57f5 Use clone to clone DelimArgs in two places. 2025-04-23 20:10:49 +10:00
Jieyou Xu
f0399b8ee9
triagebot: label minicore changes w/ A-test-infra-minicore
And ping jieyouxu on changes.
2025-04-23 17:33:19 +08:00
Nicholas Nethercote
d88056c35e Derive HashStable for DelimArgs. 2025-04-23 19:26:54 +10:00
Jieyou Xu
f2ab763c20
rustc-dev-guide: document that //@ add-core-stubs imply -Cforce-unwind-tables=yes 2025-04-23 17:18:20 +08:00
Jieyou Xu
c79f15687a
tests: account for CFI directives in tests/assembly/x86-return-float.rs 2025-04-23 17:11:49 +08:00
Jieyou Xu
e3296cdcab
compiletest: //@ add-core-stubs implies -Cforce-unwind-tables=yes
To preserve CFI directives in assembly tests.
2025-04-23 17:11:07 +08:00
Folkert de Vries
a4630f7a86
fix ICE in attribute name printing 2025-04-23 11:08:14 +02:00
Jakub Beránek
d4011ae043 Download GCC from CI on test builders 2025-04-23 11:04:56 +02:00
Jakub Beránek
3d29e842a7 Fix download-ci-gcc key in bootstrap.example.toml 2025-04-23 11:04:39 +02:00
Philipp Krones
dd5948ccc2 Clippy: Fix doc issue 2025-04-23 10:51:22 +02:00
Philipp Krones
e8737e3530
Clippy: Fix doc issue 2025-04-23 10:51:22 +02:00
Jakub Beránek
91da45acd3 Remove git_repository from the stage0 file 2025-04-23 10:41:20 +02:00
Jakub Beránek
a4b9a1b4da Remove git_repository field from GitConfig
It is no longer needed after a recent refactoring.
2025-04-23 10:41:20 +02:00
Trevor Gross
1dd39e27f0 libm-macros: Start tracking which functions are public
It would be nice to reuse some of the macro structure for internal
functions, like `rem_pio2`. To facilitate this, add a `public` field and
make it available in the macro's API.
2025-04-23 03:48:02 -04:00
Gabriel Bjørnager Jensen
0296f05ce5 Make algebraic intrinsics into 'const fn' items; Make algebraic functions of 'f16', 'f32', 'f64', and 'f128' into 'const fn' items; 2025-04-23 08:54:52 +02:00
Ralf Jung
288931b4b2
Merge pull request #4288 from rust-lang/rustup-2025-04-23
Automatic Rustup
2025-04-23 06:21:42 +00:00
The Miri Cronjob Bot
f356f2f203 Merge from rustc 2025-04-23 05:01:15 +00:00
The Miri Cronjob Bot
39ddb42627 Preparing for merge from rustc 2025-04-23 04:54:12 +00:00
Makai
5b390cdc58 Make SmirInterface pub(crate) and rename Context to SmirContext
Co-authored-by: Celina G. Val <celinval@amazon.com>
2025-04-23 12:28:14 +08:00
Boxy
c6e6ac9575 Module docs 2025-04-23 04:14:35 +01:00
Boxy
0a76ef816f Rename compute_x methods 2025-04-23 04:14:30 +01:00
bors
645d0ad2a4 Auto merge of #138591 - Kobzol:git-ci, r=Mark-Simulacrum
Refactor git change detection in bootstrap

While working on https://github.com/rust-lang/rust/pull/138395, I finally found the courage to delve into the insides of git path change detection in bootstrap, which is used (amongst other things) to detect if we should rebuilt od download `[llvm|rustc|gcc]`. I found it a bit hard to understand, and given that this code was historically quite fragile, I thought that it would be better to rebuild it from scratch.

The previous approach had a bunch of limitations:
- It separated the computation of "are there local changes?" and "what upstream SHA should we use?" even though these two things are intertwined.
- It used hacks to work around what happens on CI.
- It had special cases for CI scattered throughout the codebase, rather than centralized in one place.
- It wasn't documented enough and didn't have tests for the git behavior.

The current approach should hopefully resolve all of that. I implemented a single entrypoint called `check_path_modifications` (naming bikeshed pending, half of the time I spend on this PR was thinking about names, as it's quite tricky here..) that explicitly receives a mode of operation (in CI or outside CI), and accordingly figures out that upstream SHA that we should use for downloading artifacts and it also figures out if there are any local changes. Users of this function can then use this unified output to implement `download-ci-X` and other functionality. Notably, this change detection no longer uses `git merge-base`, which makes it easier to use and doesn't require setting up remotes.

I also added a bunch of integration tests that literally spawn a git repository on disk and then check that the function can deal with various situations (PR CI, auto/try CI, local builds).

After I built this inner layer, I used it for downloading GCC, LLVM and rustc. The latter two (and especially rustc) were using the `last_modified_commit` function before, but in all cases but one this function was actually only used to check if there are any local changes, which was IMO confusing. The LLVM handling would deserve a bit of refactoring, but that's a larger change that can be done as a follow-up.

I hope that the implementation is now clear and easy to understand, so that in combination with the tests we can have more confidence that it does what we want. I tried to include a lot of documentation in the code, so I won't be repeating the actual implementation details here, if there are any questions, I'll add the answers to the documentation too :)

The new approach explicitly supports three scenarios:
- Running on PR CI, where we have one upstream bors parent commit and one PR merge commit made by GitHub.
- Running on try/auto CI, where we have one upstream bors parent commit and one PR merge commit made by bors.
- Running locally, where we assume that we have at least one upstream bors parent commit in our git history.

I removed the handling of upstreams on CI, as I think that it shouldn't be needed and I considered it to be a hack. However, it's possible that there are other use-cases that I haven't considered, so I want to ask around if people have other situations than the three use-cases described above. If there are other such use-cases, I would like to include them in the new centralized implementation and add them to the git test suite, rather than going back to the old ways :)

In particular, the code before relied on `git merge-base`, but I don't see why we can't just lookup the most recent bors commit and assume that is a merge commit that is also upstream? I might be running into Chesterton's Fence here :)

CC `@pietroalbini` To make sure that this won't break downstream users of Rust's CI.

Best reviewed commit by commit.

Companion PRs:
- For testing beta: https://github.com/rust-lang/rust/pull/138597

r? `@onur-ozkan`

Fixes: https://github.com/rust-lang/rust/issues/101907

try-job: x86_64-gnu-aux
try-job: aarch64-gnu
try-job: dist-x86_64-apple
2025-04-23 03:10:04 +00:00
Amy Kwan
fdf2c47f83 [AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test
Dynamic libraries on AIX have the ".a" extension. The c-link-to-rust-dylib
run-make test checks for the extension explicitly, so the extension for AIX
is also added to accommodate the test case on AIX.
2025-04-22 22:55:19 -04:00
Zalathar
bf4b2a94f7 compiletest: Use the new non-libtest executor by default
Currently the new executor can be explicitly disabled by passing the `-N` flag
to compiletest (e.g. `./x test ui -- -N`), but eventually that flag will be
removed, alongside the removal of the libtest dependency.
2025-04-23 12:48:05 +10:00
Berrysoft
17664d1f02 Update doc of cygwin target 2025-04-23 10:47:10 +08:00
Nicholas Nethercote
51088fdcee Remove synstructure::Structure::underscore_const calls.
The `synstructure` docs say "This method is a no-op, underscore consts
are used by default now." The behaviour change occurred going from
`synstructure` version 0.13.0 to 0.13.1.
2025-04-23 11:14:27 +10:00
Chris Denton
ecb9775438
Rollup merge of #140175 - Kivooeo:new-fix-one, r=compiler-errors
`rc""` more clear error message

here is small fix that provides better error message when user is trying to use `rc""` the same way it was made for `rb""`

example of it's work

```rust
  |
2 |     rc"\n";
  |     ^^ unknown prefix
  |
  = note: prefixed identifiers and literals are reserved since Rust 2021
help: use `cr` for a raw C-string
  |
2 -     rc"\n";
2 +     cr"\n";
  |
```

**related issue**
fixes #140170

cc `@cyrgani` (issue author)
2025-04-23 00:43:08 +00:00
Chris Denton
45b5d8bb5a
Rollup merge of #140173 - m-ou-se:triagebot-config, r=ChrisDenton
Ping Mara when touching format_args!() internals.
2025-04-23 00:43:08 +00:00
Chris Denton
ed4e167c4a
Rollup merge of #140163 - thaliaarchi:pathbuf-validate-extension, r=ChrisDenton
Validate extension in `PathBuf::add_extension`

The extension is validated in `PathBuf::set_extension`, but not `add_extension`. Fix that. Check for both `/` and `\` path separators on Windows, even when the path is verbatim, since this is logically like `PathBuf::push` which normalizes separators (i.e., keeping the current behavior).

`PathBuf::add_extension` is tracked in #127292.

r? `@ChrisDenton`
2025-04-23 00:43:07 +00:00
Chris Denton
b03267fc11
Rollup merge of #140160 - oli-obk:lang-items, r=jieyouxu
Use `is_lang_item` and `as_lang_item` instead of handrolling their logic

Various cleanups and deduplication. Most notably `if is_lang_item(foo, bar) {} else if is_lang_item...` chains are turned into matches. No behaviour changes intended beyond turning ICEs into fatal "lang item not found" errors
2025-04-23 00:43:07 +00:00
Chris Denton
090f6a9629
Rollup merge of #140147 - xizheyin:issue-138401-1, r=compiler-errors
Clean: rename `open_braces` to `open_delimiters` in lexer and move `make_unclosed_delims_error` into `diagnostics.rs`.

Clean code prepared for resolving #138401. To avoid having too many extraneous changes in one PR, I cleaned up some of the naming and method placement in lexer in this PR.
1. For the make_unclosed_delims_error function defined in mod.rs is only used in lexer, so moved into lexer, which enhances encapsulation.
2. For open_braces in TokenTreeDiagInfo the naming is not canonical, as Brace refers to `{...} ` and this variable can store all kinds of different Delimiters. so I named it open_delimiters.

r? `@chenyukang`
2025-04-23 00:43:06 +00:00
Chris Denton
538ae9979b
Rollup merge of #140146 - tgross35:update-builtins, r=tgross35
Update `compiler_builtins` to 0.1.156

Includes the following changes:

* Provide `abort` on AVR [1]

[1]: https://github.com/rust-lang/compiler-builtins/pull/830
2025-04-23 00:43:05 +00:00
Chris Denton
1b9e11ed3b
Rollup merge of #140142 - nnethercote:some-graphviz-tweaks-2, r=compiler-errors
Some more graphviz tweaks

A follow-up to #132346.

r? `@davidtwco`
2025-04-23 00:43:05 +00:00
Tyler Mandry
09e36ce10d [compiletest] Parallelize test discovery
Certain filesystems for large monorepos are slow to service individual
read requests, but can service many in parallel. This change brings down
the time to run a single cached test on one of those filesystems from
40s to about 8s.
2025-04-22 23:04:48 +00:00
Manish Goregaokar
aa27ae3fee
remove non-existent pathspec from pre-commit hook (#14671)
it was added back in 6035e050e8, at which
time there were some files matching it, e.g.

6035e050e8/clippy_lints/src/lib.deprecated.rs

fixes rust-lang/rust-clippy#14670

changelog: none
2025-04-22 22:53:31 +00:00
Ada Alakbarova
2304a9cb76
remove non-existent pathspec from pre-commit hook
it was added back in 6035e050e8, at which
time there were some files matching it, e.g.
6035e050e8/clippy_lints/src/lib.deprecated.rs
2025-04-23 00:47:43 +02:00
Kivooeo
44b19e5fe7 rc and cr more clear error message 2025-04-23 03:15:43 +05:00
Alex Crichton
19e44d463b Don't warn about v128 in wasm ABI transition
This has other warnings if necessary and doesn't need extra warnings
from this FCW.

cc #138762
2025-04-22 15:11:23 -07:00
bors
1a5bf12f65 Auto merge of #140165 - ChrisDenton:rollup-on2dpr5, r=ChrisDenton
Rollup of 8 pull requests

Successful merges:

 - #139617 (Use posix_spawn on cygwin)
 - #139921 (improve diagnostic for raw pointer field access with ->)
 - #140031 (compiletest: Fix deadline bugs in new executor)
 - #140072 (handle function alignment in miri)
 - #140104 (Fix auto diff failing on inherent impl blocks)
 - #140124 (Update books)
 - #140144 (Handle another negated literal in `eat_token_lit`.)
 - #140149 (test_nan: ensure the NAN contant is quiet)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-22 22:09:56 +00:00
Ada Alakbarova
bf713a0e78
style: pull one more if into the let-chain 2025-04-22 23:51:42 +02:00
Trevor Gross
b6db36061e musl: Update submodule
Update the musl submodule to c47ad25ea3 ("iconv: harden UTF-8 output
code path against input decoder bugs").
2025-04-22 17:09:18 -04:00
Mara Bos
634baf4a46 Ping Mara when touching format_args!() internals. 2025-04-22 23:01:42 +02:00