[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU Classpath and JVMs

From: Robert Schuster
Subject: Re: GNU Classpath and JVMs
Date: Thu, 15 Sep 2005 16:23:44 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.7.11) Gecko/20050830


theUser BL wrote:
> Hi!
> What me everytime wonder is, that GNU Classpath have not its own VM.
Theoretically every Java replacement package should develop a VM, tools and a
class library.
However it quickly turned out that there is a lot of stuff which can be shared
between the
projects. One of them is the huge class library and the helper tools
(appletviewer, javadoc, serialver, rmic, ...)

> To show the situation so, like I see it:
> Suns Java comes as a complete package, which includes the Classes _and_
> the JVM.
> Mono comes as a complete package, which includes the .net-classes and
> the mono-runtime.
SableVM, Kaffe (<= 1.1.6) and a few other VMs work in the same way.
The difference is that they 'outsource' development of the library into
another project (GNU Classpath).

Isn't there some shared development work between DotGNU and Mono, too?

> Only with GNU Classpath it looks a little bit different.
> At first the developer changed the GNU Classpath code on any JVM, so
> that is no longer compatible to the old one.
> So, when a new GNU Classpath version is released, there existing at
> first, no JVMs on which it can run.
This depends entirely on the associated projects. JamVM for example is pretty
fast in always supporting the latest Classpath version out of the box.

> After the release, the first JVMs are using the new Classpath version in
> its CVS. And later some using the new one. And some are being on older
> one (GCC-20050909 used still 0.17; SableVM used still 0.16 in CVS)
GCJ does a lot of things differently and they need special versions of certain
core classes (String?). Nevertheless efforts are underway to unify development
as far as possible (At least, I hope so ;) ).

For SableVM the situation is similar. You may ask on the SableVM list for
further details.

>> From the new versions, which use 0.17 or 0.18, I can either not
>> compile it 
> or it (like JamVM), or it have problems with AWT and Swing (IKVM).
Please keep in mind that GNU Classpath is alpha quality software (see README)
and we cannot promise to *not* make VM-breaking changes between our release
snapshots. It is one of the long-term goals to reach a stable VM Interface API
(this is what causes most breakages) but currently this is not possible. As the
free VMs evolve new requirements are posed upon Classpath.

Especially the projects that leave the roads of traditional Java (I am speaking
of IKVM.NET and JNode here ...) environments stress the flexibility of this API
frequently. (Which is good because this will finally bring robustness.)

Btw: It is hardly predictable which new requirements the Apache Harmony project
may have for us ... :)

Only one thing is for sure: We want to support as many as possible JVM and JVM
look-alikes in the most elegant and efficient way.

> And a CVS-version of Kaffe I have not tried. But Kaffe 1.1.5 don't run
> Swing programs on my computer.
For a long long time Kaffe developed its own class library. These days Dalibor
is applying Classpath' patch flood into Kaffe's library to keep the projects in

However the long term goal for Kaffe is supporting Classpath out of the box,
too. But this needs some time because IMHO Dalibor is the only one working on 

> So I asked myself, what JVM does the GNU Classpath developer use?
> They can not use a JVM, which still have a old version of GNU Classpath
> (like SableVM or Gcj).
I am pretty sure most of us use a tiny little spec-compliant VM that is
developed by Robert Lougher: JamVM

For me JamVM is ideal because it compiles in a short amount of time and is not
so complex (I am not a VM developer but was able to fix a few issues myself).

> And I don't understand, why GNU Classpath comes not with its own JVM.
> Other JVMs can then always later bringing GNU Classpath to its own JVM.
> But at first it need a JVM as basis.
GNU Classpath is in some aspects comparable to GNU libc. So while the glibc does
not has its 'own'* compiler and other Unix tools GNU Classpath does not have 

However the GNU project has what you asking for:
Java VM: GCJ
Java library: Classpath
C compiler: GCC
C library: glibc

I hope this makes sense and the Classpath fellow have no major complains about
the way I see the things. :)


* Ok, I just read that glibc is not really ported to different compilers.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]