-
Notifications
You must be signed in to change notification settings - Fork 251
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
Freelist defrag #1023
Freelist defrag #1023
Conversation
Also, pull some irrelevant assertions into tests that are more atomic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@uint Thanks for the contribution! This PR is good to go once those two comments I left are addressed
@austinabell If you would have the capacity, it would be great to hear your input here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have bandwidth to review in depth right now, but shared some thoughts from skimming the PR. Hope it's helpful! :)
I know this is horribly out of scope, but |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@austinabell Thanks for the review! I feel @uint addressed all of them, and I am ready to merge this PR once all tests pass.
Closes #990
This PR picks up where #992 left off (thanks @askoa!). The implementation is mostly the same except:
FreeList::defrag
does not interact withVector
internals (see comments in feat:defrag
function forFreeList
andUnorderedMap
#992)Vector
gets the newremove_tail
method to support the above in a slightly more efficient fashiondefrag
test does not assert stuff irrelevant to the feature - those assertions are instead pulled into new, more atomic tests (new_bucket_is_empty
,occupied_count_gets_updated
)