classpath
[Top][All Lists]
Advanced

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

Re: SystemClassLoader


From: Robert Lougher
Subject: Re: SystemClassLoader
Date: Mon, 08 Dec 2003 04:23:41 +0000

Hi Mark,

Thanks for taking the time to give JamVM a test -- it's really nice to get positive feedback.

JamVM-1.1.1 should be out in the next few days. It's basically done apart from modifying the build/install files. The release of JamVM-1.1.0 was a bit rushed as I had a company in Canada that needed Reflection support (for Jetty) and I've found a couple of nasty bugs since. In particular, testing of the changes for the VMClass/Class split didn't catch a segv in isAssignableFrom, so this may explain some of the Mauve crashes...

I'm really pleased the gtk-peers work -- as long as the VM's threading and JNI are OK it should just work as expected but I haven't really tested. The comment dates back to when I released 1.0.0 using Classpath-0.04. I just left it in as a get-out clause because I'd not tested graphics with 0.06 at all. I'll remove it...

Your SableVM/Eclipse "hack" is exactly what I'm doing (I just create a set of URL's for the classpath). If you think it's OK then I'm happy to use it.

I'll check --without-zip on Classpath-0.07. Perhaps it's something to do with the pre-built glibj.zip file added in 0.06? I'm still not decided about adding zip support to the VM bootstrap loader. It would be nicer, but it depends on how much code it adds (it can always be optional). Anyway, I'll get 1.1.1 out before re-looking at this...

One last point - I guess if JamVM runs OK with 0.07, it should work with CVS?

Thanks,

Rob.

----Original Message Follows----
From: Mark Wielaard <address@hidden>

Hi,

On Tue, 2003-12-02 at 08:56, Robert Lougher wrote:
> I'm the developer of yet another open-source Java VM
> (http://jamvm.sourceforge.net).  I'm about to release version 1.1.1
> which has been updated to Classpath-0.07 (basically VMThread/Thread).

That is a nice little VM you have there. It just worked out of the box
with 0.06. Can't wait to try out the new version based on 0.07.

In your installation documentation you said to disable awt-peers. But to
my big surprise these just work out of the box when enabled. And it even
works well enough to play with the wonka-visual-test-engine from Mauve
that Thomas setup (which is great since both kissme and sablevm can do
that yet, so jamvm gives me another option to test the peers without
having to use gcj/gij, which take ages to compile). With 0.07 these
peers have seen dramatic improvements so it would be interesting how
well the visual tester does with 1.1.1.

BTW do you use the regular mauve tests? It shows a couple of crashes for
me. Although lots of tests just work and lots of failures will be solved
by upgrading to GNU Classpath 0.07.

I haven't looked yet at the why the option --without-zip, but it doesn't
seem to work with Classpath-0.06. Or whether this is fixed with 0.07 (I
doubt it since I never really use this option.) To keep jamvm small you
probably won't add zip support to your bootstrap classloader, but that
would make it easier to use.

> One of the things I've finally got round to changing is using a system
> class loader to load application classes (up to now loaded via the
> bootstrap - I've been more interested in getting the Reflection API
> fully implemented).
>
> Looking at the code, the "default" system class loader (in
> gnu.java.lang...) simply delegates to the bootstrap loader - it doesn't
> implement findClass.  Obviously, it's not difficult to write my own to
> parse and search the classpath (zip, jar, file...).  However, is there
> any reason why I can't simply sub-class URLClassLoader, and construct a
> list of URLs?  I've got a simple SystemClassLoader based on
> URLClassLoader and it seems to work OK.

Others already commented on this and we should rewrite that class and
add support for some sort of extension classloader. A simple approach
that worked for SableVM (when I was trying to get Eclipse working with
is) is attached to:
http://article.gmane.org/gmane.comp.java.vm.sablevm.devel/433

> Performance-wise, the VM keeps it's own list of loaded-classes so a
> class-loader isn't continually asked for the same class (although this
> will work).   Note, I'm interested in doing this so that JamVM can read
> from jar and zip files - implementing zip in the VM duplicates
> functionality and I'm trying to keep JamVM small (approx 80K on Intel,
> 100K on PowerPC stripped).

Thanks for the feedback. Other VM creators have also commented on this
in the past. So I think it is appropriate to move the loadedClasses
support from ClassLoader to VMClassLoader. To bad Savannah is still down
so we cannot immediately add it to the bug database.

Cheers,

Mark
<< signature.asc >>
_______________________________________________
Classpath mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/classpath

_________________________________________________________________
Use MSN Messenger to send music and pics to your friends http://www.msn.co.uk/messenger





reply via email to

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