Uh oh!
There was an error while loading. Please reload this page.
Use min_specialization in the remaining rustc crates - #72707
Conversation
rust-highfive
commented
May 28, 2020
r? @eddyb (rust_highfive has picked a reviewer for you, use r? to override) |
rust-highfive
commented
May 28, 2020
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
9217821 to
dc4d551Comparerust-highfive
commented
May 29, 2020
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
dc4d551 to
21eab5bComparerust-highfive
commented
May 29, 2020
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
21eab5b to
cefb703Comparebors
commented
May 30, 2020
☔ The latest upstream changes (presumably #72778) made this pull request unmergeable. Please resolve the merge conflicts. |
cefb703 to
596afe0Comparebors
commented
Jun 6, 2020
☔ The latest upstream changes (presumably #72927) made this pull request unmergeable. Please resolve the merge conflicts. |
matthewjasper
commented
Jun 9, 2020
Is there anyone in @rust-lang/compiler willing to review this? |
There was a problem hiding this comment.
are the two separate lifetimes 'a and 'b really necessary here? Couldn't they just be one and use Ty<'a>?
There was a problem hiding this comment.
Unfortunately not. Specializing impls can't repeat type/lifetime parameters.
There was a problem hiding this comment.
Is there a measurable perf loss to just doing lift and unwrap and skipping the transmute?
There was a problem hiding this comment.
Ok, looks like there are some serious losses here. Let's benchmark against the transmute variant and if that has no perf losses, let's merge it.
There was a problem hiding this comment.
I think you can just lift the entire borrowed slice instead of each element
oli-obk
commented
Jun 9, 2020
I agree. r? @oli-obk r=me with the comments resolved in some way |
596afe0 to
09a2e80Comparematthewjasper
commented
Jun 9, 2020
@bors try @rust-timer queue |
rust-timer
commented
Jun 9, 2020
Awaiting bors try build completion |
bors
commented
Jun 9, 2020
⌛ Trying commit 09a2e80cc4266f81c7d60516f8eff5eb92093b7f with merge 70c770a6c3a5241ab4f65e6841ecd641c983a4fb... |
bors
commented
Jun 9, 2020
☀️ Try build successful - checks-azure |
rust-timer
commented
Jun 9, 2020
Queued 70c770a6c3a5241ab4f65e6841ecd641c983a4fb with parent feb3536, future comparison URL. |
rust-timer
commented
Jun 10, 2020
Finished benchmarking try commit (70c770a6c3a5241ab4f65e6841ecd641c983a4fb): comparison url. |
rust-timer
commented
Jun 10, 2020
Awaiting bors try build completion |
bors
commented
Jun 10, 2020
⌛ Trying commit 88ea7e5 with merge 3b49dc19913ecb228b5ce64932615370ac1ebc35... |
nikomatsakis
commented
Jun 10, 2020
One thing I want to mention: The specialization hack that we use was meant to be replaced with a custom trait for serialization, but that was blocked on the ability to use custom derive -- now that we have custom derive, couldn't we make the encodable trait carry a Also, how much is any of this documented? I cast my eye over the diff but I admit I've always found the encoding system rather confusing. |
bors
commented
Jun 10, 2020
💥 Test timed out |
oli-obk
commented
Jun 10, 2020
@bors try @rust-timer queue |
rust-timer
commented
Jun 10, 2020
Awaiting bors try build completion |
bors
commented
Jun 10, 2020
⌛ Trying commit 88ea7e5 with merge d5dd610915fff92af707dd35f4a864570eaa8520... |
matthewjasper
commented
Jun 10, 2020
I've started working on safe serialization traits, but it's going to be a large change affecting a lot of code, so I think it makes sense to have it separated. |
bors
commented
Jun 10, 2020
☀️ Try build successful - checks-azure |
rust-timer
commented
Jun 10, 2020
Queued d5dd610915fff92af707dd35f4a864570eaa8520 with parent bb86748, future comparison URL. |
rust-timer
commented
Jun 10, 2020
Finished benchmarking try commit (d5dd610915fff92af707dd35f4a864570eaa8520): comparison url. |
matthewjasper
commented
Jun 10, 2020
@bors r=oli-obk |
bors
commented
Jun 10, 2020
📌 Commit 88ea7e5 has been approved by |
Aaron1011
commented
Jun 11, 2020
@bors r- r=oli-obk This wasn't showing in the queue at https://buildbot2.rust-lang.org/homu/queue/rust |
bors
commented
Jun 11, 2020
📌 Commit 88ea7e5 has been approved by |
…-obk Use min_specialization in the remaining rustc crates This adds a lot of `transmute` calls to replace the unsound uses of specialization. It's ugly, but at least it's honest about what's going on. cc rust-lang#71420, @RalfJung
Rollup of 10 pull requests Successful merges: - rust-lang#72707 (Use min_specialization in the remaining rustc crates) - rust-lang#72740 (On recursive ADT, provide indirection structured suggestion) - rust-lang#72879 (Miri: avoid tracking current location three times) - rust-lang#72938 (Stabilize Option::zip) - rust-lang#73086 (Rename "cyclone" to "apple-a7" per changes in upstream LLVM) - rust-lang#73104 (Example about explicit mutex dropping) - rust-lang#73139 (Add methods to go from a nul-terminated Vec<u8> to a CString) - rust-lang#73296 (Remove vestigial CI job msvc-aux.) - rust-lang#73304 (Revert heterogeneous SocketAddr PartialEq impls) - rust-lang#73331 (extend network support for HermitCore) Failed merges: r? @ghost
This adds a lot of
transmutecalls to replace the unsound uses of specialization.It's ugly, but at least it's honest about what's going on.
cc #71420, @RalfJung