* configure.ac: New switch for disabling -O2 (--disable-optimizations).
[cacao.git] / NEWS
1 New in release 1.1pre (not yet released)
2
3   * Large parts rewritten in C++.
4   * No more cacaoh, simplifying cross-compilation.
5   * Works with icedtea-1.10 and newer (PR128, PR129, PR139).
6   * --enable-handles switch for making native code ready for moving GC.
7   * park/unpark support.
8   * Simplified signal handling -- much less code duplication.
9   * Stack unwinding rewritten in C -- much less assembler code.
10   * OpenSolaris support.
11   * Experimental python mode for easier inspection of internal compiler
12     structures.
13   * Fixed various array-related bugs, including PR116, PR119.
14   * Fixed PR120 (races in thread code).
15   * Fixed code generation bugs on Alpha, ARM, MIPS and PPC64.
16   * Various other improvements and fixes.
17
18 New in release 0.99.4 (March 16, 2009)
19
20   * New subtype checking code fixes unexpected class cast exceptions
21     and no longer needs critical sections in JIT code.
22   * Fixed race condition in patcher subsystem which caused illegal
23     instructions and segmentation faults (PR85).
24   * Fixed PR112, PR116, PR118, PR122.
25
26 New in release 0.99.3 (August 12, 2008)
27
28   * Fixed PR93 (Process.destroy() now works correctly).
29   * Yield threads when sleeping time is zero.
30   * Implemented sun.misc.Unsafe.putFloat(JF)V
31
32 New in release 0.99.2 (July 8, 2008)
33
34   * Rewrite of atomic instructions code. This fixes problems with
35     AWT/Swing programs with OpenJDK.
36   * Fixed PR83, PR89.
37
38 New in release 0.99.1 (June 17, 2008)
39
40   * Fixed compilation of OpenJDK code (libltdl related).
41   * Imported new gnu/java/lang/CPStringBuilder.java to fix OOMEs.
42   * Fixed abort with OpenJDK's java binary when exiting.
43
44 New in release 0.99 (June 14, 2008)
45
46   * Initial support to use OpenJDK as Java core library.
47   * Fixed memory leak in Boehm-GC.
48   * Boehm-GC updated to version 7.1.
49   * Removed libltdl dependency.
50   * Renamed --with-classpath configure options to
51     --with-java-runtime-library.
52   * Renamed --with-jre-layout to --enable-layout.
53   * Replaced --with-classpath-includedir with --with-jni_h and
54     --with-jni_md_h to better support OpenJDK/IcedTea builds.
55   * Use 8-byte stack-slots on all architectures.
56   * Faster C-to-Java calls.
57   * Removed genoffsets, cross-compilation is now much easier.
58   * Implemented Class.isAnonymousClass(), isLocalClass() and
59     isMemberClass() for GNU Classpath.
60   * Annotation support.
61   * Assertion support.
62   * Linenumber table code rewritten.
63   * Exception table code rewritten.
64
65
66 New in release 0.98 (June 6, 2007)
67
68   * ARM and MIPS32 code generators are now open-source.
69   * PowerPC64 code generator was added.
70   * Sun's phoneme CLDC-1.1 classes can now be used as Java core
71     library.
72   * Exception throwing code was completely rewritten, this saves JIT
73     code size from 20% up to 50%.
74   * Lock-record code was rewritten and a memory leak was fixed.
75   * Threads code has been reworked and improved.
76   * Exception code has been reworked and improved.
77   * Implemented Class/Method/Field getSignature.
78   * A lot of stuff has been reworked, fixed or improved in the whole
79     VM code.
80   * Fixed memory leak in threads code.
81
82
83 New in release 0.97 (October 30, 2006)
84
85   * New instruction format.
86   * New intermediate representation with unified variables.
87   * Local subroutine elimination.
88   * Fixed the interpreter - it runs eclipse now.
89   * New stack-based verifier (used for -Xint).
90   * Boehm GC updated to version 6.8.
91   * Added enable/disable system assertion support (-esa/-dsa).
92   * Initial javax.management support.
93   * Initial sun.misc.Unsafe (JSR166) support.
94   * Added failed class as message to ClassCastException's.
95   * AttachCurrentThread, DetachCurrentThread, and
96     AttachCurrentThreadAsDaemon implemented.
97   * libjvm is now opened via dlopen (removed -rpath stuff).
98   * Data segment now reuses values (if possible).
99
100   * Fixed AbstractMethodError bug.
101   * Fixed builtin_isanysubclass (BeanShell bug).
102   * Fixed a memory leak in dump memory.
103   * Fixed a bug with DUP2_X1 and DUP2_X2.
104   * Safe decoding of invalid UTF-8 sequences in NewStringUTF.
105   * Fixed line numbers in exceptions thrown through the JIT.
106   * Proper null-check for MONITOREXIT.
107   * Many low-level jasmin tests added.
108
109
110 New in release 0.96 (May 29, 2006)
111
112   * New tasuki lock implementation resolves deadlock problems on
113     multi-processor machines.
114   * Handle Miranda-methods properly.
115   * try-catch line number problem with jikes fixed.
116   * Added support for libjvm.so (including invocation API).
117   * Stripped down object code size of code generators.
118   * Increased default maximum heap size to 128MB and decreased default
119     stack size to 64kB.
120   * Cleaned up internal handling of Unicode strings.
121   * Fixed getResources of bootstrap classloader.
122   * Correct handling of boot packages (provided glibj.zip contains a
123     jar index).
124   * Exception handling fixes (don't allocate memory on Java heap).
125   * x86_64's code generator generates not RISC-style code.
126   * Green threads implementation removed.
127   * Semaphore implementation for Darwin (taken from Boehm).
128   * sem_wait interrupted by signal fixed.
129   * Overflow in Object.wait() (partially) fixed (caused busy waiting
130     in JOnAS).
131   * Store JNI global refs in native hashtable instead of Java
132     hashtable (bootstrap problem).
133   * Argument passing fixed for powerpc-linux (asm_vm_call_method).
134
135
136 New in release 0.95 (February 13, 2006)
137
138   * Dead-lock bugfix.  This should fix the random dead-locks seen in
139     Eclipse or other applications.
140   * Search for suitable jar program during configure, can be specified
141     via JAR environment variable
142   * --enable-zlib bugfix
143   * i386 bugfix: Set FPU to 64-bit on VM startup (fixes Debian bug
144     #350729)
145   * powerpc bugfix: (M_COPY): Handle longs and doubles properly.
146   * Fixed instructions copying stackslots (like DUP_X1).
147   * Fixed classcache-related problem with java.lang.reflect.Proxy.
148   * Throw correct exception when trying to load a directory
149     as a classfile (from a .zip file).
150   * Fixed incorrect method resolution when calling instance methods 
151     through JNI (fixes CACAO bugs #17 and #18).
152
153
154 New in release 0.94 (January 22, 2006)
155
156   * support compilation of Interpreter and JIT compiler into one binary (not
157     enabled by default)
158   * bootstrap ZIP code rewrite (VM startup time improvement)
159   * fixed JNI DirectByteBuffer functions, jogl works now
160   * removed most third-party files from the repository, we link to the
161     libraries instead
162   * removed VM interface Java files which were identical to the GNU
163     Classpath upstream version
164   * added defineClassWithTransformers to java.lang.VMClassLoader, now we are
165     able to build against the generics branch
166   * Java compiler which should be used during compilation can be specified
167     via JAVAC environment variable
168   * a lot of bugfixes
169
170
171 New in release 0.93 (November 23, 2005)
172
173   * Java 1.5 support
174   * JIT codegenerators for Arm and MIPS (32-bit, -o32), currently
175     closed-source
176   * integration of a vmgen-based interpreter (--enable-intrp)
177   * removal of GNU classpath, CACAO now uses upstream releases or CVS
178     head versions
179   * finalizer thread
180   * JNI local references implemented
181   * reflection fixes and access checks (mauve tests)
182   * linear scan register allocator (-lsra)
183   * lazy resolving fixes
184   * fixed instanceof instruction
185   * updated to Boehm GC 6.6
186
187
188 New in release 0.92 "Tomclipse" (July 14, 2005)
189
190   * runtime lazy-loading with code patching
191   * dynamic library loading on every platform we support (using
192     libltdl)
193   * new ICMDs (PUTSTATICCONST, PUTFIELDCONST)
194   * some ICMDs inlined (IDIV/IREM, LDIV/LREM, AASTORE, ARRAYCHECKCAST)
195   * register allocator uses unused argument registers
196   * stacktraces on MIPS, PowerPC and x86_64
197   * integration of GNU classpath's system class loader
198   * internal class loading code more Java VM Spec compliant
199     (classcache, loading constraints, ...)
200   * virtual function table bugfix (abstract class implements not all
201     interface methods)
202   * initial support for thread dump on SIGQUIT (<ctrl>-\) on most
203     platforms
204   * GNU classpath 0.16
205   * Boehm GC 6.5
206
207
208 New in release 0.91 (December 23, 2004)
209
210   * bug fixed in MULTIANEWARRAY
211   * field access related bug fixes
212   * native function call bug fixes
213   * smaller fixes...
214
215
216 New in release 0.90 (December 8, 2004)
217
218   * More architectures supported: At the moment, CACAO is able to run on
219     Alpha, MIPS (64-bit), x86, x86-64 and PowerPC (32-bit) architectures.
220   * Native thread support
221   * Java 1.4 support
222   * GNU classpath 0.12
223   * Preliminary AWT support
224   * Boehm garbage collector
225   * Reentrant JIT compiler
226   * Lots of bug fixes and conformance enhancements
227   * Lots of bugs introduced and not fixed
228
229
230 * Version 0.40 (released)
231 =========================
232
233 ** Boehm garbage collector supported
234 ------------------------------------
235
236 The --enable-gc2 options was replaced by --with-gc. Choose boehm for the
237 Boehm garbage collector. Also see README.boehm.
238
239 ** mips port
240 ------------
241
242 Now runs on some SGI systems, which are based on the mips architecture.
243
244 ** multiple bug fixes
245 ---------------------
246
247 Even more java programs work as expected!
248
249
250 * Version 0.35 (experimental)
251 =============================
252
253 ** autoconf, automake support
254 -----------------------------
255
256 Finally moved the entire distribution to autoconf/automake. This should fix
257 some of our problems with supporting different compilers. Thread support and
258 the use of the new garbage collector can be enabled/disabled from using
259 configure arguments:
260
261         --enable-threads [default]
262         --disable-threads
263
264         --enable-gc2 [default]
265         --disable-gc2
266
267 ** new garbage collector
268 ------------------------
269
270 Included the new garbage collector as default garbage collector. 
271
272 * Version 0.30 (released)
273 =========================
274
275 Added unlimited stack for GC and main thread. 
276 Some optimzations for instructions which operate on constants. 
277
278 * Version 0.20 (released)
279 =========================
280
281 Hardware null pointer check added, fixed severe errors in GC/Threads, type
282 check and IEEE arithmetic.
283
284 * Version 0.20beta (can't remember)
285 =========================
286
287 There is a completely new JIT compiler which is about 7 times faster and
288 produces better code. 
289 Multithreading is now supported. 
290 A lot of bugs have been fixed.
291
292 * Version 0.10 (ancient history)
293 ==============
294
295 The initial version included the old JIT and support for lang, util and io.