PR c++/18073
[official-gcc.git] / libjava / NEWS
blob8c9b3b745d18ebdd59e7f0f6e994d288d79aa5c6
1 *** Changes in GCC 3.4:
3 * Compiling a .jar file will now cause non-.class entries to be automatically 
4   compiled as resources.
6 * libgcj has been ported to Darwin.
8 * Jeff Sturm has adapted Jan Hubicka's call graph optimization code to gcj.
10 * libgcj has a new gcjlib URL type; this lets URLClassLoader load code from 
11   shared libraries.
13 * libgcj has been much more completely merged with GNU Classpath.
15 * Class loading is now much more correct; in particular the caller's class 
16   loader is now used when that is required.
18 * Eclipse 2.x will run out of the box using gij.
20 * Parts of java.nio have been implemented. Direct and indirect buffers work, 
21   as do fundamental file and socket operations.
23 * java.awt has been improved, though it is still not ready for general use.
25 * The HTTP protocol handler now uses HTTP/1.1 and can handle the POST method.
27 * The MinGW port has matured. Enhancements include socket timeout support, 
28   thread interruption, improved Runtime.exec() handling and support for 
29   accented characters in filenames.
31 *** Changes in GCC 3.3:
33 * The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK 1.4) 
34   API.
36 * The JDK 1.4 assert facility has been implemented.
38 * The bytecode interpreter is now direct threaded and thus faster.
41 *** Changes in GCC 3.1:
43 * libgcj now includes RMI, java.lang.ref.*, javax.naming, and 
44   javax.transaction.
46 * Property files and other system resources can be compiled into executables 
47   which use libgcj using the new gcj --resource feature.
49 * libgcj has been ported to more platforms. In particular there is now a 
50   mostly-functional mingw32 (Windows) target port.
52 * JNI and CNI invocation interfaces were implemented, so gcj-compiled Java 
53   code can now be called from a C/C++ application.
55 * gcj can now use builtin functions for certain known methods, for instance 
56   Math.cos.
58 * gcj can now automatically remove redundant array-store checks in some common 
59   cases.
61 * The --no-store-checks optimization option was added. This can be used to 
62   omit runtime store checks for code which is known not to throw 
63   ArrayStoreException
65 * The following third party interface standards were added to libgcj: 
66   org.w3c.dom and org.xml.sax.
68 * java.security has been merged with GNU Classpath. The new package is now 
69   JDK 1.2 compliant, and much more complete.
71 * A bytecode verifier was added to the libgcj interpreter.
73 * java.lang.Character was rewritten to comply with the Unicode 3.0 standard, 
74   and improve performance.
76 * Partial support for many more locales was added to libgcj.
78 * Socket timeouts have been implemented.
80 * libgcj has been merged into a single shared library. There are no longer 
81   separate shared libraries for the garbage collector and zlib.
83 * Several performance improvements were made to gcj and libgcj:
84       o Hash synchronization (thin locks)
85       o A special allocation path for finalizer-free objects
86       o Thread-local allocation
87       o Parallel GC, and other GC tweaks
89 *** Changes in GCC 3.0:
91 * libgcj now includes a bytecode interpreter. If a compiled version of a class 
92 is not found in the application binary or linked shared libraries, the
93 class loader will search for a bytecode version in the CLASSPATH and execute
94 it using the interpreter. A new front end that behaves like the traditional
95 `java' command is also provided: `gij'.
97 * Support for specifying java system properties. Properties can either be set 
98 at runtime via the GCJ_PROPERTIES environment variable in the format 
99 "<name>=<value> ..."'; or can be compiled into an application binary using 
100 -D<name>=<value>.
102 * Support for setjmp/longjmp (sjlj) exception handling has been added, as an
103 alternative to the existing range-table based mechanism. sjlj is the default
104 on non-sparc, non-x86 targets, or can be specified with the 
105 `--enable-sjlj-exceptions' configure parameter.
107 * Complete JDK 1.1 reflection support, including invocation.
109 * Throwable.printStackTrace() has been implemented.
111 * Runtime.loadLibrary() has been implemented.
113 * Class.forName() will now try to load a series of shared objects in order 
114 to find the requested class.  If a class `gnu.quux.whatever' is requested, 
115 libgcj will search the system shared library path (eg LD_LIBRARY_PATH) for 
116 `gnu-quux-whatever.so', then `gnu-quux.so', and finally `gnu.so'.
118 * A pure-java implementation of java.math.BigInteger.
120 New in libgcj 2.95:
122 * First public release