Repository navigation
Rollup of 15 pull requests - #165579
Rollup of 15 pull requests#165579
Conversation
This reduces the amount of special casing #[no_mangle] needs in the rest of the compiler.
#[link_ordinal] is not compatible with #[link_name] and items in extern blocks now have an implicit #[link_name] with the item name. Alternatively it would be possible to suppress the error message for this implicit #[link_name].
Co-authored-by: Ralf Jung <post@ralfj.de>
This ensures the name it is referenced with from object files matches the name that it is imported as in an import library.
… faster than Vec::retain_mut
```
error[E0107]: missing generics for struct `a::Foo`
--> $DIR/impl-block-missing-const-generics.rs:6:10
|
LL | impl Foo {}
| ^^^ expected 1 generic argument
|
note: struct defined here, with 1 generic parameter: `AHA`
--> $DIR/impl-block-missing-const-generics.rs:4:12
|
LL | struct Foo<const AHA: usize>{}
| ^^^ ----------------
help: add missing generic argument
|
LL | impl<const AHA: usize> Foo<AHA> {}
| ++++++++++++++++++ +++++
```
Previously we only suggested `Foo<AHA>` without the `impl<const AHA: usize>`.
``` error: the constant `N` is not of type `usize` --> $DIR/const-in-impl-fn-return-type.rs:12:32 | LL | fn func<const N: u32>() -> [(); N]; | ------------ ^^^^^^^ expected `usize`, found `u32` | | | found this const parameter | = note: the length of array `[(); N]` must be type `usize` ```
``` error: the constant `B` is not of type `usize` --> $DIR/check_const_arg_type_in_free_alias.rs:15:30 | LL | type ArrLen<const B: bool> = [(); B]; | ------------- ^^^^^^^ expected `usize`, found `bool` | | | found this const parameter | = note: the length of array `[(); B]` must be type `usize` ```
```
error: the constant `N` is not of type `usize`
--> $DIR/bad-subst-const-kind.rs:8:26
|
LL | impl<const N: u64> Q for [u8; N] {
| ------------ ^^^^^^^ expected `usize`, found `u64`
| |
| `N` defined here
|
= note: the length of array `[u8; N]` must be type `usize`
```
Per the style team FCP in rust-lang#152760, remove the prescription requiring an explicit ABI on extern items so formatters preserve the ABI as written in the AST and defer missing-ABI diagnostics to language lints.
Mostly configures out unused code but also reenabled DirEntry::file_type which now builds for the L4Re targets.
Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
This comment has been minimized.
This comment has been minimized.
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 4282da7 (parent) -> a267dc9 (this PR) Test differencesShow 248 test diffsStage 1
Stage 2
Additionally, 232 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 a267dc9278932a9a47afdd87033b6ab9c3c4c4f5 --output-dir test-dashboardAnd 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 (a267dc9): comparison URL. Overall result: ❌ regressions - please read:Our benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (secondary -5.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.5%, secondary 4.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.0%, secondary 0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 480.483s -> 483.513s (0.63%) |
|
📌 Perf builds for each rolled up PR:
parent commit: 4282da708a In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
|
oof, this one is gonna be tough. 50 benchmarks regressed. not sure I want to spam the queue with 15 almost full runs |
Running triage with 50 benchmarksTriage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
#165505 27b62bf DFV: Reject
|
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
2.5% | [2.5%, 2.5%] | 1 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-2.5% | [-2.7%, -2.3%] | 2 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | -0.8% | [-2.7%, 2.5%] | 3 |
Binary size
This perf run didn't have relevant results for this metric.
#159374 1347227 Lower #[no_mangle] to #[symbol_name]/#[link_name]
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.3% | [0.3%, 0.3%] | 3 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (primary -2.8%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-2.8% | [-2.8%, -2.8%] | 1 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | -2.8% | [-2.8%, -2.8%] | 1 |
Binary size
This perf run didn't have relevant results for this metric.
#165550 d20f60c Make Literal::cstr_value return a CString
Queued d20f60c with parent 4282da7, future comparison URL.
There are currently 6 preceding artifacts in the queue.
It will probably take at least ~4.7 hours until the benchmark run finishes.
#165037 163692e Drop array elements in order after a partial move
This perf run didn't have relevant results for the `instruction count` metric.
Instruction count
This perf run didn't have relevant results for this metric.
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (primary -2.1%, secondary -3.4%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
-2.1% | [-2.3%, -2.0%] | 2 |
| Improvements ✅ (secondary) |
-3.4% | [-3.4%, -3.4%] | 1 |
| All ❌✅ (primary) | -2.1% | [-2.3%, -2.0%] | 2 |
Binary size
This perf run didn't have relevant results for this metric.
|
Really glad I decided to limit this one to only 15 PRs. 😅 |
Successful merges:
Literal::cstr_valuereturn aCString#165550 (MakeLiteral::cstr_valuereturn aCString)constparameter to provide more context and more accurate suggestion #164775 (Tweak output on misusedconstparameter to provide more context and more accurate suggestion)use<...>suggestion whenimpl Traitparams are present #165194 (name elided lifetimes inuse<...>suggestion whenimpl Traitparams are present)Vec::retain_unstabledocs to say that this method is generally faster thanVec::retain_mut#165448 (UpdateVec::retain_unstabledocs to say that this method is generally faster thanVec::retain_mut)#[non_exhaustive]on enum variants with default field values #165505 (DFV: Reject#[non_exhaustive]on enum variants with default field values)WhereEqPredicateandScopeIdtypes #165514 (Remove unusedWhereEqPredicateandScopeIdtypes)r? @ghost
Create a similar rollup