Time for another snapshot as there have been a large number of changes since the previous snapshot. The Swing/AWT work that Volker and more recently also Nat have been doing has resulted in SwingSet2 now running quite nicely. Check out these screenshots:
Note that this is running the OpenJDK Swing code, with the GNU Classpath code the source code view and the HTML tab (the blue "Bouncing Babies!" text is HTML rendered in the tab) never worked. So this is great progress, but a lot more is still needed. Keyboard (and focus) support is still lacking and font support is still fairly limited, for example.
- More AWT/Swing work by Volker Berlin and Nat Luengnaruemitchai.
- Fixed detection of dynamic assemblies (at runtime).
- Fixed NullReferenceException when getting annotations on delegate constructor for delegates defined in Java.
- Added App.config setting (ikvm-emit-symbols) to force emitting debug symbols on or off.
- Fixed regression introduced in 0.40 that caused ikvmc to crash when specifying a non-public custom class loader.
- Fixed bug in the handling of Annotation.__ReturnValue and Annotation.__Multiple fake types.
- Implemented automatic .NET serialization support for Java serializable type (see here for details).
- Fix for #2829717. Constructing java.lang.String instances from JNI should redirect to static helper method.
- Several minor IKVM.Reflection.Emit fixes.
- Added ILGenerator.__GetILOffset().
- Changed CodeEmitter to use ILGenerator.__GetILOffset() (when usig IKVM.Reflection.Emit) instead of manually tracking the IL offset.
- Added "clever" exception block assistance mode to ILGenerator. In this mode, leave and endfinally instructions are only auto inserted when necessary.
- Use ILGenerator's new "clever" mode in ikvmc to produce smaller code.
- Fixed IKVM.Reflection.Emit to put .pdb file in same location as assembly (instead of current directory). Thanks to Dawid Weiss for reporting this.
- Removed ISymWrapper.dll dependency from IKVM.Reflection.Emit.PdbWriter.dll.
- IKVM.Reflection.Emit.PdbWriter.dll now caches the debugging information, instead of "streaming" it into the unmanged PDB writer to workaround the ridiculous memory usage of the unmanaged PDB writer. It is now possible to build the full core class library assemblies set with debugging enabled.
- Fixed major regression in pdb debugging support introduced in 0.40 that caused local variable support to be completely broken.
Binary available here: ikvmbin-0.41.3524.zip