The 0.42 release still isn't done, but in the mean time, development of 0.43 continues.
Changes:
- Fixed interface method resolution (via JNI) and various other minor JNI method resolution compatibility tweaks.
- When there is no Java code on the stack JNIEnv->FindClass() should use the system class loader instead of the boot class loader.
- Removed micro optimization that requires full trust on .NET 4.0.
- Removed .NET 4.0 workaround.
- Renamed ILGenerator.__GetILOffset() to ILGenerator.ILOffset to match with .NET 4.0.
- More AWT fixes by Volker
- Added support for adding "new-style" declarative security (i.e. .NET 2.0 compatible) to IKVM.Reflection.Emit.
- Various minor optimizations
- Added a couple of missing classes (that tools.jar depends on).
- Removed classes that aren't supposed to be in the boot class path (they're from tools.jar). This includes the entire IKVM.OpenJDK.XML.RelaxNG assembly.
- Created IKVM.OpenJDK.Tools.dll (which is going to be the equivalent of tools.jar).
- Fixed IsPackageAccessibleFrom to consider class loaders, instead of InternalsVisibleToAttribute
- Added automatic access to internal accessibility members across assemblies in multi target compilation (previously this was only done for -sharedclassloader scenarios)
- Cleaned up existing field access stubs (now known as "type 1") and added type 2 access stubs to make public fields that have a non-public field type accessible.
- Moved FindMainMethod from ikvm.exe into runtime, to avoid the need for hacks (to avoid NoClassDefFoundErrors).
- Deleting of an non existing Preferences Key should not throw an exception.
- Type export map performance bug fix by Eyal Alaluf. AssemblyName doesn't implement Equals/GetHashCode and this caused the map to contain an assembly entry for every type.
- Added IKVM_EXPERIMENTAL_JDK_7 environment variable to enable loading Java 7 class files. Note that no JDK 7 functionality has been implemented yet.
- Mangle all artificial type names if they clash with Java type names in the same assembly.
- Added two constructors to ThowsAttribute that take a Type and a Type[] for greater convenience when applying the attribute to user code and for compatibility with Grasshopper's ThrowsAttribute.
- Various minor reflection optimizations.
- Don't automatically hide Java "op_Implicit" methods (marked with SpecialName). Instead mark the ones we automatically generate with HideFromJavaAttribute.
Binaries available here: ikvmbin-0.43.3628.zip