<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Closures Part III &#8211; The Compiler</title>
	<atom:link href="http://www.mirandabanda.org/cogblog/2008/07/24/closures-part-iii-the-compiler/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mirandabanda.org/cogblog/2008/07/24/closures-part-iii-the-compiler/</link>
	<description>Speeding Up Croquet and Squeak with a new open-source VM from Teleplace</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:32:30 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: tim@rowledge.org</title>
		<link>http://www.mirandabanda.org/cogblog/2008/07/24/closures-part-iii-the-compiler/comment-page-1/#comment-177</link>
		<dc:creator>tim@rowledge.org</dc:creator>
		<pubDate>Thu, 24 Jul 2008 21:09:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.mirandabanda.org/cogblog/?p=12#comment-177</guid>
		<description>&quot;Its actually a five step dance:

1a recompile to the long form of the existing set
1b move to a VM that has the long form of the existing set and the long form of the new set
2a recompile to the long form of the new set
2b move to a VM that has the new bytecode set
3a recompile to the new bytecode set, short forms and all&quot;

Hunh? SystemTracer, dear boy.
1. write new compiler
2. Add systemtracer code to recompile compiledmethods using new compiler and set appropriate state in new image
3. run new image on new vm
With added luxury approach of 3a - run new image in simulator.

The cloner can substitute classes during the clone; for example you can have two classes in the image and set up the cloning so that the &#039;new&#039; class replaces all mentions of the old class as well as removing all now-redundant pointers and instances. I developed and used this in &#039;98 to clone images with the cleaner compiled method format (the older cloner code couldn&#039;t cope) for Interval. It has the advantage of fewer interlocked steps to replicate when you discover a bug that means restarting. DAMHIKT.</description>
		<content:encoded><![CDATA[<p>&#8220;Its actually a five step dance:</p>
<p>1a recompile to the long form of the existing set<br />
1b move to a VM that has the long form of the existing set and the long form of the new set<br />
2a recompile to the long form of the new set<br />
2b move to a VM that has the new bytecode set<br />
3a recompile to the new bytecode set, short forms and all&#8221;</p>
<p>Hunh? SystemTracer, dear boy.<br />
1. write new compiler<br />
2. Add systemtracer code to recompile compiledmethods using new compiler and set appropriate state in new image<br />
3. run new image on new vm<br />
With added luxury approach of 3a &#8211; run new image in simulator.</p>
<p>The cloner can substitute classes during the clone; for example you can have two classes in the image and set up the cloning so that the &#8216;new&#8217; class replaces all mentions of the old class as well as removing all now-redundant pointers and instances. I developed and used this in &#8217;98 to clone images with the cleaner compiled method format (the older cloner code couldn&#8217;t cope) for Interval. It has the advantage of fewer interlocked steps to replicate when you discover a bug that means restarting. DAMHIKT.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
