-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS.txt
2099 lines (1732 loc) · 102 KB
/
NEWS.txt
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
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-*-outline-*-
Jikes RVM NEWS -- History of significant changes
This file contains the release notes since Jikes RVM 2.0.0, released
on October 14, 2001,
* Jikes RVM 3.1.4 (February 18, 2016)
Release Notes - JikesRVM - Version 3.1.4
** New Feature
* [RVM-95] - Switch to building Classpath with javac (stop download of ecj?)
* [RVM-122] - restructure sys.C into multiple source files.
* [RVM-153] - Make org.mmtk.utility.heap.PageResource#ZERO_ON_RELEASE configurable and set to true in stress test-run
* [RVM-1110] - Visualization of opt compiler CFGs using dot output format
** Improvement
* [RVM-134] - Make register operand register and type fields private
* [RVM-174] - Reduce/remove use of ArchitectureSpecific
* [RVM-262] - Improving typing of PPC Assembler registers
* [RVM-268] - Update JikesRVM copies of classes (e.g. Constructor) to match the 1.5/current Classpath API
* [RVM-463] - Replace calls to StringBuffer with CPStringBuilder where appropriate
* [RVM-584] - Automate calculation of compilerDNA from compiler-dna test run Report.xml
* [RVM-773] - Upgrade to Classpath 0.99
* [RVM-829] - Assertions on invalid 8bit assembler operations
* [RVM-999] - Increase robustness of RVMThread.dumpStack
* [RVM-1013] - MMTk Harness Improvements Jan 2013
* [RVM-1033] - Compiler-DNA test run based on freely available benchmark
* [RVM-1048] - Upgrade to ECJ 4.2.2
* [RVM-1057] - Automatic checking of assertion coding style
* [RVM-1059] - Test for org.jikesrvm.tools.oth.OptTestHarness
* [RVM-1079] - Convert non-ArchitectureSpecific constant interfaces to constant classes
* [RVM-1081] - Convert remaining constant interfaces to constant classes
* [RVM-1083] - Remove scratch fields from the optimizing compiler IR
* [RVM-1087] - Move static nested classes out of LinearScan
* [RVM-1088] - Remove outdated and broken PPC-specific instruction scheduler
* [RVM-1090] - Improve documentation of register allocator data structures with respect to contracts of equals(), hashCode() and compareTo()
* [RVM-1097] - Parameterize HeapLayoutConstants to be in sync with address changes in .properties files
* [RVM-1115] - [change from MRP] Refactor build system to improve support for building C code on other platforms
* [RVM-1133] - Automatic checking of imports in architecture packages
** Bug
* [RVM-629] - Incorrect usage of @Untraced?
* [RVM-692] - Classpath Thread operations not supported because VMThreadMXBeanImpl is not implemented
* [RVM-781] - GNU Classpath 0.98 causes performance regression in luindex
* [RVM-837] - ExtremeAssertions builds fail on ppc using IBM Java6 SR4 and SR5
* [RVM-853] - Protocol handlers do not work with Jikes RVM
* [RVM-857] - Changes to Strings made via JNI do not propagate back
* [RVM-867] - Incomplete comment for alignAllocation in Allocator.java
* [RVM-868] - Method resolution code unable to resolve methods in some cases
* [RVM-873] - "NullPointerException within uninterruptible region" when executing RVM in x86_64 debian
* [RVM-875] - Intermittent ClassFormatError whilst running Xalan
* [RVM-876] - Unnecessary CAS with multiple collector threads attempting to forward
* [RVM-942] - GNU Classpath does not build on x86-64_linux under Debian Squeeze anymore
* [RVM-953] - Immix fails with unclear error message in builds without assertions when hardcoded thread limit is exceeded
* [RVM-957] - Optimizing compiler (at O1+) produces incorrect code for scalac benchmark due to bug in SImpleEscape
* [RVM-959] - Incorrect rvm.lib library name on OS X
* [RVM-966] - VM death due to OutOfMemoryError does not always return non-zero exit status
* [RVM-988] - AddressInputStream does not follow API specification
* [RVM-1002] - Parameters for "deliverHardwareException" are not pushed in right way
* [RVM-1016] - PowerPC optimizing compiler generates wrong code for the PPC_ORC and PPC_ORCr operators
* [RVM-1018] - Code patching caused by classloading can cause deadlock on PPC in dacapo 2006-MR-2 eclipse
* [RVM-1020] - Wrong path in GCSpy component build file
* [RVM-1022] - MMTk signals out of memory after a successful emergency collection
* [RVM-1025] - Nursery is created for non-generational garbage collectors
* [RVM-1026] - Address conflict caused by overlapping of normal spaces with nursery
* [RVM-1027] - Crash when bootimage runner uses longjmp
* [RVM-1028] - VMProcess should use notfiyAll() instead of notify()
* [RVM-1031] - Assertion failure in GenNurseryTraceLocal.isLive when finalizing objects marked with @NonMoving
* [RVM-1035] - Test-runs must use extra.rvm.args instead of extra.args in almost all cases
* [RVM-1036] - Optimizing compiler never inserts checkstore checks in inlined code
* [RVM-1040] - Add an Ant target to run unit tests on an existing RVM image
* [RVM-1050] - Memory.memcopy(Address, Address, Extent) can corrupt memory when memory areas overlap
* [RVM-1053] - GenerationContext.resync() deletes all null check guards
* [RVM-1066] - Parsing of -Xbootclasspath command line arguments leads to different results for different argument positions
* [RVM-1067] - Overly eager clearing of Soft references
* [RVM-1075] - Undefined behaviour during thread termination in sysThreadStartup
* [RVM-1076] - Miscompilation of write barriers for unboxed types on PPC64 causes ExtremeAssertionsBaseBaseUsePrimitiveWriteBarriers to segfault during RVMThread.boot()
* [RVM-1078] - SplitBasicBlock does not correctly count instructions when splitting basic blocks
* [RVM-1080] - Fixes for invalid operations on unboxed types
* [RVM-1082] - Assertion failure in org.jikesrvm.mm.mmtk.Lock on PPC64
* [RVM-1086] - Memory leak during thread creation in bootimage runner
* [RVM-1106] - Assertion failure in AssemblerOpt when emitting CMPXCHG8B
* [RVM-1108] - Correct implementation of full memory fences in the compilers
* [RVM-1109] - Jikes RVM doesn't update TIBs of array classes for recompiled java.lang.Object methods
* [RVM-1116] - [bugfix from MRP] JNI compiler fails to pass > 1 FP arg if not using SSE2
* [RVM-1120] - Assertion failures in IA32 assembler during baseline compilation when running Jython on x64
* [RVM-1124] - IR for Magic generated by the optimizing compiler can be non-canonical
* [RVM-1127] - bootloader build fails under OSX
* [RVM-1128] - User Guide - Quick Start Guide needs updating
** Task
* [RVM-888] - Process MMTk patch subbmitted via SF tracker
* [RVM-1107] - Remove support for AIX from the code base
* [RVM-1111] - Remove support for Mac OS on PowerPC
* [RVM-1130] - Add -X:verboseSignalHandling command line option to mimic behaviour of -X:verbose before the bootloader changes
** Sub-task
* [RVM-126] - Implement VM interfaces of the simplest beans (Runtime, ClassLoading, Compilation)
* [RVM-750] - Implement Thread.setPriority
* [RVM-1043] - Apply compatibility changes from MRP and Da Feng in preparation for x64 support
* [RVM-1104] - Enable WhitespaceAround Checkstyle check and fix revealed failures
** Test
* [RVM-1041] - Unit test for org.jikesrvm.compilers.opt.bc2ir.GenerationContext
* [RVM-1072] - Unit test for org.jikesrvm.compilers.opt.bc2ir.OperandStack
* [RVM-1077] - Unit test for org.jikesrvm.compilers.opt.regalloc.ScratchMap
* [RVM-1098] - Add test that uses the benchmarking suite from the Scala Benchmarking Project
* Jikes RVM 3.1.3 (February 12, 2013)
** Improvement
* [RVM-962] - Initial pass over the source code to remove duplicated comments
* [RVM-965] - Consolidate EmptyIterator implementations
* [RVM-970] - This patch creates an environment to perform unit-tests both in the boostrap VM and Jikes RVM. Added a working example (ExampleTest).
* [RVM-973] - Initial pass over the source code for cosmetic comment changes
* [RVM-974] - Cleanup assertions in the RVM (add missing VM.VerifyAssertions, use VM.NOT_REACHED instead of false)
* [RVM-975] - Updated JUnit to 4.10
* [RVM-976] - Remove *Enumeration classes that were made useless by generics
* [RVM-980] - Custom Test Runner to Distinguish Testing VM
* [RVM-981] - Added Mockito to components
* [RVM-984] - Don't run unit tests on the built RVM image by default
* [RVM-1012] - Add memory barriers to implement JMM volatile semantics in PPC baseline compiler
* [RVM-1014] - Move static nested classes out of BC2IR
** Bug
* [RVM-916] - Rule missing in set_caught_exception (BURS)
* [RVM-954] - @Target of @Pragma meta-annotation incorrect
* [RVM-963] - Pettis-Hansen code reordering causes boot image compilation to be non-deterministic
* [RVM-967] - Sticky Immix incorrectly tries to forward mature objects
* [RVM-969] - "Comparison method violates its general contract" when building on OpenJDK 7
* [RVM-972] - .hgignore ignores build//components/
* [RVM-978] - parallel sweep wrong
* [RVM-987] - Add a null check for the thread object to sun.misc.Unsafe.park(...)
* [RVM-990] - Assertion failures in RCHeader makeUnlogged() when running unit tests on BaseBaseGenRC
* [RVM-1000] - Strings from IcedTea 1.7 don't have count and offset fields
* [RVM-1003] - fop (DaCapo 9.12) fails with NPE for input size small
* [RVM-1004] - NPE while opt-compiling LogManager.checkAccess during bootimage writing
** Test
* [RVM-971] - Unit Tests for org.jikesrvm.util
* [RVM-982] - Added JUnit Test and fix for org.jikesrvm.compilers/opt/util/Stack.java
* [RVM-983] - Added JUnit Test for org/jikesrvm/compilers/opt/util/Tree.java and fixes for the bugs found
* [RVM-992] - Add remaining unit tests from the Google Summer of Code unit testing project
* Jikes RVM 3.1.2 (February 24, 2012)
Please note, Jikes RVM now requires the host JVM to be Java 6 or better.
The system will no longer build using a Java 5 JVM as the host.
** Improvement
* [RVM-300] - Only download checkstyle when needed
* [RVM-903] - Update to latest JSR-166
* [RVM-922] - Remove the build warnings concerning includeantruntime that since in Ant 1.8
* [RVM-944] - compiler warnings while building bootImageRunner
** Bug
* [RVM-364] - ant real-clean doesn't clean up fully
* [RVM-675] - Chunk linked list broken on discontiguous space
* [RVM-813] - Incomplete dependencies on .dat files when determining whether or not to regenerate sources
* [RVM-825] - Replay compilation does not account for custom class loaders
* [RVM-870] - Deadlock in RVMThread code
* [RVM-897] - Default setting for numprocessors is 1. Probably should be all.
* [RVM-899] - Deadlock when using ExecutorService with Futures
* [RVM-900] - aligned32Copy can copy 8 bytes when number of bytes to copy is 0
* [RVM-905] - respect volatile store semantics
* [RVM-906] - GCspy version out of date in gcspy.xml
* [RVM-908] - URL changes of dependencies cause build with Apache Harmony to fail
* [RVM-910] - Download URL for JUnit changed
* [RVM-911] - Missing rule for int_ifcmp module BURS
* [RVM-914] - ObjectInputStream Deserialization does not handle Enum types correctly.
* [RVM-915] - isAnonymousClass check in RVMClass is incorrect
* [RVM-917] - A url for checkstyle 4.3 does not exist.
* [RVM-927] - VMChannel.write will return wrong number of bytes written when writing one byte from a ByteBuffer
* [RVM-931] - "malloc returned something that is in RVM address space" on Mac OS X Lion
* [RVM-932] - Documentation refers to subversion rather than mercurial
* [RVM-934] - Process @SysCallTemplate with Java 6 Annotations API instead of APT
* [RVM-936] - Jikes RVM fails to build on Ubuntu 11.10 with undefined references in sys.c
* [RVM-938] - -X:cpuAffinity not found in SystemAppCL
* [RVM-943] - MMTk HeapGrowthManager heap growth ratio computation has discontinuities
* [RVM-945] - incorrect compiler ID passed to notifyMethodCompile callback
* [RVM-948] - start-time and end-time almost same in generated test reports.
* [RVM-949] - Sticky MS performance compared to MS
* [RVM-951] - Bulk copy optimization & compare and swap incorporation for Sticky MS & Sticky Immix
** Sub-task
* [RVM-785] - handleHandshakeRequest should be called from enterNativeBlockedImpl
* Jikes RVM 3.1.1 (July 4, 2010)
** New Feature
* [RVM-839] - Support for Reference Types in the MMTk Harness
* [RVM-841] - Make it possible to query the compiler to direct optimization
* [RVM-845] - Primitive write barrier support
** Improvement
* [RVM-846] - MMTk Harness: Provide command-line option for watching addresses
* [RVM-848] - Update bootimage writter with known static fields for Harmony classlib
* [RVM-861] - Refactor bulkCopy optimisations for RVMArray arraycopy's
** Bug
* [RVM-184] - MarkCompactLocal.compact():80 assertion failure
* [RVM-604] - Require two different host JVMs to successfully build on Linux/PowerPC
* [RVM-639] - Spec JVM 98 javac failing with Harmony
* [RVM-693] - Regression in TestSerialization with Harmony
* [RVM-827] - Crash in GC while running Eclipse IDE
* [RVM-831] - Incomplete implementation of GetFieldID and GetStaticFieldID
* [RVM-832] - Mature space mutator allocator reset before semi-space flip
* [RVM-833] - GC failures with ia32 BaseBase compiler, ExtremeAssertions and -X:gc:verbose=1
* [RVM-834] - Assertion failure in ExtremeAssertionsBaseBaseSemiSpace
* [RVM-836] - Static initialization loop in Generational collectors
* [RVM-838] - MMTk Harness 'Spawn' script fails with an NPE on multiprocessors
* [RVM-840] - MMTk Harness fails on Poisoned heap collector
* [RVM-854] - Failed to find a value to spill when
* [RVM-856] - RVM fails to build under OS X 10.6
* [RVM-860] - ExtremeAssertionsOptAdaptive compiler failure for jvm98 _227_mtrt on ppc32
* [RVM-862] - 2 static fields using an identic slot
* [RVM-863] - BumpPointer.scanRegion can cause a page fault
* [RVM-864] - Build failure using IBM Java 6 SDK as host JVM on linux-ia32
* [RVM-879] - Mark Compact does not work with Native Threads
* [RVM-887] - RVM failure at startup when using -Xbootclasspath (Trying to load a class too early in the booting process)
* [RVM-889] - JSR166 tck fails EntryTest, PriorityQueueTest and PriorityBlockingQueueTest
* [RVM-890] - MarkCompact broken by new threading model
* [RVM-894] - MMTk Harness doesn't allow Log.writeln in constructors
* Jikes RVM 3.1.0 (June 10, 2009)
It's been almost nine months since the release of Jikes RVM 3.0.1, and
quite a bit has changed in Jikes RVM.
We'd like to call out several items that may be of particular interest
to the community.
1. Jikes RVM has switched to using native threading instead of
m-to-n (aka green) threading.
2. The default mature space collector has changed from Mark-Sweep to Immix.
3. Jikes RVM is now licensed under the Eclipse Public License (EPL).
4. The 3.1 release significantly improves over the performance of
3.0.1, with speedups of 10% and 21% on average for DaCapo and SPEC
benchmarks respectively on an Intel C2Q. Highlights include a 29%
improvement in jbb and a 32% improvement in jython.
Details are given below, or are browsable online in our JIRA instance
at http://jira.codehaus.org/browse/RVM/fixforversion/14620.
** New Feature
* [RVM-641] - Make Immix the default mature space collector
* [RVM-682] - Assertion checking in sysMalloc
* [RVM-802] - Debugging hooks in MMTk
* [RVM-806] - Heavyweight sanity checker for MMTk Harness
* [RVM-807] - Simple type system for MMTk Harness scripting language
** Bug
* [RVM-460] - Not accounting for nursery promotion AND defrag in GenImmix
* [RVM-498] - ppc-linux32 dying on SPEC jbb 2005 with 4 threads
* [RVM-613] - asking if a method has a hasBaselineSaveLSRegistersAnnotation triggers classloading (and thus GC) when GC is disabled during OSR
* [RVM-625] - FullAdaptiveImmix and FullAdaptiveStickyImmix broken on ppc32-linux
* [RVM-638] - Crash in Poisoned configs on PPC (aix/linux, 32/64) apparently relating to clone
* [RVM-662] - Error growing discontiguous space
* [RVM-664] - Occasional digest validation errors on lusearch performance runs
* [RVM-683] - Fix race in AOS controller/organizer synchronication during startup
* [RVM-690] - Class loader and reflection problems for unboxed types
* [RVM-696] - Don't recomend copying project contents with eclipse-project
* [RVM-698] - Don't clear most significant bits for <32bit return types on Intel [breaks Ubuntu 8.10]
* [RVM-700] - Not running class initializer for InetAddress causing ServerSocket failures
* [RVM-701] - Edge Counter and Dynamic Call Graph output after run fails
* [RVM-703] - Throwable.getStackTrace() implementation is incorrect
* [RVM-704] - Regressions from 2.9.1 not allowing jetty web server to run
* [RVM-708] - Bad reference map created by IA32 baseline compiler
* [RVM-712] - Uninterruptible code should not be allowed to call UnpremptibleNoWarn methods
* [RVM-722] - Bug in Static Spliting induces unconditional OSR invalidations when running _228_jack in measure compilation mode
* [RVM-729] - enabling simple_escape_ipa causes a ClassCastException
* [RVM-732] - Exception in thread "MainThread" java.security.AccessControlException: permission (java.lang.RuntimePermission exitVM) not granted: no protection domains
* [RVM-733] - rvm crash when closing a file in ExitMonitor.notifyExit(int value)
* [RVM-738] - Fix debugging output when extracting long variable values for OSR
* [RVM-743] - compress-3GC fails with OOME
* [RVM-744] - Terminal not in grammar: read_ceiling (BURS)
* [RVM-748] - Bug in type checking when > 32767 types
* [RVM-756] - Intel unnecessarily restricts boot image to be at addresses > 0x30000000
* [RVM-774] - Incorrect implementation of static initializers in the case of initializers that throw exceptions
* [RVM-795] - Baseline GC Maps with JSRs fails to set reference flag for aload operations
* [RVM-800] - In TemplateCompilerFramework.genCode, case JBC_anewarray, I don't believe that the array resolution and instantiation path is ever taken
* [RVM-808] - OutOfMemoryError when allocating a 200 MB tab
* [RVM-811] - Immix: "Chunk map overflow" on jbb2005 ppc64-linux
* [RVM-814] - Wrong exception from Java reflection
* [RVM-828] - Do not search superclasses for a method unless no method is found.
** Improvement
* [RVM-91] - Modularize threading system (native thread support)
* [RVM-283] - Increase frequency of timer-based method sampling
* [RVM-362] - Sort accumulating operands on to LHS of commutative operations
* [RVM-462] - Immix code still contains huge number of experimental variables
* [RVM-532] - Harmony's OSMemory implementation uses JNI
* [RVM-612] - Assertion checking on stack height in baseline compiler
* [RVM-689] - Update MMTk tutorial
* [RVM-709] - Document meaning of constants in build reference maps
* [RVM-725] - Increase command line options for tuning opt compiler behaviour
* [RVM-736] - Disable ImmutableEntryHashSetRVM.remove()
* [RVM-737] - Support local variable table for methods
* [RVM-739] - Made org.jikesrvm.compilers.opt.util.Pair generic and moved it to package org.jikesrvm.util
* [RVM-740] - Support for floating point conditional moves on Intel with SSE
* [RVM-741] - Support for negation and abs() using SSE2 bit masks
* [RVM-775] - Cleanup up code that obtains targets of pseudo_invokestatic instruction
* [RVM-791] - Clean up and modularize locking
* [RVM-801] - Minor change: Reorganize ClassFileReader by moving code for reading in the constant pool into a separate function
* [RVM-803] - Use for-each loop in RVMClass wherever possible
** Tasks and Sub-tasks
* [RVM-817] - Change Jikes RVM license from Common Public License to Eclipse Public License
* [RVM-685] - Implement x86 64 JNI Compiler
* [RVM-751] - Implement PowerPC syscalls
* [RVM-759] - Stack maps seem to be broken
* [RVM-779] - Update userguide to decribe native threads
* [RVM-783] - Fix baseline Intel 64bit reference maps
* [RVM-786] - Adjust sampling mechanism in AOS to account for native threads
* [RVM-787] - Outline exception raising code in gnu.java.lang.CPStringBuilder to enable better inlining
* [RVM-29] - Track website traffic via sourceforge logo requests
* Jikes RVM 3.0.1 (October 16, 2008)
** New Feature
* [RVM-507] - Initial prototype of TuningFork trace generation in Jikes RVM
* [RVM-515] - Make boot image writer traversal of object graph configurable
* [RVM-517] - Reflection optimization
* [RVM-528] - Support for eclipse-project with Harmony class libraries
* [RVM-634] - Add RuntimePure annotation to indicate when a Pure annotation should only be respected at runtime
* [RVM-673] - Implement Inline.When.AssertionsDisabled pragma
** Improvement
* [RVM-291] - Immortal objects with address based hashing should set their hashed bit during boot image writing
* [RVM-443] - Avoid back references in java.lang.reflect VMXXX classes
* [RVM-476] - Make lock allocation thread-model-agnostic.
* [RVM-627] - Use java.nio for writing boot image
* [RVM-632] - Space improvements of RVMClass.objectCache
* [RVM-633] - Avoid the use of Reflection to invoke Object.finalize()
* [RVM-644] - Reduce copying of char[] in java.lang.reflect.Proxy
* [RVM-650] - Ask users to submit bug reports on Jikes RVM crashes
** Bug
* [RVM-172] - Failing DaCapo benchmarks on PPC 32 OS X
* [RVM-288] - Assertion failure in inline oracle
* [RVM-318] - java.util.Scanner is unimplemented
* [RVM-346] - SPECjvm98: Invalid runs should not be SUCCESSes
* [RVM-410] - Problem with changes to stack walk
* [RVM-440] - Poisoned tests failing in finalizer thread
* [RVM-471] - Stack frame alignment broken for Intel on OS/X
* [RVM-605] - Possible fix for FreeListPageResource.releasePages()
* [RVM-606] - Problems with OSR guarded inlining of invokeinterface
* [RVM-614] - BaseBasePoisoned build segfaults during VM bootup on pcc64-linux
* [RVM-617] - DaCapo bloat fails with Apache Harmony class library
* [RVM-619] - DaCapo eclipse fails with Apache Harmony class library
* [RVM-621] - DaCapo xalan fails with Apache Harmony class library
* [RVM-623] - Intel 16bit operations with immediate operands in some cases generate 32bit immediate operands rather than 16bit
* [RVM-631] - Bug in new Finalization code
* [RVM-636] - Crash in reflection during JSR-166 TCK
* [RVM-643] - Invalid InstructionFormat usage in Simplifier, but real bug is that IR is semantically malformed
* [RVM-645] - Bug in LiveAnalysis related to modeling of dataflow through Exception edges in the FCFG
* [RVM-646] - Immix defrag broken
* [RVM-652] - build failure on IA32 OS X 10.5 (Leopard)
** Task and Sub-task
* [RVM-651] - Add support to Intel assembler for REX prefix byte
* [RVM-667] - Modify the implementation of table switch
* [RVM-669] - Build/boot image runner support for x86 64
* [RVM-671] - Fix spill location size estimates
* Jikes RVM 3.0.0 (August 7, 2008)
We're very happy to announce the release of Jikes RVM version 3.0.0.
The road towards 3.0 began just about two years ago and a large number of
people, both on the core team and from our user community at large,
have contributed to making it a success. Thank You!
The detailed release notes for major changes since 2.9.3 can be found
below, but we'd like to highlight some of the larger themes that went
into the 3.0 release (many of which have already been released in
the 2.9.x releases we've made along the way).
** Normalization of source code and build process
*** Complete rewrite of the build/test systems to use ant.
*** Jikes RVM can be developed in Eclipse using the JDT
*** Extensive restructuring of package structure
*** Removal of VM_ and OPT_ prefixes from all source files.
** Increased system stability and performance
*** A new continuous testing system (http://jikesrvm.anu.edu.au/cattrack)
*** Concerted stability and performance drives
** Java 5 support
*** Support for Java 5 language features
*** Use of Java 5 language features throughout the code base
Detailed list (89 issues closed in the 3 months since 2.9.3)
** New Feature
* [RVM-358] - Initial support for Apache Harmony class library
* [RVM-480] - Spec JVM 2008 regression test
* [RVM-534] - MMTk Test harness
* [RVM-540] - Implement java.lang.Compiler
* [RVM-591] - Support for jdocs.com javadoc
* [RVM-592] - Checks on creating ObjectReferences
** Improvement
* [RVM-72] - NonMoving annotations for classes instances of which should be allocated to the immortal heap
* [RVM-273] - Remove VM_ prefix from all VM classes
* [RVM-275] - Remove VMOpt prefix from opt compiler classes that go into bootimage
* [RVM-282] - Make dumpVirtualMachine more defensive
* [RVM-329] - Specialize IA32 assembler for lister vs. non-lister
* [RVM-333] - Annotations used for VM Pragmas (NoInline, Uninterruptible, etc) probably should not be as closed linked to classloaders
* [RVM-445] - Clean up handling of JTOC
* [RVM-449] - Handle instanceof and checkcast in ShortArray scalar replacer
* [RVM-477] - Gather new compiler DNA
* [RVM-501] - BuildWithAllClasses is (practically) unused
* [RVM-502] - Dead code elimination of pure calls
* [RVM-505] - Eliminate calls to VM_Class.getClass..FromStackFrame when stack frame is determinable
* [RVM-508] - Have hash map where entries are completely immutable saving references from boot image root set
* [RVM-510] - Create top level common directory to make it easier to split out and share useful components from rvm and MMTk
* [RVM-511] - Split out MMTk option processing support
* [RVM-512] - Experiment with freezing bucket array in VM_HashMap/VM_HashSet
* [RVM-513] - Large arrays in boot image cause memory leak
* [RVM-525] - Upgrade to GNU classpath 0.97.2
* [RVM-537] - Implement inline mustImplementInterface sequence for invokeinterface in baseline compilers
* [RVM-538] - Inline checkcast/instanceof sequences in baseline compiler for simple cases
* [RVM-572] - Remove OSR_ and BC_ prefixes from OnStackReplacement code
* [RVM-593] - Extra checks on references being traced in rvm
* [RVM-603] - Improve intel baseline prologue/epilogue/call by use push/pop instead of mov [sp]
* [RVM-594] - Naming of MM_Interface
** Bug
* [RVM-46] - CaffieneMark failures on AIX/PPC
* [RVM-47] - DaCapo regressions on AIX/PPC
* [RVM-58] - Linker errors under AIX/ppc
* [RVM-105] - sysNetSelect doesnt seem to be avoiding the syswrap select
* [RVM-187] - VM_OptGenericMapIterator: findGCMapIndex failed
* [RVM-221] - Specialized scanning broken on ppc64-aix?
* [RVM-234] - Annotation issues: not implemented via proxy classes, support for serialization
* [RVM-269] - unresolved invokeinterface on <null> should force classloading before rasiing NPE
* [RVM-271] - Timeouts for stress are not correct
* [RVM-303] - Cannot modify accessible final instance fields
* [RVM-325] - Spec JVM 98 jack failing with OOMs
* [RVM-327] - Performance degredation in IA32 assembler
* [RVM-332] - Eclipse 3.2 fails to run on the RVM
* [RVM-369] - PPC32-OSX - Crash in GC when a stack contains native frames
* [RVM-372] - Integer overflow in sysNanoTime
* [RVM-423] - Fop performance strangeness
* [RVM-442] - All poisoned tests fail PPC 32
* [RVM-454] - The sub-test TestAnnotationInheritance of the basic tests is excluded until it can be fixed
* [RVM-458] - Poisoned bit test highlights JNI problem
* [RVM-469] - Fix IA32 assembler to use Address instead of Offset for absolute addressing
* [RVM-482] - Crash when running Production_Opt0_perf portion of compiler-dna test run
* [RVM-483] - Conditionalize fsqrt generation on PowerPC
* [RVM-492] - Dumping empty stack kills VM
* [RVM-493] - VM_Annotation.readValue doesn't use the correct classloader
* [RVM-494] - Conversion between type descriptors, class names, and file names in VM_Atom behaves inconsistently
* [RVM-495] - Crash during first major GC on PPC64 tests when running with -X:processors=2
* [RVM-497] - New scan boot image assertion failing poisoned tests
* [RVM-499] - Overflowing JTOC during DaCapo eclipse run on PPC64 AIX
* [RVM-500] - No such field error: TreeMap$SubMap.minKey
* [RVM-504] - Increase time out on DaCapo eclipse for rvmppclnx64
* [RVM-506] - The field last in VM_HashMap and VM_HashSet is only ever set to null
* [RVM-514] - Pure on mathMagic breaks dacapo sunflow
* [RVM-521] - Freshly checked out r14346 fails to build with an uninterruptible violation
* [RVM-526] - GNU Classpath build: paths too long in check_jni.sh
* [RVM-527] - Harmony doesn't build 32bit libraries as necessary for x86_64 build
* [RVM-529] - Implement reflection API for Harmony
* [RVM-531] - Boot image stack size too small
* [RVM-541] - gc stress failures
* [RVM-542] - Incorrect encoding of inner class native method names
* [RVM-543] - Invoking JNI_OnLoad of unrelated libraries when loading a library with no JNI_OnLoad
* [RVM-544] - Class argument in NewObject ignored
* [RVM-547] - Building the boot image with the opt compiler and Harmony fails
* [RVM-550] - Implementation of isZero magic in PPC baseline compiler can overflow expression stack and corrupt stack frame
* [RVM-571] - BigDecimal Pure annotations causes crash on SPECjbb2005 for FullAdaptiveMarkSweep
* [RVM-582] - Fix all javadoc "syntax" errors
* [RVM-583] - Incorrect rounding on simplified integer divide
* [RVM-585] - RVM Identity HashMap doesn't use identity hashCode.. only identity.equals
* [RVM-587] - IdentityHashMaps in the bootimage
* [RVM-588] - Assertion failure in BC2IR for primitive array load
* [RVM-597] - Array index out of bounds in BC2IR generation context
* [RVM-598] - Increase use of unpreemptible
* [RVM-599] - New poisoned test failures on x86
* [RVM-608] - Object replacement ignores finalizer methods
** Task and Sub-Task
* [RVM-37] - Doccument the command line options
* [RVM-42] - Build/Test infrastructiure to compute compiler DNA
* [RVM-490] - Null Pointer Exception in gnu.xml.transform.ParameterNode.clone
* [RVM-518] - Change build logic so that the VM prefix on a class name does not control inclusion in the bootimage
* [RVM-519] - Rename classes currently with VM_ prefix that will be confusing without it
* [RVM-520] - Update userguide to remove VM_ (and OPT_) prefix globally.
*Jikes RVM 2.9.3 Release Notes (May 9, 2008)
** Sub-task
* [RVM-224] - Push OSR-specific fields in VM_NormalMethod to subclass/side data structure
* [RVM-450] - Prevent compilation at max opt level before some dynamic call graph information has been gathered
* [RVM-453] - Testing framework missing failures in basic tests that use diff for sanity.
** Bug
* [RVM-196] - VM_Processor not assignable with VM_GreenScheduler
* [RVM-314] - Support for Java 1.4 assertions
* [RVM-315] - java.lang.Method.invoke changes the parameters
* [RVM-316] - A Null pointer for the UTF8CHARSET in java.util.zip.ZipFile$PartialInputStream
* [RVM-326] - Failing basic tests don't signal failure
* [RVM-330] - Thread.sleep() does not handle interrupts correctly
* [RVM-339] - Image bloat (code +25% & data +5%)
* [RVM-340] - Annotations don't handle arrays of primitive types correctly
* [RVM-342] - NPE with advice files
* [RVM-347] - PPC 64 regressions and Intel stress regressions since the introduction of read barriers
* [RVM-351] - Javac regression
* [RVM-352] - Running many iterations of _200_check fails floating point remainder test
* [RVM-353] - Production Opt 0 builds broken
* [RVM-355] - Complete SPEC JVM with 20 iterations dies in GC
* [RVM-357] - Fatal error when synchronising on null objects
* [RVM-365] - PPC (AIX) Stack Scanning Appears Broken
* [RVM-368] - Compiler confusion over equal but non-identical objects
* [RVM-374] - Static field allocation is non-deterministic
* [RVM-380] - We create a lot (15909) optimization plan atomic elements using 572724bytes in the boot image
* [RVM-383] - Branch likely and unlikely prefixes show up as LOCK prefixes in x86 disassembler output
* [RVM-394] - Tune inlining of arraycopy
* [RVM-412] - Latent branch optimization bug when maximizing blocks
* [RVM-424] - Multianewarray confusion in opt compiler
* [RVM-439] - OSR triggering code misuses suspend/resume
* [RVM-447] - Inline size estimation reduction factor calculation over rates precise information causing bloat and slow down
* [RVM-452] - Off-by-one error in "VMField.checkReadAccess" and "VM.checkWriteAccess"
* [RVM-456] - Clean build broken
* [RVM-464] - Opt compiler ldc_w for class literal broken
* [RVM-466] - Four tests in test run "tiny" fail when compiled with -X:aos:initial_compiler=opt -X:aos:enable_recompilation=false
* [RVM-467] - BURS performing illegal reordering to before PEI
* [RVM-468] - Instanceof test differs in opt compiler from baseline for instanceof/checkcast of magic[][]
* [RVM-478] - Redesign AIX native method Linkage conventions to protect CMID field from being smashed by native code saved CR
** Improvement
* [RVM-81] - Annotations in java.lang classes
* [RVM-195] - Enable inlining of @Pure methods
* [RVM-274] - Remove OPT_ prefix from all opt compiler classes
* [RVM-276] - opt compiler package structure
* [RVM-304] - Improve performance of chacter encoder when encoding to and from arrays
* [RVM-305] - Add final annotations to java.io.OutputStreamWriter
* [RVM-308] - Greater use of StringBuilder rather than StringBuffer
* [RVM-309] - Greater use of "<Number>.valueOf" rather than "new <Number>"
* [RVM-310] - Class library fields that could be final aren't final
* [RVM-311] - String toUpperCase and toLowerCase perform a String.equals to see if the Locale is Turkey per invocation
* [RVM-322] - Intel assembler register naming improvement required
* [RVM-331] - Implement support for MMX registers
* [RVM-343] - Support for hardware SQRT instruction
* [RVM-344] - Simplifier rule for square root operator
* [RVM-378] - Avoid replicating field and method vectors
* [RVM-379] - Don't replicate OSR_EncodedOSRMaps
* [RVM-381] - Upgrade to Classpath 0.97
* [RVM-385] - Refactor reflection to use VM interface
* [RVM-387] - Baseline compiler emits RegDisp instructions when the Disp is 0
* [RVM-390] - VM_Statics/JTOC space saving has cost us single iteration fop performance
* [RVM-391] - Assign CPU # to each VM_Processor to have more predictable performance results.
* [RVM-392] - Improvements to ZipEntry
* [RVM-395] - Local common sub-expression elimination of Pure method calls
* [RVM-408] - Simple elimination of stack traces
* [RVM-417] - Switch performance runs to using a profiled image
* [RVM-421] - Pre-allocate 1 set of exception registers for athrow
* [RVM-422] - Update to latest Classpath j.u.c.CopyOnWriteArrayList
* [RVM-431] - Fix processor JNI entry/collector rendezvous race
* [RVM-433] - Increase final fields in java.nio
* [RVM-435] - Don't allocate memory when converting C buffers to Strings or Classes
* [RVM-437] - Integer.toString doesn't keep cache of common values
* [RVM-451] - Structure of code in GNU Classpath java.util.Vector and java.util.Arraylist interacts poorly with inlining
** New Feature
* [RVM-210] - Add Image sizes tracking to Regression report and mailout
* [RVM-319] - Create X10 test harness
* [RVM-406] - Add Immix garbage collector
* [RVM-441] - Sticky mark bits collector
* [RVM-457] - Immix Garbage Collectors
** Task
* [RVM-425] - Implement 2d array helper for PPC baseline
** Wish
* [RVM-266] - Provide preliminary support for a non-copying unsynchronised StringBuffer implementation
*Jikes RVM 2.9.2 Release Notes (October 20, 2007)
** Highlights
*** r13697: Switch from hijacking pthread system calls to using Classpath's
portable native sync (which uses JNI for locking rather than pthread locks).
*** r13676: ASM based tool to add annotations to class library.
*** r13413: Initial support for IA32 Solaris, capable of running basic tests
and partially running DaCapo benchmarks.
*** r13404: Added support for using the perfctr library to access hardware
performance counters (http://user.it.uu.se/~mikpe/linux/perfctr/).
To use this, perfctr must be installed on the host (involves a kernel
patch), and config.include.perfctr must be set to true at build
time (or simply use the "-p" option to buildit). At run time, the MMTk
harness mechanism must be used to report the counter values at the end
of the harnessed execution.
*** r13223: Fixes to enable the Jikes RVM to run on PPC32 OS/X, this
functionality had been broken for at least half a year.
*** r13106: refactored thread model to separate out the decision of green and
native threading. Improvements required in the area of OSR and collector
threads. This solves many issues with thread model including RFE-1147574,
RVM-62, RVM-64, RVM-55, RVM-125. The M-to-N greenthread model now passes
the majority of the JSR-166 TCK (some issues are class library related)
so java.util.concurrent can be used with the RVM. A stub is provided so
that native thread support can be added at a later date.
** From JIRA:
** Sub-task
* [RVM-217] - Recode spin loop in org.mmtk.utility.deque.Deque spinWait to reduce frequency of nanoTime calls
* [RVM-230] - Determine whether patching Classpath sources is preferable to bytecode engineering adding annotations
** Bug
* [RVM-55] - A thread that is interrupted prior to being scheduled won't interrupt
* [RVM-62] - Interrupted exceptions are generated in the caller of Thread.interrupt instead of by the
thread throwing the interrupted exception
* [RVM-63] - Unsafe.park time values are incorrectly scaled
* [RVM-87] - NPE in ScanThread.setUpFrame:360
* [RVM-99] - MeasureCompilation reporting broken in production/development builds on ia32-linux
* [RVM-104] - eclipse occasionally fails with segmentation fault
* [RVM-105] - sysNetSelect doesnt seem to be avoiding the syswrap select
* [RVM-109] - Restore documentation to org.vmmagic.pragma.*
* [RVM-112] - Verification error when building Jikes RVM 2.9.1 using HotSpot as host JVM.
* [RVM-113] - MarkCompactLocal.compact():80 assertion failure
* [RVM-114] - Ensure time is positive in test results
* [RVM-124] - NullPointerExceptions in stress tests
* [RVM-125] - Waiting on a lock that should raise illegal monitor state exception will actual fail on an assert
* [RVM-129] - GCTrace fails with "Cannot understand directive!"
* [RVM-131] - Collection.joinCollection() called when thread switching disabled
* [RVM-133] - Increase the amount of memory used during nightly tests
* [RVM-140] - Conflicting virtual address request for space "trace" on ppc32-linux
* [RVM-141] - SharedDeque assertion failure during exit for GCTrace
* [RVM-143] - VM_BuildBB.determineTheBasicBlock may not be correct for goto_w operation
* [RVM-144] - JikesRVM can't load certain classes e.g. GNU Classpath examples or its own Ant tasks
* [RVM-150] - Unexpectedly large processor lock contention
* [RVM-154] - A shutdown hook can hang RVM
* [RVM-155] - SynchronizationBarrier.removeProcessor assertion failure
* [RVM-159] - OSR-guarded inlining should not be allowed in uninterruptible code
* [RVM-181] - ClassCastException in OPT_Simplifier when running antlr DaCapo
* [RVM-182] - invalid frame address
* [RVM-183] - Thread sitting on >1 queue
* [RVM-187] - VM_OptGenericMapIterator: findGCMapIndex failed
* [RVM-194] - Assertion failure in OSR State Extractor running chart
* [RVM-196] - VM_Processor not assignable with VM_GreenScheduler
* [RVM-198] - NPE when unlocking lock
* [RVM-201] - Classpath AWT is broken
* [RVM-203] - terminal not in grammar: new
* [RVM-204] - Reduce wasted code space on inline allocation path
* [RVM-206] - Stack walking in MMTk not correctly identifying not yet obsolete methods?
* [RVM-209] - Bootimage bloat broke ppc64-aix images
* [RVM-213] - jbb2005 performance regression
* [RVM-216] - MMTk assertion failure during jbb large heap performance runs
* [RVM-219] - Address.attempt*() compiles incorrectly on IA32 with Jikes 2.9.1
* [RVM-220] - jbb2005 GC performance mode: Warning: number of GC phases exceeds MAX_PHASES
* [RVM-242] - Build break: BaseBaseGCTrace
* [RVM-245] - Change to deques appears to have significantly reduced hsqldb performance
* [RVM-270] - NPEs from barrier code not working
* [RVM-277] - lusearch fails on PPC32 due to validation error
* [RVM-279] - Performance regression
* [RVM-293] - Class loaders do not isolate packages with the same name
* [RVM-297] - Classpath 0.96 configure problems with JDK 1.6
* [RVM-298] - DaCapo chart broken on classpath 0.96
* [RVM-299] - possible performance regression on xalan on classpath 0.96
* [RVM-301] - JSR 166 failures
** Improvement
* [RVM-16] - Constant folding values from TIBs produces failures
* [RVM-27] - float/double to int/long conversions are overly expensive
* [RVM-51] - Switch from pthread hijacking back to portable native sync for gtk AWT threading
* [RVM-54] - Switch to Claspath's java.lang.Thread
* [RVM-64] - Flexible thread model
* [RVM-82] - Exceptions in Uninterruptible code should result in immediate fatal errors
* [RVM-94] - Enable SSE C/C++ compiler flags
* [RVM-164] - Use clock_gettime to implement sysNanoTime
* [RVM-179] - Move java/lang/String out of libraryInterface and into a patch against Classpath
* [RVM-185] - Reduce cost of ThreadLocal(s) to improve Jython performance
* [RVM-189] - Use will never move information from MM_Interface when generating constant operands
* [RVM-191] - Improve inline size estimator in VM_NormalMethod to account for getstatic of final primitive
fields being folded by opt compiler
* [RVM-218] - Use VM_Magic.pause in spinwait loops
* [RVM-282] - Make dumpVirtualMachine more defensive
* [RVM-285] - Switch AOS call graph profiling to use CBS framework from Arnold & Grove 2005
** New Feature
* [RVM-121] - Separate code space for dynamically generated code
* [RVM-231] - Alignment checking (for IA32 and debugging purposes only)
** Task
* [RVM-38] - VM_BaselineBootImageCompiler should use System.nanoTime rather than DNA for compilation time
* [RVM-286] - _201_compress took a 10% hit when we switched to Arnold/Grove call graph profiling; investigate
** Bug Fixes
*** r13004: constant folding of TIBs is now safe as precise information on
register operands has been fixed.
** Other Notes
*** r12922: Incorrect annotating code as logically uninterruptible on
interruptible code will now produce an error.
*Jikes RVM 2.9.1 Release Notes (July 2, 2007)
** Highlights
*** A major stability drive has resulted in Jikes RVM being able to
reliably run the entire DaCapo benchmark suite on ia32-linux.
The following issues were resolved to make this possible:
multiple benchmarks:
r12809: Missed lock prefix (stack scanning failures).
r12737: GC map iterator crashed on dynamic link frames.
eclipse:
r12302: Classpath RandomAccessFile incorrectly truncated.
r12394: PLOS exhaustion bug in MMTk.
r12375: ThinLock of interface from OPT code.
r12815: Bad GC map in JNI methods.
r12722: Fix for GC map bugs around expection throws.
lusearch:
r12602: Floating point precision (SSE2).
r12633: Parallel hardware traps.
hsqldb:
r12683: Invalid assertion in VM_Thread.
xalan:
r12742: Missing static initializer broke jar caching (halves runtime).
r12753: FileOutputStream wastefully copying arrays (halves runtime).
*** New eclipse-project ant target to make it easy to get up and running
in eclipse.
*** As part of the stability drive, many O2 optimizations in the
optimizing compiler have been moved to O3 (and thus are not enabled by
default). The performance impact of this has been mixed. For example,
on ia32-linux SPECjvm98 performance actually improved by 29% due to
massive improvements in mtrt and mpegaudio enabled by SSE2. Performance
on SPECjbb2005 degraded by 3-10%. There were significant gains on some
individual DaCapo benchmarks (most notably xalan).
Re-building an aggressive O2 optimization package by stabilizing
current O3 optimizations and by building new optimization passes will be
one of the focus areas for the project going forward.
*** The Intel back-end no longer has accumulate LIR form, we go directly from
non-accumulate form LIR to accumulate form MIR. This simplifies and
improves instruction selection by reducing the replication of rules to
accomodate for accumulate form expansion.
*** Switch to using Classpath's Throwable code and implemented VMThrowable.
Implemented a certain amount of stack frame elision and added support for
getStackTrace.
*** Support for @Pure and @RuntimeFinal annotations. The former allows
simplification of non-side effecting code without inlining (particularly
useful when we can't inline with syscalls or jni). The latter provides support
for booleans that are constant during runtime but vary at boot image write
time. These booleans can be constant folded now.
*** The recommended version of GNU classpath is 0.95.
Earlier versions of GNU classpath are not supported.
*** SSA expression folding has been expanded to cover far more cases than
previously. This leads to a > 1% speedup on benchmarks such as SpecJBB'05.
*** Source code analysis of the code base has been enabled using PMD
(http://pmd.sourceforge.net/). Basic analysis is enabled by default and
this will expand over time.
*** Methods in VM_Type that duplicated functionality in VM_TypeReference
now delegate to associated VM_TypeReference.
*** The ability to force a garbage collection after N allocations or at every
exception delivery has been revived and is controlled by the configuration
variable config.stress-gc-interval which should be set to non-zero value to
enable.
*** Simplistic debug symbols to show boot image method entry points in
gdb. Resolved issues with rvm script so this works with rvm -gdb now.
*** New faster primary regression machine (Core 2 Duo) for ia32-linux
at ANU. Resolved performance issues with previous regression machine.
*** Introduced the capability to patch against classpath versions. This allows
us to keep backported performance optimizations and/or bug fixes
*** Implementation of returning global JNI references from C to Java.
*** VM_ prefix added to classes that must be included in the primordial
class list. Classes affected include; PrintLN, PrintContainer,
ApplicationClassLoader, DebuggerThread, FinalizerThread, MainThread,
PPC_Disassembler, opcode_tab and opcodeXX.
*** Classes in the adaptive package have been reorganized into packages
to match the directory layout in 2.4.6 release.
*** Classes that resided in the objectmodel directory in 2.4.6 have
been moved in to the "org.jikesrvm.objectmodel" package.
*** Classes that resided in the scheduler directory in 2.4.6 have
been moved in to the "org.jikesrvm.scheduler" package.
*** Classes that resided in the runtime directory in 2.4.6 have
been moved in to the "org.jikesrvm.runtime" package.
*** Streamline some Intel operations, rotates, prefer branches to conditional
operations, use xor instead of move to zero a register.
** Bug fixes
*** Baseline GC map bug for handler blocks affecting SPECjbb2000
(r12685).
*** Classpath race in cloning of XML Node affecting SPECjbb2005
(r12395).
*** Fix final field chasing in OPT_Simplifier and re-enable constant
folding for fields.
*** A GC map generation problem caused by casting Address to Objects
and has been eliminated.
*** Fix for annotations that carry values.
*** Fix saturation on branch profile counters.
*** Fix IA32_Test's register restrictions to avoid generating incorrect code.
** Other Notes
*** Support for Intel branch hints, used in the baseline compiler that
can't modify its code layout.
*** We now check for illegal upcasts from unboxed vmmagic to Java types.
*Jikes RVM 2.9.0.1 Release Notes (April 1, 2007)
*** Backport commit 11875 to fix bug when building GNU classpath for
for the first time.
*Jikes RVM 2.9.0 Release Notes (March 15, 2007)
** Highlights
*** The five months since the release of 2.4.6 have been one of the most
active periods in the open source history of the project. A number
of significant changes have been made to clean up and modernize the
code base to enable future evolution.
*** We have made large scale changes to the structure of the source code
to prepare for development of Jikes RVM from within standard Java IDEs.
*** There is a new, ant-based, build and test system that have replaced
jconfigure and RunSanityTests.
*** We now use ecj (the Eclipse Java compiler) instead of jikes to compile
our Java source files and have eliminated the preprocessor.
*** The userguide has been moved from latex into a wiki. It has been updated
to describe the new build and test systems.
The release tarball contains a pdf and html version of the userguide.
*** We now support Java5, we have switched to using the generics branch
of GNU Classpath, and much of Jikes RVM has been rewritten to use
Java 5 language features and generic types.
*** We have switched to using Java5 annotations for pragmas/magic.
*** The recommended version of GNU classpath is 0.93-generics.
Earlier versions of GNU classpath are not supported.
*** Support in the PPC baseline compiler for storing local variables in
registers.
*** Refactor of type system and JTOC.
*** Support for packing subword sized fields in objects. Removal of hand
packed fields. Various memory savings.
*** System calls now supported in any file using SysCall annotation on a
native method. VM_SysCall now generates implementation from annotation.
VMMath now implemented using system calls.
*** Support for chasing final fields reached from literal or static final
fields. Greater optimization of object constant operands.
*** Greater support for 387 constants. Simplification of 387 BURS rules.
** Bug fixes
*** Yes...many :) For details: svn log -r10915:11866
** Other Notes
*** The Quick compiler has been deleted. It is now available as a
patch on the research tracker, or via older releases (2.3.4
through 2.4.6).
*** The HPM (Hardware Performance Monitor) code has been deleted.
It is now available on the research tracker (item 1613215),
by svn diff -r11162:11161, or in releases through 2.4.6.
*** This release is known to not work on OS X. We would like to get this
platform working again; if you use Jikes RVM on OS X and are willing to
help fix it, please let us know.
*Jikes RVM 2.4.6 Release Notes (released October 19, 2006)
** Highlights
*** The recommended version of GNU classpath for Jikes RVM 2.4.6 is 0.92.
Earlier versions of GNU classpath are not supported.
*** A large scale restructuring of the source tree was performed
to prepare for making it easier to develop Jikes RVM using Eclipse.
All files except for the Java source to Jikes RVM itself was moved
out of the RVM_ROOT/rvm directory. RVM_ROOT/rvm itself has not yet
been reorganized so that package/directory structures match, but we
anticipate this happening in the near future.
*** Major refactoring of VM<->MM interface
*** MMTk: Added nurseries to each LOS and created a distinct "primitive large
object space" (PLOS).
*** The optimizing compiler is now reentrant and a command line options
to enable parallel bootimage compilation has been added to jbuild
(-numThreads=<n>).
*** Updates and improvements to GCspy support (patch 1576064).
** Bug fixes
Too many to list individually in the release notes. Yeah!
Overall a significant increase in system stability since 2.4.5.
See svnlog -r10694:10905 for the gory details.
** Other Notes
*** Change bootimage options for the opt compiler to use default static
inlining heurisitcs (instead of being more aggressive). This reduces
bootimage size by 20%, bootimage build time by 2-3x, and appears to have
minimal performance impact.
*** We now implement JNI_OnLoad functionality.
*** Modifications to the boot image writer and VM.boot so that certain
known fields are populated during boot image write time, thereby
avoiding the need to run class initializers in VM.boot. Typically
we fail to populate a field value when it's part of the bootstrap
JVM and in some way protected. Further improvements to this mechanism
are in progress.
*** If GNU classpath is built with JAWT support, the Jikes RVM build process
now copies the additional native libraries it requires.
*** Added regression testing support for latest version (2006-10-RC2) of
DaCapo benchmarks and for SPECjbb2005. Also updated soot test to 2.2.3.
*** We can now build using the IBM 5.0 JVMs as hosts. However, you
must set HOST_VM_TYPE=IBM-50 to activate code in the bootimage
writer makefile that works around what appears to be a JIT bug.
*** GNU classpath support for java.lang.instrumentation and the
-javaagent command line argument was added.
*Jikes RVM 2.4.5 Release Notes (released August 14, 2006)
** Highlights
*** The recommended version of GNU classpath for Jikes RVM 2.4.5 is 0.92.
GNU classpath version 0.91 will work, but Jikes RVM 2.4.5 will not
compile against versions of GNU classpath before 0.91.
*** Classpath AWT and Swing tests now run with the Jikes RVM. We have changed
from using the portable native sync code, and addressed issues with M-to-N
threading.
*** We can now load and run Java 1.5.0 Java class files. Support includes
building the Jikes RVM using a 1.5.0 javac compiler and running the
SPEC JBB 2005 benchmark. Includes reflection support for generic types.
*** MMTk changes & refactors. A mark-compact collector has been added. A
number of key bugs have been fixed, both in the vm (eg baseline GC
maps), and in MMTk proper. Completed a major refactoring of
"locals" to explicitly separate per-mutator and per-collector
contexts. This generalizes away from assumptions of the current
Jikes RVM threading model.
*** We can now load runtime and non-runtime annotations. Runtime support
is limited as Classpath is missing the base annotation definitions.
A work around is to switch on non-runtime annotation loading in the RVM.
NOTE: This requires classpath 0.91 or better.
*** Added ability to perform boot image root scanning, and thus avoid
tracing through the boot image at each full heap GC. As a result,
we've added a third region to the bootimage; all config files must
now define BOOTIMAGE_RMAP_ADDRESS in addition to BOOTIMAGE_DATA_ADDRESS
and BOOTIMAGE_CODE_ADDRESS.