User: Password:
Subscribe / Log in / New account


A look at GCJ 4.1

February 8, 2006

This article was contributed by Mark Wielaard

One of the components of the GNU Compiler Collection (GCC) is GCJ, the GNU Compiler for the Java programming language. GCJ is a compiler that can generate both native code and bytecode from Java source files. GCJ includes a runtime library (libgcj) that provides all runtime support, the core class libraries, a garbage collector, and a bytecode interpreter. Programs created by gcj can dynamically load and interpret class files or native shared libraries resulting in pure, or mixed native/interpreted applications.

Version 4.0 of GCJ introduced a new deployment model that made is much easier for distributors to package traditional Java programs as native applications without requiring any source level changes. For version 4.1 of GCJ, this new binary compatibility (BC) ABI has also been used for parts of the core library, but only for a minimal subset which includes XML, CORBA and imageio. This change means that those parts of the core library can easily be upgraded with newer versions by the end user. In time, it will become possible to upgrade more parts of the core libraries in a similar manner.

All of the major GNU/Linux distributions use GCJ to support programs like OpenOffice, Eclipse and Tomcat. So it is not surprising that the improvements in GCJ 4.1 have been very application and distribution driven. All of the applications supported by GCJ 4.0 run with more stability under GCJ 4.1. And support has been added for a large range of programs like the Azureus bittorrent client, the RSSOwl feed reader, the JOnAS application server, and the java-gnome based system monitoring and debugging tool Frysk.

The core library from GCJ 4.0 was based on GNU Classpath 0.15, which was released almost a year ago. The core library of GCJ 4.1 has been updated to use GNU Classpath 0.19, plus selected bug fixes from the new 0.20 release. GNU Classpath is a shared development effort that is supported by a wide variety of projects. These projects include interpreters like JamVM and SableVM, just in time compilers like Kaffe and Cacao, operating systems like JNode and IKVM, and .NET/Mono interoperability and "java-in-java" implementations like JikesRVM. With around 20 projects being based on GNU Classpath and more than 40 people from all these different groups working very hard this last year, the coverage and completeness of the core libraries have increased enormously. An overview of all the supported packages can be found here.

Besides lots of correctness and completeness fixes in the more basic packages (lang, math, io, net, text and util), GCJ 4.1 will support HTTP operations on data larger than available memory. It will better support the new NIO package, including correct file locking. Support for AWT, the abstract window toolkit, has been much improved through better integration with GTK+, allowing the transparent copy/paste of various data types between applications. Image loading should be faster and more robust. And the GNU JAWT implementation makes it possible to interface AWT Canvas painting with native screen resources (allowing the jogl OpenGL bindings to work).

XML support has been expanded to include xml.transform and xml.xpath. Free Swing has seen a lot of updates that should make it possible to run simple GUI applications using various look-and-feels, and includes support for JTrees and JTables. RMI and Corba implementations have been added, including support for RMI over IIOP. There is even a sample distributed five-in-a-row game included that has been implemented using Free Swing and Corba.

Looking toward GCJ 4.2

GCC 4.1 has been in freeze since November, to make sure all regressions are fixed. This means that no major features have been added since then. GCJ now supports dropping a classpath directory inside the GCC source tree to get updated core library support. Because of the intertwined nature of the Java language, runtime and libraries, this isn't completely trivial for end users yet. The core GCJ developers will have a much easier way to get a more up-to-date core library. End-users will have to wait until version 4.2 for easier core library upgrading, through more extensive BC ABI support.

A lot of projects for GCJ 4.2 have already started. There is a lot of interest in making static linking work more smoothly, especially for embedded devices and for windows developers. There are different projects for shrinking the size of executables, by stripping reflection data, or the core library (micro-libgcj). There is also work on getting more precise information to the garbage collector in order to decrease overall memory usage. To better support debugging of interpreted classes, (for native compiled classes you can just use GDB) support for JDWP is being added to the libgcj interpreter. This should also enable debugging applications from inside of IDEs like Eclipse.

The GNU Classpath core libraries are also being updated to support even more core packages. Work is being done on integration of a full JCE crypto provider (GNU Crypto and Jessie) to provide transparent https, ssl and tls networking support. The regular expression engine, gnu.regex, is being updated from the old Posix syntax to provide compatibility with the util.regex syntax and features. StAX support has been added, and work is being done to provide xml.validation. The beans package has been extended to support XMLEncoder serialization.

