# Wednesday, 19 June 2002
Download

It'll be a while before the code becomes available in any structured format, but for the time being I'll post a snapshot every once in a while. I haven't decided on a license yet, any thoughts on that topic are appreciated.

Wednesday, 19 June 2002 14:36:15 (W. Europe Daylight Time, UTC+02:00)  #    Comments [3]
Current Status

What I currently have is:

  • java/lang/Object to System.Object & java/lang/String to System.String mapping
  • On demand class loading infrastructure (but no ClassLoader support)
  • Code to read and parse Java .class files
  • Compiler that parses (small subset) of Java bytecode and converts it into MSIL
  • Small subset of JNI support (calling native methods & calling Java from native code)

What is needed

  • Exception object model mapping needs to be worked out
  • Bytecode parser needs much improvement
  • Classpath native code needs to be written
  • Classpath VM interface needs to be investigated and adapted where necessary
  • ClassLoader support
  • Flesh out JNI support
  • Testing, testing and more testing
  • Documentation
Wednesday, 19 June 2002 12:43:40 (W. Europe Daylight Time, UTC+02:00)  #    Comments [2]
What about J#?

When I looked at beta 1 of J#, I found so many bugs in the first day of playing with it, that I decided to report the bugs to Microsoft and then ignore the product until the next beta. When beta 2 arrived, two of bugs I reported hadn't been fixed, but I decided to go ahead and play with it for a couple of days anyways. What I found was devastating: The J# object model is fundamentally broken. In order for it to function, it requires a huge security hole. I reported this to Microsoft and gave up on the tool. Since then I've been looking for an alternative, but recently I finally decided to build my own JVM for .NET.

Wednesday, 19 June 2002 12:22:26 (W. Europe Daylight Time, UTC+02:00)  #    Comments [3]
What is I<<K.VM.NET?

I<<K.VM.NET is a Java VM implemented in .NET. The goal is to implement a fully functional JVM. Initialy, I'll probably be aiming at the JDK 1.1 compatibility level, but in the future newer versions should be possible.

How does it work?

Java .class files are converted just-in-time to .NET classes. This enables me to take advantage of the .NET JIT compiler and GC. The Java class library that will be used is GNU Classpath.

Why?

I have a large Java application that I would like to slowly migrate to .NET, in order to be able to do that, I need a way to interoperate with Java code, the existing solutions I have looked at are inadequate. Besides, It's lots of fun to build something like this :-)

Wednesday, 19 June 2002 12:17:37 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Finally started blogging

After several false starts, I finally decided to start blogging seriously, using Radio. I'd built a (broken) prototype blogging engine in ASP.NET, but that just didn't work well enough to be used seriously.

The reason I'm starting this blog, is to act as documentation of the development of I<

Wednesday, 19 June 2002 11:52:37 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]