[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Classpath build process and VM-specific issues
From: |
Steven Augart |
Subject: |
Re: Classpath build process and VM-specific issues |
Date: |
Fri, 26 Mar 2004 18:56:43 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007 |
Etienne Gagnon wrote:
It would be impractical (or even maybe impossible) to setup a *single*
"classpath" installation on a user system, meant to be used by distinct
VMs/compilers on this same system;
I have a counterexample. I just used /usr/local/classpath on my
workstation to build JikesRVM (CVS head) and to run JamVM 1.1.1.
So, I suggest to change the "configure.ac" to force "./configure" to
require a "--with-vm=xxx" option. In other words, there would not
be a "default" Classpath configuration. The motivation is that when
a user builds a Classpath version, he intends to use it in some
context. There is no default set of options that would work for
all possible uses of Classpath. In fact, each possible "default"
configuration would favor one VM or one compiler over the others.
I oppose this change on software engineering grounds. I don't like
the idea of Classpath having knowledge about particular VMs and what
they need. I see your point that different VMs may need different
Classpath config flag combinations -- maybe I was just lucky that
JamVM and Jikes RVM had compatible needs -- but I want to keep
Classpath VM-independent.
As we discussed on the Sable VM developer's mailing list today, there
is no requirement that all of the classes in a particular package be
in the same .jar file.
Jikes RVM, like JC and Kissme, overrides a few GNU Classpath classes
with its own implementation; the jar file containing the classes
specific to Jikes RVM appears in the bootstrap class loader's (two
element long) search path before GNU Classpath's library.
[...]
[talking of normal package tree: would anybody object to moving the
whole tree to an src/ subdirectory, as it should be done in such
a big project?]
I object. Moving files in CVS is unpleasant. (The different ways of
doing so are discussed in the cvs.info page. None of them is good.)
Grzegorz Prokopski and I are working on a set of m4 macros (that would
not require understanding "m4" to be used) to allow minimal customization
of VM*.java classes for each VM, while retaining most of the code
sharing across all VMs that can work with the default VM*.java setup.
This sounds very nice. I would like to share more of our common
infrastructure.
[Some VMs, like JikesRVM tend to completely replace some base classes
by their own; SableVM does not].
Jikes RVM's rvmrt.jar overrides exactly eleven non-VM* classes from a
default Classpath installation's glibj.zip:
java.lang.Class
java.lang.Object
java.lang.Thread
java.lang.Throwable
java.lang.ref.PhantomReference
java.lang.ref.Reference
java.lang.ref.SoftReference
java.lang.ref.WeakReference
java.lang.reflect.Constructor
java.lang.reflect.Field
java.lang.reflect.Method
--Steve Augart
--
Steven Augart
Jikes RVM, a free Virtual Machine:
http://oss.software.ibm.com/jikesrvm
Re: Classpath build process and VM-specific issues, Patrik Reali, 2004/03/27