gcc/libjava/NEWS
2004-07-29 03:50:36 +01:00

123 lines
4.3 KiB
Plaintext

*** Changes in GCC 3.4:
* Compiling a .jar file will now cause non-.class entries to be automatically
compiled as resources.
* libgcj has been ported to Darwin.
* Jeff Sturm has adapted Jan Hubicka's call graph optimization code to gcj.
* libgcj has a new gcjlib URL type; this lets URLClassLoader load code from
shared libraries.
* libgcj has been much more completely merged with GNU Classpath.
* Class loading is now much more correct; in particular the caller's class
loader is now used when that is required.
* Eclipse 2.x will run out of the box using gij.
* Parts of java.nio have been implemented. Direct and indirect buffers work,
as do fundamental file and socket operations.
* java.awt has been improved, though it is still not ready for general use.
* The HTTP protocol handler now uses HTTP/1.1 and can handle the POST method.
* The MinGW port has matured. Enhancements include socket timeout support,
thread interruption, improved Runtime.exec() handling and support for
accented characters in filenames.
*** Changes in GCC 3.3:
* The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK 1.4)
API.
* The JDK 1.4 assert facility has been implemented.
* The bytecode interpreter is now direct threaded and thus faster.
*** Changes in GCC 3.1:
* libgcj now includes RMI, java.lang.ref.*, javax.naming, and
javax.transaction.
* Property files and other system resources can be compiled into executables
which use libgcj using the new gcj --resource feature.
* libgcj has been ported to more platforms. In particular there is now a
mostly-functional mingw32 (Windows) target port.
* JNI and CNI invocation interfaces were implemented, so gcj-compiled Java
code can now be called from a C/C++ application.
* gcj can now use builtin functions for certain known methods, for instance
Math.cos.
* gcj can now automatically remove redundant array-store checks in some common
cases.
* The --no-store-checks optimization option was added. This can be used to
omit runtime store checks for code which is known not to throw
ArrayStoreException
* The following third party interface standards were added to libgcj:
org.w3c.dom and org.xml.sax.
* java.security has been merged with GNU Classpath. The new package is now
JDK 1.2 compliant, and much more complete.
* A bytecode verifier was added to the libgcj interpreter.
* java.lang.Character was rewritten to comply with the Unicode 3.0 standard,
and improve performance.
* Partial support for many more locales was added to libgcj.
* Socket timeouts have been implemented.
* libgcj has been merged into a single shared library. There are no longer
separate shared libraries for the garbage collector and zlib.
* Several performance improvements were made to gcj and libgcj:
o Hash synchronization (thin locks)
o A special allocation path for finalizer-free objects
o Thread-local allocation
o Parallel GC, and other GC tweaks
*** Changes in GCC 3.0:
* libgcj now includes a bytecode interpreter. If a compiled version of a class
is not found in the application binary or linked shared libraries, the
class loader will search for a bytecode version in the CLASSPATH and execute
it using the interpreter. A new front end that behaves like the traditional
`java' command is also provided: `gij'.
* Support for specifying java system properties. Properties can either be set
at runtime via the GCJ_PROPERTIES environment variable in the format
"<name>=<value> ..."'; or can be compiled into an application binary using
-D<name>=<value>.
* Support for setjmp/longjmp (sjlj) exception handling has been added, as an
alternative to the existing range-table based mechanism. sjlj is the default
on non-sparc, non-x86 targets, or can be specified with the
`--enable-sjlj-exceptions' configure parameter.
* Complete JDK 1.1 reflection support, including invocation.
* Throwable.printStackTrace() has been implemented.
* Runtime.loadLibrary() has been implemented.
* Class.forName() will now try to load a series of shared objects in order
to find the requested class. If a class `gnu.quux.whatever' is requested,
libgcj will search the system shared library path (eg LD_LIBRARY_PATH) for
`gnu-quux-whatever.so', then `gnu-quux.so', and finally `gnu.so'.
* A pure-java implementation of java.math.BigInteger.
New in libgcj 2.95:
* First public release