The major change is that I dropped support for .NET 1.1 and started taking advantage of .NET 2.0 specific features. The most significant result of that is that it is now possible to run (some) applications in partial trust and that IKVM.OpenJDK.ClassLibrary.dll and IKVM.Runtime.dll can be put into the GAC and called from partially trusted code. Note that if you want to put the binaries in the GAC you'll have to build your own binaries (to get them strong named) as the development snapshot binaries are not strong named.

Changes:

.NET 1.1 is no longer supported.

Removed .NET 2.0 warnings (except for the "unreachable code" ones).

Removed most .NET 1.1 specific code.

Removed conditional compilation of .NET 2.0 specific code.

Updated FileChannelImpl to use SafeFileHandle and GC.Add|RemoveMemoryPressure.

Added GC.KeepAlive to "native" methods of MappedByteBuffer.

Improved VFS.

The VFS file "lib/security/cacerts" is now dynamically generated from the .NET X509 store.

Implemented native methods of java.io.Console (some Win32 only).

Implemented support for InternalsVisibleToAttribute.

Moved JNI implementation into a separate assembly (IKVM.Runtime.JNI.dll) to make IKVM.Runtime.dll verifiable.

Made all "native" method classes internal.

Restructured VM <-> Library interface to take advantage of InternalsVisibleTo to remove public methods and reflection usage.

Added support for adding constructors in map.xml.

Changed <clinit> method to SmartConstructorMethodWrapper to support calling it from map.xml