Mostly bug fixing and a couple of work arounds for bugs in the CLR and Mono.
- Sync'ed with GNU Classpath cvs.
- Fixed bug in ClassLoaderWrapper that caused exception when defining the ModuleBuilder if the first class loader to define a class had a toString() representation that contained characters that are illegal in an assembly name.
- Changed System.identityHashCode implementation to use non-virtual call to Object.GetHashCode instead of RuntimeHelpers.GetHashCode, to work around .NET runtime bug.
- Fixed reflection to support modifying final instance fields (as per JSR-133).
- Added optional verbose cast failure messages (set the IKVM_VERBOSE_CAST environment variable to enable this).
- Fixed unloadable type support in native method signatures.
- Changed handling of delegate types that have unsupported types in method signature (inner interface is no longer generated). This fixes bug 1119575.
- Added -enabletls option to ikvmc to automagically add ThreadStaticAttribute to fields starting with __tls_
- Changed IKVM specific Classpath methods to use __tls_ fields instead of LocalDataStoreSlot. This improves performance, but also works around a bug in the CLR relating to AppDomain shutdown and a GC bug in Mono on Windows.
- Added workaround for Mono bug in GCHandle.IsAllocated.
- Fixed implicit interface downcasting (which is sometimes required due to a quirk in the JVM spec) to throw IncompatibleClassChange instead of ClassCastException.
- Fixed bug in argument globbing code that caused command line of statically converted executables to start with the name of the executable (in args) on unix.
- Fixed bug that caused Thread.join() on main thread to hang.
- Fixed JNI name mangling to support encoding Unicode and special characters correctly.
- Fixed JavaException to not call String.Format on non-format strings.
- Optimized VMThread.jniDetach to not do anything if a Java thread object was never created.
New snapshots: just the binaries and source plus binaries.