A new development snapshot is available. I finished the merge of JSR-292 part of OpenJDK 7u40. The result is a bit depressing (but not unexpected) for the amount of effort that it took. The net result is that most stuff works the same (I did fix a couple of bugs), except slower.
I expect that eventually I'll get around to optimizing things a bit, but for now I've spent enough time on it to want to work on something else.
- Merged remaining OpenJDK 7u40 changes.
- Guard against bogus LVT entries. Fix for bug #284.
- Bug fix. MethodHandle.invoke[Exact] does not require a version 51 class file.
- Bug fix. If a ghost array is used in an invokedynamic signature, we should not use the erased method type.
- Added Unsafe.defineAnonymousClass().
- Don't filter DynamicMethods from stack trace if IKVM_DISABLE_STACKTRACE_CLEANING is defined.
- Bug fix. Unsafe.defineClass() should allow null class loader and '/' as package separator.
- Added support for CallerID in pseudo-native methods.
- Added Unsafe.shouldBeInitialized() and Unsafe.defineClass() overload.
- Bug fix. If CLASSGC is enabled, we should use a WeakReference to cache the MethodType for the MethodHandle.invoke() cache.
- Bug fix. MethodHandle.invoke() cache should consider vararg-ness of the MethodHandle.
- Removed HideFromReflectionAttribute.
- Added flags to HideFromJavaAttribute to support different levels of hiding (including the previous usage of HideFromReflectionAttribute and adding specific ability to hide from security stack walking and from stack traces, for future LamdbaForm support).
- Bug fix. Constructing .NET value types using MethodHandle didn't work.
Binaries available here: ikvmbin-7.4.5170.zip