Printing support through CUPS is being added. An ALSA provider that handles MIDI In ports and a DSSI provider that handles software synthesizers has been added. Lots of new security related tests have been added to the Mauve project to check the permission-based access controls in the core library. And GNU Classpath has added support for the new Java 1.5 language features like generics, although those are still being developed in a separate branch.

Beyond GCJ and GNU Classpath

The GPLv3 draft has been enthusiastically received by the GCJ and GNU Classpath hackers. The Java programming language has traditionally been used for extensions to other projects such as Apache and Eclipse. Software from those projects have been licensed under GPLv2-incompatible licenses, preventing cooperation and code sharing. The proposed License Compatibility clause in GPLv3 will make code sharing between GCJ/GNU Classpath and Apache/Eclipse possible.

Tom Tromey is the main developer of GCJX, the GCJ frontend successor that supports the new 1.5 language features. He surprised everybody soon after the GPLv3 draft was released by proposing to look into replacing the Java source-to-bytecode part of the GCJ compiler with the Eclipse compiler (ECJ) instead of using his own GCJX effort. The GPLv3 isn't final yet (and won't be for a year), and there are lots of technical issues to discuss. But sharing code and resources between projects seems like a very attractive feature.

Various GCJ hackers will meet in two weeks at the GNU Classpath and Friends meeting during FOSDEM. It will be very interesting to see how the roadmap of these projects looks at the conclusion of that event.

Comments (9 posted)

System Applications

Backup Software

GPar2 version 0.2 released (SourceForge)

Version 0.2 of GPar2 has been announced. "GPar2 is a GTK+ GUI for par2 recovery sets. This new release provides more feedback, printing the status of each file in the archive. Some bugs in the progressbars have also been fixed. It comes with libpar2 (currently 0.2), which is widely based on par2cmdline client."

Comments (none posted)

Database Software

MySQL 4.1.18 has been released

Version 4.1.18 of the MySQL database has been released. "Due to a critical performance related bug (Bug#15935) 4.1.17 was not released. The bug was introduced within 4.1.16, we therefore recommend all users to upgrade directly to 4.1.18 if they are using 4.1.15 or earlier."

Full Story (comments: none)

pgDesigner - Datamodel designer for PostgreSQL

Version 0.0.24 of pgDesigner, a data model designer for the PostgreSQL database, has been announced. "Currently it is still in state of development, but it can be used calmly like base for the construction of database."

Comments (none posted)

phpMyAdmin 2.8.0-beta1 is released (SourceForge)

Version 2.8.0-beta1 of phpMyAdmin, a web-based MySQL database management application, is available. "Welcome to this first beta for phpMyAdmin 2.8.0. The jump from 2.7.0 to 2.8.0 is partly because from now on, versions with the same X.Y number will have the same feature set, while the third number will be for bug fixes. Also, 2.8.0 has a new web-based setup script."

Comments (none posted)

PostgreSQL Weekly News

The February 5, 2006 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL database articles, events and resources.

Full Story (comments: none)

Filesystem Utilities

Ghost for Linux 0.18 released

Stable version 0.18 of Ghost for Linux has been announced. "Ghost for Linux is a hard disk and partition imaging and cloning tool similar to Norton Ghost and (tm) by Symantec. The created images are optionally compressed, and they can be stored on a local hard drive or transferred to an anonymous FTP server. A drive can be cloned using the Click'n'Clone; function."

Comments (none posted)

KleanSweep 0.2.4 released

Version 0.2.4 of KleanSweep has been announced. "KleanSweep allows you to reclaim disk space by finding unneeded files. It can search for files based on several criteria: you can seek for empty files, backup files, broken symbolic links, dead menu entries, duplicated files, orphaned files (files not found in the RPM database), and more."

Comments (none posted)


Ajax JSP Tag Library 1.2 Beta 1 released (SourceForge)

Version 1.2 Beta 1 of the Ajax JSP Tag Library is out. "The AJAX Tag Library is a set of JSP tags that simplify the use of Asynchronous JavaScript and XML (AJAX) technology in JavaServer Pages. This tag library eases development by not forcing J2EE developers to write the necessary JavaScript to implement an AJAX-capable web form. We are pleased to announce the immediate availability of the AJAX JSP Tag Library release 1.2 Beta 1. Version 1.2 Beta 1 includes many enhancements to the JavaScript and several tags."

Comments (none posted)

IT++ 3.9.1 released (SourceForge)

Version 3.9.1 of IT++ is available with bug fixes. "IT++ is a C++ library of mathematical, signal processing, speech processing, and communications classes and functions. It is being developed by researchers in these areas and is widely used by researchers, both in the communications industry and universities."

Comments (none posted)

Networking Tools

AIM Sniff 1.0beta (stable) released

Stable version 1.0beta of AIM Sniff has been announced. "AIM Sniff is a utility for monitoring and archiving AIM and MSN messages across a network. It can be used to monitor for cases of harassment or warez trading. It has the ability to do a live dump (actively sniff the network) or read a PCAP file and parse the file for IM messages. You also have the option of dumping the information to a MySQL database or STDOUT."

Comments (3 posted)

SICM v0.93 is now released (SourceForge)

Version 0.93 of SICM has been announced, it includes several new capabilities. "SICM is a tool to monitor, graph and alert the capacity of computing devices and applications. SICM runs on a Windows or Linux device on your network, 24 hours every day and constantly records the capacity parameters of any networked device using snmp, ping or custom modules. The recorded data is stored for later reference via a user friendly menu-driven web browser. E-mail alerts are raised if a user determined number of queries fail."

Comments (none posted)

Web Site Development

MoinMoin 1.5.2 (advanced wiki engine) released

Version 1.5.2 of MoinMoin, an advanced Python-based wiki engine, has been released. "MoinMoin 1.5.2 is a bug fix release. The 1.5 branch brings you several new features such as the GUI editor, which allows the users to edit pages in a WYSIWYG environment, and many bug fixes."

Comments (none posted)

Silva 1.5 released

Version 1.5 of Silva, a content management system, is out. "Silva 1.5 is the first Silva release that really starts using Zope 3 technology in the core, and is the first step in a longer evolution. It does not have a lot of externally visible feature changes, but focuses on making Silva work with Zope 2.8 and Five 1.2."

Full Story (comments: none)

Zimbra Collaboration Suite 3.0 released

Zimbra has announced the availability of version 3.0 of the Zimbra Collaboration Suite. "ZCS 3.0 builds on the groundbreaking server and user interface technologies that have made the beta versions so successful. These include integrated search, single-copy mail store, discovery, anti-spam and anti-virus/security capabilities on the back end, and a rich, full-featured, AJAX-based Web client that brings e-mail and calendar items to life through Web mash-ups on the front end."

Comments (none posted)

