<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:ent="http://www.purl.org/NET/ENT/1.0/" version="2.0">
  <channel>
    <title>Curiouser and Curiouser! on llvm</title>
    <link>http://matt.blogs.it/</link>
    <description>RSS feed for topic llvm</description>
    <copyright>Copyright 2008 Matt Mower. Some rights reserved.</copyright>
    <generator>Squib/0.5.0.382</generator>
    <managingEditor>self@mattmower.com</managingEditor>
    <webMaster>self@mattmower.com</webMaster>
    <language>en-gb</language>
    <item>
      <title>Smalltalk on Objective-C</title>
      <link>http://matt.blogs.it/entries/00002883.html</link>
      <pubDate>Mon, 14 Jul 2008 10:47:10 +0100</pubDate>
      <description>&lt;p&gt;&lt;a href="http://etoileos.com/news/archive/2008/07/12/1410/"&gt;This&lt;/a&gt; looks interesting:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;This week, I committed the first version of the Smalltalk compiler I have been working on to Étoilé svn. Unlike other Smalltalk implementations, this is designed from the ground up for interoperability. Smalltalk objects are compiled (to native code) as Objective-C objects. This means that they can subclass Objective-C objects, and can even implement categories on Objective-C objects. There is no C function interface - if you want to call C functions then call them from Objective-C.&lt;/p&gt;
    
    &lt;p&gt;The compiler is in three components. SmalltalkKit contains everything required to take a string containing Smalltalk code and compile it to a set of Objective-C objects.&lt;/p&gt;
    
    &lt;p&gt;The Support library contains things needed by Smalltalk but not Objective-C. The most important class here is the BlockClosure class, which implements a Smalltalk block as an Objective-C object with a function pointer as an instance variable and pointers to bound variables and space for promoting other variables (eliminating the need for garbage collected stack frames). There are also a few categories, such as map: and related methods on NSArray which take blocks as arguments. Note that these are implemented in Objective-C even though they are used by Smalltalk - they could, in most cases, easily be implemented in Smalltalk instead.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Compiled Smalltalk on top of Objective-C? Damn! I wish I had time to look more closely but I haven't even had time to pursue &lt;a href="http://programming.nu/"&gt;Nu&lt;/a&gt;. I note in passing that it's implemented using &lt;a href="http://etoileos.com/news/archive/2008/07/12/1410/://llvm.org"&gt;LLVM&lt;/a&gt; which is something else I wish I had time to explore.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002883.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
  </channel>
</rss>
