rust icon indicating copy to clipboard operation
rust copied to clipboard

promote_consts experiment: do not promote !Freeze shared references

Open RalfJung opened this issue 6 months ago • 11 comments

This is a crater experiment to measure the fallout from not promoting shared references to !Freeze types. IOW, this switches promotion from value-based reasoning to type-based reasoning about interior mutability.

Landing this PR would fix https://github.com/rust-lang/unsafe-code-guidelines/issues/493 but I doubt we can get away with that.

RalfJung avatar Jun 10 '25 09:06 RalfJung

@bors2 try

RalfJung avatar Jun 10 '25 09:06 RalfJung

:hourglass: Trying commit 19a8ea30c20c313c079029e5d6be2bd549240b66 with merge 51087fb057be0b73de65616d4903b63705c0dbcc…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jun 10 '25 09:06 rust-bors[bot]

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
error[E0515]: cannot return value referencing temporary value
   --> compiler/rustc_pattern_analysis/src/pat.rs:194:9
    |
194 | /         match self {
195 | |             PatOrWild::Wild => &Wildcard,
    | |                                 -------- temporary value created here
196 | |             PatOrWild::Pat(pat) => pat.ctor(),
197 | |         }
    | |_________^ returns a value referencing data owned by the current function

For more information about this error, try `rustc --explain E0515`.
[RUSTC-TIMING] rustc_pattern_analysis test:false 1.317
error: could not compile `rustc_pattern_analysis` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

rust-log-analyzer avatar Jun 10 '25 10:06 rust-log-analyzer

:broken_heart: Test failed

rust-bors[bot] avatar Jun 10 '25 10:06 rust-bors[bot]

@bors2 try

RalfJung avatar Jun 10 '25 10:06 RalfJung

:hourglass: Trying commit deba557e7618e498f2426e297defdfea5c2b9a5b with merge 901e6d56697c79b2e80df6a487b2318ec6f57ee3…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jun 10 '25 10:06 rust-bors[bot]

The job mingw-check-1 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
error[E0515]: cannot return value referencing temporary value
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.113.0/src/pat.rs:194:9
    |
194 | /         match self {
195 | |             PatOrWild::Wild => &Wildcard,
    | |                                 -------- temporary value created here
196 | |             PatOrWild::Pat(pat) => pat.ctor(),
197 | |         }
    | |_________^ returns a value referencing data owned by the current function

For more information about this error, try `rustc --explain E0515`.
[RUSTC-TIMING] ra_ap_rustc_pattern_analysis test:false 1.011
error: could not compile `ra-ap-rustc_pattern_analysis` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

rust-log-analyzer avatar Jun 10 '25 11:06 rust-log-analyzer

:sunny: Try build successful (CI) Build commit: 901e6d56697c79b2e80df6a487b2318ec6f57ee3 (901e6d56697c79b2e80df6a487b2318ec6f57ee3)

rust-bors[bot] avatar Jun 10 '25 12:06 rust-bors[bot]

@craterbot check

RalfJung avatar Jun 10 '25 14:06 RalfJung

:construction: Experiment pr-142287 is now running

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Jun 10 '25 14:06 craterbot

:ok_hand: Experiment pr-142287 created and queued. :robot: Automatically detected try build 901e6d56697c79b2e80df6a487b2318ec6f57ee3 :mag: You can check out the queue and this experiment's details.

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Jun 10 '25 14:06 craterbot

:tada: Experiment pr-142287 is completed! :bar_chart: 6478 regressed and 6 fixed (645631 total) :newspaper: Open the full report.

:warning: If you notice any spurious failure please add them to the denylist! :information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Jun 11 '25 19:06 craterbot

Oh wow, this is even more than the 4k regressions we got last time... and last time we technically broke more code. I guess that's just a sign of how much the ecosystem has been growing...

RalfJung avatar Jun 11 '25 19:06 RalfJung