<?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:blogger='http://schemas.google.com/blogger/2008' 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-952370979091055010</id><updated>2024-09-02T11:04:48.911+10:00</updated><category term="parrot"/><category term="jit"/><category term="llvm"/><category term="description"/><category term="blog"/><category term="idea"/><title type='text'>Bacek&#39;s blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.bacek.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-3599091080896780781</id><published>2011-05-01T20:36:00.000+10:00</published><updated>2011-05-01T20:36:37.600+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Crazy JIT Prototype - resurrection!</title><content type='html'>&lt;h1&gt;Aloha!&lt;/h1&gt;&lt;br&gt;
Couple of weeks ago &lt;a href=&quot;http://blog.bacek.com/2011/04/crazy-jit-prototype-is-on-hold.html&quot;&gt;I&amp;#39;ve put Parrot&amp;#39;s jit prototype on hold&lt;/a&gt;. One of the major issue was C macro preprocessor. Now, it&amp;#39;s time to unhold it&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/05/crazy-jit-prototype-resurrection.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3599091080896780781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3599091080896780781'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/05/crazy-jit-prototype-resurrection.html' title='Crazy JIT Prototype - resurrection!'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-6080335598304516962</id><published>2011-04-18T22:15:00.000+10:00</published><updated>2011-04-18T22:15:15.033+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Crazy JIT Prototype is on hold.</title><content type='html'>&lt;h2&gt;G&amp;#39;Day&lt;/h2&gt;&lt;br&gt;
“Crazy JIT prototype” is on hold. I found 2 big problems with current approach. Which will require a quite big effort from me (or anyone else) to “fix”.&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;&lt;li&gt;Parsing of larger subset of C. Mostly of &lt;code&gt;struct&lt;/code&gt; definitions and preprocessor.&lt;br&gt;
&lt;li&gt;Type analyzes.&lt;br&gt;
&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://blog.bacek.com/2011/04/crazy-jit-prototype-is-on-hold.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/6080335598304516962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/6080335598304516962'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/04/crazy-jit-prototype-is-on-hold.html' title='Crazy JIT Prototype is on hold.'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-7749758588020489576</id><published>2011-04-05T22:53:00.000+10:00</published><updated>2011-04-05T22:53:08.691+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Crazy JIT Prototype. Part 4.</title><content type='html'>&lt;h2&gt;Aloha&lt;/h2&gt;&lt;br&gt;
I&amp;#39;m little bit tired and doesn&amp;#39;t have energy to write lengthly post about “Crazy JIT prototype”. And I didn&amp;#39;t make a lot of progress since &lt;a href=&quot;http://blog.bacek.com/2011/03/crazy-jit-prototype-part-3.html&quot;&gt;last post&lt;/a&gt;. But still there is some good news and some roadblocks.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/04/crazy-jit-prototype-part-4.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7749758588020489576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7749758588020489576'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/04/crazy-jit-prototype-part-4.html' title='Crazy JIT Prototype. Part 4.'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-5796968599762176664</id><published>2011-03-28T21:24:00.000+11:00</published><updated>2011-03-28T21:24:32.789+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Crazy JIT Prototype. Part 3.</title><content type='html'>&lt;h2&gt;Hi there&lt;/h2&gt;&lt;br&gt;
Since &lt;a href=&quot;http://blog.bacek.com/2011/03/crazy-jit-prototype-work-in-progress.html&quot;&gt;last post&lt;/a&gt; about “Crazy JIT Prototype” and &lt;a href=&quot;http://blog.bacek.com/2011/03/llvm-in-parrot-is-getting-even-closer.html&quot;&gt;progress of &lt;code&gt;opsc_llvm&lt;/code&gt;&lt;/a&gt; branch I moved little bit further. Two major achievements:&lt;br&gt;
&lt;ul&gt;&lt;li&gt;Skeleton for generating JITted Subs is &lt;a href=&quot;https://github.com/parrot/parrot/blob/jit_prototype/compilers/opsc/src/Ops/JIT.pm&quot;&gt;done&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JITting of simple ops with function calls and constants&lt;/li&gt;
&lt;li&gt;Emulator of Parrot&amp;#39;s &lt;code&gt;runcore&lt;/code&gt; from within Parrot it self.&lt;br&gt;

&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://blog.bacek.com/2011/03/crazy-jit-prototype-part-3.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5796968599762176664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5796968599762176664'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/crazy-jit-prototype-part-3.html' title='Crazy JIT Prototype. Part 3.'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-5280009075205479490</id><published>2011-03-22T21:00:00.001+11:00</published><updated>2011-03-22T23:49:03.214+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>LLVM in Parrot is getting even closer!</title><content type='html'>&lt;h1&gt;Привет!&lt;/h1&gt;&lt;br /&gt;
After my &lt;a href=&quot;http://blog.bacek.com/2011/03/finishing-of-opscllvm-branch.html&quot;&gt;post&lt;/a&gt; about finishing &lt;a href=&quot;https://github.com/parrot/parrot/tree/opsc_llvm&quot;&gt;opsc_llvm&lt;/a&gt; branch few things happened.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/luben&quot;&gt;Luben Karavelov&lt;/a&gt; jumped on this branch and implemented writing and reading LLVM bitcode. It will allow faster turn-around for &lt;a href=&quot;https://github.com/parrot/parrot/tree/opsc_llvm&quot;&gt;crazy JIT prototype&lt;/a&gt; branch. Just because I don&#39;t have to spend time on generating quite complex Parrot&#39;s structures like &lt;code&gt;VTABLE&lt;/code&gt; (which is auto-generated during build from &lt;a href=&quot;https://github.com/parrot/parrot/blob/master/src/vtable.tbl&quot;&gt;template&lt;/a&gt; by some dark magic) and &lt;a href=&quot;https://github.com/parrot/parrot/blob/master/include/parrot/interpreter.h#L164&quot;&gt;parrot_interp_t&lt;/a&gt;. Just load pre-compiled LLVM bitcode and &lt;a href=&quot;https://github.com/parrot/parrot/blob/opsc_llvm/t/library/llvm/05-module.t#L30&quot;&gt;lookup type by name&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;James Keenan (aka jkeenan, aka kid51) stepped on “infrastructure” tasks. E.g. proper Configure/Makefile generating, &lt;a href=&quot;https://github.com/parrot/parrot/commit/c21ee4f29f&quot;&gt;testing&lt;/a&gt; and &lt;a href=&quot;http://irclog.perlgeek.de/parrot/2011-03-22#i_3413285&quot;&gt;LLVM version check&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://leto.net/perl&quot;&gt;Jonathan “Duke” Leto&lt;/a&gt; did initial changes for “Module Navigational Methods”, but looks like he was sidetracked by other issues.&lt;br /&gt;
&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Kudos for every contributor! Not only including someone who committed changes, but everyone involved.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5280009075205479490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5280009075205479490'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/llvm-in-parrot-is-getting-even-closer.html' title='LLVM in Parrot is getting even closer!'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-7984488731005247030</id><published>2011-03-21T21:55:00.001+11:00</published><updated>2011-03-22T23:49:18.344+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Crazy JIT Prototype. Work In Progress.</title><content type='html'>&lt;h1&gt;Bon jour&lt;/h1&gt;&lt;br&gt;
In last couple of days I was thinking about &amp;quot;CJP&amp;quot;. Major change in approach &amp;mdash; I will actually &amp;quot;JIT&amp;quot; few ops in one go. It doesn&amp;#39;t makes any sense to JIT one op only even for prototype.&lt;br&gt;
&lt;br&gt;
I&amp;#39;m currently playing with JITting small sub like this:&lt;br&gt;
&lt;pre&gt;.sub &amp;#39;main&amp;#39; :main
    say &amp;quot;Answer&amp;quot;
    say 42
    say &amp;quot;Correct&amp;quot;
