-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Tracking issue for Ref/RefMut::map_split #51476
Comments
Can I just say how awesome it is for people to actually be willing to block something on a proof of soundness? I love this community <3 |
I have just completed the proof of soundness of this new feature: https://gitlab.mpi-sws.org/FP/LambdaRust-coq/commit/70db5cbf1f63879ff8171218d4ba679e8e4c69a2 Note, however, that our model do not model machine integer. Therefore, it is possible that our proof would not spot an overflow in the borrow counter that would cause an unsoundness. That said, causing an overflow in the borrow counter is very hard anyway. |
That's fantastic! Thanks so much for doing that! In your opinion, is integer overflow something we should be concerned about, or are you comfortable that it's not an issue even though the proof doesn't technically cover it? @joshtriplett @dtolnay Anything left to do before proposing stabilization? |
Given recent events, I think it's rather reasonable to want to carefully examine the assumptions that integer overflow can't happen here. Looking over the code, it appears that several of the overflow checks occur in a |
Of course, a thorough review of the code cannot hurt. But actually, I cannot imagine a realistic scenario where this overflow would occur without causing an out of memory first (or using a lot of mem::forget calls for each of the created Ref/RefMut, which is also a weird thing to do). |
What overflow check are you speaking about? Reading the current state of the code, all the overflow checks are either As far as I can tell, each incrementation or decrementation of the counter in this code is either guarded by an overflow check or cannot overflow because of the current sate of the counter. |
Unsoundness is unsoundness, regardless of how pathological the program would have to be :) But regardless, I don't think it's an issue. All overflow is checked by
|
@joshlf Thanks for clarifying! With that clarification on the |
That said: could someone add a note to the comment at the top of that file, regarding checking for overflow, that any such overflow checks must be |
@sfackler shall we stabilize this perhaps? |
We previously had |
FWIW, my own use case for |
I don't personally have an opinion, I'd be fine either way |
I definitely think this opens a door to a ton of other methods that may be desired, and are just as easily justified, that we may not want to support. For example, It's worth noting though that |
This is a fair point. Alright, let’s stabilize @rfcbot fcp merge |
Team member @SimonSapin has proposed to merge this. The next step is review by the rest of the tagged team members:
No concerns currently listed. Once a majority of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
I’m not sure this needs sign-off from the whole lang team though. |
I agree, @SimonSapin -- this looks like a purely library change to me. |
Alright. @rfcbot fcp cancel |
@SimonSapin proposal cancelled. |
@rfcbot fcp merge |
Team member @SimonSapin has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
Ping @Kimundi @sfackler @withoutboats :) |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
The final comment period, with a disposition to merge, as per the review above, is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. The RFC will be merged soon. |
…cell-map-split, r=cramertj,Centril Stabilize refcell_map_split feature Closes rust-lang#51476.
…cell-map-split, r=cramertj,Centril Stabilize refcell_map_split feature Closes rust-lang#51476.
Tracking issue for
Ref::map_split
andRefMut::map_split
(featurerefcell_map_split
), implemented in #51466.Blocking stabilization
cc @RalfJung @jhjourdan
The text was updated successfully, but these errors were encountered: