1
Fork 0
Commit graph

286548 commits

Author SHA1 Message Date
Amanieu d'Antras
5d90ccb0fa Move select_unpredictable to the hint module 2025-04-13 01:34:25 +01:00
Folkert de Vries
f472cc8cd4
error on unsafe attributes in pre-2024 editions
the `no_mangle`, `link_section` and `export_name` attributes are exceptions, and can still be used without an unsafe in earlier editions
2025-04-13 01:22:59 +02:00
jackh726
accae530ce Move FlagComputation, PatternKind, and TypeWalker to rustc_type_ir 2025-04-12 22:46:11 +00:00
Chris Denton
739bf9b753
Rollup merge of #139713 - GenYuLi:master, r=compiler-errors
Fix typo in documentation

Correct the misspelling of "indentifier" to "identifier" in `library/alloc/src/fmt.rs`.
2025-04-12 21:05:31 +00:00
Chris Denton
0e50fda4b6
Rollup merge of #139705 - jieyouxu:tests-precursor, r=compiler-errors
Removed outdated ui test suite README, give reasons for disabled tests

### Changes

- `tests/ui/README.md` is very outdated, test suite docs should consistently live in rustc-dev-guide.
- Add reasons for `//@ ignore-test` tests that don't have one.[^query]

This is a precursor change to make follow-up changes easier (possibly more specialized directives or converting some auxiliaries into the canonical `auxiliary/` form).

[^query]: searched via `rg --no-ignore -F -e "ignore-test" tests/`.
2025-04-12 21:05:31 +00:00
Chris Denton
824ef7fd64
Rollup merge of #139701 - Rudxain:doc-pow2, r=tgross35
docs: clarify uint exponent for `is_power_of_two`

This makes the documentation more explicit for that method. I know this might seem "nit-picky", but `k` could be interpreted as "any Real or Complex number". A trivial example would be $`3 = 2^{log_2(3)}`$ which "proves that three is a power of two" (according to that vague definition).

BTW, when I read the implementation, I was surprised to see that `1` is considered a power of 2 despite being odd (it does make sense in some contexts, but still not intuitive). So I wrote "positive int" before correcting it to "unsigned int"
2025-04-12 21:05:30 +00:00
Chris Denton
e0f92bb53c
Rollup merge of #139688 - rust-lang:notriddle/io-result-unbox, r=GuillaumeGomez
rustdoc-search: add unbox flag to Result aliases

Fixes #139665
2025-04-12 21:05:30 +00:00
Chris Denton
096369d97f
Rollup merge of #139382 - ChrisDenton:windows-bindgen-0-61, r=Mark-Simulacrum
Update windows-bindgen to 0.61.0

This updates the automatically generate Windows API bindings. Not much changed this time:

- There's now `Default` implementations for many types, which is convenient. It does however conflict with one place where we implemented a non-zeroed default (to set the length field). But that's no big problem.
- The `--no-core` flag has been renamed to `--no-deps` to more accurately reflect its meaning (i.e. generate all necessary code without requiring additional dependencies).
- The `--link` flag allows us to set the location of the `link!` macro. Currently we use our workspace's `windows_targets` crate but we could move it into library/std using `--link`. However, this would need to be co-ordinated with the `backtrace` crate (which is a separate crate but included in std using `#[path]`). So I've left that for another time.
2025-04-12 21:05:29 +00:00
Chris Denton
0149a43f8a
Rollup merge of #139315 - clubby789:deranged-bump, r=Mark-Simulacrum
Switch `time` to `jiff` for time formatting in ICE dumps

Due to https://github.com/jhpratt/deranged/issues/21, Clippy, R-A and Miri currently fail to build if we bump to 0.4.1, pulled in via `time`. ~~Add some specific type annotations so we don't have to just pin it.~~

~~I can open 3 PRs to the tool repos if preferred, but I thought it might be easier to do this than to pin the transitive dep and go back and remove it once the changes are synced back.~~
2025-04-12 21:05:28 +00:00
Chris Denton
0ea345a3c3
Rollup merge of #139276 - tgross35:enable-f16-without-neon, r=Mark-Simulacrum
Revert "Disable `f16` on Aarch64 without `neon`"

The LLVM issue [1] was resolved and the fix was synced to rust-lang/rust in [2].

This reverts commit c51b229140.

[1]: https://github.com/llvm/llvm-project/issues/129394
[2]: https://github.com/rust-lang/rust/pull/138695

try-job: aarch64-gnu
try-job: aarch64-gnu-debug
try-job: armhf-gnu
try-job: dist-various-1
2025-04-12 21:05:28 +00:00
Chris Denton
2722e82653
Rollup merge of #139163 - scottmcm:stabilize-exact_div, r=RalfJung
indirect-const-stabilize the `exact_div` intrinsic

See https://github.com/rust-lang/rust/issues/74985#issuecomment-2759179184
2025-04-12 21:05:27 +00:00
bors
ae06b79dcb Auto merge of #139640 - Zoxc:big-file-encoder, r=saethlin
Bump `FileEncoder` buffer size to 64 kB

This helps avoid file system overhead on Windows. The improvement are probably reduced a bit on other platforms. Making the buffer size even larger does further improve performance, but that increase memory use further.

<table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th><td align="right">Physical Memory</td><td align="right">Physical Memory</td><td align="right">%</th><td align="right">Committed Memory</td><td align="right">Committed Memory</td><td align="right">%</th></tr><tr><td>🟣 <b>clap</b>:check:unchanged</td><td align="right">0.3336s</td><td align="right">0.3242s</td><td align="right">💚  -2.82%</td><td align="right">96.97 MiB</td><td align="right">97.12 MiB</td><td align="right"> 0.16%</td><td align="right">167.87 MiB</td><td align="right">167.97 MiB</td><td align="right"> 0.06%</td></tr><tr><td>🟣 <b>hyper</b>:check:unchanged</td><td align="right">0.1331s</td><td align="right">0.1307s</td><td align="right">💚  -1.79%</td><td align="right">61.92 MiB</td><td align="right">62.05 MiB</td><td align="right"> 0.20%</td><td align="right">124.66 MiB</td><td align="right">124.74 MiB</td><td align="right"> 0.06%</td></tr><tr><td>🟣 <b>regex</b>:check:unchanged</td><td align="right">0.2485s</td><td align="right">0.2399s</td><td align="right">💚  -3.45%</td><td align="right">78.32 MiB</td><td align="right">78.55 MiB</td><td align="right"> 0.29%</td><td align="right">145.22 MiB</td><td align="right">145.45 MiB</td><td align="right"> 0.15%</td></tr><tr><td>🟣 <b>syn</b>:check:unchanged</td><td align="right">0.5321s</td><td align="right">0.5175s</td><td align="right">💚  -2.76%</td><td align="right">118.58 MiB</td><td align="right">118.77 MiB</td><td align="right"> 0.16%</td><td align="right">192.99 MiB</td><td align="right">193.17 MiB</td><td align="right"> 0.09%</td></tr><tr><td>Total</td><td align="right">1.2474s</td><td align="right">1.2123s</td><td align="right">💚  -2.81%</td><td align="right">355.78 MiB</td><td align="right">356.49 MiB</td><td align="right"> 0.20%</td><td align="right">630.74 MiB</td><td align="right">631.32 MiB</td><td align="right"> 0.09%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9729s</td><td align="right">💚  -2.71%</td><td align="right">1 byte</td><td align="right">1.00 bytes</td><td align="right"> 0.20%</td><td align="right">1 byte</td><td align="right">1.00 bytes</td><td align="right"> 0.09%</td></tr></table>
2025-04-12 20:58:04 +00:00
Michael Goulet
bc94c38d98 Proactively update coroutine drop shim's phase to account for later passes applied during shim query 2025-04-12 20:54:08 +00:00
David Tolnay
6ba9649e7c
End all lines in src/stage0 with trailing newline 2025-04-12 11:50:33 -07:00
bors
9ffde4b089 Auto merge of #139242 - jieyouxu:run-make-artifact-names-cross, r=Kobzol
run-make-support: Calculate artifact names for target platform, not host platform

This was implemented incorrectly during the porting process, where we relied on std consts. However, `run-make-support` is a host-only library, which meant that these artifact names were for the *host* and not the *target*.

Helps with #138066.

r? `@Kobzol`

try-job: armhf-gnu
try-job: test-various
try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: x86_64-mingw-1
try-job: aarch64-apple
try-job: x86_64-apple-1
2025-04-12 16:54:16 +00:00
bohan
8ae6485dad don't store opaque info during encoding 2025-04-12 23:56:48 +08:00
GenYuLi
1baa62e884 Fix typo in documentation
Correct the misspelling of "indentifier" to "identifier" in `library/alloc/src/fmt.rs`.
2025-04-12 22:26:38 +08:00
bors
7cd6e2f94e Auto merge of #139697 - weihanglo:update-cargo, r=weihanglo
Update cargo

12 commits in 0e93c5bf6a1d5ee7bc2af63d1afb16cd28793601..864f74d4eadcaea3eeda37a2e7f4d34de233d51e
2025-04-05 00:00:24 +0000 to 2025-04-11 20:37:27 +0000
- chore: Bump build-rs version (rust-lang/cargo#15421)
- fix(build): Correct name of CARGO_CFG_FEATURE (rust-lang/cargo#15420)
- Revert "fix(package): detect dirtiness for symlinks to submodule" (rust-lang/cargo#15419)
- Improved error message when build-dir template var is invalid (rust-lang/cargo#15418)
- Added validation for unmatched brackets in build-dir template (rust-lang/cargo#15414)
- fix(package): detect dirtiness for symlinks to submodule  (rust-lang/cargo#15416)
- chore(deps): bump crossbeam-channel from 0.5.14 to 0.5.15 (rust-lang/cargo#15415)
- docs(metadata): Added build_directory to cargo metadata documentation (rust-lang/cargo#15410)
- Added symlink resolution for `workspace-path-hash` (rust-lang/cargo#15400)
- feat: print target and package names formatted as file hyperlinks (rust-lang/cargo#15405)
- docs(ref): Use better example value in `CARGO_CFG_TARGET_ABI` (rust-lang/cargo#15404)
- chore: Bump cargo-util-schemas to 0.8.2 (rust-lang/cargo#15403)

r? ghost
2025-04-12 13:43:47 +00:00
reddevilmidzy
11256a0fb0 Add regression test for #127424 2025-04-12 22:16:08 +09:00
Thalia Archibald
bea202253e Unify owned Args types between platforms 2025-04-12 05:11:27 -07:00
Yotam Ofek
c36e8fcc3c In rustc_mir_tranform, iterate over index newtypes instead of ints 2025-04-12 11:53:07 +00:00
Thalia Archibald
e014fd6b87 Use unsupported args for espidf and vita 2025-04-12 04:38:20 -07:00
Alice Ryhl
6c6a39e6bf cfg(kcfi) 2025-04-12 11:18:19 +00:00
Thalia Archibald
6ffebb65d6 Move args into std::sys 2025-04-12 03:10:21 -07:00
Tshepang Mbambo
32dd3831f5
bootstrap: fix typo in doc string 2025-04-12 11:38:55 +02:00
Samuel Tardieu
83dd8a2c2a Fix name of field in doc comment 2025-04-12 11:34:04 +02:00
Jakub Beránek
ddf8237bcb
Fix comment in bootstrap 2025-04-12 10:05:50 +02:00
Maksim Bondarenkov
86e2a07a13 opt-dist: use executable-extension for host llvm-profdata
so the merging step doesn't fail for `opt-dist local` on Windows
2025-04-12 10:52:46 +03:00
Jieyou Xu
db6e3aa913
tests: ensure disabled tests have a reason 2025-04-12 15:24:25 +08:00
Jieyou Xu
762ecf8e00
tests/ui: remove outdated README
We should consolidate our test suite docs in rustc-dev-guide, and this
README is very outdated.
2025-04-12 15:18:01 +08:00
Jieyou Xu
4362789eb0
tests: produce target artifacts and/or require crate type / ignore cross-compile
Some tests fail on cross-compiled targets due to various linker problems
on cross-compiled target, and having test coverage for these against
cross-compiled targets is nice but not necessary.
2025-04-12 15:09:06 +08:00
Jieyou Xu
41931320f8
run-make-support: fix artifact name calculations for target
This was implemented incorrectly during the porting process, where we
relied on std consts. However, `run-make-support` is a host-only
library, which meant that these artifact names were for the *host* and
not the *target*.
2025-04-12 14:48:01 +08:00
Ricardo Fernández Serrata
072678ec86
docs: clarify uint exponent for is_power_of_two 2025-04-12 02:18:40 -04:00
Oli Scherer
1f8cb690fc
Merge pull request #4270 from rust-lang/rustup-2025-04-12
Automatic Rustup
2025-04-12 06:14:31 +00:00
The Miri Cronjob Bot
59a3730169 fmt 2025-04-12 05:08:28 +00:00
The Miri Cronjob Bot
352545f16f Merge from rustc 2025-04-12 05:07:15 +00:00
The Miri Cronjob Bot
c4620021dc Preparing for merge from rustc 2025-04-12 05:00:08 +00:00
Weihang Lo
52b7571707
Update cargo 2025-04-11 23:00:05 -04:00
bors
1bc56185ee Auto merge of #139430 - scottmcm:polymorphic-array-into-iter, r=cuviper
Some checks failed
Post merge analysis / analysis (push) Has been cancelled
Polymorphize `array::IntoIter`'s iterator impl

Today we emit all the iterator methods for every different array width.  That's wasteful since the actual array length never even comes into it -- the indices used are from the separate `alive: IndexRange` field, not even the `N` const param.

This PR switches things so that an `array::IntoIter<T, N>` stores a `PolymorphicIter<[MaybeUninit<T>; N]>`, which we *unsize* to `PolymorphicIter<[MaybeUninit<T>]>` and call methods on that non-`Sized` type for all the iterator methods.

That also necessarily makes the layout consistent between the different lengths of arrays, because of the unsizing.  Compare that to today <https://rust.godbolt.org/z/Prb4xMPrb>, where different widths can't even be deduped because the offset to the indices is different for different array widths.
2025-04-11 23:21:31 +00:00
bors
d2b3dd7c17 Auto merge of #139689 - jhpratt:rollup-wlkdyjg, r=jhpratt
Rollup of 7 pull requests

Successful merges:

 - #137835 (Use `BinOp::Cmp` for `iNN::signum`)
 - #139584 (Avoid a reverse map that is only used in diagnostics paths)
 - #139638 (Cleanup the `InstSimplify` MIR transformation)
 - #139653 (Handle a negated literal in `eat_token_lit`.)
 - #139662 (Tweak `DefPathData`)
 - #139664 (Reuse address-space computation from global alloc)
 - #139687 (Add spastorino to users_on_vacation)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-11 20:06:06 +00:00
Jakub Beránek
394610b6d6 Document that opt-dist requires metrics to be enabled 2025-04-11 21:30:10 +02:00
Jacob Pratt
c8992c90e0
Rollup merge of #139687 - spastorino:add-spastorino-to-vacation, r=Urgau
Add spastorino to users_on_vacation
2025-04-11 21:21:02 +02:00
Jacob Pratt
eea366c191
Rollup merge of #139664 - oli-obk:push-tkmurytmnsyw, r=RalfJung
Reuse address-space computation from global alloc

r? `@RalfJung`

just avoiding some minor duplication
2025-04-11 21:21:02 +02:00
Jacob Pratt
2b54f9bfb1
Rollup merge of #139662 - nnethercote:tweak-DefPathData, r=compiler-errors
Tweak `DefPathData`

Some improvements in and around `DefPathData`, following on from #137977.

r? `@spastorino`
2025-04-11 21:21:01 +02:00
Jacob Pratt
2f873f96e2
Rollup merge of #139653 - nnethercote:fix-139495, r=petrochenkov
Handle a negated literal in `eat_token_lit`.

Fixes #139495.

r? `@petrochenkov`
2025-04-11 21:21:01 +02:00
Jacob Pratt
00b9060c3b
Rollup merge of #139638 - yotamofek:pr/mir_transform/instsimplify/cleanup, r=oli-obk
Cleanup the `InstSimplify` MIR transformation

Some minor cleanups and rightward-drift-protection found while working on #139411 and a future follow-up
2025-04-11 21:21:00 +02:00
Jacob Pratt
bc05aaeeaa
Rollup merge of #139584 - oli-obk:horrible-experiment-1, r=petrochenkov
Avoid a reverse map that is only used in diagnostics paths

r? `@petrochenkov`

iterating a map until a value matches and returning the key is bad obviously, but it happens very rarely and only on diagnostics paths. It would also be a lot cheaper with https://github.com/rust-lang/rust/pull/138995. Which is actually why I'm trying this out, that PR adds a new entry in `create_def`, which makes `create_def` show up in cachegrind. So I'm trying out if removing adding an entry in `create_def` is a perf improvement
2025-04-11 21:20:59 +02:00
Jacob Pratt
a6608294a9
Rollup merge of #137835 - scottmcm:signum, r=compiler-errors
Use `BinOp::Cmp` for `iNN::signum`

This way it can use the nice new LLVM intrinsic in LLVM20.
2025-04-11 21:20:59 +02:00
Michael Howell
e013cf8afc rustdoc-search: add unbox flag to Result aliases
Fixes #139665
2025-04-11 11:36:40 -07:00
Santiago Pastorino
452c280f64
Add spastorino to users_on_vacation 2025-04-11 15:27:11 -03:00