# Thursday, September 20, 2007
« Two Useful Tools for IKVM.NET | Main | IKVM 0.36 rc4 »
IKVM 0.36 rc3

This is probably the last release candiate before the official 0.36 release.


  • Fixed non-blocking nio socket send of zero bytes to not return -1.
  • Fixed nio Selector.wakeup() race condition.
  • Added checks for code that uses reflection to call ClassLoader.defineClass() on the assembly class loader for ikvmc compiled classes to throw IllegalAccessError when the class tries to extend a non-public base class (instead of dying with a Critical Failure).
  • Fixed bug in the handling of Java annotations applied in .NET code (via the corresponding ikvmc generated attributes).
  • Significantly improved performance of Class.getModifiers().

Binaries available here: ikvmbin-

Sources (+ binaries): ikvm-

External sources (haven't changed since rc1): classpath-0.95-stripped.zip, openjdk-b13-stripped.zip

Thursday, September 20, 2007 3:55:12 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [1]
Friday, September 21, 2007 5:02:45 PM (W. Europe Daylight Time, UTC+02:00)
Have you considered splitting up the class library into multiple assemblies? I know that Java by default doesn't do much of this (jce.jar and jsse.jar notwithstanding, the vast majority of the class library is in rt.jar) but that seems to be more of a historical decision with backward-compatibility implications, than the best technical choice for a VM that doesn't have an rt.jar at all :)

My own interest in this is that as I mentioned in my own blog, the file size of IKVM/OpenJDK is an issue for me. In my case I'm using an ikvmc-compiled dll, all of the code of which is written by myself, with no dynamic loading of code, so I can say with assurance that it only makes use of a small part of the JDK API (lang/util/io/sql, with my own minimalist jdbc driver written in C#). It'd be nice to be able to include only the necessary parts of the Java class library in my installer that runs this.
Comments are closed.