Doing HTTP Caching Right: Introducing httplib2 (O'Reilly)

Joe Gregorio introduces httplib2 on O'Reilly. "In the latest installment of Joe Gregorio's The Restful Web column Joe goes a bit nuts, presenting httplib2, a Python HTTP client library written with the goal of doing caching in HTTP right."

Comments (none posted)

Desktop Applications

Audio Applications

Ardour 0.99.1 released

Maintenance release 0.99.1 of Ardour, a multi-track audio recording studio, has been announced. "This is the first maintenance release of the Ardour 0.99.x series. Many serious issues were fixed and stability is improved."

Comments (none posted)

jack_capture v0.2.2 released

Version 0.2.2 of jack_capture, A JACK Audio Connection Kit application for copying audio streams to files, is out with several new features.

Full Story (comments: none)

Rhythmbox 0.9.3 announced

Version 0.9.3 of Rhythmbox, an integrated music management application, is out. "On behalf of the Rhythmbox developers, I'm proud to announce the fourth release of the Rhythmbox 0.9 series, which includes a large number of fixes, improvements and new features. Notable new features include a play queue, GStreamer 0.10 support, full remote gnome-vfs support, much improved DAAP support, library "watching" and support for mass-storage audio players."

Full Story (comments: none)

soniK 1.0beta1 announced

Version 1.0beta1 of soniK, A KDE-based digital audio editor, is out. "This is the first beta release for soniK 1.0."

Full Story (comments: none)


PythonCAD 28 now available

Release 28 of PythonCAD, a scriptable drafting program, has been announced. "The twenty-eighth release of PythonCAD offers improved abilities to edit entities in a drawing. Previous releases had inconsistent behavior for entity modification as some operations first required selecting then entities to change and then selecting the operation to perform, where other changes were accomplished by first selecting the action and then selecting entities. The latest release allows for entity modifications to be performed in either mode, thus making the code more consistent as well as easier to use."

Full Story (comments: none)

Desktop Environments

GARNOME 2.13.90 announced

Version 2.13.90 of GARNOME, the bleeding edge GNOME distribution, is available. "We are pleased to announce the release of GARNOME 2.13.90 Desktop and Developer Platform. This release includes all of GNOME 2.13.90 (aka 2.14.0 Beta 1) plus a whole bunch of updates that were released after the GNOME freeze date."

Full Story (comments: none)

GNOME 2.13.90 released

Development version 2.13.90 of the GNOME desktop has been announced. "With this release we're entering the UI freeze period which means that no changes in the user interface should be done without approval from the release team. Mail any changes to for review and we prefer png's to a 1000 line patch to some XML file :-)"

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at

Comments (none posted)

Novell announces Xgl/Compiz release

Novell has sent out a press release on the release of its in-house developed Xgl code and an associated compositing window manager called "compiz." "Under the leadership of engineer David Reveman, Novell has sponsored the effort to develop the Xgl graphics subsystem to benefit both hardware vendors and software developers, and thus end users. Novell's release of Compiz enables developers to easily create graphical effects plug-ins which deliver rich visual effects, including transparency and advanced animation. For the first time, open source developers have the ability to easily add industry-standard effects like transparency and window animations to the Linux desktop, supported on the broadest possible set of hardware." Some more information can be found on the openSUSE Xgl page, but screenshots are sadly lacking. (Update: there are a couple of images on ZDNet).

Comments (10 posted)


XCircuit 3.6.3 released

Development version 3.6.3 of XCircuit, an electronic schematic drawing package, is out with expanded undo capabilities.

Comments (none posted)


Animation added to WorldForge

The WorldForge game project is using Blender to create game animations. "With the new IK System from Blender, the animation process has become much easier. The new rig also helps because of the automation contraints. I also went ahead and gave the hands a full set of fingers because I am seeing this in many commercial games. The current animations that you see are going to be avaible only for Ember and are going to happen relatively quick."

Comments (none posted)

ScummVM 0.8.1 released (SourceForge)

Version 0.8.1 of ScummVM has been announced. "The ScummVM team is pleased to announce the release of ScummVM 0.8.1. ScummVM is a cross-platform interpreter for more than 50 point-and-click adventure games. This release fixes several bugs from 0.8.0, improves support for Humongous Entertainment games and several international versions."

Comments (none posted)

Sear 0.6.1 released

Version 0.6.1 of the game Sear has been announced. "This release brings many improvements to the GUI components. The character creation dialog now has a list of playable character types. This fixes one of major issues with the previous release. Speech Bubbles have been added to improve dialog with other players and NPC’s and there is also a basic help system. Other GUI components allow adjusting key bindings and video modes. Two new console commands have been added. /me for emotes and /eat (added to inventory dialog) to nourish our character."

Comments (none posted)


Wine 0.9.7 released

Version 0.9.7 of Wine has been announced. Changes include: "Directory change notifications can use inotify now, Hardware breakpoints in the Wine debugger, Beginnings of support for tape APIs, A bunch of improvements to the IDL compiler, Better scheme for mapping My Documents etc. to Unix directories, and Lots of bug fixes."

Comments (none posted)

Wine Weekly Newsletter

Issue #304 of the Wine Weekly Newsletter has been published. Topics include: WineTools & Wine, SCSI Tape Drive Support, JACK Audio Driver, Overriding Executables With Winecfg, and Hook Problems.

Comments (none posted)

Office Applications

iReport 1.1.0 released (SourceForge)

Version 1.1.0 of iReport, a Java-based reporting tool, is available with new features, bug fixes and more.

Comments (none posted)

Web Browsers

Mozilla Firefox Released (MozillaZine)

Version of the Mozilla Firefox browser has been announced. "The first security and stability update to Mozilla Firefox 1.5 has been released. It is recommended that all Firefox users upgrade to this latest version." See the release notes for details. Note that this release fixes a security problem for which exploits already exist.

Comments (none posted)

Annodex Firefox Extension: Core 0.2.1

Core 0.2.1, an Annodex media extension for Firefox, has been announced. "The Annodex Firefox Extension turns the Mozilla Firefox web browser into an Annodex browser. It supports playback of Annodex media encoded with the open-standard Ogg Theora video codec and the Ogg Vorbis audio codec, uses timed URIs to perform efficient, bandwidth-friendly server-side seeking on Annodex media, enables hyperlinking into and out of Annodex media, and displays a "table of contents"-like clip list for CMML content."

Full Story (comments: none)

Minutes of the Staff Meeting (MozillaZine)

The minutes from the January 30, 2006 staff meeting have been announced. "Issues discussed include Firefox Release, Firefox 2 and 3 Planning, Thunderbird, XULRunner, Personnel and Marketing".

Comments (none posted)


WIKINDX 3.2.3 released (SourceForge)

WIKINDX 3.2.3 has been announced, it features minor feature enhancements and bug fixes. "WIKINDX is a single or multi-user research environment storing searchable bibliographies, notes and citations and integrated with a WYSIWYG word processor for the authoring of publication-ready articles automatically formatted to chosen citation styles."

Comments (none posted)

Languages and Tools


Caml Weekly News

The February 7, 2006 edition of the Caml Weekly News is out. Topics include: Type-safe interface to Postgres's SQL, OCaml & .NET and async networking.

Full Story (comments: none)


What Is a Portlet, Part 2 (O'ReillyNet)

Sunil Patil discusses portlets in part two of an O'Reilly article series. "Portlets aim to be your next desktop, providing small pieces of web-based functionality that can be aggregated on a portal page. In this article, Sunil Patil delves deeper into the JSR-168 portlet spec by showing off edit mode, JSP integration, the portlet tag library and preferences API, and Pluto's admin console."

Comments (none posted)


Test-Driving X11 GUIs (O'Reilly)

George Nistorica uses Perl's X11::GUITest to test X11 applications. "Interfaces to GUI applications like DCOP or D-BUS allow you to interact with GUI applications in order to get at their internal states or set some arbitrary states. Sometimes GUIs don't allow for such interaction and you need to "click" them. If you're writing such an application, you need some sort of regression tests for it to make sure your widget/windows are as accessible as they should be. If this is the case, there is a Perl module to help you: X11::GUITest."

Comments (none posted)


PHP Weekly Summary

The February 6, 2006 edition of the PHP Weekly Summary is available. "Topics include: Fishy code, a class named Betty, open() calls and APC, TextIterator, FastCGI reaches 5_1 branch".

Comments (none posted)


PyChecker 0.8.17 released

Version 0.8.17 of PyChecker, a tool for finding bugs in Python source code, has been announced. It features two new command line options.

Comments (none posted)

python-dev Summary

The January 1-15, 2006 edition of the python-dev Summary is online with coverage of the python-dev mailing list.

Full Story (comments: none)

Dr. Dobb's Python-URL!

The February 6, 2006 edition of Dr. Dobb's Python-URL! is online with a new collection of Python language articles.

Full Story (comments: none)


Ruby Weekly News

The February 5th, 2006 edition of the Ruby Weekly News looks at the latest discussions from the ruby-talk mailing list.

Comments (none posted)


Dr. Dobb's Tcl-URL!

The February 6, 2006 edition of Dr. Dobb's Tcl-URL! is out with all new Tcl/Tk articles and resources.

Full Story (comments: none)


Eclipse Checkstyle Plug-in 4.1.0 beta2 released (SourceForge)

Eclipse Checkstyle Plug-in 4.1.0 beta2 has been announced. "The eclipse-cs Checkstyle plug-in integrates the well-known source code analyzer Checkstyle into today's leading IDE - Eclipse. With the Checkstyle Eclipse plug-in your code is constantly inspected for problems. Within the Eclipse workbench you are notified of problems via the Eclipse Problems View and source code annotations just as you would see with compiler errors or warnings. Version 4.1.0 beta2 of the eclipse-cs plugin was just released. It contains some bugfixes and minor features over 4.1.0 beta."

Comments (none posted)

Test Suites

LDTP 0.3.0 Released

Version 0.3.0 of The GNU/Linux Desktop Testing Project (LDTP), a desktop testing framework, is out with a new newsletter. "Welcome to the sixth issue of LDTP Newsletter! LDTP community has reached another important milestone with the release of LDTP 0.3.0. This release features the new architecture which is a result of more than 3 months of hard work by the LDTP community. This newsletter also includes latest news on our approach towards achieving an automated test engine. Useful references have been included at the end of this article for those who wish to hack/use LDTP."

Full Story (comments: none)


DISIT 01a beta released

Version 01a beta of DISIT, an open-source x86 disassembler, is available for testing.

Comments (none posted)

Page editor: Forrest Cook
Next page: Linux in the news>>

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds