IKVM.NET 0.46 Release Candidate 0

Finally, after way too long, the first 0.46 release candidate is available.

What's New (relative to IKVM.NET 0.44):

Integrated OpenJDK 6 b22.

Added -Xreference: option to ikvm.exe and ikvm.runtime.Startup.addBootClassPathAssemby() API.

The binaries zip now includes lib/ikvm-api.jar to avoid having to run ikvmstub to get access to the IKVM Java APIs.

Ported parts of fdlibm to C# to use for StrictMath methods tan, cbrt, floor, pow, hypot, expm1 and log1p.

Add support for serializing .NET exceptions in Java. We don't serialize the actual object, but a placeholder instead, to avoid having to implement full .NET serialization interop.

Added IL optimization step to code generator.

Added SynchronizationContext for AWT event thread.

Many IKVM.Reflection improvements and bug fixes.

Many Swing/AWT improvements.

Implemented IPv6 support (.NET only) for java.net package APIs.

The sun.boot.class.path system property now points to VFS to allow javac to work (although a bit slow, because the boot class files are dynamically generated on demand).

Resource and generated stub classes are now projected into the virtual IKVM home directory, to make code that assumes that resources live in jars happy.

Improvements to @ikvm.lang.Internal handling.

Many minor improvements.

Fixes since previous development snapshot:

IKVM.Reflection: Added limited support for #- metadata stream ("uncompressed" table heap). ParamPtr table is not yet implemented.

IKVM.Reflection: Fixed bug in CustomAttributeData.__ToBuilder(). Array values should be unwrapped.

IKVM.Reflection: Added __GetBlob() API extension to allow custom attribute arguments to be parsed/used even when some of the argument types are missing.

IKVM.Reflection: Fixed stack height computation bug. For a newobj the parameters should be popped before the new object is pushed. Previously we could set the maximum stack height one slot too high.

IKVM.Reflection: Added ConstructorBuilder.__SetSignature() API extension to allow constructor to be defined before the parameter types are available and to allow return type custom modifiers.

Binaries available here: ikvmbin-0.46.0.0.zip

Sources: ikvmsrc-0.46.0.0.zip, openjdk6-b22-stripped.zip