harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sven de Marothy <s...@physto.se>
Subject Intro to Classpath
Date Mon, 16 May 2005 22:56:10 GMT
On Mon, 2005-05-16 at 09:18 -0700, Stu Statman wrote:
> Would it be possible for someone from the GNU Classpath community ... if 
> any are on this list ... to give an overview of the status of GNU 
> Classpath? How complete is it now? How much work do they anticipate it 
> being to get to 1.5?

Sure. The quickest way to get a general picture is the API comparison:
Showing how much of the API is implemented (In general, methods stubs
are not allowed in Classpath, so this is a fairly accurate view)
(Sorry, no comparison against 1.5 is available yet)

The parts which immediately stand out are CORBA (although work on this
has finally gotten started recently) and javax.sound (which is available
from the Tritonus project, which we're working on trying to integrate
with Classpath).

Apart from that AWT and Swing are the most important missing parts,
which need a lot more love :) We do have a generics-branch of our tree
working on 1.5-related stuff, too. (E.g. most of the work moving
container classes to generics has been done) New methods and such for
1.5 that don't break binary compatibility are allowed into the main tree

Personally I'd say 1.5 may be realistic in maybe 1.5-2 years at our
current pace. But that pace is also quickening, and with Harmony's help,
who knows?

> I did a quick (a *very* quick) spin around the GNU Classpath site, 

Yeah, it sucks, doesn't it? :) We're too busy hacking I guess.

> and I'm a bit confused by some of the task lists. According to one URL 
> (http://www.gnu.org/software/classpath/tasks.html), they're a few weeks 
> away from being done; 

Right, well that task list is pretty much outdated and disued now.
Although it isn't a 'schedule' of when things will be done, just
suggestions of things which need doing. 

> according to another 
> (http://savannah.gnu.org/task/?group=classpath), there are open tasks 
> going back years.

Yeah.. that one hasn't worked out well either. Only the latest tasks
there (mostly CORBA-related) are really relevant. The rest should really
be deleted, IMHO. People haven't been following-up on them.

> It would be nice to get the nickel tour, giving the lay of the land, an 
> explanation of who the players are, of where volunteers are most needed, 
> of how 1.5 code gets submitted. 

Ok, well first off everyone should read the Hacker's guide:
And probably the 'Classpath First Steps' wiki:
I put a real quick-and-dirty guide on how to get started here:

It does take a while before you learn your way around the code, but the
easiest way to get started is to work on something which is pure Java
and not worry about the native bits and bobs.

In the classpath source directory you've got the java/ and javax/
directories with the sources for the public class libraries in them. If
they need supporting classes and such, those go in gnu/, e.g. the
private implementation classes for package java.foo.bar are in
gnu/foo/bar. Adding a java class is as simple as that; no changes to the
build scripts required. Adding native bits does though.

Ok, so key players? We don't really have any designated roles, but Mark
Wielaard and Tom Tromey are the head honchos. Thomas Fitzsimmons is the
main guy for AWT/Swing issues. Chris Burdess, XML. Casey Marshall,
crypto. Audrius MeŇ°kauskas, CORBA. Roman Kennke, Swing.

Note that I'm intentionally leaving out a big bunch of major
contributors here, (so no offense, folks!). These are just the ones
who's 'area of responsibility' is easily characterizable to me.

Best thing to do is to refer to the mailing list or drop in on
#classpath on IRC (freenode.net) and simply ask if someone's hacking on
something. IRC is also a good way to get to know the folks involved.

There is certainly lots to do.. Lemme throw out some varied suggestions,
* Composite contexts for Java2D (from the Tasks list above) is still not
implemented. (we have compositing in our AWT implementation, but a
pure-java implementation is really needed too). This is relatively easy.

* More character sets for java NIO. 
A list of the supporter character sets in the JDK is here:
We've got a big number, but still need more. (sources in
gnu/java/nio/charset) Difficulty from easy to intermediate depending on
the charset. 

* awt.image needs more work in general. Requires knowledge of Java2D.

* Complete the imageio framework (may require the above first)

* We have AWT peers using the new Cairo library (www.cairographics.org).
These need improvement. Although this might need to wait until Cairo is
more stable.

* Currently our AWT peers (interface to the native GUI) are built on
GTK. This doesn't mean we don't want to support other toolkits and/or
platforms. KDE, OS X, Windows, etc. This is a rather large task.
Requires knowledge of the target platform (of course) and JNI.

* Providers for more crypto algorithms: Elliptic curve public-key
algorithms, Kerberos, and such. 

* A security audit in general is really needed.

* Write a service-provider for javax.print (and complete that framework)

* Fix bugs, improve code, implement missing methods, etc all over the
place :)

* Writing docs, and:
* Testing and bug reporting, writing tests for the
(http://sources.redhat.com/mauve/) testsuite is of course needed.
Writing the tests is very simple. This doesn't require clean-roomness or

> I don't think it's in anybody's interests for a bunch of new devs who 
> don't know the internal culture of 
> GNU Classpath to storm in and start tromping around.

It's no problem, just ask questions. :) IRC with its informal
'atmosphere' is excellent for newbie questions.

> What is the licensing goal, by the way? Dual licensing under 
> GPL+Exception and Apache? Or is GPL+Exception "good enough"?

The goal, AFAICT, is for Harmony to be able to use GNU Classpath. What
that means nobody seems to know :)


View raw message