Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libjava / classpath / NEWS
blob778369385b79d982e35400b7bf8095afb2064414
1 New in release 0.20
3 Runtime interface changes:
5 * New method VMStackWalker.getClassLoader() was added to avoid an infinite
6   loop between getCallingClassLoader() and Class.getClassLoader().
8 New in release 0.19 (Nov 2, 2005)
10 * The Swing RepaintManager has been reworked for more efficient painting,
11   especially for large GUIs.
13 * The Swing layout manager OverlayLayout has been implemented, the BoxLayout
14   has been rewritten to make use of the SizeRequirements utility class and
15   caching for more efficient layout.
17 * Improved accessibility support for Swing.
19 * The java.net.HttpURLConnection implementation no longer buffers the
20   entire response body in memory.  This means that response bodies
21   larger than available memory can now be handled.
23 * The Andrew Watson, Vice President and Technical Director of the Object
24   Management Group, has officially assigned us 20 bit Vendor Minor Code Id: 
25   0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
26   Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
27   node in a highly interoperable CORBA world. 
29 * Classpath now includes the first working draft to support the RMI over
30   IIOP protocol. The current implementation is capable for remote invocations,
31   transferring various Serializables and Externalizables via RMI-IIOP protocol.
32   It can flatten graphs and, at least for the simple cases, is interoperable
33   with Sun's jdk 1.5.
35 * Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
36   users with a Qt4 installation can build the qt-peers with the argument
37   --with-qt4dir=<Qt4-installation-dir>.
39 * Significant progress has been made in the implementation of the 
40   javax.swing.plaf.metal.* package, with most UI delegates in a working state
41   now.  Please test this with your own applications and provide feedback that 
42   will help us to improve this package.
44 * The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to 
45   highlight various features in our free-swing implementation. And includes
46   a look and feel switcher (Metal default, Ocean or GNU).
48 Runtime interface changes:
50 * Changed implementation of VMClassLoader.getPackage(s) : new method
51   VMClassLoader.getBootPackages should be implemented by the vm, and sould
52   return a string array of boot package names ("java.lang", "java.net", ...).
53   Feedback from vm implementors for usability and relevance of the
54   getBootPackages method would be greatly appreciated.
55   
56 New in release 0.18 (Sep 6, 2005)
58 * GNU JAWT implementation, the AWT Native Interface, which allows direct
59   access to native screen resources from within a Canvas's paint method.
60   GNU Classpath Examples comes with a Demo, see examples/README.
61 * awt.datatransfer updated to 1.5 with supports for FlavorEvents.
62   The gtk+ awt peers now allow copy/paste of text, images, uris/files
63   and serialized objects with other applications and tracking
64   clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
65   serialized objects are supported). A GNU Classpath Examples
66   datatransfer Demo was added to show the new functionality.
67 * org.omg.PortableInterceptor and related functionality in other packages
68   is now implemented:
69     - The sever and client interceptors work as required since 1.4.
70     - The IOR interceptor works as needed for 1.5. 
71 * The org.omg.DynamicAny package is completed and passes the prepared tests.
72 * The Portable Object Adapter should now support the output of the
73   recent IDL to java compilers. These compilers now generate servants and 
74   not CORBA objects as before, making the output depended on the existing 
75   POA implementation. Completing POA means that such code can already be 
76   tried to run on Classpath. Our POA is tested for the following usager
77   scenarios:
78     - POA converts servant to the CORBA object.
79     - Servant provides to the CORBA object.
80     - POA activates new CORBA object with the given Object Id (byte array) 
81       that is later accessible for the servant.
82     - During the first call, the ServantActivator provides servant for this 
83       and all subsequent calls on the current object.
84     - During each call, the ServantLocator provides servant for this call
85       only.
86     - ServantLocator or ServantActivator forwards call to another server.
87     - POA has a single servant, responsible for all objects.
88     - POA has a default servant, but some objects are explicitly connected 
89       to they specific servants.
90   The POA is verified using tests from the former cost.omg.org.      
91 * The javax.swing.plaf.multi.* package is now implemented.
92 * Editing and several key actions for JTree and JTable were implemented.
93 * Lots of icons and look and feel improvements for Free Swing basic and
94   metal themes were added.  Try running the GNU Classpath Swing Demo in
95   examples (gnu.classpath.examples.swing.Demo) with:
96   -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
97   -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
98 * Start of styled text capabilites for java.swing.text.
99 * NIO FileChannel.map implementation, fast bulk put implementation for
100   DirectByteBuffer (speeds up this method 10x).
101 * Split gtk+ awt peers event handling in two threads and improve gdk lock
102   handling (solves several AWT lock ups).
103 * Speed up awt Image loading.
104 * Updated TimeZone data against Olson tzdata2005l.
105 * Make zip and jar UTF-8 "clean".
106 * "native" code  builds and compiles (warning free) on Darwin and Solaris.
108 Runtime interface changes:
110 * All native resource "pointers" in the VM interface classes are now exposed
111   as gnu.classpath.Pointer objects. This might impact runtimes that
112   optimize and support java.nio.DirectByteBuffers. Creating these classes
113   and accessing the contents as void * pointers for the native reference JNI
114   implementation is done through the JCL_NewRawDataObject and JCL_GetRawData
115   functions.
116 * Simplified the Class/VMClass interface.
117 * Removed loadedClasses map from ClassLoader. It's now the VMs responsibility
118   to manage the list of defined and loaded classes for each class loader.
119 * Moved native methods from java.lang.reflect.Proxy to VMProxy.
120 * Added hook to VMClassLoader to allow VM to do class caching.
122 New Untested/Disabled Features:
124   The following new features are included, but not ready for production
125   yet. They are explicitly disabled and not supported. But if you want
126   to help with the development of these new features we are interested
127   in feedback. You will have to explicitly enable them to try them out
128   (and they will most likely contain bugs). If you are interested in any
129   of these then please join the mailing-list and follow development in
130   CVS.
132 * QT4 AWT peers, enable by giving configure --enable-qt-peer.
133 * JDWP framework, enable by deleting the jdwp references from
134   lib/standard.omit and vm/reference/standard.omit. No default
135   implementation is provided. Work is being done on gcj/gij integration.
136 * StAX java.xml.stream, enable by deleting the gnu.xml.stream and
137   java.xml.stream references in lib/standard.omit.
139 New in release 0.17 (Jul 15, 2005)
141 * gnu.xml fix for nodes created outside a namespace context.
142 * Add support for output indenting and cdata-section-elements output
143   instruction in xml.transform.
144 * xml.xpath corrections for cases where elements/attributes might have
145   been created in non-namespace-aware mode. Corrections to handling of
146   XSL variables and minor conformance updates.
147 * DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
148   traversal enumerations implemented.
149 * JInternalFrame colors and titlebar draw properly.
150 * JTree is working up to par (icons, selection and keyboard traversal).
151 * JMenus were made more compatible in visual and programmatic behavior.
152 * JTable changeSelection and multiple selections implemented.
153 * JButton and JToggleButton change states work properly now.
154 * JFileChooser fixes.
155 * revalidate and repaint fixes which make Free Swing much more responsive.
156 * Correctly handle system call interrupts and timeouts in native nio
157   and net functions.
158 * MetalIconFactory implemented.
159 * Handle image loading errors correctly for gdkpixbuf and MediaTracker.
160 * Added Tree World to GNU Classpath examples Free Swing demo.
161 * FileChannel.lock() and FileChannel.force() implemented.
162 * java.util.logging.FileHandler now rotates files.
163 * Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
164 * Corba bug fixes and documentation updates.
165 * Updated gcj build infrastructure.
166 * Documentation fixes all over the place.
167   See http://developer.classpath.org/doc/
168 * VM Integration Guide updates with a full section on VM/Classpath hooks.
170 New in release 0.16 (Jun 30, 2005)
172 * Better GTK scrollbar peer implementation when using GTK >= 2.6.
173 * GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
174 * BufferedImage and GtkImage rewrites. All image drawing operations
175   should now work correctly (flipping requires gtk+ >= 2.6)
176 * Future Graphics2D, Image and Text work is documented at:
177   http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
178 * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
179   JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
180   can call add() and setLayout() directly on them, which will have the same
181   effect as calling getContentPane().add() and getContentPane().setLayout().
182 * The JTree interface has been completed. JTrees now recognizes mouse clicks
183   and selections work, but the visual implementation is not yet complete.
184   Work on expansion and collapsing of the tree nodes is being implemented.
185 * BoxLayout works properly now.
186 * Fixed GrayFilter to actually work.
187 * Metal SplitPane implemented.
188 * Lots of free swing text and editor stuff work now.
190 * When gtk+ 2.6 or higher is installed the default log handler will produce
191   stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
193 * The CORBA implementation is now a working prototype that should support
194   features up till 1.3 inclusive. 
195   We would invite groups writing CORBA dependent applications to
196   try Classpath implementation, reporting any possible bugs.
198   The CORBA prototype is interoperable with Sun's implementation v 1.4,
199   transferring object references, primitive types, narrow and wide 
200   strings, arrays, structures, trees, abstract interfaces and 
201   value types (feature of CORBA 2.3) between these two platforms. 
202   The remote exceptions are transferred and handled correctly.
203   The stringified object references (IORs) from various sources are
204   parsed as required. 
205   The transient (for current session) and permanent (till jre restart)
206   redirections work. 
207   Both Little and Big Endian encoded messages are accepted. 
208   The implementation is verified using tests from the former cost.omg.org.
209   The current release includes working examples (see the examples directory),
210   demonstrating the client-server communication, using either CORBA Request
211   or IDL-based  stub (usually generated by a IDL to java compiler).
212   These examples also show how to use the Classpath CORBA naming service.
213   The IDL to java compiler is not yet written, but as our library must be 
214   compatible, it naturally accepts the output of other idlj implementations.
216 * New --with-vm-classes configure option, and new 'build' setting
217   for --with-glibj. (Only for integrators.)
219 Runtime interface changes:
221 * Start of a generic JDWP framework in gnu/classpath/jdwp.
222   This is unfinished, but feedback (at classpath@gnu.org) from runtime
223   hackers is greatly appreciated. Although most of the work is currently
224   being done around gcj/gij we want this framework to be as VM neutral as
225   possible. Early design is described in:
226   http://gcc.gnu.org/ml/java/2005-05/msg00260.html
227 * Native method VMClass.getModifiers() now takes an additional
228   boolean parameter.
229 * Deprecated native method VMClassLoader.defineClass(ClassLoader,
230   String, byte[], int, int) has been replaced by
231   VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
232   ProtectionDomain)
233 * VMClassLoader.loadClass(String name, boolean resolve) is now native,
234   replacing the former version which just returned null.
235 * Deprecated native method VMClassLoader.getPrimitiveClass(String) has
236   been replaced by new native method VMClassLoader.getPrimitiveClass(char).
237 * Previously empty implementations of methods VMThread.countStackFrames(),
238   VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
239   been removed; these methods are now native methods.
240 * Fields "exceptionTypes" and "parameterTypes" have been removed from
241   Contructor.java and getExceptionTypes() and getParameterTypes() are
242   now native methods.
244 New in release 0.15 (Apr 29, 2005)
246 * The old character encoding framework (gnu.java.io.EncodingManager)
247 has been replaced by a system based completely on nio.charset
248 providers. Many converters have been added, both the io, lang and nio
249 frameworks now use the same set of converters and the whole character
250 stream framework (Readers and Writers) have been optimized. For some
251 workloads this leads to 2x till 20x speedups.
253 The default charsets supported are:
255   Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861,
256   Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13,
257   ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,
258   ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope,
259   MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman,
260   MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE,
261   UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250,
262   Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
263   Windows1256, Windows1257, Windows1258.
265 Many more encoding are supported through the new IconvProvider
266 depending on the platform iconv support. GNU libiconv is recommended.
267 The IconvProvider is currently not enabled by default. To enable it
268 define the system property gnu.classpath.nio.charset.provider.iconv=true.
269 Some runtimes might choose to enable this by default by setting it
270 through VMSystemProperties. We would like to get feedback on whether
271 enabling or disabling the IconvProvider by default results in the
272 highest speedups.
274 * Free swing metal and pluggable look and feels have been improved.
275 The GNU Classpath free swing example can now be run with different
276 "skins" by setting the system property swing.defaultlaf to the GNU,
277 Basic or Metal look and feel.
279 * Some of the org.omg.CORBA classes and packages have now been
280 implemented. The Savannah bug tracker contains additional tasks for
281 which we are seeking help.
283 * Fixed compatibility problems in the java.beans which affected
284 Eclipse's Visual Editor Project.
286 * New completely lock free (Inheritable)ThreadLocal implementation.
288 * javax.swing.text.rtf framework added which can handle simple (plain)
289 text tokens.
291 * Support for parsing html files into Level 2 Document Object Model
292 (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of
293 javax.swing.text.html framework added.
295 Runtime interface changes:
297 * jni.h changed to better support compiling runtimes implementing jni;
298   see VM integration guide for details.
299 * New --enable-default-toolkit option to configure can be used to set
300   the fully qualified class name of the default AWT toolkit to use.
301   If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit
302   is used.
303 * New --disable-core-jni option can be used to disable building the
304   "core" JNI libraries.  This is primarily useful if your VM can use the
305   Gtk peers but not the core JNI libraries.
306 * New system property "gnu.classpath.boot.library.path" can be specified
307   to define the location of the JNI libraries. It is by all means meant
308   ONLY for VM implementors and GNU Classpath hackers. See the hacking
309   guide for more information.
310 * The helper methods currentLoader() and allocateObject() for
311   java.io.ObjectInputStream have been moved to a VMObjectInputStream class.
312   Reference implementations are provided.
313 * java.net.InetAddress now uses VMInetAddress for runtime/platform
314   specific methods getLocalHostname(), getHostByAddr() and
315   getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface
316   for runtime/platform specific getInterfaces() support. Default
317   (Posix/GNU JNI) implementations are provided.
318 * VMClass has a new method getModifiers(Class, boolean) which can be
319   used to get the real modifiers for an inner class or the ones
320   specified by the InnerClasses attribute.
321 * All (possible) runtime specific methods of Object and Double are now
322   in VMObject and VMDouble. Where possible generic reference
323   implementations are provided.
324 * The reference implementation of VMClassLoader now handles zip files
325   on the boot loader class path in getResources().
327 Other changes:
329 New in release 0.14 (Feb 25, 2005)
331 * Character encoders and decoders have been added for:
332   iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew),
333   iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
334   ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
335   UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian).
336 * Full documentation for all classes can be generated (again) by using
337   the --with-gjdoc configure option.
338 * javax.awt.imageio support through gdkpixbuf.
340 Runtime interface changes:
342 * VMSecurityManager has been replaced by gnu.classpath.VMStackWalker.
343   currentClassLoader() is no longer needed, and there are also two new
344   methods with non-native implementations. VM implementors are encouraged
345   to provide more efficient versions.
346 * VMRuntime.nativeLoad() now takes an additional ClassLoader parameter.
348 New in release 0.13 (Jan 6, 2005)
350 * The http url protocol handler has been replaced with a full HTTP/1.1
351   version from GNU inetlib.
352 * A new ftp url protocol handler has been added also from GNU inetlib.
353 * java.beans has been updated to 1.4 including support for XMLEncoder
354   and XMLDecoder.
355 * The java.util.Locale support is now based on the Common Locale Data
356   Repository (CLDR) Project (see http://www.unicode.org/cldr/).
357   GNU Classpath provides support for more than 250 locales now.
358   This new support is experimental and the GNU Classpath hackers are
359   working together with runtime developers and the unicode consortium
360   to improve them in the future.
361   If your runtime misdetects your locale or if the default locale gives
362   problems please try running with -Duser.language=en and -Duser.region=US
363   to fall back on a known good locale.
364 * Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2) and
365   org.w3c.dom (DOM Level 3) interfaces. It is possible to switch between
366   different implementations AElfred2, GNU DOM, GNU XSL, libxmlj SAX,
367   libxmlj DOM and libxmlj XSL by setting different system properties.
368   Also provided is a preliminary XPath 1.0 implementation.
369   The libxmlj versions are build around libxml2 and libxslt and have to
370   be enabled during build time by the --enable-xmlj configure flag.
371   The current support is equal to the last released GNU JAXP 1.3 release.
372   These packages will be maintained as part of the GNU Classpath core classes
373   in the future. For more information, conformance results and documentation
374   on selecting different implementations see doc/README.jaxp.
375 * More AWT accessible support.
376 * AWT gtk+ peers component layout, dialog placement, keyboard focus
377   handling and text positioning have been improved.
378 * ImageIO interfaces are more complete.
379 * JList, JTable and JTree have been hugely improved.
380 * java.awt.Robot support with GdkRobot in the gtk+ awt peers.
381   Needs XTest Extension (libXtst) XServer support.
382 * New --disable-examples configure argument.
384 Runtime interface changes:
386 * Added a new method (VMRuntime.enableShutdownHooks) that enables the VM
387   to lazily register an exit handler.
388 * The java.lang.Class constructor now automatically sets the protection
389   domain for array classes, based on the protection domain of the component
390   type class.
391 * New gnu.classpath.VMSystemProperties class. This replaces the
392   system properties initialization in VMRuntime. Note that it is
393   now the VMs responsibility to set one additional property:
394   gnu.cpu.endian should be set to "big" or "little".
395 * VMRuntime.nativeGetLibname() has been renamed to VMRuntime.mapLibraryName()
396   and has only one argument, the name of the library.
397 * String and StringBuffer now call VMSystem.arraycopy() directly and don't
398   go through java.lang.System. Be careful to not initialize java.lang.System
399   early in the bootstrap sequence in your VM runtime interface classes.
400 * Some (wrong) documentation about the behavior of VMThread.sleep(0, 0)
401   has been updated. Also, VMThread.sleep() now has a default non-native
402   implementation, but it is a generic implementation that ignores the
403   nano-seconds argument. Runtime hackers are encouraged to provide a more
404   efficient version.
405 * There is prelimenary support for nio direct byte buffers.
406   See VMDirectByteBuffer. Please contact the GNU Classpath mailinglist when
407   you add support for this to your runtime.
409 New in release 0.12 (Nov 14, 2004)
411 * GNU Classpath's JAR implementation now has preliminary support for
412   signed entries, for so called "signed JAR" file support. Signed JAR
413   files are one of the key security features of managed runtimes, and
414   allows code to run privileged given unforgeable proofs of identity.
415 * A much improved version of X.509 certificates has been added,
416   including a robust certificate path checking algorithm. Also
417   included is an implementation of the RSA signature scheme.
418 * Full java.awt.color implementation, with all standard ICC profiles,
419   except for PhotoYCC color space.
420 * java.beans 1.4 updates and bug fixes.
421 * java.awt.image support updated to 1.4.
422 * Improved build process. Uses less memory with gcj and C code is
423   buildable with -Werror on most platform. Please configure with
424   --enable-Werror and report any remaining issues.
425 * Big-endian (PowerPC) fixes for native awt GTK+ peers.
426 * Checkstyle support, see scripts/checkstyle-config.xml.
427 * Better AWT focus management fro GTK+ peers.
428 * Much faster and better fonts support
429   (for both gdk Graphics and cairo Graphics2D)
430 * AWT Choice fixes for hidden components.
431 * HTTP Connection Handler fixes for POST support.
432 * Much fuller collection documentation.
433 * Lots of Calendar bug fixes.
434 * More javax.imageio support.
435 * Better AWT Help MenuBar support.
436 * Lookahead support for regular expressions.
437 * Serialization object stream fixes for multiple ClassLoader scenarios.
438 * Swing TabbedPane, ColorChooser and ComboBox improvements.
439 * Start of JTree functionality.
440 * Improved Eclipse 3 support for GNU Classpath based runtimes.
442 Runtime interface Changes:
444 * New --enable-java-lang-system-explicit-initialization configuration
445   option. (Warning, will be replaced in next release, please consult
446   the mailinglist.)
447 * The reference implementation of VMClassLoader has default
448   implementations for getResource(s) and provides support for a new
449   default getSystemClassLoader implementation.
451 New in release 0.11 (Sep 13, 2004)
453 * javax.swing.Spring and SpringLayout support.
454 * Added pluggable look and feel support for BasicTextFieldUI and
455   BasicToolBarSeparatorUI.
456 * java.swing.text support for (Default and Layered) Highlighter, FieldView,
457   PlainView, TabExpander and TabableView added.
458 * Start of JTable and JTree implementation.
459 * Internal Swing frames work.
460 * JMenu and JPopupMenu work.
461 * New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
462 * java.awt.image LookupTables and kernel support.
463 * Improved java.awt.image.BufferedImage support.
464 * AWT 1.0 event model support.
465 * GNU Classpath now comes with some example programs (see examples/README).
466 * New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net,
467   javax.net.ssl, javax.security.auth, javax.security.auth.callback,
468   javax.security.auth.login, javax.security.auth.x500, javax.security.sasl
469   and org.ietf.jgss packages are now officially part of GNU Classpath.
470   Extra crypto algorithms can be obtained from the GNU Crypto project,
471   a full TLS implementation is provided by the Jessie project.
472   http://www.gnu.org/software/gnu-crypto/
473   http://www.nongnu.org/jessie/
474 * Frame.setIconImage() support.
475 * AWT GDKGraphics scaling.
476 * New configure flag --enable-gtk-cairo to build Graphics2D implementation
477   build on cairo and pangoft2.  Enabled at runtime by defining the system
478   property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
479 * javax.swing.JSpinner implemented.
480 * Extensive documentation update for java.util collection classes.
481 * java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented.
482 * GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and
483   tool integrators are encouraged to directly integrate GNU JAXP.
484   This release has been tested against GNU JAXP 1.1.
485   http://www.gnu.org/software/classpathx/jaxp/jaxp.html
486 * JColorChooser, JComboBox and JTextField implemented, including example
487   uses in GNU Classpath Examples swing Demo.
489 Runtime interface Changes:
491 * java.lang.Compiler now uses the new java.lang.VMCompiler; there is
492   a reference implementation that most VMs can use.
493 * java.lang.VMSystem has a new getenv(String) method and a reference C/JNI
494   implementation that should work on most Posix like systems.
495 * java.util.TimeZone has been split into a platform independent class and
496   a platform dependent class VMTimeZone.  GNU Classpath comes with a generic
497   way to get at the default time zone for Posix/GNU-like platforms.
498 * [VM]AccessController improvements.  In particular it handles
499   `doPrivileged' calls better, and allows for recursive `doPrivileged'
500   calls in the same Thread. (see vm/reference/java/security/)
502 New in release 0.10 (Jul 9, 2004)
504 * java.net.URL now uses application classloader to load URLStreamHandlers
505   and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
506 * java.io.File.deleteOnExit() implementation.
507 * java.text multiple new features and bug fixes
508   (only 2 out of the 1000+ java.text Mauve tests now fail).
509 * Better (non-black) default AWT System colors.
510 * AWT lists use GTK treeviews.
511 * Proper AWT focus management has been implemented.
512 * Swing menus and scrollpanes are beginning to work.
513 * Swing splitpanes, dialogs and internal frames were added.
514 * Swing repainting / double buffering was redone.
515 * Font management and Pango DPI conversion fixes.
516 * A lot of AWT imaging and event bugs have been picked out.
517 * More of javax.swing.text has been implemented.
518 * javax.swing.Timer has been reimplemented.
519 * java.security.AccessController has been implemented
520   (see runtime section).
521 * The default java.lang.SecurityManager now uses AccessController.
522 * New java.beans.Statement and Expression implementations.
523 * Small FileChannel implementation speed improvement for traditional
524   JNI based systems.
525 * Regenerated all included JNI header files with gcjh (3.5 CVS),
526   removes extra extern modifier and allows stricter compiler warning.
527 * More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
528   -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
529   made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
530 * Double.toString() and Float.toString() now work properly on 64-bit 
531   PowerPC systems.
532 * PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
533 * Build system refactored and removed old Japhar specific support.
534 * The gnu.java.awt.EmbeddedWindow class has been improved, and now
535   supports embedding AWT windows in other top-level X windows.
536   This functionality is required by gcjwebplugin.
537 * gcjwebplugin, an applet viewer that can be embedded into several web
538   browsers, has been extensively tested with this release of classpath.
539   (See http://www.nongnu.org/gcjwebplugin/)
540 * Runtime environments based on GNU Classpath 0.10 should be able to
541   start up Eclipse 3.0 out of the box now.
543 Runtime interface Changes:
545 * VMProcess.destroy() default implementation fixes.
546 * Fixed the "portable native sync" code; it had been broken since
547   Classpath release 0.06, when we upgraded to GTK+2.    
548   Classpath's AWT peers use GTK+.  GTK+ uses GLIB.  GLIB by default uses
549   the platform's native threading model -- pthreads in most cases.
550   If the Java runtime doesn't use the native threading model, then you should
551   specify --portable-native-sync when configuring Classpath, so that GLIB will
552   use the Java threading primitives instead.  (For a superior alternative,
553   see below.)
554 * The VM can set the system property
555   gnu.classpath.awt.gtk.portable.native.sync instead of using the
556   --portable-native-sync configure-type option.
557   See doc/vmintegration.texinfo for details.
558 * We intend that the next release of GNU Classpath will require the VM 
559   to provide JNI 1.2.  Classpath currently uses only JNI 1.1, except for 
560   one JNI 1.2 function: GetEnv(), in the JNI Invocation API. 
561   If this poses problems, please raise them on the classpath mailing list.
562 * The reference implementation of VMThread.holdsLock(Object) now has
563   a default implementation written in java. For efficiency and to
564   prevent spurious wakeups a real 'native' runtime version can be supplied.
565 * There is a new java.security.VMAccessController class that runtimes need
566   to implement to properly support SecurityManagers. The default
567   implementation that comes with GNU Classpath makes sure that ANY attempt
568   to access a protected resource is denied when a SecurityManager is
569   installed. Which is pretty secure, but also no very useful.
570   Please see the documentation in
571   vm/reference/java/security/VMAccessController.java,
572   and please give feedback on the GNU Classpath mailinglist whether or not
573   the current AccessController framework is flexible enough.
575 New in release 0.09 (May 2, 2004)
577 * Includes updated GNU JAXP version from 2004-02-01.
578 * Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean.
579 * java.io is now implemented by delegating most tasks directly to java.nio.
580 * Reworked/Optimized implementations of java.nio.Buffer and subclasses.
581 * New javax.print, javax.print.attribute[.standard] and javax.print.event
582   packages and classes.
583 * java.text attributed iterators support.
584 * New javax.imageio, javax.imageio.event and javax.imageio.spi packages and
585   classes.
586 * GNU Classpath can now load service providers that are described via
587   META-INF/services/* resources in extension JARs. This is useful for
588   implementing the various APIs that are supposed to be extensible via
589   custom plugins. For details, please see the documentation of
590   gnu.classpath.ServiceFactory.
591   Application developers are strongly discouraged from calling glibj
592   internal packages.  Instead, they might want invoke the newly implemented
593   javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard 
594   method for loading plug-ins.
595 * New developers wanting to help the GNU Classpath project might want to
596   review the greatly expanded Hacker Guide included in the doc directory
597   or online at http://www.gnu.org/software/classpath/docs/hacking.html
598   Also the FAQ has been expanded. And when working from CVS you can now use
599   a simple autogen.sh script to get all autotools magic done automagically.
600 * New configure option --with-glibj which defines how to install the glibj
601   class files as zip, as flat directory files or both (zip|flat|both)
602   [default=zip].  When working with multiple runtimes some of which might
603   not support bootstrap classes in zip files the --with-glibj=both option
604   is recommended (this does take extra disc space).
605 * Two big code drops from the libgcj gui branch updating various java.awt
606   and javax.swing classes.
607 * Multiple java.net.InetAdress fixes and java.rmi fixes.
608 * ServerSocket.accept() now restarts listening when system call interrupted.
609 * Much cleanups to make standard API doc valid XHTML (not completed yet).
610 * A scan for unused variables and non-static invocation of static methods
611   turned up a couple of subtle bugs which have now all been fixed.
612 * The Mauve testsuite has been cleaned up considerable and lots of issues
613   in the GNU Classpath core class implementation have been fixed.
615 VM Interface changes:
617 * java.lang.Class/VMClass interface was changed. The interface now no
618   longer requires an instance of VMClass for each Class instance. Instead
619   the field vmdata in Class is now of type Object.
620 * GNU Classpath now assumes that JNI calls SetXField can modify final
621   fields. This was previously used silently for System.in/out/err and should
622   be considered as a feature now.
623 * A new VMProcess and a sample JNI C implementation are now provided to
624   make Runtime.exec() work out of the box on some systems.  This requires
625   a small change to VMRuntime.exec() when a runtime wants to use it as the
626   default java.lang.Process implementation.
627 * The implementation of most of java.io through java.nio moved serveral
628   runtime specific I/O methods. Most methods do have a generic default native
629   C JNI implementation in native/jni/java-nio.
630 * Runtime support methods for java.io.File have been moved to VMFile which
631   also comes with a default JNI C implementation.
632 * To support the new service provider mechanism runtimes must make sure that
633   extension JARs are made accessible via the default context class loader.
635 New in release 0.08 (2004/12/03)
637 * java.util.regexp implementation through gnu.regexp wrappers.
638 * java.net.URI implementation.
639 * Working implementation of javax.swing.undo.
640 * java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and quadratic
641   equations; implementation adapted from the GNU Scientific Library.
642 * Lots of java.awt and gtk+ peer improvements. Also more Swing work. Start
643   of EmbeddedWindow support.
644 * BufferedReader speed improvements.
645 * Improved useabilty of java.text implementation for several applications.
646 * ObjectInputStream is much faster and more compatible with other
647   implementations.
648 * Fix handling of alias methods, where a method has been deprecated in
649   favour of a new one with the same funtion but a different name.
650   (See Deprecated Methods section in the GNU Classpath Hacking Guide.)
651 * javax.print.attribute.standard added.
652 * Lots of java.nio, java.net, java.io
653 * Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+.
655 VM Interface changes:
656 * Split native methods in java.lang.Runtime into java.lang.VMRuntime.
657 * Resources are now also loaded/needed through the bootstrap classloader
658   (gnu.regexp needs MessageBundle included in glibj.zip
660 Fixed Classpath bugs:
661   #6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives
662         wrong results
663   #7099 EventListenerList.getListenerCount should accept null argument
664   #7104 EventListenerList.add does not work
665   #7105 EventListenerList.remove does not work
666   #7107 DefaultBoundedRangeModel.setValue and friends should not throw
667   And lots more.
669 New in release 0.07 (2003/30/11)
671 * Works with libtool 1.5 (and 1.4.3).
672 * java.awt gtk+ peers now depend on gtk+ 2.2.x and uses pango.
673   Lots and lots improvements on the peers.
674 * java.awt.geom.CubicCurve2D, java.awt.geom.QuadCurve2D:
675   Subdivision and flatness calculation implemented.
676 * java.awt.geom.FlatteningPathIterator: Working implementation.
677 * gnu.java.awt.BitwiseXORComposite helper class.
678 * New rmic compilers (jikes, kjc) support.
679 * java.text bug fixing and 1.4 updates (Currency).
680 * Hashtable and HashMap function more similar to other implementations.
681 * javax.naming and java.beans classloader fixes.
682 * URL parsing, URLConnection, protocol and (needed) permission fixes.
683 * More java.nio implementation
684   (API complete, but implementation not finished yet).
685 * Lots of java.net code cleanup.
686 * Improved documentation.
687 * Numerous bug fixes in almost every package, and lots of updates for
688   1.4 functionality.
689 * Fixed Classpath bugs:
690   #2944 Incorrect synchronization in java.util.logging.ErrorManager
691   #6075 java.awt.geom.GeneralPath.getCurrentPoint returns wrong results
692   #6076 java.awt.geom.GeneralPath constructor sometimes hangs
693   #6089 java.awt.geom.GeneralPath.getPathIterator does not work
694   [...]
696 VM Interface changes:
698 * Thread has been split in a VM-independent Thread class and a VM-dependent
699   VMThread class.
701 New in release 0.06 (2003/22/08)
703 * Update java.awt peers to GTK+2.
704 * java.awt.GridBagLayout implementation.
705 * javax.swing.border implementation.
706 * java.security and java.security.cert updated to 1.4 spec.
707 * New JNI native target code layer. See native/target/readme.txt.
708 * --enable-regen-headers configure flag for automatic jni .h file generation.
709 * Removed workaround for gcj 3.2 and lower, gcj 3.3+ or jikes 1.18+ is now
710   needed for compiling.
711 * Lots of improvements and/or new classes for java.awt, java.awt.dnd,
712   java.awt.font, java.awt.geom, java.awt.image, java.io, java.math, java.net,
713   java.nio, java.rmi, java.text, java.util, javax.swing, javax.swing.plaf,
714   javax.swing.text.
716 VM Interface changes:
718 * VMClassLoader.loadClass(), the bootstrap classloader called by
719   Class.forName() and ClassLoader.loadClass(), may now return null when
720   a class is not found instead of throwing a new ClassNotFoundException.
721   This is a performance optimization in some cases. This also changes
722   the Class.forName() reference code.
723 * Native methods in Class have been moved to VMClass.  A few additional
724   methods are also available in VMClass to provide optional performance
725   improvements.
726 * A VM can now supply its own String.intern() strategy through the
727   VMString class. The supplied VMString reference class implements the
728   original WeakHashMap strategy.
729 * Float and Double to/from bits conversion functions can now be supplied by
730   the VM through VMFloat and VMDouble. Default JNI conversion methods are
731   supplied.
733 New in release 0.05 (2003/02/15)
734 * Supports free Java VMs Jikes RVM and Kissme out of the box, perhaps others.
735 * Supports GNU Crypto 1.1 as the official provider of cryptographic primitives
736   and tools for GNU Classpath, available separately from 
737   http://www.gnu.org/software/classpathx/crypto/crypto.html. 
738 * Supports GNU Classpath Tools sub-project of GNU Classpath, official provider
739   of standard tools such as gjdoc, a javadoc replacement, and others.  Future
740   releases of GNU Classpath will begin to include these tools, available
741   separately from http://www.gnu.org/software/cp-tools/.
742 * Java primitives can be used to support AWT native threading, see 
743   the --enable-portable-native-sync configure option which may become the
744   default in a future release.
745 * Include file jni.h has been updated to the 1.4 specification.
746 * VM specific internal types for jobject, jfieldID, and jmethodID are
747   supported in jni.h.  More details can be found by reading the comment
748   in include/jni.h.in.  By default the old definitions are used instead.
749 * New VM helper class java.io.VMObjectStreamClass which should provide
750   the hasClassInitializer() method. Previously ObjectStreamClass used
751   Class.getDeclaredMethod("<clinit>") but according to the spec this
752   should always throw NoSuchMethodException for class initialization methods.
753   A JNI reference implementation is provided as
754   vm/reference/java-io/java_io_VMObjectStreamClass.c
755 * There have been numerous infrastructure improvements
756   * Configure option --enable-gjdoc to generate javadoc-like output 
757   * Gjdoc output is included with distribution, see doc/api/html/
758   * DESTDIR fully supported for install and uninstall
759 * Runtime.execInternal contract changed to allow for null `env'
760   and to accept `dir' argument.
761 * VMObject.getClass() removed. It was never used.
762 * java.lang.Throwable is now a 'normal' GNU Classpath class that uses the
763   VM specific java.lang.VMThrowable to get at the VM state and (if needed)
764   the StackTraceElements for a particular exception. A default implementation
765   (that does nothing) is provided in vm/reference/java/lang/VMThrowable.java.
766 * The vm/reference classes from the gnu.vm.stack and their counterparts
767   ExecutionStack and StackFrame in gnu.java.lang have been removed since they
768   are not actually part of the VM interface anyway.
769 * The GPLed com.sun.javadoc classes have been moved to the gjdoc application
770   from the GNU Classpath Tools project. See for more information the homepage
771   at: <http://www.gnu.org/software/cp-tools/>.
773 New in release 0.04 (2002/05/05)
774 * Additional configure options to disable zip creation and installation as
775   well as disable gtk peer native compilation.
776 * Addition of java.nio, java.util.logging, and javax.swing.
777 * Integration of most or all of the ORP patches to date, the purpose of 
778   which are to make it possible to use JBOSS with ORP and Classpath.  This
779   is still in a testing phase however.
780 * Significant changes in the reference VM interface that may require
781   support from the JVMs.
782 * Lots of bugfixes.
784 New in release 0.03 (2002/02/08)
785 * More merges with libgcj have been performed including java.math which now
786   provides a pure Java implementation of that package.
787   Current status at <http://gcc.gnu.org/java/libgcj-classpath-compare.html>
788 * A pure Java implementation (Jazzlib) of java.util.zip is available.
789 * Added the java.rmi implementation that Transvirtual donated to the FSF.
790 * Includes jni.h now, eliminating the need to specify a particular VM
791   via configure.
792 * No proprietary classes or programs are required to compile.
793   Compiles out of the box with jikes or gcj.
794 * Separation of compiling Java source and native libraries through the 
795   configure mechanism.  If given no arguments, configure will setup the
796   subsequent build to only produce Java bytecode (.class files).  More
797   information is available in INSTALLING.
798 * Support for compiling in a separate directory, as an example you may
799   cd classpath-0.03; mkdir build; cd build; ../configure; make
800 * Works with Orp 1.0.9 out of the box. Build instructions can be found at
801   <http://www.gnu.org/software/classpath/doc/orp.html>
802 * Lots of bugfixes that were found by using Classpath with the gcj, Orp,
803   SableVM, KissMe and Jaos VMs. Please use our bugdatabase at
804   <http://savannah.gnu.org/support/?group_id=85>
805 * Lots of updates to make Classpath more compliant with the 1.2, 1.3 and 1.4
806   API specification. The current status can be found at
807   <http://www.gnu.org/software/classpath/status.html>
808 * All files are now distributed under the same terms. Added clarification to
809   GPL exception.
811 New in release 0.02 (2001/01/06)
812 * Support for printing exceptions with Japhar 0.09 + patch included in
813   resource/japhar-0.09.patch.1.
814 * Typos, assorted bugfixes.
816 New in release 0.01 (2000/11/20)
817 * More packages are included now, though many remain untested.
818 * Support for Japhar 0.09 included.
820 New in release 0.00 (1999/02/01)
821 * First official development release of clean room class library for Java
822 * Following packages included:
823         -- java.beans
824         -- java.io
825         -- java.lang
826         -- java.lang.reflect
827         -- java.math
828         -- java.net
829         -- java.security (partial and non-functioning)
830         -- java.security.acl
831         -- java.security.interfaces
832         -- java.util
833 * Code is mostly Java 2 (see JDK 1.2) compatible with some functionality
834   missing and/or untested.
835 * Support for Japhar (http://www.japhar.org/) virtual machine is included.
836   Requires the current Japhar from CVS.
837 * Extensive javadoc comments for public API included
838 * Licensed under the GNU Library General Public License (see COPYING.LIB)
839 * Does not depend on any non-free code - developed in a "clean room"
840   environment.