Various fixes and improvements.
Changes:
- Made Mono compilation workarounds conditional on __MonoCS__.
- Fixed Class.desiredAssertionStatus() instrinsic to use the RemoveAsserts flag from the right class loader.
- Fixed several generics related bugs in IKVM.Reflection.Emit.
- Implemented ikvm.internal.ClassLiteral<T> to allow for more efficient class literals.
- Switched java.awt.print package from GNU Classpath to OpenJDK.
- Switched java.awt.geom package from GNU Classpath to OpenJDK.
- Switched java.awt.color package from GNU Classpath to OpenJDK.
- Switched java.awt.event package from GNU Classpath to OpenJDK.
- Switched java.awt.datatransfer package from GNU Classpath to OpenJDK.
- Switched java.awt.dnd package from GNU Classpath to OpenJDK.
- Added hack to skip running the static initializer when computing the serialVersionUID while running ikvmstub.
- Added support for defining delegates in Java.
- Fixed regression introduced in 0.38 that caused LinkageError to be thrown instead of ClassCircularyError.
- Updated mscorlib.jar (to get the new default constructor in MulticastDelegate).
- Added utility class ikvm.runtime.Delegates to make it easier to create Runnables and PrivilegeActions from .NET languages.
- Fixed JNI constructor invocation on dynamically loaded class.
- Added hack to java.io.FileDescriptor to support JRuby's tty detection.
- Implemented java.lang.ClassLoader$NativeLibrary.finalize(). Note that under normal circumstances this is never called, because IKVM doesn't support class unloading and by default finalization doesn't run on exit.
- Fixed IKVM.Reflection.Emit bug that caused NullReferenceException in Save when using the ikvmc -target:module option.
The last IKVM.Reflection.Emit fix isn't in cvs yet, because SourceForge cvs is down.
As always with a development snapshot, don't use this in production, but please do try it out and let me know about it. The sources are available in cvs and the binaries here: ikvmbin-0.39.3358.zip