New in libgcj X.XX:

* 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