This is exactly right. We need one primordial class loader for each process.[A452]
Yes, you are right to point out the bootstrapping problem. However, I would solve it in a different way.[A461]
OK, just to make sure I got your proposal straight: we have multiple native primordial classloaders to generate our disjoint classloaders for multiple processes.[A462]
I wasn't thinking they'd be native, but if that's easier to do... I'd actually prefer to do it Gilbert's way.[A463]
OK -- /I/ think doing it natively will be easier, if for no other reason than we'll be /sure/ that the problems with it aren't in the Java/native interface we'd be simultaneously debugging.[A464]
There are several ways one might want invoke a program:[A459]
[multiple process] Invoke-able
In an earlier message, when I wrote "runnable", I meant "invoke-able".[A455]
[multiple process] Critical methods
Let's assume -- for the sake of discussion -- that we have a multiple primordial class loader in machine code (MPCL/M).[A458]
[multiple process] Boot classes
Classes required at boot-time are "boot classes".[A467]
Java Processes: Final Summary?
Processes can be defined as two or more threads with disjoint memory spaces, where each group of threads (ThreadGroup or not) which shares a memory space constituting a process.[A477]
As promised, here is my response to _Quinn's final summary.[A498]
...the efficiency benefit I was considering is actually rather small, because you could code the instanceof/checkcast stuff to call a function to compare if two classes/interfaces are the same...[A511]
Although I would personally choose to adopt the semantics of object ownership you just described, I wouldn't rule out "changing" them.[A513]
I think flags are still useful if we use Gilbert's byte cache and apply it to user defined class loaders.[A514]
Any form of IPC can be implemented in terms of any other form of IPC.[A515]
A link in a file subsystem is a useful analogy to the object graph in a MPCL-compatible virtual machine.[A516]
Earlier, I offered an equivalent example in the Java programming language and used bytecode instead of class definition.[A517]
w.r.t. to the ownership of JavaProcess objects, it has occured to me that we could do things the UNIX way.[A518]
Well, from here in the JVM trenches, they're not, but yeah, I think I see where you were coming from.[A519]
This points out the problem with this approach.[A523]
Proxies are not required to do this (as I explained in response to Gilbert's email).[A524]
There appears to be some confusion in the understanding of Gilbert's bytecode cache.[A525]
Quite right. I don't think I was confused as to Gilbert's proposal; his phrasing, does not consider (2), which is absolutely necessary -- for the reasons I'd outlined previously.[A531]
What the pid idea does is create an implicit proxy for us, so that we can have JavaProcesses without having to develop an object-sharing infrastructure, and the same with sockets.[A532]
This message concerns Ryan's response to Gilbert's implementation of object-sharing by proxy/ownership lists.[A533]
So, the nativ package (do we call it the decaf sub-package now?) could initially do it this way.[A539]
It so happens that ProcessClassLoader has a reference to the process that it is loading classes for.[A540]
I see why the process which originated object might want to maintain a reference to the shared object; I don't see that this reference needs to be any different than any other kind, or have tha distinction maintained by the kernel.[A541]
Admittedly, this is the pathological case...[A562]
[multiple process] Terminology
As we have seen, "redundent" classes are a good thing.[A481]
[multiple process] Kernel class loader
Eventually, something must be added to reduce redundent bytecode.[A480]
I think I can agree with that; I mentioned earlier that class definition and bytecode caches can co-exist.[A484]
[multiple process] Stumped, again
I have searched and searched; but, I cannot find anything that prevents us from sharing class definitions for all class loaders, both primordial and custom.[A535]
...we can no longer allow object sharing simply because the class definitions are the same (as you had thought).[A542]
My current understanding -- and Ryan's, apparently -- is that we can share bytecode as prolificly (sp?) as we like.[A544]
Content of these pages are owned and copyrighted by the poster.