[e-lang] E patches for review: ELoader, Scope.with, seedVat
Thomas Leonard
tal at it-innovation.soton.ac.uk
Thu May 20 06:44:54 PDT 2010
"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 at it-innovation.soton.ac.uk
http://www.it-innovation.soton.ac.uk
More information about the e-lang
mailing list