|
| 1 | +JamVM 2.0.0 released on 30th July 2014 |
| 2 | +====================================== |
| 3 | + |
| 4 | +JamVM 2.0.0 is the first release of JamVM with support for OpenJDK. Although |
| 5 | +IcedTea already includes JamVM with OpenJDK support, this has been based on |
| 6 | +periodic snapshots of the development tree. |
| 7 | + |
| 8 | +This release supports OpenJDK 6, 7 and 8 (the latest). With OpenJDK 7 and 8 |
| 9 | +this includes full support for JSR 292 (invokedynamic). JamVM 2.0.0 |
| 10 | +with OpenJDK 8 also includes full support for Lambda expressions (JSR 335), |
| 11 | +type annotations (JSR 308) and method parameter reflection. |
| 12 | + |
| 13 | +In addition to OpenJDK support, JamVM 2.0.0 also includes many bug-fixes, |
| 14 | +performance improvements and improved compatibility (from running the OpenJDK |
| 15 | +jtreg tests). The following is an edited list of the top ~100 commits (out |
| 16 | +of 300+) in date order (most recent first). The list has been categorised |
| 17 | +into those affecting OpenJDK only, GNU Classpath only, and both OpenJDK and |
| 18 | +GNU Classpath (All). |
| 19 | + |
| 20 | +- OpenJDK: JSR 292: show full anonymous/lamdba class name in stack trace |
| 21 | +- OpenJDK: JSR 292: resolvePolyMethod race-conditions |
| 22 | +- OpenJDK: JSR 292: Free callsite linked-list on class GC |
| 23 | +- OpenJDK: JSR 292: Fix for invokedynamic resolution (must be per callsite) |
| 24 | +- OpenJDK: JSR 292: constant method handle can be signature polymorphic |
| 25 | +- All: More command-line compatibility options |
| 26 | +- OpenJDK: Use correct thread group function when thread dies |
| 27 | +- GNU Classpath: update JamVM's version of VMAccessController |
| 28 | +- All: Check ClassBlock padding at VM initialisation |
| 29 | +- GNU Classpath: Update GNU Classpath ClassBlock padding |
| 30 | +- OpenJDK: Make ClassBlock padding dependent on OpenJDK version |
| 31 | +- OpenJDK: JSR 292: Fix RepetitiveLambdaSerialization jtreg test |
| 32 | +- OpenJDK: Fix compatibility issues on different Unixes |
| 33 | +- All: Explicitly initialise java.lang.Class |
| 34 | +- All: Optimise ClassBlock structure |
| 35 | +- OpenJDK: JSR 292: anonymous class resolution to itself |
| 36 | +- OpenJDK: JSR 292: anonymous classes should use host_class permissions |
| 37 | +- OpenJDK: JSR 292: findInvokeDynamicInvoker fix exception handling |
| 38 | +- OpenJDK: JSR 292: Fix CallStaticInitOrder jtreg test |
| 39 | +- OpenJDK: JVM_NewMultiArray: element class may be an array |
| 40 | +- OpenJDK: jtreg test java/lang/reflect/Array/ExceedMaxDim |
| 41 | +- OpenJDK: Fix Local/Anonymous class checks |
| 42 | +- All: Fix race-condition in constant-pool resolution code |
| 43 | +- OpenJDK: JSR 292: MethodHandle constant-pool refs may be resolved |
| 44 | +- OpenJDK: JSR 292: bootstrap method args error handling |
| 45 | +- GNU Classpath: race-condition in thread detach |
| 46 | +- GNU Classpath: fix threading issue in lookupLoadedDlls0 |
| 47 | +- All: Race condition in setting up imethod table |
| 48 | +- All: GC: Several minor performance improvements |
| 49 | +- OpenJDK: Add support for CallerSensitive |
| 50 | +- OpenJDK: JSR 335: handle interfaces when resolving a method |
| 51 | +- OpenJDK: sun.misc.Unsafe: additional methods get/putAddress |
| 52 | +- OpenJDK: JSR 292: enable for OpenJDK 7/IcedTea 2 |
| 53 | +- OpenJDK: JSR 335: invokeinterface check in method resolution |
| 54 | +- OpenJDK: JSR 335: implement "bridge" methods for Mirandas |
| 55 | +- OpenJDK: JSR 335: interface methods - handle multiple defaults and conflicts |
| 56 | +- All: Fix invokesuper check in invokespecial opcode |
| 57 | +- OpenJDK: JSR 901: VM support for method parameter reflection |
| 58 | +- OpenJDK: JSR 335: VM support for lambda expressions |
| 59 | +- OpenJDK: Implement JSR 308: Type Annotations |
| 60 | +- All: Re-work internal storage of annotation data |
| 61 | +- OpenJDK: JSR 292: update intrinsic cache after GC compaction |
| 62 | +- OpenJDK: JSR 292: initMemberName: handle constructor |
| 63 | +- OpenJDK: JSR 292: implement MethodHandleNatives::expand |
| 64 | +- OpenJDK: JSR 292: resolveMemberName: throw LinkageError |
| 65 | +- OpenJDK: JSR 292: intercept LinkageError when linking callsite |
| 66 | +- OpenJDK: JSR 292: handle fields in findMethodHandleConstant |
| 67 | +- OpenJDK: JSR 292: enable only when configuring for OpenJDK8 |
| 68 | +- OpenJDK: Implement fence methods in sun.misc.Unsafe |
| 69 | +- OpenJDK: JSR 292: implement intrinsic cache |
| 70 | +- OpenJDK: JSR 292: use internal opcodes for intrinsics |
| 71 | +- OpenJDK: Very simple field injection framework |
| 72 | +- OpenJDK: JSR 292 Lambda access control jtreg tests |
| 73 | +- OpenJDK: Garbage collector changes for JSR 292 |
| 74 | +- OpenJDK: Yet more JSR 292 jtreg tests |
| 75 | +- OpenJDK: Set anonymous class protection domain |
| 76 | +- OpenJDK: JSR 292: all jtreg tests now pass |
| 77 | +- OpenJDK: First commit of OpenJDK8 JSR292 support (invokedynamic) |
| 78 | +- OpenJDK: Do not put version number in libjvm.so SONAME |
| 79 | +- All: Changes for Raspbian (Raspberry Pi) |
| 80 | +- All: Add extra compatibility options |
| 81 | +- All: When suspending, ignore detached threads that have died |
| 82 | +- All: Update stubs generator to handle ref returns |
| 83 | +- All: Ref return values from JNI methods need to handled specially |
| 84 | +- OpenJDK: Implement classlibCheckIfOnLoad() on OpenJDK |
| 85 | +- OpenJDK: OpenJDK 7: make thread states JVMTI compatible |
| 86 | +- All: Add OpenBSD/sparc to list of recognised hosts |
| 87 | +- All: Make command line compatibility options table-driven |
| 88 | +- OpenJDK: Skip Java-reflection-related DelegatingClassLoaders |
| 89 | +- All: Generic JNI stubs for common JNI method signatures |
| 90 | +- All: Add support for armhf |
| 91 | +- OpenJDK: Fix OpenJDK enclosingMethodInfo() |
| 92 | +- All: "Fix" handling of CLI bootclasspath options |
| 93 | +- All: Correct thrown exception by bootstrap loader |
| 94 | +- All: Fix threading of references list during compaction |
| 95 | +- All: Fix class GC with classes containing Miranda methods |
| 96 | +- All: Propogate initialisation errors to top-level |
| 97 | +- OpenJDK: Extra sun.misc.Unsafe functions |
| 98 | +- GNU Classpath: Fix VMThread.join |
| 99 | +- OpenJDK: Initial implementation of JVM_FindClassFromBootLoader |
| 100 | +- All: Fix callJNIMethod on i386 with -fomit-frame-pointer |
| 101 | +- All: Fix backwards cache conflict resolution code |
| 102 | +- All: Unify command line options parsing |
| 103 | +- OpenJDK: Implement remaining OpenJDK Array reflection interface |
| 104 | +- All: Base default min and max heap size on physical memory |
| 105 | +- OpenJDK: Fix reflective array access |
| 106 | +- All: Rewrite integer divide overflow check |
| 107 | +- OpenJDK: First set of changes to support JamVM/OpenJDK on MacOS X |
| 108 | +- All: Handle integer overflow on i386/amd64 |
| 109 | +- All: On ARM, force interpreter to be built in ARM mode |
| 110 | +- All: MIPS: 64-bit and interpreter inlining by default |
| 111 | +- OpenJDK: Fix bug in JVM_NewMultiArray |
| 112 | +- All: JNI compatibility options and error printing |
| 113 | +- OpenJDK: Nasty compaction bug with OpenJDK classloader tables |
| 114 | +- All: Native return types smaller than an int must be handled specially |
| 115 | +- All: Add MIPS support for inlining |
| 116 | +- All: Update arm.h for ARMv7-A |
| 117 | +- All: Linux implementation of nativeJVMPath() |
| 118 | +- OpenJDK: Changes to VM to support different class-libraries |
| 119 | +- All: Fix for LNEG with stack-caching enabled on 32 bit machines (seen on ARM) |
| 120 | +- All: Fix for I2L on MIPS |
| 121 | +- All: Fix getMethodParameterAnnotations when there are no annotations |
| 122 | +- All: Fix constructorParameterAnnotations |
| 123 | +- All: Initial version of JNI stubs generator |
| 124 | +- All: Support for JNI stubs (signature specific fast invoke) |
| 125 | +- OpenJDK: Implement JNI RegisterNatives (first change for OpenJDK) |
| 126 | +- All: Add JNI 1.6 to supported versions returned by JNI onload |
| 127 | + |
| 128 | + |
1 | 129 | JamVM 1.5.4 released on 1st January 2010
|
2 | 130 | ========================================
|
3 | 131 |
|
|
0 commit comments