aboutsummaryrefslogtreecommitdiff
path: root/libjava/NEWS
blob: 8c9b3b745d18ebdd59e7f0f6e994d288d79aa5c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
*** 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