Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upTracking issue for Ref/RefMut::map_split #51476
Comments
stokhos
added
T-lang
T-libs
labels
Jun 10, 2018
This comment has been minimized.
This comment has been minimized.
|
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 |
jkordish
added
the
C-tracking-issue
label
Jun 26, 2018
This comment has been minimized.
This comment has been minimized.
|
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. |
This comment has been minimized.
This comment has been minimized.
|
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? |
This comment has been minimized.
This comment has been minimized.
|
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 |
This comment has been minimized.
This comment has been minimized.
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). |
This comment has been minimized.
This comment has been minimized.
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. |
This comment has been minimized.
This comment has been minimized.
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
|
This comment has been minimized.
This comment has been minimized.
|
@joshlf Thanks for clarifying! With that clarification on the |
This comment has been minimized.
This comment has been minimized.
|
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 |
This comment has been minimized.
This comment has been minimized.
|
@sfackler shall we stabilize this perhaps? |
This comment has been minimized.
This comment has been minimized.
|
We previously had |
This comment has been minimized.
This comment has been minimized.
FWIW, my own use case for |
This comment has been minimized.
This comment has been minimized.
|
I don't personally have an opinion, I'd be fine either way |
This comment has been minimized.
This comment has been minimized.
|
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 comment has been minimized.
This comment has been minimized.
|
This is a fair point. Alright, let’s stabilize @rfcbot fcp merge |
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Feb 1, 2019
•
|
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. |
rfcbot
added
proposed-final-comment-period
disposition-merge
labels
Feb 1, 2019
This comment has been minimized.
This comment has been minimized.
|
I’m not sure this needs sign-off from the whole lang team though. |
This comment has been minimized.
This comment has been minimized.
|
I agree, @SimonSapin -- this looks like a purely library change to me. |
This comment has been minimized.
This comment has been minimized.
|
Alright. @rfcbot fcp cancel |
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Feb 2, 2019
|
@SimonSapin proposal cancelled. |
rfcbot
removed
proposed-final-comment-period
disposition-merge
labels
Feb 2, 2019
SimonSapin
removed
the
T-lang
label
Feb 2, 2019
This comment has been minimized.
This comment has been minimized.
|
@rfcbot fcp merge |
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Feb 2, 2019
•
|
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. |
rfcbot
added
proposed-final-comment-period
disposition-merge
labels
Feb 2, 2019
This comment has been minimized.
This comment has been minimized.
|
Ping @Kimundi @sfackler @withoutboats :) |
rfcbot
added
final-comment-period
and removed
proposed-final-comment-period
labels
Mar 6, 2019
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Mar 6, 2019
|
|
rfcbot
added
finished-final-comment-period
and removed
final-comment-period
labels
Mar 16, 2019
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Mar 16, 2019
|
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. |
joshlf commentedJun 10, 2018
•
edited by SimonSapin
Tracking issue for
Ref::map_splitandRefMut::map_split(featurerefcell_map_split), implemented in #51466.Blocking stabilization
cc @RalfJung @jhjourdan