+ 5 - 3 | § ¶System.Reflection.Emit now generates debug info
Today I committed the patch that adds support for debug info generation in System.Reflection.Emit. Only a limited set of features are supported, but should be enough for most of compilers (at least, it is enough for Boo and IKVM, the compilers that I've tested).The symbol writer is still implemented in Mono.CompilerServices.SymbolWriter. I added a wrapper class that implements ISymbolWritter and which is created by ModuleBuidler using reflection. This class just forwards the calls to MonoSymbolWriter (the one used by mcs). This is not the most optimal solution, but it is just the first step. The real solution would be to make MonoSymbolWriter natively implement ISymbolWriter, which shouldn't be too difficult BTW.
+ 11 - 4 | § ¶Mono is not mono-language
After reading some of the posts about "Java vs C#" last week, I thought that it would be good to demonstrate how Mono is performing with languages other than C#. I recorded a couple of screencasts, and I now realize that they pretty much summarize one of the original goals of the project: to have a high level development platform for building Linux applications, which provides freedom of language choice, makes it easy to share libraries between languages (i.e. no need to write bindings for every language), and allows the use of common development tools.The first screencast shows MonoDevelop running a debug session across code wirtten in Java (using IKVM), C# and Boo. The main application is written in C#, and creates several objects implemented in the other languages. It shows how easy is the integration of those languages, since there is a C# class (Circle) which inherits from a Boo class (Ellipse), which in turn inherits from a Java class (Figure). Here it is:
Demo 1
The second screencast is something more practical. It shows how MonoDevelop can be used to create a GTK control written in Java, and how this control can be added in a GTK application implemented in Boo. What's interesting about this demo is that both Boo and Java are using the same GTK bindings (any language that targets the CLI would be able to use those bindings).
Demo 2
Hmm, those turned to be good demos of MonoDevelop as well. I've been polishing a bit the MonoDevelop Java addin to make the demos. Now it automatically generates stubs for the referenced assemblies, which means that we can use any .NET library from Java by just adding a reference to it in the project. I hope I can soon include Nemerle and Python in the demo (although I fear that vnc2swf would mess up such a long screencast).