-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 7 pull requests #135227
Closed
Closed
Rollup of 7 pull requests #135227
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This always falls back to sleeping since there is no way to notify a condvar on a target without threads.
it's still partially a skeleton, but works well enough for almost all tests to pass
this is to remove the entire `util` module
it's been simplified over the years, but now it's no longer useful. - document its replacement in `BorrowKind` - use that everywhere instead
push constraint creation to where the statement/terminator info is gathered
…when we didn't opt in to it
…r=m-ou-se Condvar: implement wait_timeout for targets without threads This always falls back to sleeping since there is no way to notify a condvar on a target without threads. Even on a target that has no threads the following code is a legitimate use case: ```rust use std::sync::{Condvar, Mutex}; use std::time::Duration; fn main() { let cv = Condvar::new(); let mutex = Mutex::new(()); let mut guard = mutex.lock().unwrap(); cv.notify_one(); let res; (guard, res) = cv.wait_timeout(guard, Duration::from_secs(3)).unwrap(); assert!(res.timed_out()); } ```
…kh726 Convert typeck constraints in location-sensitive polonius In this PR, we do a big chunk of the work of localizing regular outlives constraints. The slightly annoying thing is handling effectful statements: usually the subset graph propagates loans at a single point between regions, and liveness propagates loans between points within a single region, but some statements have effects applied on exit. This was also a problem before, in datalog polonius terms and Niko's solution at the time, this is about: the mid-point. The idea was to duplicate all MIR locations into two physical points, and orchestrate the effects with that. Somewhat easier to do, but double the CFG. We've always believed we didn't _need_ midpoints in principle, as we can represent changes on exit as on happening entry to the successor, but there's some difficulty in tracking the position information at sufficient granularity through outlives relation (especially since we also have bidirectional edges and time-traveling now). Now, that is surely what we should be doing in the future. In the mean time, I infer this from the kind of statement/terminator where an outlives constraint arose. It's not particularly complicated but some explanation will help clarify the code. Assignments (in their various forms) are the quintessential example of these crossover cases: loans that would flow into the LHS would not be visible on entry to the point but on exit -- so we'll localize these edges to the successor. Let's look at a real-world example, involving invariance for bidirectional edges: ```rust let mut _1: HashMap<i32, &'7 i32>; let mut _3: &'9 mut HashMap<i32, &'10 i32>; ... /* at bb1[3]: */ _3 = &'3 mut _1; ``` Here, typeck expectedly produces 3 outlives constraints today: 1. `'3 -> '9` 2. `'7 -> '10` 3. `'10 -> '7` And we localize them like so, 1. `'3 -> '9` flows into the LHS and becomes: `3_bb1_3 -> 9_bb1_4` 2. `'7 -> '10` flows into the LHS and becomes: `7_bb1_3 -> 10_bb1_4` 3. `'10 -> '7` flows from the LHS and becomes: `10_bb1_4 -> 7_bb1_3` (time traveling 👌) --- r? `@jackh726` To keep you entertained during the holidays I also threw in a couple of small changes removing cruft in the borrow checker. We're actually getting there. The next PR will be the last one needed to get end-to-end tests working.
…r=cuviper triagebot: register `relnotes-interest-group` ping group Part of rust-lang#133334. rust-lang/team#1613 merged. cc T-release discussions in https://rust-lang.zulipchat.com/#narrow/channel/241545-t-release/topic/Please.20CC.20lang r? release
More compelling env_clear() examples `ls` isn't a command that people usually set env vars for, and `PATH` in particular isn't even used by `ls`.
…ingjubilee Reserve x18 register for aarch64 wrs vxworks target Fixes rust-lang#135166 r? `@workingjubilee` Regards, B I Abbas
…jubilee arm: add unstable soft-float target feature This has an actual usecase as mentioned [here](rust-lang#116344 (comment)), and with my recent ARM float ABI changes there shouldn't be any soundness concerns any more. We will reject enabling this feature on `hf` targets, but disabling it on non-`hf` targets is entirely fine -- the target feature refers to whether softfloat emulation is used for float instructions, and is independent of the ABI which we set separately via `llvm_floatabi`. Cc `@workingjubilee`
…rrors warn about broken simd not only on structs but also enums and unions when we didn't opt in to it addresses rust-lang#135208 (comment) r? `@Noratrieb`
rustbot
added
A-meta
Area: Issues & PRs about the rust-lang/rust repository itself
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
rollup
A PR which is a rollup
labels
Jan 8, 2025
@bors r+ rollup=never p=5 |
bors
added
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Jan 8, 2025
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Jan 8, 2025
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#134389 (Condvar: implement wait_timeout for targets without threads) - rust-lang#134920 (Convert typeck constraints in location-sensitive polonius) - rust-lang#135032 (triagebot: register `relnotes-interest-group` ping group) - rust-lang#135176 (More compelling env_clear() examples) - rust-lang#135184 (Reserve x18 register for aarch64 wrs vxworks target) - rust-lang#135203 (arm: add unstable soft-float target feature) - rust-lang#135219 (warn about broken simd not only on structs but also enums and unions when we didn't opt in to it) r? `@ghost` `@rustbot` modify labels: rollup
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
bors
added
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
labels
Jan 8, 2025
@bors try |
⌛ Trying commit 846a9c4 with merge f5007e1e45f2797bfdfaab1a22a03c7790998868... |
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Jan 8, 2025
Rollup of 7 pull requests Successful merges: - rust-lang#134389 (Condvar: implement wait_timeout for targets without threads) - rust-lang#134920 (Convert typeck constraints in location-sensitive polonius) - rust-lang#135032 (triagebot: register `relnotes-interest-group` ping group) - rust-lang#135176 (More compelling env_clear() examples) - rust-lang#135184 (Reserve x18 register for aarch64 wrs vxworks target) - rust-lang#135203 (arm: add unstable soft-float target feature) - rust-lang#135219 (warn about broken simd not only on structs but also enums and unions when we didn't opt in to it) r? `@ghost` `@rustbot` modify labels: rollup try-job: i686-mingw
☀️ Try build successful - checks-actions |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-meta
Area: Issues & PRs about the rust-lang/rust repository itself
rollup
A PR which is a rollup
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Successful merges:
relnotes-interest-group
ping group #135032 (triagebot: registerrelnotes-interest-group
ping group)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup
try-job: i686-mingw