-
Notifications
You must be signed in to change notification settings - Fork 15
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
Integrate PMA #143
Integrate PMA #143
Conversation
9c3263a
to
1f61db5
Compare
…e vaof_t this should be closely inspected. additionally fixed _bt_data_cow implementation and a few other misc things
did I do this right? need to review. additionally, need to rewrite _pendling_nlist_merge
@@ -51,6 +50,7 @@ pub struct NockStack { | |||
alloc_pointer: *mut u64, | |||
/** MMap which must be kept alive as long as this NockStack is */ | |||
memory: MmapMut, | |||
/** PMA from which we will copy into the NockStack */ |
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.
Incoming member that's not yet present?
@ashelkovnykov @joemfb the plan is to merge this once it is capable of
Please review with an eye toward this merge. Bugs, TODOs, and cleanup which are not on the path to merging the above functionality with a CI greencheck are to be filed as issues and worked on in separate PRs. I believe the interface for this is sufficiently stabilized that merging it will enable me to focus on integrating other components, most notably codegen. |
…MA, not just an indirect atom
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 understand 100% of the Rust changes and 15% of the C changes - shipping a review to get this out of monolithic status.
Integrate the PMA work done by @barter-simsum and add logic to stash nouns and cold state in it.
goals for this PR
We intend to integrate this PR once the following are possible:
Further issues will be opened for bugfixes and TODOs, but this will allow us to integrate codegen and other pending work against a stable interface.
archived TODO
Edward TODO
Persist
traitHamt
to be pointer-to-stem instead of stem. (It should have been all along, and this facilitateshandle_from_u64
)Persist
forNoun
Persist
forHamt
😓Persist
forBatteries
Persist
forBatteriesList
Persist
forNounList
Persist
forCold
(after Alex's review)
serf
Persist for Noun
usePersist for Atom
implementation for atom casecopy_to_buffer
forNoun
continue
s in HAMT persist loopsPersist
instancesPreserve
trait and the phase-separation between size-counting and actual copying.David TODO
bt_sync
_bt_data_cow
MAP_FAILED
- abort if so -- actually should check that the return is thefixed addr passed in since mmap makes no guarantee that it will map at that address, but we rely upon that
bt_state_close()
bt_state_open()
cycle_bt_insert
that will exercise deletion coalescingbt_malloc
test - validate modifications to mlist, flist, and possibly btree though that may be adequately covered by_bt_insert
bt_free
test. validate modifications to mlist and possibly btreebt_malloc
andbt_free
calls and follow that up with a call tobt_sync
to cover a scenario that will drop at least one treecargo build
Alex TODO