GNU Classpath 0.16 "Harmony!" released. We are pleased to announce a new developer snapshot of GNU Classpath.
GNU Classpath, essential libraries for java, is a project to create free core class libraries for use with runtimes, compilers and tools for the java programming language. The GNU Classpath developer snapshot releases are not directly aimed at the end user but are meant to be integrated into larger development platforms. For example the GCC (gcj) and Kaffe projects will use the developer snapshots as a base for future versions. This is the first release of GNU Classpath since our Harmony collaboration with the Apache group. Instructions for developers wanting to try out and help with the core library implementation can be found at: http://developer.classpath.org/ New is our wiki with simple steps to setup a quick development environment. For example developers using cygwin can find examples here: http://developer.classpath.org/mediation/ClasspathOnCygwin Some highlights of changes in this release (more extensive list below): AWT GtkScrollBar and GtkImage improvements. All image operations are now working correctly. Graphics2D has been upgraded to use Cairo 0.5.x. Free Swing updates for 1.5 top-level compatibility. JTree interface completed. JFileChooser has been implemented. Completed implementations of BoxLayout, GrayFilter and SplitPane. Upgraded the Corba features to 1.3 and included new CORBA 2.3 features. Start of generic JDWP framework. And lots of bug fixes based on real world application usage. 31 people actively contributed code to this release and made 389 CVS commits during the last two months of development. diffstat since 0.15: 1248 files changed, 133649 insertions(+), 41802 deletions(-) More details about the various changes and contributions below. GNU Classpath 0.16 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.16.tar.gz MD5sum: 220a9c86719a2c6bd7ba9b9877495113 SHA1sum: be6d30fbfe4d71015a455a367411a6d55df3484e This release depends on gtk+ 2.4 for AWT support. But gtk+ 2.6 or higher is recommended. Included, but not activated by default in this release is a Graphics2D implementation based on the Cairo Graphics framework (http://www.cairographics.org). Enabling this makes programs like JEdit start up on GNU Classpath based runtimes. To enable this support install the cairo 0.5.x snapshot, configure GNU Classpath with --enable-gtk-cairo and make sure the system property gnu.java.awt.peer.gtk.Graphics=Graphics2D is set. This release was explicitly tested against the last Eclipse 3.1 release (thanks to various eclipse hackers for the support). For end user we do however recommend to use the GCJ4 packaged version of Eclipse 3.1 that have been prepared for the various distributions: Fedora Core http://overholt.ca/wp/?p=27 Debian GNU/Linux http://gnu.wildebeest.org/diary-man-di//index.php?p=19 Ubuntu http://www.larvalstage.net/index.php?/archives/2-Introducing-Eclipse-3.1.html Not yet included is an implementation of Generic collection classes and classes for other 1.5 language extensions. Work on this is being done on a special development branch that will be included in a future GNU Classpath release when free runtimes, compilers and tools have all been upgraded to support these new language features. One of the major focuses of the GNU Classpath project is expanding and using the Mauve test suite for Compatibility, Completeness and Correctness checking. Various groups around GNU Classpath collaborate on the free software Mauve test suite which contains ~30.000 core library tests. Mauve has various modules for testing core class library implementations, byte code verifiers, source to byte code and native code compiler tests. Mauve also contains the Wonka visual test suite and the Jacks Compiler Killer Suite. This release passes 28801 of the mauve core library tests. See for more information: http://www.sourceware.org/mauve/ Conformance reports for the included jaxp support can be found in the doc/README.jaxp file. The GNU Classpath developers site http://developer.classpath.org/ provides detailed information on how to start with helping the GNU Classpath project and gives an overview of the core class library packages currently provided. For each snapshot release generated documentation is provided through the GNU Classpath Tools gjdoc project. A documentation generation framework for java source files used by the GNU project. Full documentation on the currently implementated packages and classes can be found at: http://developer.classpath.org/doc/ Here are answers to some questions you might have about this project and this release. 1). 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/) Both projects have CVS versions which track GNU Classpath closely. 2). 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. Most active GNU Classpath hackers use JamVM (http://jamvm.sourceforge.net/) and the gcj or Jikes bytecode compiler (http://www.jikes.org) for quick development. But other environments can certainly be used to hack on the GNU Classpath core libraries. 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 Note that these are just byte code execution compilers and/or runtimes. For development of programs written in the java programming language you will also need compilers and other tools for creating libraries and/or executables (see question 1). 3). What platforms are supported? GNU/Linux and FreeBSD on x86 and powerpc are regularly tested by the developers. Since 0.12 there is also support for cygwin. We plan to eventually support many others. Many more architectures and platforms are supported. Check the actual runtime you use together with GNU Classpath for detailed information on the supported platforms. 4). Where do I go for more information? The project home page with information on our mailing list can be found at http://www.gnu.org/software/classpath/ The GNU Classpath developer recently held a conference during Fosdem. This was a standing room event and provided lot of communication between the GNU Classpath, Kaffe, GCJ, IKVM, Apache, java-gnome and Cacao hackers and users. The presentations of this event have been publised and should give a good overview of the current status and future plans of the project: http://www.gnu.org/software/classpath/events/escape_fosdem05.html Developers wanting to help out with the project will find more information and tools on http://developer.classpath.org/ 5). How do I extend the functionality of the core classes? Besides combining GNU Classpath with the runtimes and compilers above you might want to add support for additional encryption libraries and algorithms as provided by GNU Crypto (http://www.gnu.org/software/gnu-crypto/). And for additional extension libraries (mail, activation, infobus, servlet, etc.) check out GNU ClasspathX (http://www.gnu.org/software/classpathx). Additional network protocol support is provided by a sub-project called GNU Classpath Inetlib, an extension library to provide extra network protocol support (ftp, finger, gopher) for GNU Classpath, but it can also standalone to ease adding http, imap, pop3 and smtp client support to applictions. Also distributed from <ftp://ftp.gnu.org/gnu/classpath/> The following projects extend the functionality of GNU Classpath with additional algorithms, new core packages and tools. All are released under GPL compatible licenses: * Jessie: A free implementation of the JSSE. Secure Sockets Extension. http://www.nongnu.org/jessie/ * Tritonus: A implementation of the javax.sound API. http://www.tritonus.org/ * gcjwebplugin: A plugin for the execution of applets in web browsers. http://www.nongnu.org/gcjwebplugin/ Note that the above libraries might already have been included in the various platforms that also integrate GNU Classpath like done by the Kaffe project. 6). What is new in this release? New in release 0.16 (Jun 30, 2005) (See the ChangeLog file for a full list of changes.) * Better GTK scrollbar peer implementation when using GTK >= 2.6. * GdkGraphics2D has been updated to use Cairo 0.5.x APIs. * BufferedImage and GtkImage rewrites. All image drawing operations should now work correctly (flipping requires gtk+ >= 2.6) * Future Graphics2D, Image and Text work is documented at: http://developer.classpath.org/mediation/ClasspathGraphicsImagesText * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet, JInternalFrame, and JWindow are now 1.5 compatible in the sense that you can call add() and setLayout() directly on them, which will have the same effect as calling getContentPane().add() and getContentPane().setLayout(). * The JTree interface has been completed. JTrees now recognizes mouse clicks and selections work, but the visual implementation is not yet complete. Work on expansion and collapsing of the tree nodes is being implemented. * BoxLayout works properly now. * Fixed GrayFilter to actually work. * Metal SplitPane implemented. * Lots of free swing text and editor stuff work now. * When gtk+ 2.6 or higher is installed the default log handler will produce stack traces whenever a WARNING, CRITICAL or ERROR message is produced. * The CORBA implementation is now a working prototype that should support features up till 1.3 inclusive. We would invite groups writing CORBA dependent applications to try Classpath implementation, reporting any possible bugs. The CORBA prototype is interoperable with Sun's implementation v 1.4, transferring object references, primitive types, narrow and wide strings, arrays, structures, trees, abstract interfaces and value types (feature of CORBA 2.3) between these two platforms. The remote exceptions are transferred and handled correctly. The stringified object references (IORs) from various sources are parsed as required. The transient (for current session) and permanent (till jre restart) redirections work. Both Little and Big Endian encoded messages are accepted. The implementation is verified using tests from the former cost.omg.org. The current release includes working examples (see the examples directory), demonstrating the client-server communication, using either CORBA Request or IDL-based stub (usually generated by a IDL to java compiler). These examples also show how to use the Classpath CORBA naming service. The IDL to java compiler is not yet written, but as our library must be compatible, it naturally accepts the output of other idlj implementations. * New --with-vm-classes configure option, and new 'build' setting for --with-glibj. (Only for integrators.) Runtime interface changes: * Start of a generic JDWP framework in gnu/classpath/jdwp. This is unfinished, but feedback (at [email protected]) from runtime hackers is greatly appreciated. Although most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: http://gcc.gnu.org/ml/java/2005-05/msg00260.html * Native method VMClass.getModifiers() now takes an additional boolean parameter. * Deprecated native method VMClassLoader.defineClass(ClassLoader, String, byte[], int, int) has been replaced by VMClassLoader.defineClass(ClassLoader, String, byte[], int, int, ProtectionDomain) * VMClassLoader.loadClass(String name, boolean resolve) is now native, replacing the former version which just returned null. * Deprecated native method VMClassLoader.getPrimitiveClass(String) has been replaced by new native method VMClassLoader.getPrimitiveClass(char). * Previously empty implementations of methods VMThread.countStackFrames(), VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have been removed; these methods are now native methods. * Fields "exceptionTypes" and "parameterTypes" have been removed from Contructor.java and getExceptionTypes() and getParameterTypes() are now native methods. The following people helped with this release: Andreas Jaeger (mprec updates) Andreas Tobler (Darwin support) Andrew John Hughes (Locale and net fixes, URI RFC2986 updates) Andrew Overholt (File locking) Anthony Balkissoon (JList, Free Swing 1.5 updates and mouse event fixes) Archie Cobbs (VM interface updates) Audrius Meskauskas (Corba and HTML work) Bryce McKinlay (RMI work) Chris Burdess (XML work) Christian Thalinger (fdlibm updates) Dalibor Topic (SHA1PRNG and GdkPixbugDecoder updates) David Daney (BitSet bugfixes) David Gilbert (Lots and lots of documentation and awt/swing fixes) Gary Benson (MessageFormat fixes) Goffredo Baroncelli (HTTPURLConnection fixes) Jan Roehrich (JTree fixes) Jeroen Frijters (ClassLoader and nio cleanups) Ka-Hing Cheung (TreePath and TreeSelection fixes) Kalle Olavi Niemitalo (Build fixes) Keith Seitz (JDWP work) Kim Ho (JFileChooser implementation) Lillian Angel (JTree implementation and lots of bug fixes) Mark Wielaard (build fixes, GdkPixpufDecoder fixes and packaging) Michael Koch (Locale updates, bug and build fixes) Olga Rodimina (MenuSelectionManager) Robert Schuster (charset and awt fixes) Roman Kennke (BoxLayout, GrayFilter and SplitPane, plus bugfixes all over) Sven de Marothy (GtkImage rewrite, 2D, awt, free swing and date/time fixes) Thomas Fitzsimmons (Lot of upgrades to the gtk+ AWT and cairo 2D support) Tom Tromey (libgcj merging, build infrastructure and bug fixes) Ziga Mahkovec (Graphics2D upgraded to cairo 0.5 and new regex features) We would also like to thank the numerous bug reporters and testers! -- Escape the Java Trap with GNU Classpath! http://www.gnu.org/philosophy/java-trap.html Join the community at http://planet.classpath.org/
signature.asc
Description: This is a digitally signed message part
