20 Sep 2005

Get ready for Oldenburg

Branden Robinson, the Debian Project Leader, has a nice writeup of the various meetings taking place in Oldenburg this week, including the GNU Classpath distro DevJam.

Having mature software is only half the battle, however; that software has to be coherently put together and easy for the user and developer to manipulate. For many of these folks, it’s not enough just to have good, […] virtual machines, class libraries, compilers and application servers […]. They also want these technologies to be mutually integrated and easy to install and use. Good software and good packaging complement each other to drive adoption of the technology, and that’s what the DevJam is all about. I’m glad to see that representatives of Debian’s Java packaging team will be joining not just upstream authors, but their counterparts at Fedora, Ubuntu, and Gentoo in furtherance of this goal

Cool screenshot of the day (JButtons by David Gilbert)

Yesterday I wrote:

Hint: Adding more cool demos to GNU Classpath Examples will earn you instant fame (and lots of screenshot exposure). Plus it helps people starting out with Free Swing or other parts of the GNU Classpath library to see what and how things are possible (non-gui demos are also really appreciated).

And today David Gilbert added a ButtonDemo:

Beautiful!

Me 2!

Seeing the nice screenshot that Roman Kennke posted I wanted to post my own:

That is the Free Swing Demo from GNU Classpath Examples. Thanks to the hard work of David, Lillian, Roman and Tony Free Swing is really coming alive!

Hint: Adding more cool demos to GNU Classpath Examples will earn you instant fame (and lots of screenshot exposure). Plus it helps people starting out with Free Swing or other parts of the GNU Classpath library to see what and how things are possible (non-gui demos are also really appreciated).

DevJam fever

Really looking forward to the GNU Classpath distro DevJam meeting in Oldenburg in two weeks. If you haven’t done so yet, please add yourself and/or anything you want to see discussed/hacked on during these days to the wiki page (or fill in the forms attached to this email) If you cannot make it this time please start helping out on DevJam++. Next time we really should take a bit more time to prepare so more people will be able to attend.

09 Sep 2005

More platforms, more harmony

Riccardo Mottola (grey_gandalf) setup a blog where he posts about kaffe on sparc, ppc, darwin, solaris, etc (anything but x86 it seems) and David Tanzer has a blog where he posts about the activities of the harmony-dev mailinglist participants. Both have been added to Planet Classpath (scroll down for their latest postings).

GNU Classpath 0.18 released

Two more months of development so time for a new release. As always this release has broken all records yet again. 29 people actively contributed to this release and made 535 CVS commits during the two months of development (or almost 10 commits each and every day!). diffstat since 0.17: 994 files changed, 114744 insertions(+), 13663 deletions(-). That is up 46,133 lines (or 750+ lines per day!) of pure source code since 0.17 (according to sloccount). We now PASS 31,194 of 32,253 Mauve tests (up from 29,508 out of 30,320 with 0.17).


We need more Saturdays!

Added GNU JAWT for awt native interface support. Datatransfer clipboard updated to 1.5 including support for copy/paste of serialized objects, images and files. Completed the org.omg PortableInterceptor, DynamicAny and Portable Object Adapter packages. Multi plaf support for Free Swing. Editing support for JTree and JTable. Lots of icons and look and feel improvements for Free Swing basic and metal themes. NIO FileChannel.map implemented and DirectByteBuffer put method speedups. Image loading speedups for awt. Support for darwin and solaris out of the box.

I finally did some real coding again for this release myself. What was really satisfying was the fact that I reported some suggestions and bug fixes for the gtk+ Clipboards and Selections interfaces and almost all were accepted and fixed already. Matthias Clasen is my new hero! What is really nice is that this means the copy/paste user and developer experience for the whole Gnome desktop is improved (a little).

You will be assimilated!

That was quick! Andreas got the GNU Classpath awt peers and the new GNU JAWT examples working on Darwin.

A big thanks to the classpath/gcj/libgcj team (alphabetical order) for the hard and amazing work!!

GNU JAWT

Finally got our GNU JAWT working. What went wrong all this time was the fact that gcc 4.0.x comes with a jawt.h that defines some structs slightly different from the one that now comes with GNU Classpath. Oops.

I added a little animation. blink! blink!

Bling Bling

We are in preparation mode for the next GNU Classpath developer release snapshot. That is always a good time to throw around some arbitrary numbers. David Gilbert updated his statcvs graphs showing an increase in line count of around 10% since our last release only two months ago:

I did a quick Mauve status scan:

0.17:     30437 PASS, 1216 FAIL
0.18-pre: 31105 PASS, 1059 FAIL

There were just 10 regressions most of which have already been resolved within hours of posting the overview. Mauve itself grew with around 2000 tests since July.

And Stuart Ballard who keeps track of japi scores noticed that we are rapidly approaching 90% API coverage for 1.4. Of course that is just the class/method interfaces and doing that last 10% might take the other 90% of the work, but progress has really been amazing lately.

To see where all that code comes from just look at the gmane classpath-patches statistics page. 100K a day!

24 Aug 2005

GCJ/Perl Integration

Anthony pointed me to the facination GCJ/Perl Integration project by David Rusek. This is one of the google Summer of Code projects. See also:

So now you can write mixed C++ and GCJ code in Perl:


#!/usr/bin/perl -w

use strict;
use warnings;

use GCJ::Cni;
use BasicJavaClass;

GCJ::Cni::JvCreateJavaVM(undef);
GCJ::Cni::JvAttachCurrentThread(undef, undef);

my $basic_java_class = new BasicJavaClass();
$basic_java_class->saySomething();

GCJ::Cni::JvDetachCurrentThread();

Cute!