1 *** Changes in GCC 3.4:
3 * Compiling a .jar file will now cause non-.class entries to be automatically
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
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)
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
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
58 * gcj can now automatically remove redundant array-store checks in some common
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
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
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.
122 * First public release