News
Jikes RVM version 3.1.1 has been released and is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.1.1.tar.bz2
Details are given below, or are browsable online in our JIRA instance at http://jira.codehaus.org/browse/RVM/fixforversion/14900.
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
Three students will be working on Jikes RVM as part of the 2010 Google Summer of Code. They are:
- Laurence Hellyer, University of Kent, On-the-fly copying GC. Mentors: Eliot Moss, Daniel Frampton and Richard Jones.
- Michael Gendelman, Tel Aviv University, Implementing the Compressor. Mentors: Steve Blackburn and Richard Jones
- Ashwani Rao, University of Delaware, Improved Register Allocator for x86 and x86_64. Mentors: Tony Hosking, John Cavazos and Eliot Moss.
Laurence, Michael, Ashwani: welcome to the team. We are all looking forward to working with you and seeing the end product of your efforts.
I am very pleased to announce that Jikes RVM has been accepted for the 2010 Summer of Code. GSoC allows students to work closely with a mentor on a project of interest to Jikes RVM between 24 May and 20 August. Google will pay a stipend of $5000 to each accepted student developer. In the past, good things have come out of the GSoC and students have enjoyed the programme. You can find more details of the programme at gsoc2010.
Our project suggestions and associated mentors are listed on our Jikes RVM proposals page
If you are interested in participating in the GSoC, please start talking to a mentor now. The formal application period is 29 March - 9 April (both at 12 noon PDT / 19:00 UTC). The complete timeline for the programme is here.
I'd be grateful if you could circulate this announcement to any student you think might be interested in making a contribution to Jikes RVM.
Richard
We are hoping to participate in the Google Summer of Code 2010. We have had some really excellent contributions to JikesRVM come out of previous Summers of Code so please take the time to visit our Google Summer of Code 2010 pages and possibly add some project proposals.
The organization application deadline is March 12.
Dear Jikes RVM Researchers,
We are writing to introduce two new members to the Jikes RVM Steering Committee, announce some changes to the project organization, and highlight our performance results, which are now competitive with the products on the DaCapo Benchmarks.
Steering Committee
We have invited Richard Jones (U. Kent) and Kathryn McKinley (U. Texas) to join us on the Steering Committee. Both Kathryn and Richard have accepted our invitation. Kathryn and Richard been involved with the project since its inception. They both have a long track record of engagement with the project; directly and through the activities of their respective research groups. Their addition to the committee reflects our view that our stakeholders are researchers and that our mission is enabling research.
Project Organization
We have also made a minor change to the project structure, replacing the term "Core Team" with "Jikes RVM Team". We also extend team membership to anyone who has demonstrated a substantial commitment to the project through concrete contributions. Such contributions are not limited to code, but may include substantive contributions to the health of the project in any form. These changes are intended to emphasize the importance of researchers as the primary stakeholders in this project, and to make it explicit that the importance of a member's input is not measured in terms of the quantity or quality of changes to the code base.
We will also now encourage team members to follow a "12 month rule", whereby they are asked to reassess their team membership after a period of 12 months of inactivity
Performance
Due to the efforts of the Jikes RVM Team in adding features (such as native threads, Immix GC, and biased locking), and tuning the adaptive system, we have recently achieved really excellent performance results. While Jikes RVM still lags behind the products on the SPEC benchmarks (the products are highly tuned for SPEC), Jikes RVM attains within 5% of their performance on the DaCapo Benchmarks. Results are available here: http://jikesrvm.anu.edu.au/performance/2009-07/
These performance gains make Jikes RVM an even more
appealing research platform and offer more evidence that Java
can be an effective system implementation language.
![]()
We hope that these changes will bring new life to the project and re-affirm the project's original objectives of supporting the research community. Kathryn, Richard and the rest of the Jikes RVM Steering Committee welcome comments, suggestions and feedback from our community.
David Grove
Steve Blackburn
Mike Hind
Jikes RVM version 3.1.0 has been released and is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.1.0.tar.bz2
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.
- Jikes RVM has switched to using native threading instead of m-to-n (aka green) threading.
- The default mature space collector has changed from Mark-Sweep to Immix.
- Jikes RVM is now licensed under the Eclipse Public License (EPL).
- 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
Please vote in the online poll: http://www.doodle.com/qtb3sm9k42wbxs9q
Polling will be open until March 19, 2009.
O'Reilly have released
a new book called
Beautiful
Architecture. Ian Rogers and Dave Grove have written a
chapter entitled
The Strength of Metacircular Virtual Machines: Jikes RVM
intended to serve as an overview and initial reference to the
design of Jikes RVM. Proceeds from the book go to
Médecins Sans Frontières.
To celebrate the double milestones of this being the 10th year of Jikes RVM development and the release of Jikes RVM 3 , we've decided to create t-shirts to reward Jikes RVM contributors. Whilst meta-circular virtual machine development in Java may result in beautiful code it might not be a true indicator of other artistic ability. We've therefore decided to have a competition for people to put forward their design of what should be on our t-shirts. We have cash to ensure the production of the t-shirts from the mentor payments of this years Jikes RVM Google Summer-of-Code (thanks Google and the mentors!). The deadline for submissions to the competition is January 1st 2009. Remember to keep contributing so that you will be inline to receive free Jikes RVM booty! For more information on the competition please use the jikesrvm-researchers mailing list.
Jikes RVM version 3.0.1 has been released and is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.0.1.tar.bz2
The detailed release notes for major changes since 3.0.0 can be found below or in JIRA ( http://jira.codehaus.org/browse/RVM/fixforversion/14378);
** 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)
** Tasks 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
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 release is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.0.0.tar.bz2
The detailed release notes for major changes since 2.9.3 can
be found below or in JIRA (
http://jira.codehaus.org/browse/RVM/fixforversion/13530),
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.
We're very proud to announce that Jikes RVM version 2.9.3 is now available for download! It's been a little bit longer than usual since the last release and there's been quite a bit of activity on the project and improvements to the system. The appended release notes capture many of the highlights; for more details see JIRA.
The release is available
from SourceForge.
** Improvement
* [RVM-81] - Annotations in java.lang
classes through bytecode engineering
* [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
character 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
* [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
* [RVM-266] - Provide preliminary
support for a non-copying unsynchronised StringBuffer
implementation
** Task and Sub-task
* [RVM-425] - Implement 2d array
helper for PPC baseline
* [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
Congratulations to Georgios Gousios (Athens University of Economics and Business), Byeongcheol Lee (University of Texas in Austin), Filip Pizlo (Purdue University) for being selected to work on Jikes RVM projects for the SoC. Georgios is working on Jikes RVM and JNode integration, Byeongcheol is working on extending debugger support, Filip is looking at extending the threading model.
I'm pleased to announce the Jikes RVM has been accepted into the Google Summer of Code for the 2nd year! We have a range of mentors bringing together experience from the Jikes RVM and related projects. Please have a look at our project proposals and our application template. As with last year, if you think there is an interesting project that should be listed but hasn't been then please feel free to propose it. To better integrate with our bug and feature tracking system we would much prefer if such proposals could also be added in to our issue tracker. We look forward to interest from prospective students! Don't forget the deadline for applications is March 31st.
Jikes RVM (nee Jalapeno) turned 10 years old last week! The first lines of code in what became Jikes RVM were written by Derek Lieber on Nov 21, 1997.
Past news can be accessed by Browse Space/News link.