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
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
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)
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)
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)
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
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)
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)
Libraries
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)
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
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)
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
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)
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 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)
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
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)
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)
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)
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)
CAD
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
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)
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 release-team@gnome.org for review
and we prefer png's to a 1000 line patch to some XML file :-)"
Full Story (comments: none)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
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)
Electronics
Development version 3.6.3 of
XCircuit, an electronic
schematic drawing package, is out with expanded undo capabilities.
Comments (none posted)
Games
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)
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)
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 NPCs 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)
Interoperability
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)
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
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
Version 1.5.0.1 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)
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)
The minutes from the January 30, 2006 mozilla.org staff meeting
have been announced.
"
Issues discussed include Firefox 1.5.0.1 Release, Firefox 2 and 3 Planning, Thunderbird, XULRunner, Personnel and Marketing".
Comments (none posted)
Miscellaneous
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
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)
Java
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)
Perl
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
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)
Python
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)
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)
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
The February 5th, 2006 edition of the
Ruby Weekly News looks at the latest discussions
from the ruby-talk mailing list.
Comments (none posted)
Tcl/Tk
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)
IDEs
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
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)
Miscellaneous
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>>