-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Rollup of 19 pull requests #145589
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 19 pull requests #145589
Conversation
Comparison of paths and strings is expected to be possible and needed e.g. in tests. This change adds the impls os `PartialEq` between strings and paths, both owned and unsized, in both directions. ACP: rust-lang/libs-team#151
Declaring these submodules directly in `lib.rs` was needlessly confusing.
As noted in the `ffi` module docs, passing pointer/length byte strings from Rust to C++ is easier if we declare them as `*const c_uchar` on the Rust side, but `const char *` (possibly signed) on the C++ side. This is allowed because both pointer types are ABI-compatible, regardless of char signedness.
The `NonNull::as_mut` method returns a mut *reference*, rather than the mut *pointer* that is intended here.
This helps to avoid polluting the sysroot of the build compiler.
This change implements the #[sanitize(..)] attribute, which opts to replace the currently unstable #[no_sanitize]. Essentially the new attribute works similar as #[no_sanitize], just with more flexible options regarding where it is applied. E.g. it is possible to turn a certain sanitizer either on or off: `#[sanitize(address = "on|off")]` This attribute now also applies to more places, e.g. it is possible to turn off a sanitizer for an entire module or impl block: ```rust \#[sanitize(address = "off")] mod foo { fn unsanitized(..) {} #[sanitize(address = "on")] fn sanitized(..) {} } \#[sanitize(thread = "off")] impl MyTrait for () { ... } ``` This attribute is enabled behind the unstable `sanitize` feature.
This removes the #[no_sanitize] attribute, which was behind an unstable feature named no_sanitize. Instead, we introduce the sanitize attribute which is more powerful and allows to be extended in the future (instead of just focusing on turning sanitizers off). This also makes sanitize(kernel_address = ..) attribute work with -Zsanitize=address To do it the same as how clang disables address sanitizer, we now disable ASAN on sanitize(kernel_address = "off") and KASAN on sanitize(address = "off"). The same was added to clang in https://reviews.llvm.org/D44981.
To avoid backwards compatibility problems.
@bors try jobs=test-various,x86_64-gnu-llvm-19-3,aarch64-apple,i686-msvc-1 |
Rollup of 19 pull requests try-job: test-various try-job: x86_64-gnu-llvm-19-3 try-job: aarch64-apple try-job: i686-msvc-1
Oh this is now at the head of the queue, so no need for try. @bors try cancel |
Try build cancelled. Cancelled workflows: |
☀️ Test successful - checks-actions |
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 b96868f (parent) -> 8365fcb (this PR) Test differencesShow 163 test diffsStage 1
Stage 2
Additionally, 92 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 8365fcb2b840c95eeb0bc377af8bd498fad22245 --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 |
📌 Perf builds for each rolled up PR:
previous master: b96868fa2e In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (8365fcb): comparison URL. Overall result: ❌ regressions - please read the text belowOur 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 (primary 1.9%, secondary 2.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 6.9%, secondary 7.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 470.04s -> 471.447s (0.30%) |
@rust-timer build 037df45 |
This comment has been minimized.
This comment has been minimized.
@rust-timer ping |
Finished benchmarking commit (037df45): comparison URL. Overall result: ❌ regressions - please read the text belowInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 3.3%, secondary 2.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 6.8%, secondary 12.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 470.04s -> 470.675s (0.14%) |
That explains the massive doc regressions, but there are some others I'm still curious about, like @rust-timer build 3d2e019 |
This comment has been minimized.
This comment has been minimized.
This comment was marked as resolved.
This comment was marked as resolved.
@rust-timer build e6aa5b3 |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (e6aa5b3): comparison URL. Overall result: ❌ regressions - please read the text belowInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -0.8%, secondary 2.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 3.2%, secondary 10.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 470.04s -> 472.276s (0.48%) |
Successful merges:
impl PartialEq<{str,String}> for {Path,PathBuf}
#140956 (impl PartialEq<{str,String}> for {Path,PathBuf}
)ip_from
#141744 (Stabilizeip_from
)#[no_sanitize]
attribute in favor of#[sanitize(xyz = "on|off")]
#142681 (Remove the#[no_sanitize]
attribute in favor of#[sanitize(xyz = "on|off")]
)as
casts as unreachable #144804 (Don't warn on never to anyas
casts as unreachable)&mut
suggestions in borrowck errors #145013 (overhaul&mut
suggestions in borrowck errors)owned_target_machine
#145432 (cg_llvm: Small cleanups toowned_target_machine
)LlvmArchiveBuilder
and supporting code/bindings #145484 (RemoveLlvmArchiveBuilder
and supporting code/bindings)Assemble
step #145557 (Fix uplifting inAssemble
step)From
derive macro from prelude #145563 (Remove theFrom
derive macro from prelude)Failed merges:
rustdoc-js
tester would not pick the rightsearch.js
file if there is more than one #145359 (Fix bug whererustdoc-js
tester would not pick the rightsearch.js
file if there is more than one)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup