<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Slow and Steady - mono</title>
    <link>http://blog.hurrynot.org/serendipity/</link>
    <description>Occasional ramblings of an idiot with a PhD</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.2-beta4 - http://www.s9y.org/</generator>
    <pubDate>Mon, 02 Jul 2007 06:33:30 GMT</pubDate>

    <image>
        <url>http://blog.hurrynot.org/serendipity/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Slow and Steady - mono - Occasional ramblings of an idiot with a PhD</title>
        <link>http://blog.hurrynot.org/serendipity/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>My Novell Hack Week project: Implement support for Mono in Automake</title>
    <link>http://blog.hurrynot.org/serendipity/archives/7-My-Novell-Hack-Week-project-Implement-support-for-Mono-in-Automake.html</link>
            <category>build system</category>
            <category>mono</category>
    
    <comments>http://blog.hurrynot.org/serendipity/archives/7-My-Novell-Hack-Week-project-Implement-support-for-Mono-in-Automake.html#comments</comments>
    <wfw:comment>http://blog.hurrynot.org/serendipity/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hurrynot.org/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Raja R Harinath)</author>
    <content:encoded>
    This week was &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/idea.opensuse.org&#039;);&quot; href=&quot;http://idea.opensuse.org&quot;&gt;hack week&lt;/a&gt; for all the Open Source hackers at Novell, where we got to work on ideas and projects that we were personally interested in.  I decided to work on something that I&#039;ve been planning for a long time, ever since I joined the Mono project, in fact: &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/idea.opensuse.org/content/ideas/better-automake-support-for-mono&#039;);&quot; href=&quot;http://idea.opensuse.org/content/ideas/better-automake-support-for-mono&quot;&gt;add support for Mono in Automake&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It has been a while since I hacked on the automake source tree, but I didn&#039;t have too much trouble getting started.  In the end, I got most of the features I intended for it:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
	&lt;li&gt;support for building Mono exes and dlls&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for installing them in the GAC&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support out-of-tree builds&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;dependency tracking on sources&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for specifying resources, and tracking dependencies on them&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for specifying references, and tracking dependencies on them&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for multiple languages, include C#, VB.NET, Nemerle, Boo&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;easy extensibility of the support to other languages -- essentially, just need to add the filename extension of the language to SUFFIXES&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;bundled autoconf macro to detect installed compilers and other tools&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;... and some examples, test cases, and documentation to explain how to use all of it&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Stuff missing include&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
	&lt;li&gt;autoconf macros to detect if libraries are installed or not&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for Microsoft&#039;s compilers -- basically a question of replacing &#039;/&#039; with &#039;\&#039; in filenames, where appropriate&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;support for response files -- mainly wrt distributing sources mentioned in them&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;real life experience with actual projects using all the above features&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
The whole effort took up most of the five days.  I spent much of Monday checking out the code from CVS into &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/git.or.cz&#039;);&quot; href=&quot;http://git.or.cz&quot;&gt;git&lt;/a&gt; and looking at how support for C and other languages was implemented.  I had most of the basic support done by Tuesday, got all dependency tracking working by Wednesday, and added documentation, autoconf support, and GAC-installation support by Friday afternoon.   I&#039;m very happy that I spent the time upfront to import the project into git, since it saved me from spending a lot of timeslices tracking my changes.&lt;br /&gt;
&lt;br /&gt;
The code is available as a series of &lt;a href=&quot;http://blog.hurrynot.org/mono-in-automake/patches&quot; class=&quot;urlextern&quot; title=&quot;http://blog.hurrynot.org/mono-in-automake/patches&quot; rel=&quot;nofollow&quot;&gt;patches&lt;/a&gt; to Automake  (packed conveniently in a &lt;a href=&quot;http://blog.hurrynot.org/mono-in-automake/patches.tar.gz&quot; class=&quot;urlextern&quot; title=&quot;http://blog.hurrynot.org/mono-in-automake/patches.tar.gz&quot; rel=&quot;nofollow&quot;&gt;tarball&lt;/a&gt;), and there&#039;s also an &lt;a href=&quot;http://blog.hurrynot.org/mono-in-automake/test-1.0.tar.gz&quot; class=&quot;urlextern&quot; title=&quot;http://blog.hurrynot.org/mono-in-automake/test-1.0.tar.gz&quot; rel=&quot;nofollow&quot;&gt;example project&lt;/a&gt; that shows how to use it.  I also have a &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/video.google.com/videoplay?docid=7525466052747539502&#039;);&quot; href=&quot;http://video.google.com/videoplay?docid=7525466052747539502&quot;&gt;&quot;lightning talk&quot; short video&lt;/a&gt; about the project.&lt;br /&gt;
&lt;br /&gt;
&lt;embed style=&quot;width:400px; height:326px;&quot; id=&quot;VideoPlayback&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://video.google.com/googleplayer.swf?docId=7525466052747539502&amp;hl=en&quot; flashvars=&quot;&quot;&gt; &lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
As much as I enjoyed the coding, I also thoroughly enjoyed working with the whole Bangalore open source team, all in the same conference room for five days, with everyone having a good time, and good food. 
    </content:encoded>

    <pubDate>Mon, 02 Jul 2007 06:33:30 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hurrynot.org/serendipity/archives/7-guid.html</guid>
    
