#!wml --include=..

#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper

<lang:star:slice:>

<set-var last-modified-author="prr">

#include <include/macros.wml>

<header title="GNU Classpath 0.10 Announcement (2004-07-09)"> 
<pre>
We are pleased to announce a new development release of GNU Classpath.

GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
java programming language.

GNU Classpath 0.10 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html

File: classpath-0.10.tar.gz
MD5sum: a59a5040f9c1237dbf27bfc668919943

New in release 0.10 (Jul 9, 2004)

* java.net.URL now uses application classloader to load URLStreamHandlers
  and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
* java.io.File.deleteOnExit() implementation.
* java.text multiple new features and bug fixes
  (only 2 out of the 1000+ java.text Mauve tests now fail).
* Better (non-black) default AWT System colors.
* AWT lists use GTK treeviews.
* Proper AWT focus management has been implemented.
* Swing menus and scrollpanes are beginning to work.
* Swing splitpanes, dialogs and internal frames were added.
* Swing repainting / double buffering was redone.
* Font management and Pango DPI conversion fixes.
* A lot of AWT imaging and event bugs have been picked out.
* More of javax.swing.text has been implemented.
* javax.swing.Timer has been reimplemented.
* java.security.AccessController has been implemented
  (see runtime section).
* The default java.lang.SecurityManager now uses AccessController.
* New java.beans.Statement and Expression implementations.
* Small FileChannel implementation speed improvement for traditional
  JNI based systems.
* Regenerated all included JNI header files with gcjh (3.5 CVS),
  removes extra extern modifier and allows stricter compiler warning.
* More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
  -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
  made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
* Double.toString() and Float.toString() now work properly on 64-bit
  PowerPC systems.
* PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
* Build system refactored and removed old Japhar specific support.
* The gnu.java.awt.EmbeddedWindow class has been improved, and now
  supports embedding AWT windows in other top-level X windows.
  This functionality is required by gcjwebplugin.
* gcjwebplugin, an applet viewer that can be embedded into several web
  browsers, has been extensively tested with this release of classpath.
  (See http://www.nongnu.org/gcjwebplugin/)
* Runtime environments based on GNU Classpath 0.10 should be able to
  start up Eclipse 3.0 out of the box now.

Runtime interface Changes:

* VMProcess.destroy() default implementation fixes.
* Fixed the "portable native sync" code; it had been broken since
  Classpath release 0.06, when we upgraded to GTK+2.
  Classpath's AWT peers use GTK+.  GTK+ uses GLIB.  GLIB by default uses
  the platform's native threading model -- pthreads in most cases.
  If the Java runtime doesn't use the native threading model, then you should
  specify --portable-native-sync when configuring Classpath, so that GLIB will
  use the Java threading primitives instead.  (For a superior alternative,
  see below.)
* The VM can set the system property
  gnu.classpath.awt.gtk.portable.native.sync instead of using the
  --portable-native-sync configure-type option.
  See doc/vmintegration.texinfo for details.
* We intend that the next release of GNU Classpath will require the VM
  to provide JNI 1.2.  Classpath currently uses only JNI 1.1, except for
  one JNI 1.2 function: GetEnv(), in the JNI Invocation API.
  If this poses problems, please raise them on the classpath mailing list.
* The reference implementation of VMThread.holdsLock(Object) now has
  a default implementation written in java. For efficiency and to
  prevent spurious wakeups a real 'native' runtime version can be supplied.
* There is a new java.security.VMAccessController class that runtimes need
  to implement to properly support SecurityManagers. The default
  implementation that comes with GNU Classpath makes sure that ANY attempt
  to access a protected resource is denied when a SecurityManager is
  installed. Which is pretty secure, but also no very useful.
  Please see the documentation in
  vm/reference/java/security/VMAccessController.java,
  and please give feedback on the GNU Classpath mailinglist whether or not
  the current AccessController framework is flexible enough.

Here are answers to some questions you might have about this project and
this release.

1). What is required to build/install/run?

GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development
libraries (gtk+, libart and gdk-pixbuf). More information on the
precise version numbers for the tools and libraries can be found in
the INSTALL file.

You will also need a runtime environment. The following environments
have been tested to work out of the box with this release:

    * JamVM         (http://jamvm.sourceforge.net/)
    * Jikes RVM     (http://www.ibm.com/developerworks/oss/jikesrvm/)
    * Kissme        (http://kissme.sourceforge.net/)

For other environments that might need modified version of the current
release see the README file.  A complete list of virtual machines and
compilers known to be based on GNU Classpath can be found at our
website: http://www.gnu.org/software/classpath/stories.html

2). What platforms are supported?

GNU/Linux is the only platform that has been tested.
We plan to eventually support many others.

3). Who should use this software?

Although GNU Classpath is already capable of supporting many
applications written in the java programming language, this is a
development release. As such, there are still some unfinished
components, and some problems are to be expected. You should install it
if you are interested in GNU Classpath development or reporting bugs.
We appreciate both.

For end users we recommend to use one of the development environments
based on GNU Classpath which combine the core libraries with compilers
and other tools needed for creating applications and libraries.

    * GCC with GCJ  (http://gcc.gnu.org/java/)
    * Kaffe         (http://www.kaffe.org/)

4). Where do I go for more information?

The project home page with information on our mailing list can be
found http://www.gnu.org/software/classpath/.

A good overview of the current status can be found on the GNU Classpath
at FOSDEM'04 page which describes the last GNU Classpath hacker meeting.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/fosdem04.html
</pre>

<footer>
