<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>contrapunctus</title>
	<atom:link href="http://contrapunctus.net/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://contrapunctus.net</link>
	<description>by Christopher League</description>
	<pubDate>Mon, 05 May 2008 23:45:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Another Microsoft rant</title>
		<link>http://contrapunctus.net/index.php/2008/another-microsoft-rant</link>
		<comments>http://contrapunctus.net/index.php/2008/another-microsoft-rant#comments</comments>
		<pubDate>Mon, 05 May 2008 23:45:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/another-microsoft-rant</guid>
		<description><![CDATA[One would think that keyboard entry is a pretty basic feature of a spreadsheet program.  Maybe I&#8217;m a newb — I just started using spreadsheets in, let&#8217;s see… 1984… with Lotus 1-2-3.  Here is Excel 2004 for Mac, completely unusable for data entry.  (One minute Flash movie, may not appear in feed.)

And [...]]]></description>
			<content:encoded><![CDATA[<p>One would think that <b>keyboard entry</b> is a pretty basic feature of a spreadsheet program.  Maybe I&#8217;m a newb — I just started using spreadsheets in, let&#8217;s see… <b>1984…</b> with Lotus 1-2-3.  Here is Excel 2004 for Mac, completely unusable for data entry.  (One minute Flash movie, may not appear in feed.)</p>
<p><embed src="/pix/2008/excels-at-what-exactly.swf" width="283" height="349" /></p>
<p>And people pay money for this?  Denigrate free/open-source software all you wish, but I never had a problem just <b>entering data</b> with Gnumeric or OpenOffice.</p>
<p>Someone appears to have <a href='http://forums.macworld.com/message/633215'>found a workaround</a>, posted just a few days ago.  Note that a workaround is <b>not a fix.</b>  Normally, “edit directly in cell” is something you might want to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/another-microsoft-rant/feed</wfw:commentRss>
		</item>
		<item>
		<title>Low-tech screencast</title>
		<link>http://contrapunctus.net/index.php/2008/low-tech-screencast</link>
		<comments>http://contrapunctus.net/index.php/2008/low-tech-screencast#comments</comments>
		<pubDate>Thu, 24 Apr 2008 12:45:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/low-tech-screencast</guid>
		<description><![CDATA[Common Craft has a fun and engaging style for presenting “Web 2.0” technologies with paper and white-boards.  Found at Presentation Zen, but I chose a different video than the two that appear there.  Enjoy “Wikis in Plain English”…

]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.commoncraft.com/'>Common Craft</a> has a fun and engaging style for presenting “Web 2.0” technologies with paper and white-boards.  Found at <a href='http://www.presentationzen.com/presentationzen/2008/04/simple-visual-u.html'>Presentation Zen</a>, but I chose a different video than the two that appear there.  Enjoy “Wikis in Plain English”…</p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/-dnL00TdmLY&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/-dnL00TdmLY&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/low-tech-screencast/feed</wfw:commentRss>
		</item>
		<item>
		<title>Presentation Zeno</title>
		<link>http://contrapunctus.net/index.php/2008/presentation-zeno</link>
		<comments>http://contrapunctus.net/index.php/2008/presentation-zeno#comments</comments>
		<pubDate>Tue, 22 Apr 2008 14:16:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[design]]></category>

		<category><![CDATA[talks]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/presentation-zeno</guid>
		<description><![CDATA[My talk at CCSC seemed to go okay.  I took more inspiration this time from Garr&#8217;s Presentation Zen blog and book.  I have always been relatively pleased with my visuals, I think because I received some good advice early on, and I&#8217;ve always had a reasonable sense of design.  But this is [...]]]></description>
			<content:encoded><![CDATA[<p>My talk at <a href='http://www.ccscne.org/2008/'>CCSC</a> seemed to go okay.  I took more inspiration this time from Garr&#8217;s <a href='http://www.presentationzen.com/'>Presentation Zen</a> blog and book.  I have always been relatively pleased with my visuals, I think because I received some good advice early on, and I&#8217;ve always had a reasonable sense of design.  But this is the first time I let go of some long-cherished approaches (for one, titles on each slide that successively tell the story) and the first time I used ‘full-bleed’ <a href='http://istockphoto.com/'>stock photography</a>.  Some of the slides also contain videos.  Here&#8217;s a slide-sorter view of most of the visuals (some redundant progressions elided).  Click to embiggen.</p>
<div class='photo'><a href='/pix/2008/ccsc-slides-1.png'><img src='/pix/2008/ccsc-slides-1-sm.png' /></a></div>
<div class='photo'><a href='/pix/2008/ccsc-slides-2.png'><img src='/pix/2008/ccsc-slides-2-sm.png' /></a></div>
<p>I think Garr&#8217;s advice worked because this talk is more persuasive than technical.  I&#8217;m not certain yet how I would adapt a talk about compilers or type theory.  But in a sense, all conference talks are persuasive.  You just don&#8217;t have time to convey the finer technical points in that format, so really the goal is to persuade the audience that your result is worth investigating after the talk is over.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/presentation-zeno/feed</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft</title>
		<link>http://contrapunctus.net/index.php/2008/microsoft</link>
		<comments>http://contrapunctus.net/index.php/2008/microsoft#comments</comments>
		<pubDate>Sun, 06 Apr 2008 19:15:02 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/microsoft</guid>
		<description><![CDATA[Many students are mystified, at first, by my ignorance of and apathy toward the Microsoft environment.  To many of them, Microsoft is the computer.  They&#8217;re younger than the IBM PC architecture itself, and didn&#8217;t experience the great diversity of home computers (Commodore, TI, Atari, Tandy, pre-Macintosh Apple) that my friends and I had [...]]]></description>
			<content:encoded><![CDATA[<p>Many students are mystified, at first, by my ignorance of and apathy toward the Microsoft environment.  To many of them, Microsoft <strong>is</strong> the computer.  They&#8217;re younger than the IBM PC architecture itself, and didn&#8217;t experience the great diversity of home computers (Commodore, TI, Atari, Tandy, pre-Macintosh Apple) that my friends and I had in the early-mid ’80s.  Nor did they witness the following decade of dueling proprietary Unix workstation vendors (DEC, Sun, SGI, HP).</p>
<p>The simple story is that I started using these Unix workstations in college in 1991, and never even bothered to install the clunky contemporary Windows 3.0 on my own PC.  By late 1992, I was installing early distributions of Linux.  I stayed in that academic Unix-using bubble until 2002.  Sure, I had seen Windows 95 briefly at a summer job.  But it wasn&#8217;t anything to take seriously.  I&#8217;m a bit younger than that condescending bearded hacker in the Dilbert strip, but I&#8217;m clearly his heir.</p>
<p>I bring up this story because I read a number of interesting comments on Slashdot about <a href="http://it.slashdot.org/article.pl?sid=08/04/05/2217243">resistance to Vista</a>, and the extended end-of-support deadlines for XP.  I&#8217;ll just pull out some examples here, first about programming languages:</p>
<blockquote><p>As for J#, C#, VB and WebDev, we&#8217;re back to the same &#8220;How do I keep giving Microsoft money&#8221; question again. Those are not standards. They&#8217;re proprietary solutions and stuff you build on them will obsolete every time Microsoft decides it needs more of your money. It&#8217;s a trap. Don&#8217;t fall into it. If you must program in those soon-to-be dead languages then you&#8217;ve created your own predicament and nobody can help you.  —symbolset
</p></blockquote>
<p>I guess that articulates why I resist VB and C# in our program, even though there is clearly demand for them in industry, and thus students want to learn.  Incidentally, another prof (who is not an anti-MS bigot) teaches those languages on occasion.</p>
<p>Here&#8217;s a provocative call for Microsoft to save themselves by turning Linux into Windows version 7:</p>
<blockquote><p>
This is going to sound crazy, but bear me out. So here&#8217;s what Microsoft does. They take the [Linux] OS and develop a Windows GUI for it. They pour a billion dollars or so into WINE development and research (while providing WINE&#8217;s coders with full access to existing Windows APIs) and they bring WINE&#8217;s performance and compatibility to dizzying heights. And then they sell it. Call it Windows, sell it as Windows and do what Apple&#8217;s done with Darwin. Keep the proprietary stuff proprietary and the OSS stuff OSS. You&#8217;d wind up with a rock-solid OS, and your users could run their old software until their apps received an update to the new system. Eventually WINE would no longer be needed.</p>
<p>This all sounds a lot like Apple, MacOS X and Classic, doesn&#8217;t it?</p>
<p>Anyway, there we go. I&#8217;m sure there are a thousand valid reasons why this couldn&#8217;t/wouldn&#8217;t work and naturally it will never happen. I understand that. I can dream though, can&#8217;t I?  —penginkun
</p></blockquote>
<p>How delusional am I, that this sounds like a perfectly reasonable strategy?  Problem is that Microsoft is completely allergic to it.</p>
<p>What Apple has done fantastically well with the OS X transition is to maintain basic compatibility between the GUI frameworks and the underlying command-line tools and system calls.  Apple adopts cups as their print server, adds some new GUIs and such, but continues to maintain ‘lpr’ and ‘cupsd.conf’.  When some new technology like Spotlight is added, it comes with command-line and file-system support.  Meanwhile, on Microsoft, you create a symbolic link on the Desktop, and you can&#8217;t use it from the command-line or Perl scripts or normal C code.  It&#8217;s not part of the file system; it&#8217;s just a façade that the (bloated) API provides.</p>
<p>I think this is why Apple has achieved significant market share among CS types and other scientists.  I&#8217;m not even certain it was an explicit design goal for OS X, but now that <a href="http://www.apple.com/science/">we&#8217;re a market segment</a>, let&#8217;s hope they keep it up.  One thing that Linux distributions are doing better is package management.  APT is great.  You can <a href="http://www.finkproject.org/">run APT on Mac</a> of course (and even <a href="http://www.saurik.com/id/1">on the iPhone</a>), but if Apple blessed it and you started seeing most applications and demos installed that way, it would be an improvement.</p>
<p>Anyway, I&#8217;m not sure I&#8217;d go as far as to say that Vista represents the complete <a href="http://www.paulgraham.com/microsoft.html">downfall of Microsoft</a>, but the mind-share monopoly is certainly fading.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/microsoft/feed</wfw:commentRss>
		</item>
		<item>
		<title>Image Inanity</title>
		<link>http://contrapunctus.net/index.php/2008/image-inanity</link>
		<comments>http://contrapunctus.net/index.php/2008/image-inanity#comments</comments>
		<pubDate>Tue, 01 Apr 2008 14:28:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[fun]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/image-inanity</guid>
		<description><![CDATA[A short video (1:22) of me venting my frustrations about email formats:

Transcript: In the old days, email was always plain text. And hard-core techies like me liked it that way.
Grudgingly, we came to accept HTML email.  With hypertext markup, you can have bold-face, fonts, images.
But this is still okay because you can resize the [...]]]></description>
			<content:encoded><![CDATA[<p>A short video (1:22) of me venting my frustrations about email formats:</p>
<p><embed src="/pix/2008/no-image-email.swf" width="640" height="485" /></p>
<p><strong>Transcript:</strong> In the old days, email was always plain text. And hard-core techies like me liked it that way.</p>
<p>Grudgingly, we came to accept HTML email.  With hypertext markup, you can have bold-face, fonts, images.</p>
<p>But this is still okay because you can resize the text if you need to, the text is searchable, and Apple Mail on Leopard even recognizes dates and integrates well with the calendar program.</p>
<p>Where I have to draw the line is emails where the entire message is an image.  It&#8217;s extremely common in our institution to create a full-page flier and then distribute it via email as an image.  It doesn&#8217;t resize.  It&#8217;s not searchable.  The dates are not recognized.  The MIME standard for multimedia email allows for plain-text alternatives in this case, but they are rarely available.</p>
<p>Here&#8217;s an even more egregious example, about the availability of our schedule of classes online.  The link is blue.  It&#8217;s underlined.  But it&#8217;s not clickable.  I can&#8217;t even copy and paste.  I have to type it in from sight.</p>
<p>Just say no to image-based email.  (And nevermind the inconsistency of distributing a 4 MB flash applet to demonstrate this simple point!  At least I provided a plain text alternative.)</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/image-inanity/feed</wfw:commentRss>
		</item>
		<item>
		<title>To appear at CCSC</title>
		<link>http://contrapunctus.net/index.php/2008/to-appear-at-ccsc</link>
		<comments>http://contrapunctus.net/index.php/2008/to-appear-at-ccsc#comments</comments>
		<pubDate>Thu, 20 Mar 2008 03:53:12 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[publications]]></category>

		<category><![CDATA[research]]></category>

		<category><![CDATA[talks]]></category>

		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/to-appear-at-ccsc</guid>
		<description><![CDATA[


In April, I will be presenting a new paper — Something for Everyone: AI Lab Assignments that Span Learning Styles and Aptitudes — at the Consortium for Computing Sciences in Colleges, held in the exotic, distant locale of Staten Island.  A preprint can be found in the publications section of my site.
I will be [...]]]></description>
			<content:encoded><![CDATA[<p><div class='inlinephoto'>
<a href='/photo/show/35a'><img alt='' src='/pix/phodb/3/5/35a.1.jpg'
   width='215' height='161' /></a></div><div class='inlinephoto'>
<a href='/photo/show/35c'><img alt='' src='/pix/phodb/3/5/35c.1.jpg'
   width='215' height='161' /></a></div></p>
<p>In April, I will be presenting a new paper — <i>Something for Everyone: AI Lab Assignments that Span Learning Styles and Aptitudes</i> — at the Consortium for Computing Sciences in Colleges, held in the exotic, distant locale of Staten Island.  A preprint can be found in the <a href='/league/research/papers/'>publications</a> section of my site.</p>
<p>I will be building a <a href='/sail/'>repository and wiki</a> about the assignments.  With any luck, it will be available in time for the presentation.  Shown here are some photos from our Connect 4 tournament during the first year I used these lab assignments.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/to-appear-at-ccsc/feed</wfw:commentRss>
		</item>
		<item>
		<title>Automated programming tutor</title>
		<link>http://contrapunctus.net/index.php/2008/automated-programming-tutor</link>
		<comments>http://contrapunctus.net/index.php/2008/automated-programming-tutor#comments</comments>
		<pubDate>Wed, 19 Mar 2008 23:10:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/automated-programming-tutor</guid>
		<description><![CDATA[This short video (3:24) is about an idea I have for an automated tool that would tutor and assess students on fundamental skills in computer programming.  I call it the ‘codeTutor’.  I find that students that need a lot of practice on rudiments are often not willing or not confident enough to create [...]]]></description>
			<content:encoded><![CDATA[<p>This short video (3:24) is about an idea I have for an automated tool that would tutor and assess students on fundamental skills in computer programming.  I call it the ‘codeTutor’.  I find that students that need a lot of practice on rudiments are often not willing or not confident enough to create their own exercises, and I don&#8217;t have the time to keep them inundated with practice problems.  So here&#8217;s my idea:</p>
<p><embed src="/pix/2008/codetutor-mockup.swf" height='551' width='737' /></p>
<p>If you think this is a {useful,great,dumb,old,…} idea, leave a comment or get in touch by email.  If you&#8217;d like to participate in building or testing, even better.  I&#8217;d want the tool to run as some kind of {Flash,Java} applet, or maybe Java WebStart program, just to lower the barrier to running it.  Since it will do some non-trivial manipulation of syntax trees (and for a variety of other good reasons), I may write it in Scala instead of just Java.  I&#8217;ve been toying with Scala for a few days,  even producing little Swing (GUI) apps, and I&#8217;m fairly pleased.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/automated-programming-tutor/feed</wfw:commentRss>
		</item>
		<item>
		<title>Viva Vivaldi</title>
		<link>http://contrapunctus.net/index.php/2008/viva-vivaldi</link>
		<comments>http://contrapunctus.net/index.php/2008/viva-vivaldi#comments</comments>
		<pubDate>Wed, 19 Mar 2008 04:38:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[fun]]></category>

		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/viva-vivaldi</guid>
		<description><![CDATA[Here&#8217;s my synthesized rendition (recorded using my Yamaha digital piano as a MIDI controller into Apple GarageBand on my MacBook Pro) of the first movement of Vivaldi&#8217;s concerto grosso in D minor (opus 3, number 11).

Or download vivaldi-cto-11-1.mp3 (possibly by right-clicking).  It&#8217;s just under 5 minutes and 5 megabytes.
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s my synthesized rendition (recorded using my Yamaha digital piano as a MIDI controller into Apple GarageBand on my MacBook Pro) of the first movement of Vivaldi&#8217;s concerto grosso in D minor (opus 3, number 11).</p>
<p><embed src="/pix/2008/mediaplayer.swf" width="470" height="20" allowscriptaccess="always" allowfullscreen="true" flashvars="height=20&#038;width=470&#038;file=/pix/2008/vivaldi-cto-11-1.mp3" /></p>
<p>Or download <a href='/pix/2008/vivaldi-cto-11-1.mp3'>vivaldi-cto-11-1.mp3</a> (possibly by right-clicking).  It&#8217;s just under 5 minutes and 5 megabytes.</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/viva-vivaldi/feed</wfw:commentRss>
		</item>
		<item>
		<title>Argumentatum ad ars divinum</title>
		<link>http://contrapunctus.net/index.php/2008/argumentatum</link>
		<comments>http://contrapunctus.net/index.php/2008/argumentatum#comments</comments>
		<pubDate>Thu, 13 Mar 2008 14:31:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[life]]></category>

		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/argumentatum</guid>
		<description><![CDATA[

On most days, I am an extreme rationalist and philosophical materialist, but I have one major weakness.  Any ‘delusion’ that inspired (for example) J.S. Bach to compose the Mass in B minor is definitely worth maintaining.
I recognize the fallacy.  In Bach&#8217;s culture, credo in unum deum was the only game in town.  [...]]]></description>
			<content:encoded><![CDATA[<p><div class='inlinephoto'>
<a href='/photo/show/78e'><img alt='' src='/pix/phodb/7/8/78e.1.jpg'
   width='228' height='152' /></a></div></p>
<p>On most days, I am an extreme rationalist and philosophical materialist, but I have one major weakness.  Any ‘<a href="http://richarddawkins.net/godDelusion">delusion</a>’ that inspired (for example) J.S. Bach to compose the <em>Mass in B minor</em> is definitely worth maintaining.</p>
<p>I recognize the fallacy.  In Bach&#8217;s culture, <em>credo in unum deum</em> was the only game in town.  Apologists may claim that without it, the Bachs could have been a family of bakers.  And perhaps their <em>panem diem</em> would have been divine too, but centuries later we could not partake.</p>
<p>At counterpoint is the old sentiment that an ordinary person must be thoroughly trained to excel, but we&#8217;d have to train a prodigy <strong>not</strong> to.  Who is to say what Bach could have composed if he grasped our deep and ancient connection to all life on earth, or perceived the majesty of the cosmos as we understand it today?</p>
<p>Still, what a tragedy it would be not to have the Mass in B minor.<br />
<em>Gratias agimus tibi propter magnam gloriam tuam.</em><br />
<em>Dona nobis pacem.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/argumentatum/feed</wfw:commentRss>
		</item>
		<item>
		<title>Bootstrap Blues</title>
		<link>http://contrapunctus.net/index.php/2008/bootstrap-blues</link>
		<comments>http://contrapunctus.net/index.php/2008/bootstrap-blues#comments</comments>
		<pubDate>Wed, 12 Mar 2008 15:04:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://contrapunctus.net/index.php/2008/bootstrap-blues</guid>
		<description><![CDATA[Bootstrapping a compiler can be a finicky process, because many compilers are written in the language that they compile.  It&#8217;s easy to paint yourself into a corner if you&#8217;re not extremely vigilant about binaries and configuration management.
I wanted to try SMLserver, a system for writing database-backed web services using Standard ML.  It is [...]]]></description>
			<content:encoded><![CDATA[<p>Bootstrapping a compiler can be a finicky process, because many compilers are written in the language that they compile.  It&#8217;s easy to paint yourself into a corner if you&#8217;re not extremely vigilant about binaries and configuration management.</p>
<p>I wanted to try SMLserver, a system for writing database-backed web services using Standard ML.  It is tightly integrated with the MLkit compiler.</p>
<p>Unfortunately, the distributed binaries would not run on my installation of Debian stable (codename ‘etch’) because they expect a newer version of ‘libc’, the main system library.  Upgrading that library could be pretty disruptive, which defeats the purpose of running a ‘stable’ distribution.</p>
<p>Unlike many compiler code bases, MLkit can be built by compilers other than itself, namely SML/NJ and MLton.  Ordinarily, this would simplify the process, except that the SML/NJ version it requires is ancient (and doesn&#8217;t itself compile out of the box anymore on this system) and MLton has extreme memory demands.</p>
<p>Fortunately, an older binary of MLkit (4.3.0) runs on this system, but at best that&#8217;s a starting point.  Once a particular revision can bootstrap itself, it&#8217;s natural for the source language to evolve beyond what the previous revision could handle.  But in this case, the changes were small.  Version 4.3.0 lacks some pieces of the ‘Posix.FileSys’ module that 4.3.2 needs, but they were small enough to rewrite:</p>
<blockquote><pre>Index: src/Tools/MlbMake/MlbFileSys.sml
===================================================================
--- src/Tools/MlbMake/MlbFileSys.sml	(revision 2311)
+++ src/Tools/MlbMake/MlbFileSys.sml	(working copy)
@@ -49,9 +49,9 @@
 	  | EQUAL => SysWord.compare (b,d)

     fun unique link f =
-	let val s = if link then Posix.FileSys.lstat f else Posix.FileSys.stat f
-	in (Posix.FileSys.inoToWord(Posix.FileSys.ST.ino s),
-	    Posix.FileSys.devToWord(Posix.FileSys.ST.dev s))
-	end
+        let val {dev,ino} = OS.FileSys.fileId f
+         in (Word.fromInt ino,
+             Word.fromInt dev)
+        end
   end

Index: src/Manager/Manager.sml
===================================================================
--- src/Manager/Manager.sml	(revision 2311)
+++ src/Manager/Manager.sml	(working copy)
@@ -807,7 +807,6 @@
            val fu = (Posix.IO.close (Posix.FileSys.creat (lockfile ^ unique,Posix.FileSys.S.iwusr)) ; true) handle OS.SysErr _ => false
            val f = if fu
                    then (Posix.FileSys.link{old=lockfile ^ unique, new=lockfile}; true)
-                        handle OS.SysErr _ => Posix.FileSys.ST.nlink (Posix.FileSys.stat (lockfile ^ unique)) = 2
                    else false
          in if fu then (Posix.FileSys.unlink (lockfile ^ unique); f) handle _ => f
             else false</code>
</pre>
</blockquote>
<p>Version 4.3.0 can build 4.3.2 patched thusly, which can then bootstrap its unmodified self.  Really, I lucked out here.  Imagine having to do this across a major compiler release cycle!</p>
]]></content:encoded>
			<wfw:commentRss>http://contrapunctus.net/index.php/2008/bootstrap-blues/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