.end
&lt;/pre&gt;&lt;br&gt;
Bytecode for this sub is:&lt;br&gt;
&lt;code&gt;&lt;br&gt;
0000:  00000000 00000000       say_sc&lt;br&gt;
0002:  00000001 0000002a       say_ic&lt;br&gt;
0004:  00000000 00000001       say_sc&lt;br&gt;
0006:  00000002                end&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/crazy-jit-prototype-work-in-progress.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7984488731005247030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7984488731005247030'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/crazy-jit-prototype-work-in-progress.html' title='Crazy JIT Prototype. Work In Progress.'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-7443234171948141655</id><published>2011-03-19T21:09:00.003+11:00</published><updated>2011-03-22T23:49:40.095+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="idea"/><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Parrot-on-Parrot or &quot;Crazy Idea For JIT Prototype&quot;</title><content type='html'>&lt;h1&gt;Aloha!&lt;/h1&gt;&lt;br&gt;
This is just a braindump of idea for prototyping of JIT in Parrot.&lt;br&gt;
&lt;br&gt;
As I described early now we have &lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-1.html&quot;&gt;properly&lt;/a&gt; &lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-2.html&quot;&gt;parsed&lt;/a&gt; ops and &lt;a href=&quot;http://blog.bacek.com/2011/03/finishing-of-opscllvm-branch.html&quot;&gt;half-baked&lt;/a&gt; LLVM bindings. Based on it I can implement JIT prototype for Parrot.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-on-parrot-or-crazy-idea-for-jit.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7443234171948141655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/7443234171948141655'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/parrot-on-parrot-or-crazy-idea-for-jit.html' title='Parrot-on-Parrot or &quot;Crazy Idea For JIT Prototype&quot;'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-3826905086657578244</id><published>2011-03-19T07:37:00.002+11:00</published><updated>2011-03-19T07:37:24.397+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blog"/><title type='text'>Blog updates.</title><content type='html'>Updated blog a little bit:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Switched to disqus for comments.&lt;br /&gt;
&lt;li&gt;Updated old posts to have &quot;Read more&quot; link instead of full text on homepage. They are still have full text in feed.&lt;br /&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3826905086657578244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3826905086657578244'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/blog-updates.html' title='Blog updates.'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-4779662346179888720</id><published>2011-03-18T21:22:00.002+11:00</published><updated>2011-03-22T23:49:58.460+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Finishing of opsc_llvm branch</title><content type='html'>&lt;h1&gt;Hi there!&lt;/h1&gt;&lt;br&gt;
&lt;h2&gt;Preamble&lt;/h2&gt;&lt;a href=&quot;http://blog.bacek.com/2011/03/ho-ho-ho-llvm-in-parrot-is-getting.html&quot;&gt;Few days ago&lt;/a&gt; I posted note about LLVM bindings in Parrot. It was in my experimental branch &lt;code&gt;opsc_llvm&lt;/code&gt;. When I started this branch it was purely my own playground for LLVM/opsc/JIT/etc. I had no idea what I can get out of it. Especially because I had no previous experience not only with with LLVM but with Parrot&amp;#39;s NCI (Native Call Interface) as well. But now I can almost get something really useful - Fully Functional LLVM Bindings.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/finishing-of-opscllvm-branch.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/4779662346179888720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/4779662346179888720'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/finishing-of-opscllvm-branch.html' title='Finishing of opsc_llvm branch'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-5538004544161396253</id><published>2011-03-17T10:43:00.003+11:00</published><updated>2011-03-22T23:50:15.377+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="description"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Parrot ops revamp in 3.2 (part 2)</title><content type='html'>Hi there.&lt;br&gt;
&lt;br&gt;
In &lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-1.html&quot;&gt;previous post&lt;/a&gt; I briefly described Parrot&amp;#39;s ops. For past 10 years we used to &amp;quot;parse&amp;quot; ops as just chunks of text almost without any semantics behind. And this approach used to work for this 10 years. But life changed and now we need more than this.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-2.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5538004544161396253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/5538004544161396253'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-2.html' title='Parrot ops revamp in 3.2 (part 2)'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-3665933722851816539</id><published>2011-03-15T20:50:00.002+11:00</published><updated>2011-03-22T23:50:27.882+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="description"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Parrot ops revamp in 3.2 (part 1)</title><content type='html'>Currently &lt;a href=&quot;http://www.parrot.org/&quot;&gt;Parrot VM&lt;/a&gt; consists of about 1000 ops. Each &lt;code&gt;op&lt;/code&gt; is smallest operation available. For example &lt;code&gt;add $I0, $I1, $I2&lt;/code&gt; and &lt;code&gt;goto label&lt;/code&gt;. Ops are implemented in some kind of C with quite few macro-substitutions for accessing registers and flow control. Let&amp;#39;s take simple &lt;code&gt;add&lt;/code&gt; op. &lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-1.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3665933722851816539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/3665933722851816539'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/parrot-ops-revamp-in-32-part-1.html' title='Parrot ops revamp in 3.2 (part 1)'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-952370979091055010.post-8722274884940055069</id><published>2011-03-15T15:18:00.003+11:00</published><updated>2011-03-22T23:50:43.849+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Ho-ho-ho. LLVM in Parrot is getting closer :)</title><content type='html'>Current results of few days of reading LLVM docs/tutorials and one day of hacking.&lt;br&gt;
&lt;br&gt;
Basically we can create something like:&lt;br&gt;
&lt;pre&gt;int foo() {
     printf(&amp;quot;Hello World\n&amp;quot;);
     return 42;
} 
&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
In run-time. With LLVM. JIT in parrot is getting closer :)&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://blog.bacek.com/2011/03/ho-ho-ho-llvm-in-parrot-is-getting.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/8722274884940055069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/952370979091055010/posts/default/8722274884940055069'/><link rel='alternate' type='text/html' href='http://blog.bacek.com/2011/03/ho-ho-ho-llvm-in-parrot-is-getting.html' title='Ho-ho-ho. LLVM in Parrot is getting closer :)'/><author><name>Bacek</name><uri>http://www.blogger.com/profile/12748998730186741807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>