[go: up one dir, main page]

File: NEWS

package info (click to toggle)
sablevm 1.11.3-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 6,980 kB
  • ctags: 7,922
  • sloc: ansic: 116,013; sh: 8,679; makefile: 489
file content (404 lines) | stat: -rw-r--r-- 12,978 bytes parent folder | download
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
SableVM release news.

* Version 1.11
==============

- Fixed many important bugs of version 1.1.10.
- Imported GNU Classpath CVS snapshot as of March 12, 2005.
- Added debugging traces on assertion failures in stop/resume java
  transitions, and fixed revealed bugs.
- Added assertions to check that the env pointer is valid in JNI
  calls.
- Implemented non-blocking locking, and used it to solve a hashcode
  bug.
- Solved many subtle bugs resulting in incompletely initialized
  threads and stack corruption.
- Cleaned up suspend/resume code.
- Fixed various other minor bugs.
- Added javac-sablevm wrapper for jikes and javac in java home dirs.
- Added creation of rt.jar symlink to libclasspath.jar.
- Transformed the staging development branch into the development
  trunk, and used new release numbering scheme.


* Version 1.1.10
================

- Imported the code of GNU Classpath 0.14.
- Implemented most of the missing JNI 1.2 functions.
- Implemented the new JNI 1.4 nio related functions.
- Added svnclean target to makefile.
- Added the m4svm_parse_attribute_elseifexternal macro to handle
  attributes with full package prefixes.
- Fixed the java-sablevm wrapper to better handle LD_LIBRARY_PATH,
  -Djava.library.path and CLASSPATH setting.
- Disabled the timezone setting in java-sablevm wrapper - classpath
  should now do it on its own.
- Fixed Object.wait() when timeout is specified.  This fixes Ant pauses.
- Changed _svmm_fatal_error() to actually print the function name,
  when possible.
- Added thread IDs to verbose instruction output
- Implemented Java_java_lang_VMRuntime_[free|total|max]Memory().
- Implemented basic JDK home support.
- Fixed various bugs.


* Version 1.1.9
===============

- Added the necessary support to run both Eclipse 2 and Eclipse 3
  without using external libraries.  Instructions are available
  at http://sablevm.org/wiki/Eclipse .
- Merged code from GNU Classpath 0.13 release.
- Improved error messages related to exceptions at bootstrap (ie.
  binding to non-existant native methods).
- Implemented some missing JNI functions.
- Added some missing system-dependant Java properties.
- Enabled "real life brokenness" option by default to better handle
  native code not adhering to the Java specs.
- Improved cross-compiliation support. 
- Updated manual pages.


* Version 1.1.8
===============

- Added the necessary support to run both Eclipse 2 and Eclipse 3
  (using the xerces and xalan libraries).  Instructions are available
  at http://sablevm.org/wiki/Eclipse .
- Added -Xgnuclasspath:/dir/ectory option to java-sablevm
  wrapper. This allows for running SableVM with an unmodified GNU
  Classpath out-of-the-box using an override .jar provided daily at
  http://sablevm.org/download/snapshot/ .
- Imported a new GNU Classpath CVS snapshot as of December 28, 2004.
- Implemented some missing JNI functions needed by qt/java.
- Set BOOTCLASSPATH in java-sablevm to help jikes find our libs.
- Wrapped the exception thrown by a constructor or a method invoked
  through reflection in an InvocationTargetException instance.
- Added ProtectionDomain handling for classes loaded via
  j.l.ClassLoader.
- Started to use URLClassLoader instead of gnu.j.l.SystemClassLoader,
  which apparently was used by us exclusively.
- Added sablevm.verbose.exit bootstrap property to dump stack trace on
  System.exit().
- Added sablevm.verbose.exceptions bootstrap property to dump stack
  trace on every thrown exception.
- Enabled GCC unused and long-long warnings, then fixed tons of
  warnings.
- Implemented [Get|Release]PrimitiveArrayCritical.
- Solved a class loading related deadlock.
- Fixed a VMThread.sleep bug.
- Passed the class name as a parameter to LinkageError and
  ClassCircularityError in java.lang.ClassLoader.
- Added function name as message to UnsatisfiedLinkError for missing
  native functions.
- Implemented various other improvements.
- Fixed various other bugs.


* Version 1.1.7
===============

- Imported new GNU Classpath CVS snapshot as of Sun Oct 10 18:00:00
  UTC 2004.
- Added handling of Jar/Zip files on boot classpath (closes BUG:2).
- Provided user-friendly failure messages for bootstrap problems.  This
  should get rid of the hated "sablevm: cannot create vm".
- Allowed for multiple elements and prepending/appending to boot class
  path.
- Added --with-profiling switch to make most functions non-"static".
- Made sablevm-classpath install its files in more standard locations.
- Explicitely disallowed compilation of classpath with gcj or kjc (it
  never worked reliably).
- Made jikes and gcc be less verbose by default (to avoid confusion).
- Removed some obsolete code from various places.
- Added new Generational Garbage Collector ("experimental", available on
  request, by passing --with-gc=gencopy to configure).
- Made several bugfixes of:
  - JNI methods not returning NULL on errors (closes BUG:12).
  - IsInstanceOf always returning JNI_FALSE (closes BUG:63).
  - A copy&paste mistake in PopLocalFrame (closes BUG:62).
  - Several JNI methods not returning NULL on errors (closes BUG:12).
  - IsInstanceOf always returning JNI_FALSE (closes BUG:63).
  - "New array" memory allocation size overflow (closes BUG:8).
  - Out-of-source builds (closes BUG:55).
  - Handling of 'double' values on ARM.
  - FPU in 64-bit precision mode on Linux / Intel x86 (closes BUG:1).
  - F2L, F2I, D2L, D2I not checking for overflows (closes BUG:54).
  - SIGPIPE killing the VM (closes BUG:51).
  - GNU make detection on non-GNU/Linux platforms.
  - Case-insensitive grepping for "Main-Class:" string in MANIFEST.MF.


* Version 1.1.6
===============

- Synchronized sablevm-classpath with the latest GNU Classpath CVS
  (post 0.10 release) as of July 10, 2004.

- Improved AWT and Swing support.

- Added additional checks to autogen.sh for FreeBSD.

- Added new DecoderUS_ASCII, Spring and SpringLayout classes.

- Added a sablevm.verbose.synchronization (DEBUG) option to help
  debugging deadlocks.

- Improved TimeZone handling.

- Added detection of non-GNU-compatible "make" to issue warnings and
  errors appropriately.

- Added useful additional information in stack dumps.

- Added new documentation.

- Fixed various bugs.


* Version 1.1.5
===============

- Synchronized sablevm-classpath with the latest GNU Classpath CVS
  as of May 29, 2004.

- Improved the support for Ant 1.6.

- Switched to libtool handling to find the right library suffixes.
  This helps some platforms like OpenBSD and Cygwin.

- Fixed a corner case problem with class loading.

- Made some other small bug fixes.


* Version 1.1.4
===============

- Updated sablevm-classpath with the recent GNU Classpath 0.09 release
  and later GNU Classpath CVS changes as of May 4, 2004.

- Improved support for AWT and Swing.

- Eliminated the dependency lt_dlopen(NULL) which seem broken on some
  platforms such as Cygwin and some *BSD.

- Switched to new, complete implementation of VMProcess/Process from
  GNU Classpath instead of using our own previous partial
  implementation.

- Added x86_64 (AMD64) support to the already supported 8 other
  architectures of Debian GNU/Linux (alpha, hppa, i386, ia64, m68k,
  powerpc, s390, sparc).  The support for the remaining mips and
  mipsel architectures of Debian is apparently implemented but it has
  not yet been confirmed.

- Improved autodetection of build parameters on non-GNU/Linux systems.
  This includes selection of dynamic libraries, availability of m4
  preprocessor and auto-disabling "signals for exceptions" on
  platforms that don't seem to support signals.

- Made sure that the m4 preprocessor will not be needed to build from
  sablevm-*.tar.gz distribution files.  m4 is only required to build
  directly from a snapshot of the Subversion repository.

- Updated and improved manual pages.

- Made some other little improvements and applied a few bug fixes.


* Version 1.1.3
===============

- Cleaned up build process so that "./configure ; make ; make install"
  works out of the box for both sablevm-classpath (as it does for
  sablevm).


* Version 1.1.2
===============

- Uses GNU Classpath 0.08+CVS.

- Various minor bugfixes and enhancements.


* Version 1.1.1
===============

- Works now with GNU Classpath 0.08.

- Implemented Thread.interrupt() and related methods.

- Other small bugfixes and improvements.


* Version 1.1.0
===============

- SableVM now uses a much newer version of GNU Classpath.

- many bug fixes, and feature enhancements (such as semi-automatic
  inlinability customization).


* Version 1.0.9
===============

- Port to various Debian architectures.

- Port to Mac OS X.

- Bug fixes.


* Version 1.0.8
===============

- Bug fixes.


* Version 1.0.7
===============

- Port inline-threaded engine to ia64 and alpha.

- Get SableVM to execute classes compiled using Jikes 1.18.

- Minor bug fixes.


* Version 1.0.6
===============

- Port to PowerPC

- Add more reflection hooks.


* Version 1.0.5
===============

- Port to ia64.

- Minor bug fixes.


* Version 1.0.4
===============

- Work around the libffi header bug by defining new configure macros.

- Implement _svmf_iflush() for processors with distinct data and
  instruction caches.

- Minor bug fixes.


* Version 1.0.3
===============

- Fixed configure.ac to select an inline-threaded interpreter engine
  by default on i*86.  The 1.0.2 version was erroneously defaulting to
  a slower direct-threaded engine.

- Collect some additional interesting statistics (when STATISTICS is
  defined in configure.ac, of course).


* Version 1.0.2
===============

- SableVM is ported to the Alpha 64 bits architecture, thanks to the
  effort of Grzegorz Prokopski <gadek@debian.org>.  It took him 24
  hours, and the "diff" size was 25 lines. :-)  What port is next?

- Some of the few holes left in JNI and in reflection native code have
  been filled.


* Version 1.0.1
===============

- SableVM now waits until all non-daemon threads are died before
  quitting.

- SableVM is now known to run all SPECjvm98 benchmarks, SableCC
  2.17.3, and Soot 1.2.3.

- Convenient build scripts have been added.


* Version 1.0.0
===============

- Threaded interpreter engine in three flavors:
  - inline threaded (Requires GNU C)
  - direct threaded (Requires GNU C)
  - switch threaded (pure ISO C + POSIX)

- Two-word object header. ("java.lang.Object" instances are 2 words
  long, including the hashcode, the lock, the vtable, and additional
  bits).

- Two flavors of object layout: bidirectional and traditional.

- The bidirectional object layout allows for tracing an object, at GC
  time, without accessing any data outside the object (vtable, type
  structure), in most cases.  Best effort has been made in the
  traditional layout to minimize external access.

- Precise stop-the-world copying garbage collector. Heap parameters
  are specifiable on the command-line (properties).

- Stop-the-world uses regular non-atomic check operations (except around
  native calls).  Threads running native code are considered "stopped"
  from the VM's point of view.

- Minimization of regular checks by only applying them on back jumps
  to basic blocks that do not include operations like "new", and
  "invoke*", which already contain a check.

- Efficient locals map data-flow analysis which works in presence of
  arbitrarily complex jsr / exception mix.

- Space efficient stack and local GC maps.

- Constant time access to the current stack and local GC map for every
  frame on the Java stack.

- Grow-on-need Java stack size, with command-line (properties)
  specifiable parameters.

- Grow-on-need class-loader memory management, with command-line
  (properties) specifiable parameters.

- "invokeinterface" at the speed of "invokevirtual", using sparse
  interface vtables without memory loss. Holes in the vtables are
  recycled on a class-loader basis for storing other data.

- Thin locks without spin-locking in case of contention.

- A choice of explicit or signal based null checks. Signal based
  checks cost 0 processor cycles on success, but can be expensive in
  case of exceptions. Also, signal based check increase the cost of
  native->Java method invocation (the cost of a "siglongjmp").

- Java based "application class loader" (or system class loader),
  which allows for putting .jar files on the classpath.

- Support for Runtime.traceInstructions/traceMethodCalls in the
  debugging version of the interpreter.

- Easily readable/debuggable code, using explicitly generated
  commented source files for repetitive code.  This is done using a
  set of simple-to-use m4 macros that can be conveniently hidden in C
  code (allowing automatic tools like "indent" to work). No need to
  understand m4 for reading the VM's source code (except if you want
  to look at .m4[.*] files, which is not necessary).

- Licensed under the terms of the GNU Lesser General Public License
  (LGPL).

- And more, for your pleasure!