<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-588331022100968900</id><updated>2011-04-21T18:46:51.420-07:00</updated><title type='text'>Token Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aquasync.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/588331022100968900/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aquasync.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Charles</name><uri>http://www.blogger.com/profile/01336486561718167482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-588331022100968900.post-2131896903926438737</id><published>2009-05-03T01:11:00.000-07:00</published><updated>2009-05-03T01:24:25.695-07:00</updated><title type='text'>An introduction to mach1</title><content type='html'>&lt;p&gt;Mach1 is a(nother) ruby implementation. Its (somewhat ambitious) long-term goal is a faster ruby. The current short-term goal is just to be able to run mspec, so I can see just how wrong it is.&lt;/p&gt;&lt;p&gt;There's actually a lot of interesting work in the ruby implementation space at the moment - commercial stuff like crosstwine's faster ruby 1.8 &amp;amp; 1.9 versions, maglev, and blueruby; and opensource stuff like jruby, rubinius, and tinyrb.&lt;/p&gt;&lt;p&gt;I started mach1 mid-March, based on the Extensible Object Model paper by Ian Piumarta (much referenced - by _why (potion), Marc-Andre Cournoyer (tinyrb) and Evan Phoenix (rubinius)). In fact my starting point was the sample id-objmodel code, and the dynamic dispatch is still heavily based on that approach. I'm a fan of the work the VPRI guys are doing, and previously had a crack at bringing the elegance of Ometa to ruby (see &lt;a href="http://github.com/aquasync/ruby-ometa"&gt;ruby-ometa&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;At the moment, mach1's execution model is similar to idc (from the &lt;a href="http://piumarta.com/software/cola/"&gt;COLA project&lt;/a&gt;), consisting of AOT compilation to C, and thus to native code. It relies on a host ruby (to leave the pain of ruby parsing to ruby_parser), which converts source to bytecode. A further pass converts that to C. This is only required the first time a file is run, *and for every eval*. There is also the beginnings of a pure interpreter, but it needs updating.&lt;/p&gt;&lt;p&gt;Longer term, obviously other approaches are planned (JIT etc), but we'll see if things ever get that far.&lt;/p&gt;&lt;p&gt;Regardless of the execution strategy, the object model, dispatch, and core internal methods are all provided by the same runtime (within the runtime/ directory).&lt;/p&gt;&lt;p&gt;Anyway, if you want to take a look or help out, its on &lt;a href="http://github.com/aquasync/mach1"&gt;github&lt;/a&gt;. It's still pretty messy code, but at only ~5kloc, its small enough to understand fairly easily.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/588331022100968900-2131896903926438737?l=aquasync.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aquasync.blogspot.com/feeds/2131896903926438737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aquasync.blogspot.com/2009/05/introduction-to-mach1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/588331022100968900/posts/default/2131896903926438737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/588331022100968900/posts/default/2131896903926438737'/><link rel='alternate' type='text/html' href='http://aquasync.blogspot.com/2009/05/introduction-to-mach1.html' title='An introduction to mach1'/><author><name>Charles</name><uri>http://www.blogger.com/profile/01336486561718167482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-588331022100968900.post-2139557611722530560</id><published>2009-05-03T01:08:00.000-07:00</published><updated>2009-05-03T01:11:03.762-07:00</updated><title type='text'>A first post</title><content type='html'>&lt;p&gt;Well, I've finally got around to adding my voice to the masses - welcome to my Token Blog!&lt;/p&gt;&lt;p&gt;I (expect I) will be mostly gibbering about various open source projects I'm working on. At the moment, the one I'm spending some time on is mach1.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/588331022100968900-2139557611722530560?l=aquasync.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aquasync.blogspot.com/feeds/2139557611722530560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aquasync.blogspot.com/2009/05/first-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/588331022100968900/posts/default/2139557611722530560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/588331022100968900/posts/default/2139557611722530560'/><link rel='alternate' type='text/html' href='http://aquasync.blogspot.com/2009/05/first-post.html' title='A first post'/><author><name>Charles</name><uri>http://www.blogger.com/profile/01336486561718167482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
