Charles Oliver Nutter schrieb:
Alan McKean wrote:
Thanks for taking the time to think this through. Let me make sure I
understand. What you are proposing would decouple the runtime from the
objects but still make it accessible via the ClassLoader. That seems
to be solve a major part of the problem, but doesn't it still leave
the metaclass hierarchy coupled to the object? If we persist (or
serialize) the object, we would want to replace the metaclass
reference with enough information to be able to restore the metaclass
reference when the object is paged back in from disk (or
deserialized). I was thinking that we had to decouple the runtime so
that we wouldn't be persisting things like threads AND decouple the
metaclass so that we wouldn't be storing metaclass hierarchy and all
of the method dictionaries. Of course, storing the classes and methods
would open the door for a shared development environment, so maybe we
would want to flush that to the persistent store, too. But it seems
like that would not be what we want for serialization.
I'm leaning toward the second example now, where you control the
deserialization of the objects and can provide a runtime at that point.
In general I'm not sure it's going to be practically possible to
decouple the object from runtime completely, because they still need a
place to get at runtime-global state, like classes, global variables,
and thread contexts. If we forced a JVM-global or classloader-global
place to find those things, then we could eliminate the runtime
dependency, but we'd also make it far more difficult or even impossible
to have multiple separate runtime worldspaces in the same JVM...
sorry for commenting here, I know it is not my project and I don't know
the architecture enough, but ;)
I mean given that the object you deserialize has a transient field
giving access to the JRuby runtime, then all that has to be solved is
setting this filed correctly, right? If yes, then who is deserializing?
Isn't a runtime doing this? And wouldn't that mean I have a runtime I
can attach the object to? That would be independent of classloaders and
globals. I am sure I am missing something important here.
bye blackdrag
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email