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.
|
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-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 |
|
📌 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%) |
|
perf triage: @Zalathar Is this investigated enough? Can we mark it as triaged? |
|
Ok, thanks, let's put the label then. @rustbot label: +perf-regression-triaged |
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")])ascasts as unreachable #144804 (Don't warn on never to anyascasts as unreachable)&mutsuggestions in borrowck errors #145013 (overhaul&mutsuggestions in borrowck errors)owned_target_machine#145432 (cg_llvm: Small cleanups toowned_target_machine)LlvmArchiveBuilderand supporting code/bindings #145484 (RemoveLlvmArchiveBuilderand supporting code/bindings)Assemblestep #145557 (Fix uplifting inAssemblestep)Fromderive macro from prelude #145563 (Remove theFromderive macro from prelude)Failed merges:
rustdoc-jstester would not pick the rightsearch.jsfile if there is more than one #145359 (Fix bug whererustdoc-jstester would not pick the rightsearch.jsfile if there is more than one)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup