1
Fork 0
Commit graph

279844 commits

Author SHA1 Message Date
Ralf Jung
7ad8dba513
Merge pull request #4168 from RalfJung/many-threads
increase thread limit for many-seeds mode
2025-01-31 10:49:53 +00:00
Ralf Jung
25cdd06b46 increase thread limit for many-seeds mode 2025-01-31 11:22:56 +01:00
Oli Scherer
bcda8927d0
Merge pull request #4166 from rust-lang/rustup-2025-01-31
Automatic Rustup
2025-01-31 06:12:43 +00:00
The Miri Cronjob Bot
74ca1cfb2a fmt 2025-01-31 05:05:35 +00:00
The Miri Cronjob Bot
7f414f9c39 Merge from rustc 2025-01-31 05:04:21 +00:00
The Miri Cronjob Bot
dc36775877 Preparing for merge from rustc 2025-01-31 04:57:36 +00:00
许杰友 Jieyou Xu (Joe)
9734ebb9be tests: port symbol-mangling-hashed to rmake.rs
- Use `object` based test logic instead of processing `nm`
  human-readable textual output.
- Try to expand test coverage to not be limited to only linux + x86_64.

Co-authored-by: binarycat <binarycat@envs.net>
2025-01-31 04:30:51 +00:00
许杰友 Jieyou Xu (Joe)
0bc1b4f4f6 run-make-support: add object-based symbol helpers
- `dynamic_symbol_names`
- `text_section_global_dynamic_symbol_names`
- `global_undefined_dynamic_symbol_names`

Also add some missing `#[track_caller]` attributes.

Co-authored-by: binarycat <binarycat@envs.net>
2025-01-31 04:29:40 +00:00
许杰友 Jieyou Xu (Joe)
c15c9702d6 run-make-support: add is_windows_gnu helper 2025-01-31 04:29:40 +00:00
许杰友 Jieyou Xu (Joe)
17e0fc6f03 run-make-support: collapse re-export 2025-01-31 04:29:40 +00:00
许杰友 Jieyou Xu (Joe)
09f68486bd run-make-support: add -Csymbol-mangling-version and -Cprefer-dynamic helpers to rustc
Co-authored-by: binarycat <binarycat@envs.net>
2025-01-31 04:29:40 +00:00
bors
6c1d960d88 Auto merge of #136318 - matthiaskrgr:rollup-a159mzo, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #135026 (Cast global variables to default address space)
 - #135475 (uefi: Implement path)
 - #135852 (Add `AsyncFn*` to `core` prelude)
 - #136004 (tests: Skip const OOM tests on aarch64-unknown-linux-gnu)
 - #136157 (override build profile for bootstrap tests)
 - #136180 (Introduce a wrapper for "typed valtrees" and properly check the type before extracting the value)
 - #136256 (Add release notes for 1.84.1)
 - #136271 (Remove minor future footgun in `impl Debug for MaybeUninit`)
 - #136288 (Improve documentation for file locking)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-30 23:11:38 +00:00
bors
a730edcd67 Auto merge of #135030 - Flakebi:require-cpu, r=workingjubilee
Target option to require explicit cpu

Some targets have many different CPUs and no generic CPU that can be used as a default. For these targets, the user needs to explicitly specify a CPU through `-C target-cpu=`.

Add an option for targets and an error message if no CPU is set.

This affects the proposed amdgpu and avr targets.

amdgpu tracking issue: #135024
AVR MCP: https://github.com/rust-lang/compiler-team/issues/800
2025-01-30 20:21:50 +00:00
Matthias Krüger
867317835d
Rollup merge of #136288 - joshtriplett:would-you-could-you-with-some-locks--would-you-could-you-in-some-docs, r=m-ou-se
Improve documentation for file locking

Add notes to each method stating that locks get dropped on close.

Clarify the return values of the try methods: they're only defined if
the lock is held via a *different* file handle/descriptor. That goes
along with the documentation that calling them while holding a lock via
the *same* file handle/descriptor may deadlock.

Document the behavior of unlock if no lock is held.

r? `@m-ou-se`
(Documentation changes requested in https://github.com/rust-lang/rust/issues/130994 .)
2025-01-30 20:47:09 +01:00
Matthias Krüger
410442f610
Rollup merge of #136271 - Sky9x:debug-maybeuninit-footgun, r=tgross35
Remove minor future footgun in `impl Debug for MaybeUninit`

No longer breaks if `MaybeUninit` moves modules (technically it could break if `MaybeUninit` were renamed but realistically that will never happen)

Debug impl originally added in #133282
2025-01-30 20:47:08 +01:00
Matthias Krüger
41c8ce99a9
Rollup merge of #136256 - cuviper:relnotes-1.84.1, r=pietroalbini
Add release notes for 1.84.1

r? `@Mark-Simulacrum`
2025-01-30 20:47:08 +01:00
Matthias Krüger
6a66a270b0
Rollup merge of #136180 - lukas-code:typed-valtree, r=oli-obk
Introduce a wrapper for "typed valtrees" and properly check the type before extracting the value

This PR adds a new wrapper type `ty::Value` to replace the tuple `(Ty, ty::ValTree)` and become the new canonical representation of type-level constant values.

The value extraction methods `try_to_bits`/`try_to_bool`/`try_to_target_usize` are moved to this new type. For `try_to_bits` in particular, this avoids some redundant matches on `ty::ConstKind::Value`. Furthermore, these methods and will now properly check the type before extracting the value, which fixes some ICEs.

The name `ty::Value` was chosen to be consistent with `ty::Expr`.

Commit 1 should be non-functional and commit 2 adds the type check.

---

fixes https://github.com/rust-lang/rust/issues/131102
supercedes https://github.com/rust-lang/rust/pull/136130

r? `@oli-obk`
cc `@FedericoBruzzone` `@BoxyUwU`
2025-01-30 20:47:07 +01:00
Matthias Krüger
6c9c69813d
Rollup merge of #136157 - onur-ozkan:override-release-profile, r=Kobzol
override build profile for bootstrap tests

Using the release profile for bootstrap self tests puts too much load on the CPU and makes it quite hot on `x test bootstrap` invocation for no good reason. It also makes the compilation take longer than usual (see https://github.com/rust-lang/rust/pull/136048#issuecomment-2616908484). This change turns off the release flag for bootstrap self tests.
2025-01-30 20:47:07 +01:00
Matthias Krüger
47ee068a88
Rollup merge of #136004 - mrkajetanp:aarch64-skip-large-const-alloc-tests, r=Kobzol
tests: Skip const OOM tests on aarch64-unknown-linux-gnu

Skip const OOM tests on AArch64 Linux through explicit annotations instead of inside opt-dist.
Intended to avoid confusion in cases like #135952.

Prerequisite for https://github.com/rust-lang/rust/pull/135960.

 r? `@Kobzol`
cc `@workingjubilee`

try-job: dist-aarch64-linux
2025-01-30 20:47:06 +01:00
Matthias Krüger
c32f2c7172
Rollup merge of #135852 - lukas-code:asyncfn-prelude-core, r=compiler-errors
Add `AsyncFn*` to `core` prelude

In https://github.com/rust-lang/rust/pull/132611 these got added to the `std` prelude only, which looks like an oversight.

r? libs-api
cc `@compiler-errors`
2025-01-30 20:47:05 +01:00
Matthias Krüger
55c7a02a8b
Rollup merge of #135475 - Ayush1325:uefi-absolute-path, r=jhpratt
uefi: Implement path

This PR is split off from https://github.com/rust-lang/rust/pull/135368 to reduce noise.

UEFI paths can be of 4 types:
1. Absolute Shell Path: Uses shell mappings
2. Absolute Device Path: this is what we want
3. Relative root: path relative to the current root.
4. Relative

Absolute shell path can be identified with `:` and Absolute Device path can be identified with `/`. Relative root path will start with `\`.

The algorithm is mostly taken from edk2 UEFI shell implementation and is somewhat simple. Check for the path type in order.

For Absolute Shell path, use `EFI_SHELL->GetDevicePathFromMap` to get a BorrowedDevicePath for the volume.

For Relative paths, we use the current working directory to construct the new path.

BorrowedDevicePath abstraction is needed to interact with `EFI_SHELL->GetDevicePathFromMap` which returns a Device Path Protocol with the lifetime of UEFI shell.

Absolute Shell paths cannot exist if UEFI shell is missing.

cc `@nicholasbishop`
2025-01-30 20:47:04 +01:00
Matthias Krüger
89f8abe8b4
Rollup merge of #135026 - Flakebi:global-addrspace, r=saethlin
Cast global variables to default address space

Pointers for variables all need to be in the same address space for correct compilation. Therefore ensure that even if a global variable is created in a different address space, it is casted to the default address space before its value is used.

This is necessary for the amdgpu target and others where the default address space for global variables is not 0.

For example `core` does not compile in debug mode when not casting the address space to the default one because it tries to emit the following (simplified) LLVM IR, containing a type mismatch:

```llvm
`@alloc_0` = addrspace(1) constant <{ [6 x i8] }> <{ [6 x i8] c"bit.rs" }>, align 1
`@alloc_1` = addrspace(1) constant <{ ptr }> <{ ptr addrspace(1) `@alloc_0` }>, align 8
; ^ here a struct containing a `ptr` is needed, but it is created using a `ptr addrspace(1)`
```

For this to compile, we need to insert a constant `addrspacecast` before we use a global variable:

```llvm
`@alloc_0` = addrspace(1) constant <{ [6 x i8] }> <{ [6 x i8] c"bit.rs" }>, align 1
`@alloc_1` = addrspace(1) constant <{ ptr }> <{ ptr addrspacecast (ptr addrspace(1) `@alloc_0` to ptr) }>, align 8
```

As vtables are global variables as well, they are also created with an `addrspacecast`. In the SSA backend, after a vtable global is created, metadata is added to it. To add metadata, we need the non-casted global variable. Therefore we strip away an addrspacecast if there is one, to get the underlying global.

Tracking issue: #135024
2025-01-30 20:47:02 +01:00
bors
6ac8878615 Auto merge of #136292 - matthiaskrgr:rollup-fw1tlca, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #133636 ([rustdoc] Add sans-serif font setting)
 - #135434 (Match Ergonomics 2024: update edition 2024 behavior of feature gates)
 - #135739 (Clean up uses of the unstable `dwarf_version` option)
 - #135882 (simplify `similar_tokens` from `Option<Vec<_>>` to `&[_]`)
 - #136179 (Allow transmuting generic pattern types to and from their base)
 - #136199 (Fix a couple Emscripten tests)
 - #136251 (use impl Into<String> instead of explicit type args with bounds)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-30 17:21:59 +00:00
Lukas Markeffsky
ca3ff832e3 add comments 2025-01-30 18:13:16 +01:00
Lukas Markeffsky
0055fb92db check the types in ty::Value to value conversion
and remove `ty::Const::try_to_scalar` because it becomes redundant
2025-01-30 18:13:16 +01:00
Lukas Markeffsky
10fc0b159e introduce ty::Value
Co-authored-by: FedericoBruzzone <federico.bruzzone.i@gmail.com>
2025-01-30 17:47:44 +01:00
Ralf Jung
e1d0507321
Merge pull request #4140 from geetanshjuneja/deref
Use deref_pointer_as instead of deref_pointer
2025-01-30 16:31:17 +00:00
geetanshjuneja
562b282fcc use deref_pointer_as instead of deref_pointer 2025-01-30 21:06:47 +05:30
bors
a6434ef9c0 Auto merge of #134824 - niklasf:int_from_ascii, r=ibraheemdev
Implement `int_from_ascii` (#134821)

Provides unstable `T::from_ascii()` and `T::from_ascii_radix()` for integer types `T`, as drafted in tracking issue #134821.

To deduplicate documentation without additional macros, implementations of `isize` and `usize` no longer delegate to equivalent integer types. After #132870 they are inlined anyway.
2025-01-30 14:25:22 +00:00
Matthias Krüger
9b7af17d5b
Rollup merge of #136251 - hkBst:opt_imports, r=estebank
use impl Into<String> instead of explicit type args with bounds
2025-01-30 12:45:38 +01:00
Matthias Krüger
d7668d8bf4
Rollup merge of #136199 - purplesyringa:emscripten-tests, r=jieyouxu
Fix a couple Emscripten tests

This fixes a couple Emscripten tests where the correct fix is more or less obvious. A couple UI tests are still broken with this PR:

- `tests/ui/abi/numbers-arithmetic/return-float.rs` (#136197)
- `tests/ui/no_std/no-std-unwind-binary.rs` (haven't debugged yet)
- `tests/ui/test-attrs/test-passed.rs` (haven't debugged this either)

`````@rustbot````` label +T-compiler +O-emscripten
2025-01-30 12:45:35 +01:00
Matthias Krüger
aab61ad663
Rollup merge of #136179 - oli-obk:push-vxvyttorquxw, r=BoxyUwU
Allow transmuting generic pattern types to and from their base

Pattern types always have the same size as their base type, so we can just ignore the pattern and look at the base type for figuring out whether transmuting is possible.
2025-01-30 12:45:32 +01:00
Matthias Krüger
78ded09912
Rollup merge of #135882 - hkBst:master, r=estebank
simplify `similar_tokens` from `Option<Vec<_>>` to `&[_]`

All uses immediately invoke contains, so maybe a further simplification is possible.
2025-01-30 12:45:27 +01:00
Matthias Krüger
aedc0a34a8
Rollup merge of #135739 - wesleywiser:dwarf_version_handling, r=lqd
Clean up uses of the unstable `dwarf_version` option

- Consolidate calculation of the effective value.
- Check the target `DebuginfoKind` instead of using `is_like_msvc`.
- Add the tracking issue to the unstable book page for this feature.

cc #103057
2025-01-30 12:45:21 +01:00
Matthias Krüger
a3663577f2
Rollup merge of #135434 - dianne:match-2024-for-edition-2024, r=Nadrieril
Match Ergonomics 2024: update edition 2024 behavior of feature gates

This updates the edition 2024 behavior of the feature gates `ref_pat_eat_one_layer_2024_structural` and `ref_pat_eat_one_layer_2024` to correspond to the left and right typing rules compared [here](https://nadrieril.github.io/typing-rust-patterns/?compare=true&opts2=AQEBAAABAQABAgIAAQEBAAEBAAABAAA%3D&opts1=AQEBAgEBAQEBAgIAAAAAAAAAAAAAAAA%3D&mode=rules&do_cmp=true&ty_d=3&style=SequentBindingMode), respectively. I'll implement the proposed new behavior for editions ≤ 2021 in another PR.

The tests are split up a bit awkwardly for practical reasons, but I've added new tests from 3 places:
- I got tests for where the typing rules differ from the "Compare" tab of the page linked above. These had to be split up based on where the errors are emitted and how rustfixable they are, so they've ended up in different files to keep tidy. Within each file, though, the order of the tests matches the order the typing differences appear in that comparison (as of when this was written).
- I used [this other comparison](https://nadrieril.github.io/typing-rust-patterns/?q=%5B%26mut+%26%28mut+x%29%5D%3A+%26mut+%5B%26CT%5D&compare=true&opts2=AQEBAgABAQEBAgIAAQEBAAEBAAABAAA%3D&opts1=AQEBAgEBAQEBAgIAAAAAAAAAAAAAAAA%3D&mode=compare&do_cmp=true&ty_d=3&style=SequentBindingMode) to test the `Deref(EatInner, FallbackToOuter)` rule of the left/"structural"/eat-inner ruleset. These are all in `well-typed-edition-2024.rs`.
- I added some select tests for cases where the new typing rules differ from current stable Rust. I had to be pickier about what I included here, but I tried to make sure each typing rule got some coverage. That said, my approach for these tests was a bit ad-hoc, so I may have missed something.

Relevant tracking issue: #123076

r? ````@ghost````
2025-01-30 12:45:18 +01:00
Matthias Krüger
282d8660de
Rollup merge of #133636 - GuillaumeGomez:sans-serif, r=rustdoc
[rustdoc] Add sans-serif font setting

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

This PR adds a new setting introducing the possibility to switch to a sans-serif font (`Fira Sans`) for the text.

Can be tested [here](https://rustdoc.crud.net/imperio/sans-serif/std/index.html).

cc ```@rust-lang/rustdoc-frontend```
r? ```@notriddle```
2025-01-30 12:45:13 +01:00
bors
5a45ab9738 Auto merge of #136038 - compiler-errors:outlives, r=lcnr
Simplify and consolidate the way we handle construct `OutlivesEnvironment` for lexical region resolution

This is best reviewed commit-by-commit. I tried to consolidate the API for lexical region resolution *first*, then change the API when it was finally behind a single surface.

r? lcnr or reassign
2025-01-30 11:40:32 +00:00
Josh Triplett
fb1ad2fe02 Improve documentation for file locking
Add notes to each method stating that locks get dropped on close.

Clarify the return values of the try methods: they're only defined if
the lock is held via a *different* file handle/descriptor. That goes
along with the documentation that calling them while holding a lock via
the *same* file handle/descriptor may deadlock.

Document the behavior of unlock if no lock is held.
2025-01-30 11:48:26 +01:00
Ralf Jung
8a893ab63b
Merge pull request #4164 from RalfJung/manual_repeat_n
fix clippy lint manual_repeat_n
2025-01-30 10:29:02 +00:00
Ralf Jung
a041f3b2a1 fix clippy lint manual_repeat_n 2025-01-30 11:03:10 +01:00
Oli Scherer
12058e867f
Merge pull request #4163 from rust-lang/rustup-2025-01-30
Automatic Rustup
2025-01-30 06:23:23 +00:00
The Miri Cronjob Bot
92f776363f fmt 2025-01-30 05:08:11 +00:00
The Miri Cronjob Bot
b8ee38d3e8 Merge from rustc 2025-01-30 05:06:57 +00:00
Rémy Rakic
d781933812 add constraint graph to polonius MIR dump 2025-01-30 06:17:53 +00:00
The Miri Cronjob Bot
851ce41bc6 Preparing for merge from rustc 2025-01-30 05:00:06 +00:00
bors
e6f12c8b7d Auto merge of #136272 - Zalathar:rollup-6s577l5, r=Zalathar
Rollup of 5 pull requests

Successful merges:

 - #135847 (optimize slice::ptr_rotate for small rotates)
 - #136215 (btree/node.rs: remove incorrect comment from pop_internal_level docs)
 - #136252 (spastorino back from vacations)
 - #136254 (Rustc dev guide subtree update)
 - #136259 (Cleanup docs for Allocator)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-30 04:12:59 +00:00
Wesley Wiser
4d5a63f882 Add tracking issue to docs 2025-01-29 21:45:04 -06:00
Wesley Wiser
51eaa0d56a Clean up uses of the unstable dwarf_version option
- Consolidate calculation of the effective value.
- Check the target `DebuginfoKind` instead of using `is_like_msvc`.
2025-01-29 21:44:21 -06:00
Stuart Cook
4059a796d5
Rollup merge of #136259 - hkBst:patch-30, r=thomcc
Cleanup docs for Allocator

This is an attempt to remove ungrammatical constructions and clean up the prose. I've sometimes had to try hard to understand what was being stated, so it is possible that I've misunderstood the original meaning. In particular, I did not see a difference between:
 - the borrow-checker lifetime of the allocator type itself.
 - as long as at least one of the allocator instance and all of its clones has not been dropped.
2025-01-30 14:25:07 +11:00
Stuart Cook
48b3eca63e
Rollup merge of #136254 - BoxyUwU:rdg-push, r=Kobzol
Rustc dev guide subtree update

r? `@Kobzol`
2025-01-30 14:25:06 +11:00