Various steps in moving away from the big reflection enum to reflection functions - #159727
Conversation
|
r? @JohnTitor rustbot has assigned @JohnTitor. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
… r=fmease Enforce that we don't generate code for comptime fns ... by ICEing if you try to compute a symbol for them. There are various other ways we can assert it, but they were all a bit icky or already unreachable. r? @fmease (since you asked about it in rust-lang#159727 (comment))
Rollup merge of #159777 - oli-obk:really-comptime-this-time, r=fmease Enforce that we don't generate code for comptime fns ... by ICEing if you try to compute a symbol for them. There are various other ways we can assert it, but they were all a bit icky or already unreachable. r? @fmease (since you asked about it in #159727 (comment))
f2afff8 to
0214ef6
Compare
This comment has been minimized.
This comment has been minimized.
Enforce that we don't generate code for comptime fns ... by ICEing if you try to compute a symbol for them. There are various other ways we can assert it, but they were all a bit icky or already unreachable. r? @fmease (since you asked about it in rust-lang/rust#159727 (comment))
|
@JohnTitor this is ready for review |
There was a problem hiding this comment.
Sorry for the delay!
r=me once my questions and @fmease's comment are resolved.
0214ef6 to
a06add3
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
a06add3 to
cecd4a4
Compare
|
@bors r=JohnTitor |
Various steps in moving away from the big reflection enum to reflection functions tracking issue: rust-lang#146922 Some more of these and we can turn the big TyKind enum into one without any data, but I think these are enough steps for one PR, don't wanna turn it into a mega PR
…uwer Rollup of 22 pull requests Successful merges: - #160426 (`rust-analyzer` subtree update) - #160372 (Derive the allocator used by tools from rustc's allocator) - #146882 (fully deprecate the legacy integral modules) - #158727 (std: use `readdir` on nearly all UNIX platforms) - #159727 (Various steps in moving away from the big reflection enum to reflection functions) - #160443 (normalize in relations, not generalize, when relating infer with alias) - #160457 (implement -Zllvm-target-feature) - #160480 (Single-pass ASCII lower/upper case conversion) - #160502 (Reduce number of miri tests executed on PR CI) - #157430 (std::random: use little-endian for reproducibility) - #158110 (fix macro attribute feature-gate span) - #159975 (Use real ThinVec in StmtDebugInfos) - #160001 (Suggest mutable method when iterating over binding) - #160024 (Fix mono reachability with no-op landing pads) - #160154 (Add regression test for HRTB associated type projection closure) - #160176 (No more `tests/ui/issues`!) - #160326 (Remove hidden_glob_reexports) - #160407 (Add regression tests for a number of ICEs and diagnostics issues labelled `E-needs-test`) - #160430 (bootstrap: Don't produce mutated/filtered PathSets during command-line matching) - #160472 (Minor fixes to `core::io` & `alloc::io` Documentation) - #160486 (Remove unused `FreeRegionsVisitor`) - #160496 (clarify non-determinism docs for algebraic operations) Failed merges: - #160501 (Add bootstrap CLI snapshot test for testing miri)
Rollup merge of #159727 - oli-obk:reflection_stuff, r=JohnTitor Various steps in moving away from the big reflection enum to reflection functions tracking issue: #146922 Some more of these and we can turn the big TyKind enum into one without any data, but I think these are enough steps for one PR, don't wanna turn it into a mega PR
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#160426 (`rust-analyzer` subtree update) - rust-lang/rust#160372 (Derive the allocator used by tools from rustc's allocator) - rust-lang/rust#146882 (fully deprecate the legacy integral modules) - rust-lang/rust#158727 (std: use `readdir` on nearly all UNIX platforms) - rust-lang/rust#159727 (Various steps in moving away from the big reflection enum to reflection functions) - rust-lang/rust#160443 (normalize in relations, not generalize, when relating infer with alias) - rust-lang/rust#160457 (implement -Zllvm-target-feature) - rust-lang/rust#160480 (Single-pass ASCII lower/upper case conversion) - rust-lang/rust#160502 (Reduce number of miri tests executed on PR CI) - rust-lang/rust#157430 (std::random: use little-endian for reproducibility) - rust-lang/rust#158110 (fix macro attribute feature-gate span) - rust-lang/rust#159975 (Use real ThinVec in StmtDebugInfos) - rust-lang/rust#160001 (Suggest mutable method when iterating over binding) - rust-lang/rust#160024 (Fix mono reachability with no-op landing pads) - rust-lang/rust#160154 (Add regression test for HRTB associated type projection closure) - rust-lang/rust#160176 (No more `tests/ui/issues`!) - rust-lang/rust#160326 (Remove hidden_glob_reexports) - rust-lang/rust#160407 (Add regression tests for a number of ICEs and diagnostics issues labelled `E-needs-test`) - rust-lang/rust#160430 (bootstrap: Don't produce mutated/filtered PathSets during command-line matching) - rust-lang/rust#160472 (Minor fixes to `core::io` & `alloc::io` Documentation) - rust-lang/rust#160486 (Remove unused `FreeRegionsVisitor`) - rust-lang/rust#160496 (clarify non-determinism docs for algebraic operations) Failed merges: - rust-lang/rust#160501 (Add bootstrap CLI snapshot test for testing miri)
|
@rust-timer build 114cbc0 |
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (114cbc0): comparison URL. Overall result: ❌✅ regressions and improvements - please read:Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. Next, please: If you can, justify the regressions found in this try perf run in writing along with @bors rollup=never rustc-perf 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 -0.4%, secondary 16.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 1.0%, secondary 8.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 489.825s -> 489.583s (-0.05%) |
|
Huh. None of this should be in any path reachable on stable |
|
The huge serde regression is in live_symbols_and_ignored_derived_traits, which also shouldn't be affected by this PR |
|
Something funky is going on, all PRs in the rollup have this same result |
tracking issue: #146922
Some more of these and we can turn the big TyKind enum into one without any data, but I think these are enough steps for one PR, don't wanna turn it into a mega PR