-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Rollup of 8 pull requests #140324
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 8 pull requests #140324
Conversation
On Windows, if creating a temporary directory fails with permission denied then use a retry/backoff loop. This hopefully fixes a recuring error in our CI.
…location, r=tgross35 Stabilize proc_macro::Span::{start,end,line,column}. This stabilizes part of rust-lang#54725 Specifically, the part related to getting the location of a span: ```rust impl Span { pub fn start(&self) -> Span; // Empty span at the start of this span pub fn end(&self) -> Span; // Empty span at the end of this span pub fn line(&self) -> usize; // Line where the span starts pub fn column(&self) -> usize; // Column where the span starts } ``` History of this part of the API: Originally, `start` and `end` returned a `LineColumn` struct (containing the line and column). This has been simplified/changed: - No more `LineColumn`: `Span` now directly has `.line()` and `.column()` methods. This means we can easily add `.byte_offset()` or `.byte_range()` in the future if we want to. - `Span::start()` and `Span::end()` are now the equivalent of rustc's internal `shrink_to_lo()` and `shrink_to_hi()`. This means you can do e.g. `span.end().column()`, removing the need for a `span.end_column()` or similar.
If creating a temporary directory fails with permission denied then retry with backoff On Windows, if creating a temporary directory fails with permission denied then use a retry/backoff loop. This hopefully fixes a recuring error in our CI. cc ```@jieyouxu,``` rust-lang#133959
Document that "extern blocks must be unsafe" in Rust 2024 The [documentation on `extern`](https://doc.rust-lang.org/std/keyword.extern.html) contains the following code sample: ```rust #[link(name = "my_c_library")] extern "C" { fn my_c_function(x: i32) -> bool; } ``` Due to rust-lang#123743, attempting to compile such code with the 2024 edition of Rust fails: ``` error: extern blocks must be unsafe ``` This PR extends the `extern` documentation with a brief explanation of the new requirement. It also adds the missing `unsafe` keyword to the code sample, which should be compatible with rustc since v1.82. **Related docs:** - https://doc.rust-lang.org/reference/items/external-blocks.html - https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html
…ter, r=cuviper Add XtensaAsmPrinter See rust-lang#133601. The PR was closed because it required LLVM 19 in CI added with (rust-lang@12167d7)
Improve error message for `||` (or) in let chains **Description** This PR improves the error message when using `||` in an if let chain expression, addressing rust-lang#140263. **Changes** 1. Creates a dedicated error message specifically for `||` usage in let chains 2. Points the primary span directly at the `||` operator 3. Removes confusing secondary notes about "let statements" and unsupported contexts 5. Adds UI tests verifying the new error message and valid cases **Before** ```rust error: expected expression, found let statement --> src/main.rs:2:8 | 2 | if let true = true || false {} | ^^^^^^^^^^^^^^^ | = note: only supported directly in conditions of if and while expressions note: || operators are not supported in let chain expressions --> src/main.rs:2:24 | 2 | if let true = true || false {} | ``` **After** ```rust error: `||` operators are not supported in let chain conditions --> src/main.rs:2:24 | 2 | if let true = true || false {} | ^^ ``` **Implementation details** 1. Added new `OrInLetChain` diagnostic in errors.rs 2. Modified `CondChecker` in expr.rs to prioritize the `||` error 3. Updated fluent message definitions to use clearer wording **Related issue** Fixes rust-lang#140263 cc ```@ehuss``` (issue author)
Track per-obligation recursion depth only if there is inference in the new solver Track how many times an obligation has been processed in the fulfillment context by reusing its recursion depth, and only overflow if a singular (root) goal hits the limit. This also fixes a (probably theoretical at this point) problem where we don't detect pseudo-hangs across `select_where_possible` calls. fixes rust-lang/trait-system-refactor-initiative#186 r? lcnr
…r-errors handle specialization in the new trait solver fixes rust-lang/trait-system-refactor-initiative#187 also fixes the regression in `plonky2_field` from rust-lang/trait-system-refactor-initiative#188 cc rust-lang#111994 r? ```@compiler-errors```
stall generator witness obligations: add regression test fixes rust-lang/trait-system-refactor-initiative#180 r? ```@compiler-errors```
@bors r+ rollup=never p=5 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: d3508a8ad0 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing d3508a8 (parent) -> 5ae50d3 (this PR) Test differencesShow 653 test diffsStage 1
Stage 2
(and 223 additional test diffs) Additionally, 330 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 5ae50d3b2182f81eea4e4d90e8da3653547215b5 --output-dir test-dashboard And then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
Finished benchmarking commit (5ae50d3): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary 2.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary 0.5%, secondary 2.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 775.41s -> 776.211s (0.10%) |
Successful merges:
||
(or) in let chains #140272 (Improve error message for||
(or) in let chains)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup