OSDN Git Service

Initial revision
[pf3gnuchains/gcc-fork.git] / libjava / classpath / doc / www.gnu.org / announce / 20050429.wml
1 #!wml --include=..
2
3 #use wml::std::page
4 #use wml::std::lang
5 #use wml::fmt::isolatin
6 #use wml::std::case global=upper
7
8 <lang:star:slice:>
9
10 <set-var last-modified-author="prr">
11
12 #include <include/macros.wml>
13
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.
17
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.
21
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.
26
27 Some highlights of changes in this release (more extensive list below):
28
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.
37
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.
42
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
47
48 File: classpath-0.15.tar.gz
49 MD5sum: 036c23aec7cb53a43b7b9dc63a92fbbe
50 SHA1sum: 971bdd436b8010ab30096869f689a44d41e5a01c
51
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.
59
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.
65
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/ 
76
77 Conformance reports for the included jaxp support can be found in the
78 doc/README.jaxp file.
79
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/
89
90
91 Here are answers to some questions you might have about this project and
92 this release.
93
94 1). Who should use this software?
95
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.
102
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.
106
107     * GCC with GCJ  (http://gcc.gnu.org/java/)
108     * Kaffe         (http://www.kaffe.org/)
109
110 Both projects have CVS versions which track GNU Classpath closely.
111
112 2). What is required to build/install/run?
113
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.
120
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.
126
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
131
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).
136
137 2). What platforms are supported?
138
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.
144
145 5). Where do I go for more information?
146
147 The project home page with information on our mailing list can be
148 found at http://www.gnu.org/software/classpath/
149
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
156
157 Developers wanting to help out with the project will find more
158 information and tools on http://developer.classpath.org/
159
160 6). How do I extend the functionality of the core classes?
161
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).
168
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/>
175
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:
179
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/
186
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.
190
191 6). What is new in this release?
192
193 New in release 0.15 (Apr 29, 2005)
194 (See the ChangeLog file for a full list of changes.)
195
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.
202
203 The default charsets supported are:
204
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.
214
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.
223
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.
228
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.
232
233 * Fixed compatibility problems in the java.beans which affected
234 Eclipse's Visual Editor Project.
235
236 * New completely lock free (Inheritable)ThreadLocal implementation.
237
238 * javax.swing.text.rtf framework added which can handle simple (plain)
239 text tokens.
240
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.
244
245 Runtime interface changes:
246
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().
276
277 The following people helped with this release:
278
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)
306
307 </pre>
308
309 <footer>