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