-
Notifications
You must be signed in to change notification settings - Fork 21
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
Environment Macro Property IO #1087
Conversation
2f91c49
to
2cc3212
Compare
fc1bcac
to
3340dd4
Compare
3340dd4
to
259f2eb
Compare
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.
A few trivial comments added, that would be nice (and simple) to address, though not the end of the world to merge without. Can wait till you return from leave.
The change to .cu files made diffing less clear (just git issues), and will mean we have to do more of a breaking change later if we have a non cuda build, but that's going to be breaking either way.
Tests all pass under linux.
This is an API break, so will need documenting in the changelog as such for the next pre-release.
259f2eb
to
f6ab3dd
Compare
Exported as 1D array for simplicity. Also switched CUDAMacroEnvironment from reference to shared_ptr
This special method also supports raw binary IO, for exceptionally large macro propertys unsuitable for xml/json. Added an associated test in suite IOTest3 for each of the formats.
f6ab3dd
to
ad59e2a
Compare
Ended up refactoring much of the internal model state IO interface to make partial import/export possible.
JSONStateWriter
would create an agent object for each agent state, leading to multiple members with the same key.HostMacroProperty
did not use streams to copy data. (C tests still pass after this change)CUDAMacroEnvironment
from reference toshared_ptr
Of note, macro properties can still not be initialised via
EnvironmentDescription
orRunPlan
.It's a basic interface change (two new methods added to
HostAPI
with no weird types/templates, so only C API tests have been extended/updated.Commits are split cleanly, does not require squash.
Closes #1070