Status Report on Google-Sponsered XAML Compiler for Mono

Gerald Bauer <[email protected]> Fri, 15 Jul 2005 11:17:26 -0700
Newsgroups gmane.comp.lang.xul.announce
Message-ID <[email protected]>
Hello,

   Iain McCoy  -  the student  sponsored by Google to code a XAML 
compiler for Mono - writes in the mail titled "xaml status report #3":

This week, a reasonable amount got done. I have some unit tests for the 
parser now (which are run on make run-test in the
class/PresentationFramework folder, as you'd expect). They've already 
found a few bugs. I also improved the debuggability of the whole thing 
somewhat by adding a bundle of calls to Debug.WriteLine that make it
much easier to see what's going on. I'm pretty sure they're harmless in 
library code, since they only have an effect if the code is compiled 
with -d:DEBUG.

When building objects at runtime, you can now set dependency properties. 
The object builder now also supports conversions from strings.

I've finally implemented support for creating complex objects as 
property values; this is the "more complex property scenarios" support 
I've been rambling about. It was about as tricky as I thought it would 
be, so I'm glad I let it percolate for a while. I also watched a lot of 
firefly.

Upshot of all this (except for firefly) is that I think xamlc is very 
close to feature-complete.

Having said that, there's lots left to do. The object builder still 
needs some feature work, and I suspect there's a bunch of bugs I don't 
know about as well as the handful I do. I'm also going to expand the 
unit tests for the parser and get started on unit tests for the code 
generator. That should keep me going for this week.

More long-term, I need to work out how microsoft's implementation 
reports errors and be more like them, as well as look closely at the 
styling system. I also need to carefully decide on the surface area of 
my Mono.Windows.Serialization, because at the moment it's way too big, 
and implement more of System.Windows.Serialization.

Testing this stuff is still hard. The biggest problem is concocting a 
small and easy to write library of classes to wire up with xaml that 
allow you to use most or all of the xaml features, which I think I've 
now done. Unfortunately, the nature of the language is such is that you 
can only test things that your objects allow for, which means that 
pathological cases require a pathological library.

Possibly the biggest problem is that I don't really understand 
Assembly.Load() and friends. They are my mortal enemy, and I wasted a 
few days on trying to get them to do what I thought was obviously 
sensible behaviour (my eventual decision, pending actual understanding 
of the issue, was to call LoadFrom() and if any exception came out of
that try Load() instead).

Hope everyone else had similarly good weeks.

-Iain

Source: http://article.gmane.org/gmane.comp.gnome.mono.summer-of-code/17  
  


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click