Re: E patches for review: ELoader, Scope.with, seedVat
Thomas Leonard <tal-v5nx5w6akNyLE8xUarVfuPLx9OUvmyODWmv/[email protected]>
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Organization | IT Innovation |
| Message-ID | <[email protected]> |
"Uncalling ReadOnlyFile objects" is now committed. I ducked the issue of changing the public protocol for file objects by making isDeepReadOnly package-level for now. Next up: "Load resources using E's classloader, not the system one" http://gitorious.org/~tal-itinnov/repo-roscidus/it-innovation/commit/f62d40e241020deec8f3c856edfde15a017c967c E tries to load various resources (e.g. "ParserTables.data") using the system classloader. This doesn't work if E has been deployed in a container with its own classloader (e.g. we use it in a JBI binding component to map between CapTP and SOAP). "Added Scope.with(ConstMap)" http://gitorious.org/~tal-itinnov/repo-roscidus/it-innovation/commit/25e640051591682361a1e28dd22338cb662a1ebd Convenience method. I'm thinking of adding EExpr.eval(ConstMap) too, with the eventual goal of turning safeScope into a normal map. I think someone (MarkM?) mentioned that E programs should see scopes as simple maps, rather than being given the low-level Scope object, which is an implementation detail of the interpreter? For discussion: Can I remove ESecureRandom? "This class provides a cryptographically strong random number generator based on user provided sources of entropy and the MD5 hash algorithm." I'm guessing that the normal Java version is pretty good these days - is there any reason why E needs its own one? My particular reason for wanting to remove it is that the Java version lets you request a lower-security configuration that's much faster for testing, and I worry that the crypto stuff in E isn't actively maintained. Finally, I'd like to add an extra argument to seedVat.run that is a map of additional bindings for the new vat's environment. This is so that you can create a new vat with the same module configuration as the current one, e.g. seedVat(newVat, privSrc, <this>.getEnvExtras()) It uses the persistence sealer to serialize and unserialise the map, which seems necessary because a loader has a reference to makeTraceln, which is unsafe. Is this the best way to do it? -- Dr Thomas Leonard IT Innovation Centre 2 Venture Road Southampton Hampshire SO16 7NP Tel: +44 0 23 8076 0834 Fax: +44 0 23 8076 0833 mailto:tal-v5nx5w6akNyLE8xUarVfuPLx9OUvmyODWmv/[email protected] http://www.it-innovation.soton.ac.uk