PR target/27599
[official-gcc.git] / libjava / classpath / doc / www.gnu.org / announce / 20050429.wml
blob16f0dd7c48b4fae81bbb3b89d58a9ee4f4eba0d3
1 #!wml --include=..
3 #use wml::std::page
4 #use wml::std::lang
5 #use wml::fmt::isolatin
6 #use wml::std::case global=upper
8 <lang:star:slice:>
10 <set-var last-modified-author="prr">
12 #include <include/macros.wml>
14 <header title="GNU Classpath 0.15 Announcement (2005-04-29)">
15 <pre>
16 We are pleased to announce a new developer snapshot release of GNU Classpath.
18 GNU Classpath, essential libraries for java, is a project to create free
19 core class libraries for use with runtimes, compilers and tools for the
20 java programming language.
22 The GNU Classpath developer snapshot releases are not directly aimed
23 at the end user but are meant to be integrated into larger development
24 platforms. For example the GCC (gcj) and Kaffe projects will use the
25 developer snapshots as a base for future versions.
27 Some highlights of changes in this release (more extensive list below):
29 Optimized nio and nio.charset plus io streams integration leading to
30 large speedups in character stream performance. To compliment this
31 new framework a native iconv based charset provider was added. Better
32 support for free swing metal and pluggable lafs. Some org.omg.CORBA
33 support added. Better java.beans support for the Eclipse Visual Editor
34 Project. Completely lock free ThreadLocal implementation added. More
35 javax.swing.text support for RTF and HTML. More flexible runtime
36 interfaces and build configuration options.
38 26 people actively contributed code to this release and made 299 CVS
39 commits during the last two months of development. diffstat since 0.14:
40 993 files changed, 74259 insertions(+), 15666 deletions(-)
41 More details about the various changes and contributions below.
43 GNU Classpath 0.15 can be downloaded from
44 ftp://ftp.gnu.org/pub/gnu/classpath/
45 or one of the ftp.gnu.org mirrors
46 http://www.gnu.org/order/ftp.html
48 File: classpath-0.15.tar.gz
49 MD5sum: 036c23aec7cb53a43b7b9dc63a92fbbe
50 SHA1sum: 971bdd436b8010ab30096869f689a44d41e5a01c
52 Included, but not activated by default in this release is a Graphics2D
53 implementation based on the Cairo Graphics framework
54 (http://www.cairographics.org). Enabling this makes programs like
55 JFreeChart work and JEdit start up on GNU Classpath based runtimes.
56 To enable this support install the cairo 0.3.0 snapshot, configure
57 GNU Classpath with --enable-gtk-cairo and make sure the system
58 property gnu.java.awt.peer.gtk.Graphics=Graphics2D is set.
60 Not yet included is an implementation of Generic collection classes
61 and classes for other 1.5 language extensions. Work on this is being
62 done on a special development branch that will be included in a future
63 GNU Classpath release when free runtimes, compilers and tools have all
64 been upgraded to support these new language features.
66 One of the major focusses of the GNU Classpath project is expanding
67 and using the Mauve test suite for Compatibility, Completeness and
68 Correctness checking. Various groups around GNU Classpath collaborate
69 on the free software Mauve test suite which contains more then 27.500
70 library tests. Mauve has various modules for testing core class
71 library implementations, byte code verifiers, source to byte code and
72 native code compiler tests. Mauve also contains the Wonka visual test
73 suite and the Jacks Compiler Killer Suite. This release passes 27.325
74 of the mauve core library tests.
75 See for more information: http://sources.redhat.com/mauve/
77 Conformance reports for the included jaxp support can be found in the
78 doc/README.jaxp file.
80 The GNU Classpath developers site http://developer.classpath.org/
81 provides detailed information on how to start with helping the GNU
82 Classpath project and gives an overview of the core class library
83 packages currently provided. For each snapshot release generated
84 documentation is provided through the GNU Classpath Tools gjdoc
85 project. A documentation generation framework for java source files
86 used by the GNU project. Full documentation on the currently
87 implementated packages and classes can be found at:
88 http://developer.classpath.org/doc/
91 Here are answers to some questions you might have about this project and
92 this release.
94 1). Who should use this software?
96 Although GNU Classpath is already capable of supporting many
97 applications written in the java programming language, this is a
98 development release. As such, there are still some unfinished
99 components, and some problems are to be expected. You should install it
100 if you are interested in GNU Classpath development or reporting bugs.
101 We appreciate both.
103 For end users we recommend to use one of the development environments
104 based on GNU Classpath which combine the core libraries with compilers
105 and other tools needed for creating applications and libraries.
107 * GCC with GCJ (http://gcc.gnu.org/java/)
108 * Kaffe (http://www.kaffe.org/)
110 Both projects have CVS versions which track GNU Classpath closely.
112 2). What is required to build/install/run?
114 GNU Classpath requires a working GNU build environment and a byte code
115 compiler such as jikes, gcj or kjc. When creating native code you will
116 also need a working C compiler and up to date Gnome development
117 libraries (gtk+, libart and gdk-pixbuf). More information on the
118 precise version numbers for the tools and libraries can be found in
119 the INSTALL file.
121 You will also need a runtime environment. Most active GNU Classpath
122 hackers use JamVM (http://jamvm.sourceforge.net/) and the gcj or Jikes
123 bytecode compiler (http://www.jikes.org) for quick development. But
124 other environments can certainly be used to hack on the GNU Classpath
125 core libraries.
127 For other environments that might need modified version of the current
128 release see the README file. A complete list of virtual machines and
129 compilers known to be based on GNU Classpath can be found at our
130 website: http://www.gnu.org/software/classpath/stories.html
132 Note that these are just byte code execution compilers and/or
133 runtimes. For development of programs written in the java programming
134 language you will also need compilers and other tools for creating
135 libraries and/or executables (see question 1).
137 2). What platforms are supported?
139 GNU/Linux and FreeBSD on x86 and powerpc are regularly tested by the
140 developers. Since 0.12 there is also support for cygwin. We plan to
141 eventually support many others. Many more architectures and platforms
142 are supported. Check the actual runtime you use together with GNU
143 Classpath for detailed information on the supported platforms.
145 5). Where do I go for more information?
147 The project home page with information on our mailing list can be
148 found at http://www.gnu.org/software/classpath/
150 The GNU Classpath developer recently held a conference during Fosdem.
151 This was a standing room event and provided lot of communication between
152 the GNU Classpath, Kaffe, GCJ, IKVM, Apache, java-gnome and Cacao hackers
153 and users. The presentations of this event have been publised and should
154 give a good overview of the current status and future plans of the project:
155 http://www.gnu.org/software/classpath/events/escape_fosdem05.html
157 Developers wanting to help out with the project will find more
158 information and tools on http://developer.classpath.org/
160 6). How do I extend the functionality of the core classes?
162 Besides combining GNU Classpath with the runtimes and compilers above
163 you might want to add support for additional encryption libraries and
164 algorithms as provided by GNU Crypto
165 (http://www.gnu.org/software/gnu-crypto/). And for additional
166 extension libraries (mail, activation, infobus, servlet, etc.) check
167 out GNU ClasspathX (http://www.gnu.org/software/classpathx).
169 Additional network protocol support is provided by a sub-project
170 called GNU Classpath Inetlib, an extension library to provide extra
171 network protocol support (ftp, finger, gopher) for GNU Classpath, but
172 it can also standalone to ease adding http, imap, pop3 and smtp client
173 support to applictions. Also distributed from
174 <ftp://ftp.gnu.org/gnu/classpath/>
176 The following projects extend the functionality of GNU Classpath
177 with additional algorithms, new core packages and tools.
178 All are released under GPL compatible licenses:
180 * Jessie: A free implementation of the JSSE. Secure Sockets Extension.
181 http://www.nongnu.org/jessie/
182 * Tritonus: A implementation of the javax.sound API.
183 http://www.tritonus.org/
184 * gcjwebplugin: A plugin for the execution of applets in web browsers.
185 http://www.nongnu.org/gcjwebplugin/
187 Note that the above libraries might already have been included in the
188 various platforms that also integrate GNU Classpath like done by the
189 Kaffe project.
191 6). What is new in this release?
193 New in release 0.15 (Apr 29, 2005)
194 (See the ChangeLog file for a full list of changes.)
196 * The old character encoding framework (gnu.java.io.EncodingManager)
197 has been replaced by a system based completely on nio.charset
198 providers. Many converters have been added, both the io, lang and nio
199 frameworks now use the same set of converters and the whole character
200 stream framework (Readers and Writers) have been optimized. For some
201 workloads this leads to 2x till 20x speedups.
203 The default charsets supported are:
205 Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861,
206 Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13,
207 ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,
208 ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope,
209 MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman,
210 MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE,
211 UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250,
212 Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
213 Windows1256, Windows1257, Windows1258.
215 Many more encoding are supported through the new IconvProvider
216 depending on the platform iconv support. GNU libiconv is recommended.
217 The IconvProvider is currently not enabled by default. To enable it
218 define the system property gnu.classpath.nio.charset.provider.iconv=true.
219 Some runtimes might choose to enable this by default by setting it
220 through VMSystemProperties. We would like to get feedback on whether
221 enabling or disabling the IconvProvider by default results in the
222 highest speedups.
224 * Free swing metal and pluggable look and feels have been improved.
225 The GNU Classpath free swing example can now be run with different
226 "skins" by setting the system property swing.defaultlaf to the GNU,
227 Basic or Metal look and feel.
229 * Some of the org.omg.CORBA classes and packages have now been
230 implemented. The Savannah bug tracker contains additional tasks for
231 which we are seeking help.
233 * Fixed compatibility problems in the java.beans which affected
234 Eclipse's Visual Editor Project.
236 * New completely lock free (Inheritable)ThreadLocal implementation.
238 * javax.swing.text.rtf framework added which can handle simple (plain)
239 text tokens.
241 * Support for parsing html files into Level 2 Document Object Model
242 (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of
243 javax.swing.text.html framework added.
245 Runtime interface changes:
247 * jni.h changed to better support compiling runtimes implementing jni;
248 see VM integration guide for details.
249 * New --enable-default-toolkit option to configure can be used to set
250 the fully qualified class name of the default AWT toolkit to use.
251 If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit
252 is used.
253 * New --disable-core-jni option can be used to disable building the
254 "core" JNI libraries. This is primarily useful if your VM can use the
255 Gtk peers but not the core JNI libraries.
256 * New system property "gnu.classpath.boot.library.path" can be specified
257 to define the location of the JNI libraries. It is by all means meant
258 ONLY for VM implementors and GNU Classpath hackers. See the hacking
259 guide for more information.
260 * The helper methods currentLoader() and allocateObject() for
261 java.io.ObjectInputStream have been moved to a VMObjectInputStream class.
262 Reference implementations are provided.
263 * java.net.InetAddress now uses VMInetAddress for runtime/platform
264 specific methods getLocalHostname(), getHostByAddr() and
265 getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface
266 for runtime/platform specific getInterfaces() support. Default
267 (Posix/GNU JNI) implementations are provided.
268 * VMClass has a new method getModifiers(Class, boolean) which can be
269 used to get the real modifiers for an inner class or the ones
270 specified by the InnerClasses attribute.
271 * All (possible) runtime specific methods of Object and Double are now
272 in VMObject and VMDouble. Where possible generic reference
273 implementations are provided.
274 * The reference implementation of VMClassLoader now handles zip files
275 on the boot loader class path in getResources().
277 The following people helped with this release:
279 Andreas Tobler (Security warning fixes, fdlibm merging and cleanups)
280 Andrew Haley (FileChannel optimizations)
281 Andrew John Hughes (URL/URI, rmi.naming, java.text, Currency and generics)
282 Archie Cobbs (RPM spec file, VMClassLoader fixes, jni cleanups)
283 Audrius Meskauskas (Lots of corba work, javax.swing.text.html and dom parser)
284 Casey Marshall (x509 and asn1/der fixes)
285 Chris Burdess (writeUTF optimization, html2 dom support and net protocols)
286 Dalibor Topic (FileChannel fixes, kaffe porting)
287 David Daney (InetAddress fixes)
288 David Gilbert (awt documentation, font fixes)
289 Guilhem Lavaux (VMSelector and IndexColorModel fixes)
290 Ito Kazumitsu (DecimalFormat parse fixes)
291 Jeroen Frijters (nio optimizations, VMClass fixes, ThreadLocal rewrite)
292 Luca Barbieri (FileChannel.tryLock fixes)
293 Mark Wielaard (cleanups and packaging)
294 Michael Franz (OSX testing)
295 Michael Koch (VM interface restructuring, libgcj merging, lots of bug fixing)
296 Mike Stump (fdlibm ppc64 fixes)
297 Olafur Bragason (PipedInputStream bug reporting)
298 Patrik Reali (Website maintenance)
299 Rei Odaira (VMSelector bug reporting)
300 Riccardo Mottola (Darwin6 testing)
301 Robert Schuster (java.beans, boot.library.path, jni fixes, mediation work)
302 Roman Kennke (Lots of free swing work, MediaTracker and RTF work)
303 Sven de Marothy (io, nio and charset optimizations and rewrites)
304 Thomas Fitzsimmons (URL, gtk-peers and free swing work)
305 Tom Tromey (build and code cleanups, jni merging with libgcj and generics)
307 </pre>
309 <footer>