We are pleased to announce a new developer snapshot release 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. Some highlights of changes in this release (more extensive list below): Optimized nio and nio.charset plus io streams integration leading to large speedups in character stream performance. To compliment this new framework a native iconv based charset provider was added. Better support for free swing metal and pluggable lafs. Some org.omg.CORBA support added. Better java.beans support for the Eclipse Visual Editor Project. Completely lock free ThreadLocal implementation added. More javax.swing.text support for RTF and HTML. More flexible runtime interfaces and build configuration options added. 26 people actively contributed code to this release and made 299 CVS commits during the last two months of development. diffstat since 0.14: 993 files changed, 74259 insertions(+), 15666 deletions(-) More details about the various changes and contributions below. GNU Classpath 0.15 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.15.tar.gz MD5sum: 036c23aec7cb53a43b7b9dc63a92fbbe SHA1sum: 971bdd436b8010ab30096869f689a44d41e5a01c 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 JFreeChart work and JEdit start up on GNU Classpath based runtimes. To enable this support install the cairo 0.3.0 snapshot, configure GNU Classpath with --enable-gtk-cairo and make sure the system property gnu.java.awt.peer.gtk.Graphics=Graphics2D is set. 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 focusses 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 more then 27.500 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 27.325 of the mauve core library tests. See for more information: http://sources.redhat.com/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). 2). 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. 5). 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/ 6). 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.15 (Apr 29, 2005) (See the ChangeLog file for a full list of changes.) * The old character encoding framework (gnu.java.io.EncodingManager) has been replaced by a system based completely on nio.charset providers. Many converters have been added, both the io, lang and nio frameworks now use the same set of converters and the whole character stream framework (Readers and Writers) have been optimized. For some workloads this leads to 2x till 20x speedups. The default charsets supported are: Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861, Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13, ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope, MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman, MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE, UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250, Windows1251, Windows1252, Windows1253, Windows1254, Windows1255, Windows1256, Windows1257, Windows1258. Many more encoding are supported through the new IconvProvider depending on the platform iconv support. GNU libiconv is recommended. The IconvProvider is currently not enabled by default. To enable it define the system property gnu.classpath.nio.charset.provider.iconv=true. Some runtimes might choose to enable this by default by setting it through VMSystemProperties. We would like to get feedback on whether enabling or disabling the IconvProvider by default results in the highest speedups. * Free swing metal and pluggable look and feels have been improved. The GNU Classpath free swing example can now be run with different "skins" by setting the system property swing.defaultlaf to the GNU, Basic or Metal look and feel. * Some of the org.omg.CORBA classes and packages have now been implemented. The Savannah bug tracker contains additional tasks for which we are seeking help. * Fixed compatibility problems in the java.beans which affected Eclipse's Visual Editor Project. * New completely lock free (Inheritable)ThreadLocal implementation. * javax.swing.text.rtf framework added which can handle simple (plain) text tokens. * Support for parsing html files into Level 2 Document Object Model (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of javax.swing.text.html framework added. Runtime interface changes: * jni.h changed to better support compiling runtimes implementing jni; see VM integration guide for details. * New --enable-default-toolkit option to configure can be used to set the fully qualified class name of the default AWT toolkit to use. If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit is used. * New --disable-core-jni option can be used to disable building the "core" JNI libraries. This is primarily useful if your VM can use the Gtk peers but not the core JNI libraries. * New system property "gnu.classpath.boot.library.path" can be specified to define the location of the JNI libraries. It is by all means meant ONLY for VM implementors and GNU Classpath hackers. See the hacking guide for more information. * The helper methods currentLoader() and allocateObject() for java.io.ObjectInputStream have been moved to a VMObjectInputStream class. Reference implementations are provided. * java.net.InetAddress now uses VMInetAddress for runtime/platform specific methods getLocalHostname(), getHostByAddr() and getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface for runtime/platform specific getInterfaces() support. Default (Posix/GNU JNI) implementations are provided. * VMClass has a new method getModifiers(Class, boolean) which can be used to get the real modifiers for an inner class or the ones specified by the InnerClasses attribute. * All (possible) runtime specific methods of Object and Double are now in VMObject and VMDouble. Where possible generic reference implementations are provided. * The reference implementation of VMClassLoader now handles zip files on the boot loader class path in getResources(). The following people helped with this release: Andreas Tobler (Security warning fixes, fdlibm merging and cleanups) Andrew Haley (FileChannel optimizations) Andrew John Hughes (URL/URI, rmi.naming, java.text, Currency and generics) Archie Cobbs (RPM spec file, VMClassLoader fixes, jni cleanups) Audrius Meskauskas (Lots of corba work, javax.swing.text.html and dom parser) Casey Marshall (x509 and asn1/der fixes) Chris Burdess (writeUTF optimization, html2 dom support and net protocols) Dalibor Topic (FileChannel fixes, kaffe porting) David Daney (InetAddress fixes) David Gilbert (awt documentation, font fixes) Guilhem Lavaux (VMSelector and IndexColorModel fixes) Ito Kazumitsu (DecimalFormat parse fixes) Jeroen Frijters (nio optimizations, VMClass fixes, ThreadLocal rewrite) Luca Barbieri (FileChannel.tryLock fixes) Mark Wielaard (cleanups and packaging) Michael Franz (OSX testing) Michael Koch (VM interface restructuring, libgcj merging, lots of bug fixing) Mike Stump (fdlibm ppc64 fixes) Olafur Bragason (PipedInputStream bug reporting) Patrik Reali (Website maintenance) Rei Odaira (VMSelector bug reporting) Riccardo Mottola (Darwin6 testing) Robert Schuster (java.beans, boot.library.path, jni fixes, mediation work) Roman Kennke (Lots of free swing work, MediaTracker and RTF work) Sven de Marothy (io, nio and charset optimizations and rewrites) Thomas Fitzsimmons (URL, gtk-peers and free swing work) Tom Tromey (build and code cleanups, jni merging with libgcj and generics) -- 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
_______________________________________________ Classpath mailing list [email protected] http://lists.gnu.org/mailman/listinfo/classpath

