August 2006

The talk seemed to go well on Thursday, and we got a good turnout, considering it’s the summer here in the UK (although the weather makes that debatable) and many people are away. I’ll post the video I recorded shortly, once I’ve had chance to edit it.

The visit also gave me a chance to find out about the research being done over in Manchester which relates to GNU Classpath, and plenty of good ideas came from my discussions with Ian Rogers and other members of the department. Hopefully, this will mean more good stuff for the project…

This Thursday, I’ll be giving a seminar in Manchester in relation to GNU Classpath and its handling of the new language features in Java 1.5. I’ve included the contents of the e-mail about this below, and I’m also attaching the slides — comments welcome.

BTW, It seems SoC ends even sooner than I thought — just next Monday! (the 5th is the evaluation deadline). Now that Tom Tromey has merged our branches together, I need to add a bit more meat to the native management stubs that exist. The Classpath side has been a definite success, resulting in over half of being developed, all of and the majority of (all but the bean server is complete).


“GNU Classpath and Java 1.5.0″

Thursday, 17th August 2006, 2:15pm

Lecture Theater 1.5, Kilburn Building

The APT group is delighted to have invited Andrew Hughes from the GNU
Classpath project to present on Thursday 17th of August. GNU Classpath
is the core library of most open source virtual machines and the GNU
Compiler for Java, part of the GNU Compiler Collection (GCC). Andrew is
the maintainer of the generics branch of GNU Classpath, this project
will allow open source JVMs to implement the richer language and API
features of Java 5.0.


The GNU Classpath project focuses on creating a clean-room
implementation of the class libraries used by virtual machines and
compilers for the Java programming language, under a Free Software
license. The recent additions to the Java programming language in
version 1.5 have introduced new issues for the project, due to the
necessity to introduce changes across the board, in the compiler, the VM
and the library itself. In this talk, I will briefly describe the
changes made to the Java programming language in version 1.5, and then
show how developers on the GNU Classpath project, and associated
compiler and VM projects (such as Kaffe, GCJ and JikesRVM) have worked
to ensure that there can exist a Free implementation of this material.

I’ve been a developer on the GNU Classpath project for just over two
years. During this time, my work has focused on maintaining the
‘generics branch’ of the project, which attempts to handle the changes
in Java 1.5. Recently, I’ve also been involved in a Google Summer of
Code project. This was also related to GNU Classpath, but focused on
bringing support for the low-level management features in to the project. My work on the project takes place
in what spare time I have available, aside from my commitments to the
postgraduate degree I’m currently undertaking at the University of
Sheffield, in the area of process algebraic research.

I checked the finish date for SoC the other day and realised that it is in fact quite close; only September 5th. It seems to have lasted hardly any time at all.

As far as my project goes, the Classpath side is largely complete. Each bean is now a fully paid up dynamic bean, that can be probed for its attributes. They also return a descriptor using a limited set of open types, and provide conversion to these types in an implementation of getAttribute, which overrides the one in StandardMBean.

As part of doing this, has become 100% complete according to JAPI, which is a nice indication of the work done. is also approaching this; we just need a platform server now. Unfortunately, it will never reach 100% on HEAD until the generics branch is merged in, as 12% accounts for an enumeration (which seems to weigh quite a lot, but then it does have both its own methods and all those derived from Enum and Object, none of which I had to write).

The gcj-eclipse-jmx branch is nearly in a buildable state. All the build problems I’ve had are now sorted, and I’m actually at the point where the errors are clear linking errors, caused by missing native methods (of which they are quite a few, due to the introduction of the concurrency stuff too). It should be usable soon, and it already includes a working implementation of the runtime bean.