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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.