-
Notifications
You must be signed in to change notification settings - Fork 212
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
Dynamically create new vats. #410
Conversation
7fd2259
to
e8cda0a
Compare
32b77a5
to
f7c09eb
Compare
It looks like you disabled a whole bunch of tests.. was that intentional? |
Many non-SES tests failed, and I remembered @warner saying something indicating he that was likely ahead of time. As discussed off-line, Brian wasn't saying that was acceptable, so I'll go back and figure out what's necessary to re-enable them. |
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.
ok, I think there are some non-critical changes we can make to clean things up, but overall it looks sound and correct. I'm most interested in --without-ses
working, and then my next priority is code cleanup so we can read this better in the future, followed by handling syntax errors in the new vat's code somehow.
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.
Since you looked at the code before, my recommendation is not to look at the new individual commits, but instead to review the entire PR as a diff against master.
hm, could you make two changes to the patch series:?
|
01d663f
to
ac545fc
Compare
Doesn't handle termination. Includes updates to tests. No longer skips non-SES tests to simplify merging. This means non-SES tests are broken.
…s dropped in the merge.
It has lots of internal state that doesn't need to leak.
and update tests.
Test changes have been split into a separate commit, since they invert most of an earlier commit, and can be merged more cleanly separately.
Various other responses to review comments included.
Handle errors during vat creation (and add a test case). Simplify registration of vat admin functions with vatAdmin Device More refactoring for readability
ac545fc
to
77820e3
Compare
There was a request to handle syntax errors in the new vat's code. See the brokenVatTest to decide whether you like the approach. I merged out the skipping of non-SES tests, since it touched so many files. That meant that many intermediate commits wouldn't pass tests, but that's probably okay at this point. This has now been rebased to current master. |
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 like where this is going!
Create serialized string directly when notifying adminVat. Various renamings and comment clarifications. Provide vat control functions directly, rather than providing an accessor. Remove adminStats framework, since it's not complete here. Coming soon.
I'll make separate PRs to 1) switch to imports rather than require() and 2) renaming kernelKeeper's I didn't add a distinct notification for the error case in vat creation. The adminVat finds out |
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.
b669f53
to
a9b4213
Compare
@@ -19,6 +19,9 @@ import { insistCapData } from './capdata'; | |||
import { parseVatSlot } from './parseVatSlots'; | |||
import { buildStorageInMemory } from './hostStorage'; | |||
|
|||
const ADMIN_DEVICE_PATH = require.resolve('./kernel/vatAdmin/vatAdmin-src'); |
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.
darn. More use of require.resolve
. (ambient authority grumble... and doesn't work on xs)
I wish I had taken a look sooner.
@dckc what would work better here? I wasn't happy with this, but I didn't find anything else that allowed the kernel to get access to source code to use for a built-in device and vat. |
I hope In particluar, I suppose it doesn't help that much with the relative path resolution fuctionality of If we have to expose reading source code from files in our APIs, we should use filesystem access objects, a la java's |
I'd rather pass source code in to the SES realm/kernel (as a string) than pass in file-reading ability. But yeah, I think proper modules and |
Doesn't handle termination.
Includes updates to tests.
The base change for the vatAdmin changes is here. See this discussion for context.