Thread: Re: [Sablevm-developer] Obsoleting sablevm-classpath NOW!
Brought to you by:
egagnon
From: Stephen C. <cr...@ds...> - 2004-03-26 07:01:37
|
Hi Etienne, > SableVM does not have *any* sablevm-specific class. It simply uses > the /vm/reference classes with very *minor* modifications (currently > some changes are more than minor simply because it has not yet been > put into upstream classpath; e.g. fills in reflection classes, etc.). Sounds like Kissme, though in the Kissme case I call those classes kissme specific. A very minor difference is still a difference. > SableVM needs no Java classes of its own. Kissme currently has a couple of Java classes that implement the system class loader. > Also, strictly speaking, a > class outside glibj.zip (which, by the way, should be called libclasspath.jar) > is in a *different* runtime package than any class withing this file, > if one is to follow closely the JVM spec, so the package-private classes > have to live in libclasspath.jar. Interesting ... Skimming through the JVM spec, I haven't found where it states that all package-private classes in a package must live in the same ZIP file. Could you point out for me where it says this? > Also, I see no reason for SableVM to need to build classpath twice: > - once to build classpath itself, and > - once to re-build the VM*.java classes just for sablevm to be able > to put those classes in an awkward place on the system... This is only necessary if you insist in putting all system classes into the same ZIP file. > I really do not see various VMs sharing the same Classpath installation; > ther would be just too much possible problems. I don't see these problems. In fact, from what I've heard from others, I'm pretty sure that Jikes RVM, JC and Kissme could happily coexist with a single Classpath development sandbox and a single install directory containing one copy of glibj.jar and the Classpath native libraries. > So, to answer your question: out-of-the-box means: > 1- A user downloads SableCC (written in C) and compiles it (needs gcc). > 2- Same user downloads Classpath (written in C and Java), and compiles it > (needs gcc and jikes). > 3- User runs Java software. :-) With Kissme, you do step 2 before step 1. And you need to run the "./configure" scripts in both Classpath and Kissme. But I think that Kissme still qualifies as "out-of-the-box" by your criteria. -- Steve |
From: Steven A. <au...@wa...> - 2004-03-26 14:33:18
|
Stephen Crawley wrote: > Skimming through the JVM spec, I haven't found where it states that all > package-private classes in a package must live in the same ZIP file. > > Could you point out for me where it says this? I am curious about this too, Etienne. Also, quoting from your original letter: Etienne> a Etienne> class outside glibj.zip (which, by the way, should be called libclasspath.jar) Etienne> is in a *different* runtime package than any class withing this file, Etienne> if one is to follow closely the JVM spec, Did you mean to imply that public classes in the same package must come from the same .jar file? I want to know about this possible requirement since, if it is a requirement, someone will need to bring Jikes RVM into conformance. I just did some browsing through the Sun 1.4.2 API docs and the closest thing I could find was the notion of sealing a package so that classes in it may be loaded only from a particular URL. [...] Etienne>I really do not see various VMs sharing the same Classpath installation; Etienne>ther would be just too much possible problems. > > I don't see these problems. In fact, from what I've heard from others, > I'm pretty sure that Jikes RVM, JC and Kissme could happily coexist with > a single Classpath development sandbox and a single install directory > containing one copy of glibj.jar and the Classpath native libraries. That is my understanding as well. It would just be a matter of telling the VM to load classes out of the shared Classpath install directory. (Of course, the VM-specific classes, including the whole com.ibm.JikesRVM.* tree, would still be first in that search path.) -- Steven Augart Jikes RVM, open source Research Virtual Machine: http://oss.software.ibm.com/jikesrvm Office: +1 914/784-6743 T.J. Watson Research Center, IBM |
From: Etienne G. <gag...@uq...> - 2004-03-26 16:15:51
|
Stephen Crawley wrote: > Sounds like Kissme, though in the Kissme case I call those classes > kissme specific. A very minor difference is still a difference. I know, this is why I see the importance of the --with-vm=xxx option and m4 system so that: 1- VMs like SableVM & Kissme can share 99% of the code of VM*.java classes. 2- The appropriate 1% gets compiled, depending on which VM is going to use the compiled code. > Kissme currently has a couple of Java classes that implement the system > class loader. To be fair, SableVM adds a VirtualMachine.java class as a startup point, but that class could easily be used by other VMs. It modifies the provided gnu.xxx system class loader a little. [this is the kind of code fixes that could be shared; the code has nothing "sablevm-specific" to it]. > Skimming through the JVM spec, I haven't found where it states that all > package-private classes in a package must live in the same ZIP file. Hmmm... JVMS 5.3 says defining CL + package name + class name uniquely identify a class; I guess you're right... There's no such obligation. My error. (SableVM implements 5.3). -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |