<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Intersect &#187; Perl6</title>
	<atom:link href="http://theintersect.org/category/perl6/feed/" rel="self" type="application/rss+xml" />
	<link>http://theintersect.org</link>
	<description></description>
	<lastBuildDate>Sun, 05 Sep 2010 22:43:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>i maeked u a shell</title>
		<link>http://theintersect.org/2009/i-maeked-u-a-shell/</link>
		<comments>http://theintersect.org/2009/i-maeked-u-a-shell/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:17:15 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=67</guid>
		<description><![CDATA[(alternative title: Too Much Time on My Hands, which goes rather nicely with my last Perl 6 post).
So, in the beginning there was lolcats, then there was lolcode, then there was lolsql (jnthn even wrote a parser for it!) and then I took the joke too far and started lolsh, the lol Shell, in Perl [...]]]></description>
			<content:encoded><![CDATA[<p><small>(alternative title: <a href="http://en.wikipedia.org/wiki/Too_Much_Time_on_My_Hands">Too Much Time on My Hands</a>, which goes rather nicely with my <a href="http://theintersect.org/2009/domo-arigato-mr-roboto/">last Perl 6 post</a>).</small></p>
<p>So, in the beginning there was lolcats, then there was lolcode, then there was <a href="http://www.aaronbassett.com/2009/i-can-haz-lolsql/">lolsql</a> (jnthn even wrote a <a href="http://github.com/jnthn/lolsql">parser</a> for it!) and then I took the joke too far and started <a href="http://gist.github.com/229871">lolsh</a>, the lol Shell, in Perl 6.</p>
<p>It is very simple; it mimics bash&#8217;s UI as closely as possible, waits for input, and if the command entered is known it qqx&#8217;s the real-world equivalent.</p>
<blockquote><p>carlin@cerberus:~$ cd Applications/rakudo<br />
WTF?? I NO KNOE WUT U MEEN<br />
carlin@cerberus:~$ CHANGEDUH Applications/rakudo<br />
carlin@cerberus:~/Applications/rakudo$ perl Configure.pl<br />
WTF?? I NO KNOE WUT U MEEN<br />
carlin@cerberus:~/Applications/rakudo$ PURL Configure.pl<br />
Reading configuration information from parrot_config &#8230;<br />
Verifying Parrot installation&#8230;</p></blockquote>
<blockquote><p>carlin@cerberus:~/Applications/rakudo$ sudo make install<br />
WTF?? I NO KNOE WUT U MEEN<br />
carlin@cerberus:~/Applications/rakudo$ ICANHAZROOT MAEK install<br />
[sudo] password for carlin:<br />
/usr/bin/bin/parrot  /usr/bin/lib/parrot/1.7.0-devel/library/PGE/Perl6Grammar.pbc \<br />
&#8230;</p></blockquote>
<p>Hopefully someone has a &#8220;so that&#8217;s how you do &#8230;&#8221; moment while looking at this so that writing it was justified <img src='http://theintersect.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://icanhascheezburger.files.wordpress.com/2008/10/funny-pictures-a-letter-from-a-very-intelligent-cat.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/i-maeked-u-a-shell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Domo arigato, Mr. Roboto</title>
		<link>http://theintersect.org/2009/domo-arigato-mr-roboto/</link>
		<comments>http://theintersect.org/2009/domo-arigato-mr-roboto/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 05:45:42 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=55</guid>
		<description><![CDATA[I have always liked bots, I have written a few MediaWiki bots in other languages and the first non-trivial Perl 6 I wrote was my own Perl 6 MediaWiki bot framework (still not ready for any live-wiki editing yet). There just seems to be something about writing a program that imitates human behaviour (such as [...]]]></description>
			<content:encoded><![CDATA[<p>I have always liked bots, I have written a few MediaWiki <a href="http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/DYKBot">bots</a> <a href="http://http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/DYKadminBot">in</a> <a href="http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/AilurophobiaBot">other</a> <a href="http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/AloysiusLiliusBot">languages</a> and the first non-trivial Perl 6 I wrote was my own <a href="http://github.com/carlins/mwbot">Perl 6 MediaWiki bot framework</a> (still not ready for any live-wiki editing yet). There just seems to be something about writing a program that imitates human behaviour (such as editing a wiki, or chatting on IRC) that interests me. So, given that it had been suggested a few times that #perl6 should have a bot written in Perl 6, about a month ago I looked into writing one and soon gave up. The problem was Rakudo&#8217;s IO::Socket.rev() method which would only ever return once the connection closed. This worked fine for a MediaWiki bot operating over HTTP (which can connect, disconnect, receive with no problems) but was no good for an IRC bot (which needs a constant connection). It was, however, possible to have &#8216;blind&#8217; &#8220;bot&#8221; that could <a href="http://irclog.perlgeek.de/perl6/2009-10-20#i_1620490">send messages to the channel</a>, but as fun as that was, the bot wouldn&#8217;t be able to see PINGs from the server.</p>
<p>Being so close to having a Perl 6 IRC bot, I eventually come up with <a href="http://gist.github.com/214213">this hack</a> and a <a href="http://irclog.perlgeek.de/perl6/2009-10-20#i_1621344">non-visually challenged quux</a> was born. That hack evolved into <a href="http://github.com/rakudo/rakudo/commit/22ded10cd3f8e9774ca17d5bb8e42bed7efb7938">this patch</a> and IRC bots were suddenly possible on Rakudo.</p>
<p>Just over one week later and #perl6 now has three IRC bots written in Perl 6:</p>
<p><a href="http://github.com/carlins/rssbot/"><b>Zaslon</b></a>: Polls RSS feeds and announces in the channel whenever a blog it follows is updated. Zaslon also takes commands to add new blogs to follow, remove blogs or post a link to a blog. If anyone is wondering, Zaslon is named after the <a href="http://en.wikipedia.org/wiki/Zaslon_radar">Zaslon radar</a>.</p>
<p><a href="http://gist.github.com/226314"><b>pointme</b></a>: Pointme is a very simple bot that posts links to projects tracked by proto. If anything it is an example of how simple an IRC bot can be. Named after hugme, the idea being that hugme embraces people (adds them to the project) while pointme points them in the right direction.</p>
<p><a href="http://github.com/carlins/mubot/"><b>Mubot</b></a>: Mubot is a karma-tracking bot, written because everyone is sick of lambdabot responding to any message that begins with an &#8220;@&#8221; or &#8220;>&#8221; (and there might be a few other trigger characters). Mubot properly supports (Multiple word)++ identifiers (lambdabot would give &#8220;word)&#8221; karma) and aliases. It is named &#8216;Mu&#8217; since Mu is the letter after &#8216;lambda&#8217; in the Greek alphabet.</p>
<p>Of course, there are some issues with Perl 6 IRC bots at the moment.</p>
<p>The first issue is the lack of non-blocking IO, Zaslon is the bot that suffers mainly from this problem; it can&#8217;t poll the RSS feeds while it&#8217;s receiving messages from the IRC server. This isn&#8217;t so much of a problem for bots like Mubot that only need to quickly analyse each message as it comes in, but Zaslon takes a significant amount of time to poll the feeds which means if it was checking the RSS feeds when a command was given it could take ~1 minute for it to respond. This would also be a problem if it missed a PING from the server. So the work around was to split up the IRC and RSS parts into two processes. This and the memory problem I explain below forced me into using what was probably a better solution anyway; to have the RSS part run on a crontab. rakudobug++</p>
<p>The second issue is memory. This was really an accidental discovery on my part. Zaslon&#8217;s proof of concept was <a href="http://github.com/carlins/rssbot/tree/4421a05dfe9129ddf19e8ea5bc57c96b66bc4e60">quuxx</a> (look at the code at your own risk&#8230;), I had it running the Rakudo revision in which my recv patch was applied. When I wrote pointme I updated the rakudo, and set both quuxx and pointme going. After a while Parrot ran out of memory on my VPS, figuring it was because I had both running on a VPS where, between Apache, MySQL et al., memory is tight, I started quuxx again and left pointme turned off. After a bit Parrot ran out of memory again. After some experimenting I filed <a href="http://rt.perl.org/rt3/Ticket/Display.html?id=70183">RT #70183</a>. As a workaround I rolled my Rakudo back to <a href="http://github.com/rakudo/rakudo/tree/657d55cce1f1ded33fd1f731344bd31b33099cb8">657d55cce1f1ded33fd1f731344bd31b33099cb8</a> and it has been working fine.</p>
<p>The bots themselves also have (coding) problems, Zaslon starts <a href="http://irclog.perlgeek.de/perl6/2009-11-02#i_1676900">spouting nonsense</a> if the RSS feed is unavailable when it tries to access it and things break if you try to add an RSS feed that Zaslon&#8217;s very limited RSS &#8220;parser&#8221; can&#8217;t grok (or a URL that isn&#8217;t an RSS feed).</p>
<p>I haven&#8217;t, however, had any of the segfaults I seen with quuxx but perhaps I haven&#8217;t had any of the bots running long enough to allow any to happen.</p>
<p>My todo list at the moment looks something like this:</p>
<p>* Make HTTP::Client handle errors better<br />
* Make Zaslon handle RSS feeds it doesn&#8217;t understand better<br />
* Make IRC::Client bots able to read/respond to private messages<br />
* Make IRC::Client&#8217;s highlight method able to return the nick of the person who triggered it</p>
<p>So that&#8217;s that. I think I might start work on an IRC::Server now <img src='http://theintersect.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  (although that is blocked by <a href="http://rt.perl.org/rt3/Public/Bug/Display.html?id=70045">RT #70045</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/domo-arigato-mr-roboto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Out in the Open</title>
		<link>http://theintersect.org/2009/out-in-the-open/</link>
		<comments>http://theintersect.org/2009/out-in-the-open/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 10:45:18 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=34</guid>
		<description><![CDATA[Part of the fun of trying new platforms to test specific software is getting past the initial hurdles. On OpenSolaris it was figuring out how to install Git, Subversion, GNU Make and GCC (which I easily found out how to do). On Haiku it was figuring out why the compile was failing and how I [...]]]></description>
			<content:encoded><![CDATA[<p>Part of the fun of trying new platforms to test specific software is getting past the initial hurdles. <a href="http://theintersect.org/2009/solar-powered-rakudo/">On OpenSolaris</a> it was figuring out how to install Git, Subversion, GNU Make and GCC (which I easily found out how to do). <a href="http://theintersect.org/2009/rakudo-in-17-syllables/">On Haiku</a> it was figuring out why the compile was failing and how I could fix it. On OpenSolaris <a href="http://theintersect.org/2009/angering-the-sun-gods/">the second time round</a> it was figuring out why the compile was failing when it didn&#8217;t the first time. I have tried a few other platforms and never got anywhere with them due to problems that I could not figure out how to get past; on Minix I had trouble with the compiler failing and the configure script not working, on Hurd I had trouble with &#8230; well &#8230; getting it to boot. So wondering what challenges I would face I tried <a href="http://openbsd.org">OpenBSD</a>.</p>
<p>OpenBSD installed nicely, configured the network correctly (having internet connectivity is a big bonus) and already had GCC. However, getting Rakudo and Parrot turned out to be difficult. Git and Subversion are not installed by default and after wrestling with the package manager and trying to install the dependencies I gave up, tar&#8217;d up a fresh Rakudo/Parrot on my main machine and SFTP&#8217;d it across. Full of apprehension as to what would go wrong, I ran Parrot&#8217;s Configure.pl script. It worked and spat out a Makefile. So I ran <code>make install-dev</code>. It ran for a few seconds and then failed with:</p>
<p><code>Byte order is not compatible</code></p>
<p>It was Google to the rescue turning up <a href="http://www.perlmonks.org/?node_id=295796">this PerlMonks post</a>. The problem was I had cloned, checkedout and tar&#8217;d the files on a 64-bit machine, so I repeated the process on my laptop, SFTP&#8217;d the new tar and Parrot compiled quite nicely.</p>
<p>So I cd&#8217;d back to Rakudo and ran <code>perl Configure.pl</code> since I had used the &#8211;prefix flag on Parrot to install it to parrot_install/ in the Rakudo directory it should have detected the parrot_config automatically but I got an error:</p>
<p><code>===SORRY!===<br />
Parrot revision r41448 required (currently r0)</code></p>
<p><code>To automatically checkout (svn) and build a copy of parrot r41448,<br />
try re-running Configure.pl with the '--gen-parrot' option.<br />
Or, use the '--parrot-config' option to explicitly specify<br />
the location of parrot_config to be used to build Rakudo Perl.</code></p>
<p>I wasn&#8217;t paying attention and thought it hadn&#8217;t found the parrot_config binary, so I tried again with <code>perl Configure.pl --parrot-config=parrot_install/bin/parrot_config</code> and it did the same thing. So after I actually read the error message I figured it out; r0?</p>
<p>Parrot compiles its SVN revision number into the parrot_config binary, but since SVN wasn&#8217;t installed on the box it defaulted it to r0. My simple hack was to do:</p>
<p><code>$ echo 0 &gt; build/PARROT_REVISION</code></p>
<p>From Rakudo&#8217;s directory. This makes the configure script expect a Parrot with revision 0, which it thought I had. After that it created a makefile and Rakudo compiled as expected.</p>
<p>I got the spectests by tar&#8217;ing up the directory on my laptop and SFTP&#8217;ing it across. </p>
<p>4 hours later I got the results:</p>
<p>S02-magicals/config failed because OpenBSD isn&#8217;t a known OS. <a href="http://dev.pugscode.org/changeset/28588">Now fixed</a>.</p>
<p>S03-operators/arith #163 and S32-num/power #11 fail because, like OpenSolaris, OpenBSD thinks 1**Inf = NaN.</p>
<p>S29-context/sleep #2 and 4 also fail because OpenBSD sleeps for too long if &#8216;use Test&#8217; is included. I think this is the result of system slowness.</p>
<p><code>> say sleep 3;<br />
3.25350594520569<br />
> use Test; say sleep 3;<br />
21.6377711296082</code></p>
<p>What to try next? NetBSD?</p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/out-in-the-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Angering the sun gods</title>
		<link>http://theintersect.org/2009/angering-the-sun-gods/</link>
		<comments>http://theintersect.org/2009/angering-the-sun-gods/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 12:45:54 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=30</guid>
		<description><![CDATA[I must have commited hubris the last time I tried Rakudo on Solaris and had no trouble.
I booted up a fresh OpenSolaris partition today, the first time in about two weeks, installed all the tools and downloaded rakudo, however Parrot&#8217;s Configure.pl script gave out errors and it died during the build process as a result. [...]]]></description>
			<content:encoded><![CDATA[<p>I must have commited hubris the last time I tried <a href="http://theintersect.org/2009/solar-powered-rakudo/">Rakudo on Solaris</a> and had no trouble.</p>
<p>I booted up a fresh OpenSolaris partition today, the first time in about two weeks, installed all the tools and downloaded rakudo, however Parrot&#8217;s Configure.pl script <a href="http://paste2.org/p/443346">gave out errors</a> and it <a href="http://paste2.org/p/443353">died during the build</a> process as a result. Utterly confused (as it was working without any hassle two weeks ago) I decided to try Sun Studio&#8217;s C Compiler, and it built fine. So I ran the spectest and had a few failures that I do not remember getting last time.</p>
<p>The first failure was in S03-operators/arith.t #163 fails. This test checks that <code>1**Inf</code> returns 1, however on OpenSolaris:</p>
<p><code>&gt; say 1**Inf<br />
NaN</code></p>
<p>On Ubuntu:</p>
<p><code>&gt; say 1**Inf<br />
1</code></p>
<p>Utterly perplexed I asked on IRC but received no answer as to why this was happening, so I made a note to report it later.</p>
<p>I moved on then to sedate my curiosity into $*OS. I thought its value depended on the result of <code>uname -s</code> but OpenSolaris reports that as &#8216;SunOS&#8217; while its $*OS variable is &#8217;solaris&#8217;, so while digging into the code (I never did figure out how it works) I found that $*OSVER is defined in Rakudo. On my Ubuntu box it returns:<br />
<code>#49-Ubuntu SMP Tue Aug 18 19:25:34 UTC 2009</code><br />
and on Solaris it returns nada. It&#8217;s defined, but an empty string. Something to do with how Parrot works it out, I tried to dig into the source but didn&#8217;t understand it.</p>
<p>So having found a few issues I decided to look into my initial problems; GCC not working. I tried to compile it a few more times, each time it failing until the answer just came to me; Rakudo&#8217;s configure script was recently changed to pass &#8211;optimize to Parrot by default. It made sense, it Just Worked(tm) two weeks ago, in that time the &#8211;optimize flag was made a default and now it doesn&#8217;t work, so I tried building Parrot with GCC without the flag and it worked! Here the <a href="https://trac.parrot.org/parrot/ticket/1074">Parrot bug</a> that was filed.</p>
<p>My original intent was to see what spectests faster, Rakudo with GCC-Parrot or Rakudo with SSCC-Parrot. So I started spectesting the GCC-compiled-Parrot Rakudo and some strange failures came up that didn&#8217;t fail on the first run; t/spec/S32-num/log # 12 and 16. (Just an aside, S32-num/power #11 also fails but that&#8217;s because of 1**Inf). Confused I looked at the tests but couldn&#8217;t work it out, I thought I might have missed those failures in my first run so I rebuilt both Rakudo&#8217;s, one with GCC and one with SunStudio CC and set the spectests going. While they were spectesting I had a thought and decided to test the test:</p>
<p>On Ubuntu:<br />
<code>> say log(-Inf)<br />
NaN</code></p>
<p>On OpenSolaris:<br />
<code> > say log(-Inf)<br />
-Inf</code></p>
<p>Then I had a weird thought &#8230; on the Rakudo using a Parrot compiled with SunStudio CC:<br />
<code> > say log(-Inf)<br />
NaN</code></p>
<p>Oops?</p>
<p>I have no idea what is going on here, but I do know that Parrot and Rakudo need more people using other platforms <img src='http://theintersect.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>If I was using OpenSolaris as my $ONE_TRUE_OS I would have noticed this two weeks ago &#8230; I would love to be doing that but I life has been so easy with Ubuntu I don&#8217;t think I could handle the switch.</p>
<p>Just a postscript, when the &#8211;optimize change was made I booted my Haiku box, cloned a fresh Rakudo and rebuilt from scratch to test if it affected anything &#8230; curses!</p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/angering-the-sun-gods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rakudo in 17 syllables</title>
		<link>http://theintersect.org/2009/rakudo-in-17-syllables/</link>
		<comments>http://theintersect.org/2009/rakudo-in-17-syllables/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 13:10:16 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=12</guid>
		<description><![CDATA[Update 27/09/09: As of Parrot revision 41493 none of this is necessary, Parrot&#8217;s generic platform code checks if the time functions are available and replaces them if need-be (which is all moving the file from darwin&#8217;s code to generic was doing anyway).
The Haiku OS project released their Alpha 1 a few days ago and since [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Update 27/09/09:</strong> As of Parrot <a href="https://trac.parrot.org/parrot/changeset/41493/trunk">revision 41493</a> none of this is necessary, Parrot&#8217;s generic platform code checks if the time functions are available and replaces them if need-be (which is all moving the file from darwin&#8217;s code to generic was doing anyway).</em></p>
<p>The <a title="Haiku OS" href="http://www.haiku-os.org/">Haiku OS</a> project released their Alpha 1 a few days ago and since then I have been trying it on and off. I like what I see and by their official release I expect it will be a very nice operating system.</p>
<p>As I <a href="http://theintersect.org/?p=7">did with OpenSolaris</a> I wanted to put my time using the system to good use and test Rakudo on it. I happily discovered that GCC, Make, Subversion, Git and Perl are already installed by default so it was just a matter of getting Rakudo and building it.</p>
<p>As I unhappily discovered there are some issues which require a bit of hacking to get it to work. My methods are probably not ideal but they work <img src='http://theintersect.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The first step was opening a terminal window; right-click, select Add-Ons and select OpenTerminal (or press OPT-ALT-T, opt is the &#8216;Super key&#8217; or &#8216;Windows key&#8217;).</p>
<p>I checked out Rakudo with the familar:<br />
<code>~&gt; git clone git://github.com/rakudo/rakudo.git<br />
cd rakudo</code></p>
<p>Generated Parrot:<br />
<code>~&gt; perl Configure.pl --gen-parrot</code></p>
<p>And it is this point that things go wrong. The Parrot build fails when building the time function, my quick and easy work around was to copy the hires_timer.c file from the darwin-specific code to the generic-code.</p>
<p><code>~/rakudo/parrot/config/gen/platform&gt; mv generic/hires_timer.c generic/hires_timer.c.bak<br />
~/rakudo/parrot/config/gen/platform&gt; cp darwin/hires_timer.c generic/hires_timer.c</code></p>
<p>Attempting to rebuild Parrot got me past the initial hurdle but it still fails when dealing with the glut libraries. Luckily running</p>
<p><code>~/rakudo/parrot&gt; perl Configure.pl --help</code></p>
<p>Yielded the &#8211;without-opengl flag for Parrot. Compiling Parrot without OpenGL (which doesn&#8217;t seem to be necessary anyway) makes it skip anything glut-related.</p>
<p>So all I needed to do was pass that command to Parrot, and repeating the help command in Rakudo&#8217;s directory informed me that I could do that the easy way with:</p>
<p><code>~/rakudo&gt; perl Configure.pl --gen-parrot --gen-parrot-option='--without-opengl'</code></p>
<p>After this, Parrot compiled quite nicely and all was left was:</p>
<p><code>~/rakudo&gt; make install</code></p>
<p>And there it is, a working perl6 binary on Haiku:</p>
<p style="text-align: center;"><a href="http://theintersect.org/wp-content/uploads/2009/09/oh-haiku.png"><img class="aligncenter size-full wp-image-16" title="oh-haiku" src="http://theintersect.org/wp-content/uploads/2009/09/oh-haiku.png" alt="oh-haiku" width="272" height="256" /></a></p>
<p>The spectests completed with only one failure which, as with Solaris, was <a href="http://dev.pugscode.org/changeset/28322">easily fixed</a>.</p>
<p>So now that you have successfully compiled Parrot and Rakudo on Haiku, run:<br />
<code>~&gt; gcc --version</code></p>
<p>As you can see, by default, the Haiku project uses gcc 2.5 (which is 8 years old). They do this to retain compatibility with old BeOS programs. There is a GCC4 available, but apparently Parrot doesn&#8217;t need it.</p>
<p>However, assuming you don&#8217;t want a Parrot from the dark-ages, you can compile it with GCC4 by using:</p>
<p><code>~/rakudo&gt; perl Configure.pl --gen-parrot --gen-parrot-option='--without-opengl' --gen-parrot-option='--cc=/boot/develop/abi/x86/gcc4/tools/gcc-4.3.3-haiku-090629/bin/gcc'</code></p>
<p>Make sure you wipe out your parrot_install first with <code>~/rakudo&gt; rm -r parrot_install</code></p>
<p>Enjoy <img src='http://theintersect.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/rakudo-in-17-syllables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solar powered Rakudo</title>
		<link>http://theintersect.org/2009/solar-powered-rakudo/</link>
		<comments>http://theintersect.org/2009/solar-powered-rakudo/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 18:56:06 +0000</pubDate>
		<dc:creator>carlin</dc:creator>
				<category><![CDATA[Perl6]]></category>

		<guid isPermaLink="false">http://theintersect.org/?p=7</guid>
		<description><![CDATA[Lately I have been thinking more and more that Ubuntu is not the operating system for me. Don&#8217;t get me wrong, it is fantastic and I would easily recommend it to anyone wanting to try Linux but in the interest of expanding my horizons I decided to try something different. My first thought was another [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been thinking more and more that <a title="Ubuntu" href="http://ubuntu.com">Ubuntu</a> is not the operating system for me. Don&#8217;t get me wrong, it is fantastic and I would easily recommend it to anyone wanting to try Linux but in the interest of expanding my horizons I decided to try something different. My first thought was another Linux distribution, <a title="Gentoo" href="http://gentoo.org">Gentoo</a> being one I have meant to try for a long time now but instead I took the plunge into something completely different and installed <a title="OpenSolaris" href="http://opensolaris.org">OpenSolaris</a>, an open source Unix-like OS based on Sun&#8217;s Solaris.</p>
<p>My first impression was how nice the <a title="OpenSolaris UI" href="http://opensolaris.org/os/community/desktop/uispecs/indiana-uispec-200811/desktop.png">UI looked</a> (funny how we tend to notice the unimportant things first <img src='http://theintersect.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) , my second impression was that it seemed rather familiar coming from Ubuntu.</p>
<p>To put my adventuring to good use I wanted to test <a title="Rakudo Perl" href="http://rakudo.org">Rakudo</a> on it.</p>
<p>To install Rakudo in OSOL you need GCC, GNU Make, Subversion and Git. Perl is already installed.</p>
<p>To install these I did:</p>
<p><code>carlin@aethon:~$ pkg install SUNWgcc</code><br />
<code>carlin@aethon:~$ pkg install SUNWgmake</code><br />
<code>carlin@aethon:~$ pkg install SUNWgit</code><br />
<code>carlin@aethon:~$ pkg install SUNWsubversion</code></p>
<p>Then checked out Rakudo:</p>
<p><code>carlin@aethon:~$ git clone git://github.com/rakudo/rakudo.git<br />
carlin@aethon:~$ cd rakudo</code></p>
<p>Configured Rakudo and generated Parrot:</p>
<p><code>carlin@aethon:~/rakudo$ perl Configure.pl --gen-parrot</code></p>
<p>And then ran make:</p>
<p><code>carlin@aethon:~/rakudo$ gmake install</code></p>
<p>You have to type gmake to use GNU Make. The default <code>make</code> command runs Sun&#8217;s make utility and I wasn&#8217;t able to get it to work.</p>
<p>Everything seemed to go as expected and at the end I had a working Rakudo:</p>
<p><code>carlin@aethon:~/rakudo$ ./perl6<br />
&gt; say 'OH HAI';<br />
OH HAI</code></p>
<p>The spectest didn&#8217;t turn up platform-specific usualness, except that Solaris wasn&#8217;t a known OS to rakudo; which was <a href="http://dev.pugscode.org/changeset/28242">easily fixed</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://theintersect.org/2009/solar-powered-rakudo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