</item>
<item>
    <title>More thoughts about MCS and GMCS</title>
    <link>http://blog.hurrynot.org/serendipity/archives/4-More-thoughts-about-MCS-and-GMCS.html</link>
            <category>mcs</category>
            <category>mono</category>
    
    <comments>http://blog.hurrynot.org/serendipity/archives/4-More-thoughts-about-MCS-and-GMCS.html#comments</comments>
    <wfw:comment>http://blog.hurrynot.org/serendipity/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hurrynot.org/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Raja R Harinath)</author>
    <content:encoded>
    &lt;p&gt;Martin got GMCS to &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/primates.ximian.com/%7Emartin/blog/entry_155.html&#039;);&quot; href=&quot;http://primates.ximian.com/%7Emartin/blog/entry_155.html&quot;&gt;work on Windows&lt;/a&gt;, with a small caveat -- there&#039;s no API to change the &lt;em&gt;MethodAttributes&lt;/em&gt; of a &lt;em&gt;MethodBuilder&lt;/em&gt;.  I have a couple of observations:&lt;/p&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;the caveat isn&#039;t really a big deal.  You only need to set &lt;em&gt;NewSlot&lt;/em&gt; when there is a &lt;tt&gt;new&lt;/tt&gt; keyword used in the declaration.  Otherwise, it&#039;s useful but not necessary (See &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/bugzilla.ximian.com/show_bug.cgi?id=74852&#039;);&quot; href=&quot;http://bugzilla.ximian.com/show_bug.cgi?id=74852&quot;&gt;bug 74852&lt;/a&gt; for the gory details)&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;these changes, coupled with my older changes should allow us to have more code similarity between MCS and GMCS.  Specifically, I think we can put in a couple of stubs: &lt;em&gt;DropGenericTypeArguments&lt;/em&gt; and &lt;em&gt;DropGenericMethodArguments&lt;/em&gt; into MCS and eliminate a big part of the textual differences between MCS and GMCS in non-generics related code.  We already started on this in &lt;em&gt;doc.cs&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 16 Feb 2006 15:53:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hurrynot.org/serendipity/archives/4-guid.html</guid>
    
</item>
<item>
    <title>MCS: Implemented ::-lookup (qualified alias member) feature</title>
    <link>http://blog.hurrynot.org/serendipity/archives/2-MCS-Implemented-lookup-qualified-alias-member-feature.html</link>
            <category>mcs</category>
            <category>mono</category>
    
    <comments>http://blog.hurrynot.org/serendipity/archives/2-MCS-Implemented-lookup-qualified-alias-member-feature.html#comments</comments>
    <wfw:comment>http://blog.hurrynot.org/serendipity/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hurrynot.org/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (Raja R Harinath)</author>
    <content:encoded>
    &lt;div&gt;Today, I added my first &quot;tick-mark&quot; feature to Mono&#039;s C# compiler: qualified-alias-member or &#039;::&#039; lookup. It&#039;s a relatively small feature, and doesn&#039;t impact much, code-wise.&lt;br /&gt;
&lt;br /&gt;
In all, it took about a day&#039;s worth of effort from start to check-in. But, that one-day effort needed quite some preparatory work. I&#039;d pretty much decided on the approach a couple of months ago, and had a reasonable plan-of-attack, and was looking for an opportune time to work on it. More importantly, the past few months I spent incessantly refactoring the name- and type-lookup facilities in the compiler has paid off, making the task of implementing &#039;::&#039; trivial.&lt;/div&gt; 
    </content:encoded>

    <pubDate>Wed, 03 Aug 2005 08:26:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hurrynot.org/serendipity/archives/2-guid.html</guid>
    
</item>
<item>
    <title>Thread-safety and me</title>
    <link>http://blog.hurrynot.org/serendipity/archives/1-Thread-safety-and-me.html</link>
            <category>mono</category>
    
    <comments>http://blog.hurrynot.org/serendipity/archives/1-Thread-safety-and-me.html#comments</comments>
    <wfw:comment>http://blog.hurrynot.org/serendipity/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.hurrynot.org/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (Raja R Harinath)</author>
    <content:encoded>
    I&#039;m thinking of working on fixing Mono&#039;s &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/svn.myrealbox.com/source/trunk/mcs/class/corlib/System.Collections.Generic/Dictionary.cs&#039;);&quot; href=&quot;http://svn.myrealbox.com/source/trunk/mcs/class/corlib/System.Collections.Generic/Dictionary.cs&quot;&gt;Dictionary&lt;/a&gt; to be &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/en.wikipedia.org/wiki/Thread-safe&#039;);&quot; href=&quot;http://en.wikipedia.org/wiki/Thread-safe&quot;&gt;thread-safe&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It seems ironic: I wrote a large part of that Wiki page, and I&#039;m in large part responsible for the dictionary code not being thread-safe. &quot;Blame&quot; me for the use of the &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/en.wikipedia.org/wiki/Competitive_analysis&#039;);&quot; href=&quot;http://en.wikipedia.org/wiki/Competitive_analysis&quot;&gt;move-to-front&lt;/a&gt; heurstic in the dictionary code, and I must say, it was a &lt;a onclick=&quot;javascript:urchinTracker(&#039;/extlink/svn.myrealbox.com/viewcvs/trunk/mcs/class/corlib/System.Collections.Generic/Dictionary.cs?rev=46350&amp;amp;view=markup&#039;);&quot; href=&quot;http://svn.myrealbox.com/viewcvs/trunk/mcs/class/corlib/System.Collections.Generic/Dictionary.cs?rev=46350&amp;view=markup&quot;&gt;beautiful piece of code&lt;/a&gt;: see how simple it made the &#039;Remove()&#039; code.&lt;br /&gt;
&lt;br /&gt;
Of course I&#039;ve disliked threads all along, and this gives me more reasons to blame threads for the ugliness they bring into the world. 
    </content:encoded>

    <pubDate>Sat, 25 Jun 2005 02:14:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hurrynot.org/serendipity/archives/1-guid.html</guid>
    
</item>

</channel>
</rss>