<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Perl Six</title>
	<link>http://planetsix.perlfoundation.org</link>
	<language>en</language>
	<description>Planet Perl Six - http://planetsix.perlfoundation.org</description>

<item>
	<title>chromatic: Perl 6 Design Minutes for 19 November 2008</title>
	<guid>http://use.perl.org/~chromatic/journal/37997?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37997?from=rss</link>
	<description>&lt;p&gt;The Perl 6 design team met by phone on 19 November 2008.  Larry, Allison, Patrick, Jerry, Jesse, Will, Nicholas, and chromatic attended.&lt;/p&gt;&lt;p&gt; &lt;strong&gt;c:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;will let someone else discuss the Parrot Developers Summit&lt;/li&gt;&lt;li&gt;released Parrot 0.8.1 yesterday&lt;/li&gt;&lt;li&gt;mostly smooth, but didn't get in all of the features we wanted&lt;/li&gt;&lt;li&gt;looking at the plan for the next few months to figure out my next features&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;even if Parrot 0.8.1 didn't give all of the features we wanted, it was a useful deprecation point&lt;/li&gt;&lt;li&gt;lots of things merging into trunk today&lt;/li&gt;&lt;li&gt;the Parrot Developers Summit went very well this weekend&lt;/li&gt;&lt;li&gt;concentrated on bugfixes and getting lexicals to work&lt;/li&gt;&lt;li&gt;we were 95% of the way on Saturday&lt;/li&gt;&lt;li&gt;then I added one last feature, and everything fell apart&lt;/li&gt;&lt;li&gt;reviewing how Parrot manages contexts to figure that out&lt;/li&gt;&lt;li&gt;something's wrong with the collection of contexts&lt;/li&gt;&lt;li&gt;haven't worked on it much since Sunday, but working on it again today&lt;/li&gt;&lt;li&gt;updated the Rakudo roadmap in the Parrot repository&lt;/li&gt;&lt;li&gt;that looked pretty good&lt;/li&gt;&lt;li&gt;otherwise, little changes here and there&lt;/li&gt;&lt;li&gt;closed 10 or 12 tickets yesterday&lt;/li&gt;&lt;li&gt;more of the same coming up for me&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;organized the PDS over this weekend&lt;/li&gt;&lt;li&gt;most important thing we did was create the roadmap for Parrot 1.0&lt;/li&gt;&lt;li&gt;release date will be March 2009&lt;/li&gt;&lt;li&gt;it'll be a stable platform for high-level language implementors&lt;/li&gt;&lt;li&gt;Allison, chromatic, and I posted more details on use.perl.org and parrot.org&lt;/li&gt;&lt;li&gt;the most visible work product is the Parrot roadmap, which lists important and critical tasks for Parrot 1.0 and beyond&lt;/li&gt;&lt;li&gt;haven't made much progress on my grant in the past week&lt;/li&gt;&lt;li&gt;turning back to that now that the conference is over&lt;/li&gt;&lt;li&gt;hope to do a whiteboarding session with a couple of local developers later this week&lt;/li&gt;&lt;li&gt;then I'll have a draft for review&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;extremely pleased with the way the Summit went&lt;/li&gt;&lt;li&gt;makes a big difference to be able to say that we can deliver 1.0 in March&lt;/li&gt;&lt;li&gt;seems to be making a difference internally as well&lt;/li&gt;&lt;li&gt;working on the IO architecture&lt;/li&gt;&lt;li&gt;about to do the first merge back to trunk here shortly&lt;/li&gt;&lt;li&gt;have the copyright assignment from TPF to the Parrot Foundation as well&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;is Rakudo part of that?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;it's explicitly excluded&lt;/li&gt;&lt;li&gt;that copyright stays with TPF&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;but NQP stays with Parrot?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;as does PGE and the Parrot Compiler Toolkit&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Larry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;the &lt;em&gt;tryfile&lt;/em&gt; program now reports time and memory usage of the compilation it does&lt;/li&gt;&lt;li&gt;spent a lot of time refactoring the LTM to get rid of string processing and storage&lt;/li&gt;&lt;li&gt;switched over to a trie implementation, which is closer to a DFA implementation&lt;/li&gt;&lt;li&gt;uses less memory and is faster&lt;/li&gt;&lt;li&gt;not a great deal of either, but it's progress&lt;/li&gt;&lt;li&gt;a bad bug in STD's operator precedence parser&lt;/li&gt;&lt;li&gt;built nested pre- and post-fix operators inside out&lt;/li&gt;&lt;li&gt;fixed that and hopefully improved the algorithm at the same time&lt;/li&gt;&lt;li&gt;building STD now builds a Storable grammar of all of the lexers&lt;/li&gt;&lt;li&gt;should start up faster now&lt;/li&gt;&lt;li&gt;lexers can now reuse the patterns of the lexers of the parent class if they haven't changed&lt;/li&gt;&lt;li&gt;cuts down memory usage&lt;/li&gt;&lt;li&gt;refined the LTM tiebreaking rules as part of the trie switch&lt;/li&gt;&lt;li&gt;if there's a tie, the first tiebreak is &quot;which if the two rules had more literal characters matched at its front?&quot;&lt;/li&gt;&lt;li&gt;if you match a specific keyword exactly, it takes precedence over a generic rule which matches &lt;code&gt;\w*&lt;/code&gt; &lt;/li&gt;&lt;li&gt;seems to be DWIMmier&lt;/li&gt;&lt;li&gt;if that fails, it falls back on order tiebreaking&lt;/li&gt;&lt;li&gt;thinking a lot about iterator semantics and the API, mainly at Daniel Ruoso's request&lt;/li&gt;&lt;li&gt;several different ways to go&lt;/li&gt;&lt;li&gt;several different use cases&lt;/li&gt;&lt;li&gt;probably a matter of allowing any of those semantics underneath, but picking a good default&lt;/li&gt;&lt;li&gt;probably neither strictly lazy nor strictly eager&lt;/li&gt;&lt;li&gt;about four different gradations of laziness versus easiness&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;attempting to figure out where we are with Synopses and spec tests and implementations&lt;/li&gt;&lt;li&gt;when Parrot migrates to Trac, does Rakudo migrate to RT?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;it stays in RT on the perl.org infrastructure&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;is there a broad announcement of the plan?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;the roadmap is the main written information we produced&lt;/li&gt;&lt;li&gt;we should write out the general migration too&lt;/li&gt;&lt;li&gt;other languages will make their choices too as they move to public repositories&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;before the March release, Rakudo will move into its own repository on perl.org&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Will:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;in general, ripping stuff out of Parrot&lt;/li&gt;&lt;li&gt;trying to make ParTcl go faster&lt;/li&gt;&lt;li&gt;if anyone wants to help with that, let me know&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Tim Bunce has been doing great in Perl 5&lt;/li&gt;&lt;li&gt;and he's positive about Parrot&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;profiling tools aren't on the list for 1.0&lt;/li&gt;&lt;li&gt;but if they get done before then, great!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Nicholas:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;did someone name S17 from &quot;Threads&quot; to &quot;Concurrency&quot;?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;the canonical source for the Synopses is going to move to the Pugs repo&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;there will be announcements to the mailing lists&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;will there be any changes to version numbers and date updates?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;they stay up to date pretty well&lt;/li&gt;&lt;li&gt;people can be mindful of that&lt;/li&gt;&lt;li&gt;we can put commit hooks on them there too&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;we won't meet next week&lt;/li&gt;&lt;li&gt;I'll send mail confirming that&lt;/li&gt;&lt;/ul&gt;</description>
	<pubDate>Mon, 01 Dec 2008 19:57:52 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: .subst now honors :g(lobal) flag</title>
	<guid>http://use.perl.org/~pmichaud/journal/37989?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37989?from=rss</link>
	<description>&lt;p&gt;Today I added in support for the :global/:g flag in the .subst method (S05); now we can do things like:&lt;/p&gt;&lt;p&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; my $i = 0; say &quot;There's more than one way&quot;.subst(/e/, { ++$i }, :global);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Th1r2's mor3 than on4 way&lt;/p&gt;&lt;p&gt;Previously the .subst method would only work on the first match in a string.  Rakudo still doesn't recognize the case where the :global flag is part of the regex, but at least we now have at least one concise mechanism for performing global search/replace on a string.&lt;/p&gt;&lt;p&gt;Within the closure argument one can use $/, $0, $1, etc. to refer to the matched portions of the string in the replacement.  Getting that to work meant that we needed to fix the binding of $/ within closures -- it turns out the mechanism we were trying to use previously (!OUTER) can't really work in Parrot.  As a bonus, fixing this simplified actions.pm slightly, and removed several internal subroutine calls that were being performed at the start of each closure.&lt;/p&gt;&lt;p&gt;Of course, the pattern and replacement arguments to .subst can be simple strings, but any variable substitutions in the replacement string then refer to the outer environment and not the values from the matched string.&lt;/p&gt;&lt;p&gt;Now we just need to verify and add a few more tests for this. :-)&lt;/p&gt;&lt;p&gt;Pm&lt;/p&gt;</description>
	<pubDate>Mon, 01 Dec 2008 04:51:51 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: infix: now works on Ranges in Rakudo</title>
	<guid>http://use.perl.org/~pmichaud/journal/37967?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37967?from=rss</link>
	<description>Moritz found a bug in the infix:&amp;lt;Z&amp;gt; operator -- it wouldn't properly zip over a range:&lt;br /&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 09:04 &amp;lt;moritz_&amp;gt; rakudo: say (&amp;lt;a b c&amp;gt; Z 1..10).perl&lt;br /&gt;
&amp;nbsp; &amp;nbsp; 09:05 &amp;lt;p6eval&amp;gt; rakudo 33300: OUTPUT[elements() not implemented in class 'Range'&amp;amp;#9252;current&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; instr.: 'infix:Z' pc 4039 (src/gen_builtins.pir:2555)&amp;amp;#9252;]&lt;br /&gt;&lt;br /&gt;Normally we would expect this to return a list of lists:&lt;br /&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((&quot;a&quot;, 1), (&quot;b&quot;, 2), (&quot;c&quot;, 3))&lt;br /&gt;&lt;br /&gt;The problem here was that infix:&amp;lt;Z&amp;gt; was trying to determine the size of each of its elements by using the 'elements' opcode and then get the individual elements by using a subscript.  This failed for two reasons:  (1)  Ranges don't support postcircumfix:&amp;lt;[ ]&amp;gt;, and (2) Rakudo's implementation of Range didn't work for the 'elements' opcode.&lt;br /&gt;&lt;br /&gt;The real approach, as with most things dealing with lists, is to use iterators.  I changed the algorithm that it creates an iterator for each argument to infix:&amp;lt;Z&amp;gt;, and then walks those iterators in parallel to build the elements of the final result list.  When any of the argument iterators is empty, we're done building the list for infix:&amp;lt;Z&amp;gt;.&lt;br /&gt;&lt;br /&gt;As a general rule, I suspect most list operators and builtin functions should not be counting the number of elements or using subscripts to access individual elements of a List.  There are likely a few more functions like this in Rakudo that we should be replacing.&lt;br /&gt;&lt;br /&gt;Pm</description>
	<pubDate>Fri, 28 Nov 2008 19:42:38 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: Lexicals have arrived</title>
	<guid>http://use.perl.org/~pmichaud/journal/37943?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37943?from=rss</link>
	<description>&lt;p&gt;Earlier today I &lt;i&gt;finally&lt;/i&gt; got lexicals to work properly in Parrot (and Rakudo).  This means that recursion now works properly, as do a whole host of other things.  It resulted in closing at least eight tickets in the Rakudo and Parrot RT trackers, and we're still looking to see how many spectests it enables.&lt;/p&gt;&lt;p&gt;We're still missing list interpolation, list assignment, and a few other basic things, but lexicals support was a big blocker for many things we've wanted to do.  I'm glad it's finally done.&lt;/p&gt;&lt;p&gt;Many thanks to (irc nicks)  jonathan, infinoid, masak, moritz, particle, bacek, chromatic, rgrjr, Tene, tewk, allison, and many others who helped with debugging and testing.&lt;/p&gt;&lt;p&gt;Pm&lt;/p&gt;</description>
	<pubDate>Tue, 25 Nov 2008 20:10:33 +0000</pubDate>
</item>
<item>
	<title>chromatic: Automatic Variables in a GCd Language</title>
	<guid>http://use.perl.org/~chromatic/journal/37919?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37919?from=rss</link>
	<description>&lt;p&gt;One of the persistent bottlenecks in Parrot is that its naive, simple-to-describe stop-the-world mark-and-sweep garbage collector can be expensive.  Even though it's mostly &lt;code&gt;O(2n)&lt;/code&gt;, there's one characteristic of almost every program which makes &lt;em&gt;n&lt;/em&gt; far larger than you might want it to be: most GCable elements have short-to-very-short lifespans.  That's even true in Perl.&lt;/p&gt;&lt;p&gt;Cleverer GCs use tricks such as memory partitioning or generations to handle this problem.  When you need more memory, you first try to reclaim the youngest GCable elements, on the theory that most of them have very short lifespans.  Everything that survives that collection gets promoted to an older generation or copied to an older partition which you sweep less frequently.  Mark and sweep, at least as currently implemented in Parrot, always walks the entire live set of GCable elements every time the GC runs to completion.  Even if a PMC anchored in the root set has survived the last thousand GC runs, it still gets marked during every run.&lt;/p&gt;&lt;p&gt;We haven't fixed that yet.  (Replacing a garbage collector in a running system not exactly designed for pluggability of garbage collectors is not an easy task.)  Andrew Whitworth's proof of concept for Google's Summer of Code 2008 gave us a lot of good information to improve our GC, but that task is still ahead of us.&lt;/p&gt;&lt;p&gt;If you've programmed in C or C++, you're familiar with automatic variables.  These get allocated on the stack -- &lt;code&gt;int x; char y;&lt;/code&gt;.  If you've ever returned a pointer to a stack-allocated value, you've had fun debugging the results.  (&lt;a href=&quot;http://www.parrotvm.org/svn/parrot/revision?rev=32065&quot;&gt;Parrot r32065&lt;/a&gt; fixed an amusing bug related to this in Parrot.)&lt;/p&gt;&lt;p&gt;Heap variables you allocate yourself with &lt;code&gt;malloc/calloc&lt;/code&gt; and must explicitly &lt;code&gt;free&lt;/code&gt; yourself.  The advantage here is that you can pass pointers to them with impunity, no matter where you are in the call graph with regard to the stack location where you allocated them.&lt;/p&gt;&lt;p&gt;The memory characteristics of individual programs vary, but it's likely that a program uses many more stack variables than it does heap variables.  (I use the terms in a metaphorical sense.  What I really mean is &quot;Variables that don't escape the current compilation unit versus variables that do&quot;, but I don't want to talk about escape analysis.)&lt;/p&gt;&lt;p&gt;I don't know of many garbage collectors which can distinguish between stack-style GCables and heap-style GCables -- again, not without doing clever tricks with escape analysis.  This is one place where I do wish sometimes we had a tiny kernel with the VM bootstrapped atop; the semantics of C just don't let you express or analyze the memory characteristics of the program in any way that lends itself to automatic lifetime tracking.&lt;/p&gt;&lt;p&gt;It's also difficult to reason from the code &lt;em&gt;in general&lt;/em&gt; about the expected lifetime of a GCable element.  Every PMC or STRING returned from a C function has effectively escaped, and we can't predict what any future consumer of that API will do with the results.&lt;/p&gt;&lt;p&gt;Like many problems which are unsolveable &lt;em&gt;in general&lt;/em&gt;, there are specific exceptions.  Sometimes you can read the code and verify that you have what would be in C a stack variable -- even if it's a GCable entity.&lt;/p&gt;&lt;p&gt;I added a pair of functions in &lt;a href=&quot;http://www.parrotvm.org/svn/parrot/revision?rev=32313&quot;&gt;Parrot r32313&lt;/a&gt; called &lt;code&gt;temporary_pmc_new&lt;/code&gt; and &lt;code&gt;temporary_pmc_free&lt;/code&gt;.  The documentation has quite a few caveats that I won't explain (figuring that they're scary enough that anyone who doesn't understand their implications should not use them).  Basically, they're a way of creating a new PMC for the singular case where you &lt;em&gt;know&lt;/em&gt; it's specific and entire lifespan.&lt;/p&gt;&lt;p&gt;I mention this to say that I teased a nice 5.14% speedup out of our multidispatch algorithm today by turning two PMCs into temporary PMCs.  &lt;a href=&quot;http://www.parrotvm.org/svn/parrot/revision?rev=32963&quot;&gt;Parrot r32963&lt;/a&gt; shows how easy the patch was to write, once I had identified the hotspot and verified that this was an appropriate optimization.&lt;/p&gt;&lt;p&gt;The ultimate solution is to improve our garbage collector so that it can recycle lots of young garbage very quickly, but I'll take a 5% optimization for now if I can spend two or three minutes coding and ten minutes reviewing profiling runs.&lt;/p&gt;</description>
	<pubDate>Fri, 21 Nov 2008 08:22:36 +0000</pubDate>
</item>
<item>
	<title>perl6.announce: Parrot 0.8.1 &quot;Tio Richie&quot; Released! by chromatic</title>
	<guid>http://www.nntp.perl.org/group/perl.perl6.announce/2008/11/msg593.html</guid>
	<link>http://www.nntp.perl.org/group/perl.perl6.announce/2008/11/msg593.html</link>
	<description>On behalf of the Parrot team, I'm proud to announce Parrot 0.8.1 &amp;quot;Tio&lt;br /&gt;   Richie.&amp;quot; [1]  Parrot is a virtual machine aimed at running all dynamic&lt;br /&gt;   languages.&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Comrade! We are about to feast! Quick, get your fat&lt;br /&gt;     carcass behind this bush and get ready!&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Hello, small mammal.... Could you step in here for&lt;br /&gt;     a moment? I've got something to show you....&lt;br /&gt;&lt;br /&gt;     Fone Bone: Can't you show me out here, where I've got runnin' space?&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: No! No! Please! Step in here -- your friend the&lt;br /&gt;     dragon isn't around, is he?&lt;br /&gt;&lt;br /&gt;     Fone Bone: Hey, Ted! Where you goin'?&lt;br /&gt;&lt;br /&gt;     Ted: You're on yer own, Bone! (exit stage left)&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Quick, comrade! Start the cooking fire!&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: No. You called me fat.&lt;br /&gt;&lt;br /&gt;     Fone Bone: Ted! Wait for me!&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: (pulls Bone into the bush) Well, well... Look who's&lt;br /&gt;     joined us for supper... Go start the cooking fire!!&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: No. You called me fat.&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: No?!!! What do you mean, no?!!!&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: And it's not the first time you've done it&lt;br /&gt;     either....&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Comrade... be reasonable! I wasn't thinking -- I&lt;br /&gt;     was trying to catch our dinner -- this isn't the time -- I take it&lt;br /&gt;     back.... you're not fat.&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: Too late!&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Please, comrade! I just want to chop him up for the&lt;br /&gt;     stew!&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: And that's another thing. I'm tired of stew! I want&lt;br /&gt;     to put him in a crust and bake a light fluffy quiche!&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: Quiche?! What kind of food is that for a monster to&lt;br /&gt;     eat?! .... Listen, do you think you could come back in half an hour?&lt;br /&gt;     We'll have this straightened out by then!&lt;br /&gt;&lt;br /&gt;     Bone: (runs away)&lt;br /&gt;&lt;br /&gt;     Rat Creature #1: (beat) Why didn't you stop me?&lt;br /&gt;&lt;br /&gt;     Rat Creature #2: Why should I? You're so smart!&lt;br /&gt;&lt;br /&gt;     time passes&lt;br /&gt;&lt;br /&gt;     Fone Bone: (hanging from a branch in a waterfall) Those rat&lt;br /&gt;     creatures would have to be pretty stupid to follow me on to this&lt;br /&gt;     frail, little branch!&lt;br /&gt;&lt;br /&gt;     Rat Creatures: (follow Bone on to the frail, little branch)&lt;br /&gt;&lt;br /&gt;     Fone Bone: Stupid, stupid rat creatures!! (branch breaks)&lt;br /&gt;&lt;br /&gt;     -- &amp;quot;Bone&amp;quot;, by Jeff Smith&lt;br /&gt;&lt;br /&gt;   Parrot 0.8.1 is available via CPAN (soon [2]). You may also see the Parrot&lt;br /&gt;   download instructions[3]. For those who would like to develop on Parrot, or&lt;br /&gt;   help develop Parrot itself, we recommend using Subversion [4] on our source&lt;br /&gt;   code repository [5] to get the latest and best Parrot code.&lt;br /&gt;&lt;br /&gt;   Please note the updated Parrot Roadmap [6] and our goals leading to the 1.0&lt;br /&gt;   release.&lt;br /&gt;&lt;br /&gt;   Parrot 0.8.1 News:&lt;br /&gt;- Implementation&lt;br /&gt;  + added CPAN module Storable 2.12 as a configuration and build dependency&lt;br /&gt;  + removed the pseudo PIR opcode 'addr'&lt;br /&gt;  + added the 'box' opcode&lt;br /&gt;  + fixed 'pop_eh' handling in PIR libraries and examples&lt;br /&gt;  + removed usage of .return for tailcalls (use .tailcall instead)&lt;br /&gt;  + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR&lt;br /&gt;  + improved debugger and HLL coordination&lt;br /&gt;  + allowed MMD primitive autoboxing&lt;br /&gt;  + fixed all known memory leaks in PIR &amp;quot;Hello, world!&amp;quot;&lt;br /&gt;  + NCI signatures now JITted on x86-32 platforms (Windows and Linux)&lt;br /&gt;  + made the .const directive take a quoted type name instead of a constant&lt;br /&gt;  + made IMCC more re-entrant&lt;br /&gt;- Languages&lt;br /&gt;  + Rakudo&lt;br /&gt;    - refactored Junctions implementation&lt;br /&gt;    - added &amp;quot;fire and forget&amp;quot; tool to rebase/rebuild/test Parrot and Rakudo&lt;br /&gt;    - updated container/reference semantics&lt;br /&gt;    - added more builtin methods and functions&lt;br /&gt;    - improved support for multilevel namespaces&lt;br /&gt;    - added support for .Str, .succ, .pred in user-defined classes&lt;br /&gt;    - implemented pointy blocks on if/loops&lt;br /&gt;    - increased STD.pm convergence&lt;br /&gt;    - added %*VM hash&lt;br /&gt;    - improved MMD candidate sorting&lt;br /&gt;    - improved integration of Num and Int&lt;br /&gt;    - implemented increment on protoobjects&lt;br /&gt;    - added initial support for MAIN subs&lt;br /&gt;    - added .PARROT method&lt;br /&gt;  + Pipp&lt;br /&gt;    - added some predefined constants.&lt;br /&gt;    - added implemention of the function basename().&lt;br /&gt;  + Cardinal (Ruby)&lt;br /&gt;    - Added initial support for the classes Proc, Continuation, Queue, Dir, &lt;br /&gt;File&lt;br /&gt;, and FileStat&lt;br /&gt;    - fixed various minor bugs&lt;br /&gt;    - fixed broken Regexes&lt;br /&gt;- Compilers&lt;br /&gt;  + PCT&lt;br /&gt;    - added '.isa' method to PCT::Node&lt;br /&gt;    - cleaned up 'immediate block' handling&lt;br /&gt;    - allowed arguments to immediate blocks in loops/conditionals&lt;br /&gt;    - metaclass objects can now 'add_method'&lt;br /&gt;  + PIRC&lt;br /&gt;    - integrated macro processing in PIRC's lexer&lt;br /&gt;    - integrated heredoc lexer in PIRC executable&lt;br /&gt;    - added preprocess and heredoc-preprocess commandline options&lt;br /&gt;    - integrated the PASM grammar into PIRC&lt;br /&gt;    - added a register allocator to optimize the built-in vanilla allocator&lt;br /&gt;    - code cleanups and documentation&lt;br /&gt;    - added 'make test' target&lt;br /&gt;   + TGE&lt;br /&gt;    - updated to work with new namespace/classname syntax&lt;br /&gt;- Deprecations&lt;br /&gt;  + PARROT_API will become PARROT_EXPORT&lt;br /&gt;  + :lexid will become :subid&lt;br /&gt;- Miscellaneous&lt;br /&gt;  + Documentation&lt;br /&gt;    - updates and additions to the Parrot book (see docs/book/)&lt;br /&gt;  + OpenGL&lt;br /&gt;    - minor fixes to Parrot's base OpenGL bindings&lt;br /&gt;    - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)&lt;br /&gt;    - added simplified OpenGL PIR example for NCI JIT testing&lt;br /&gt;  + Tests&lt;br /&gt;    - further improvements to parallel tests&lt;br /&gt;    - tests no longer leave filesystem breadcrumbs&lt;br /&gt;&lt;br /&gt;   Thanks to all our contributors for making this possible, and our&lt;br /&gt;   sponsors for supporting this project. Our next release is 16 Dec 2008.&lt;br /&gt;&lt;br /&gt;   Enjoy!&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;&lt;br /&gt;   1. http://parrotcode.org/&lt;br /&gt;   2. http://search.cpan.org/dist/parrot&lt;br /&gt;   3. http://parrotcode.org/source.html&lt;br /&gt;   4. http://subversion.tigris.org/&lt;br /&gt;   5. https://svn.perl.org/parrot/trunk/&lt;br /&gt;   6. https://trac.parrot.org/parrot/wiki/ParrotRoadmap&lt;br /&gt;</description>
	<pubDate>Wed, 19 Nov 2008 06:39:30 +0000</pubDate>
</item>
<item>
	<title>chromatic: Parrot 0.8.1 &quot;Tio Richie&quot; Released!</title>
	<guid>http://use.perl.org/~chromatic/journal/37906?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37906?from=rss</link>
	<description>&lt;p&gt;On behalf of the Parrot team, I'm proud to announce Parrot 0.8.1
&amp;quot;Tio Richie.&amp;quot; &lt;a href=&quot;http://parrotcode.org/&quot;&gt;Parrot&lt;/a&gt;
is a virtual machine aimed at running all dynamic languages.&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Comrade!  We are about to feast!  Quick, get your fat carcass behind this bush and get ready!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Hello, small mammal.... Could you step in here for a moment?  I've got something to show you....&lt;/p&gt;&lt;p&gt; &lt;em&gt;Fone Bone&lt;/em&gt;: Can't you show me out here, where I've got runnin' space?&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: No!  No!  Please!  Step in here -- your friend the dragon isn't around, is he?&lt;/p&gt;&lt;p&gt; &lt;em&gt;Fone Bone&lt;/em&gt;: Hey, Ted!  Where you goin'?&lt;/p&gt;&lt;p&gt; &lt;em&gt;Ted&lt;/em&gt;: You're on yer own, Bone!  &lt;em&gt;(exit stage left)&lt;/em&gt; &lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Quick, comrade!  Start the cooking fire!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;: No.  You called me fat.&lt;/p&gt;&lt;p&gt; &lt;em&gt;Fone Bone&lt;/em&gt;: Ted!  Wait for me!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: &lt;em&gt;(pulls Bone into the bush)&lt;/em&gt;  Well, well... Look who's joined us for supper... Go start the cooking fire!!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;:  No.  You called me fat.&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: No?!!! What do you mean, no?!!!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;: And it's not the first time you've done it either....&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Comrade... be reasonable! I wasn't thinking -- I was trying to catch our dinner -- this isn't the time -- I take it back.... you're not fat.&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;: Too late!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Please, comrade!  I just want to chop him up for the stew!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;: And that's another thing.  I'm tired of stew!  I want to put him in a crust and bake a light fluffy quiche!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: Quiche?!  What kind of food is that for a monster to eat?! .... Listen, do you think you could come back in half an hour?  We'll have this straightened out by then!

&lt;/p&gt;&lt;p&gt; &lt;em&gt;Bone&lt;/em&gt;: &lt;em&gt;(runs away)&lt;/em&gt; &lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #1&lt;/em&gt;: (beat)  Why didn't you stop me?&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creature #2&lt;/em&gt;: Why should I?  You're so smart!

&lt;/p&gt;&lt;p&gt; &lt;em&gt;time passes&lt;/em&gt;

&lt;/p&gt;&lt;p&gt; &lt;em&gt;Fone Bone&lt;/em&gt;: &lt;em&gt;(hanging from a branch in a waterfall)&lt;/em&gt;  Those rat creatures would have to be pretty stupid to follow me on to this frail, little branch!&lt;/p&gt;&lt;p&gt; &lt;em&gt;Rat Creatures&lt;/em&gt;: &lt;em&gt;(follow Bone on to the frail, little branch)&lt;/em&gt;

&lt;/p&gt;&lt;p&gt; &lt;em&gt;Fone Bone&lt;/em&gt;:  Stupid, stupid rat creatures!!  &lt;em&gt;(branch breaks)&lt;/em&gt; &lt;/p&gt;&lt;p&gt; &quot;Bone&quot;, by Jeff Smith&lt;/p&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;p&gt;Parrot 0.8.1 is available via &lt;a href=&quot;http://search.cpan.org/dist/parrot&quot;&gt;CPAN&lt;/a&gt; (soon), or &lt;a href=&quot;http://parrotcode.org/source.html&quot;&gt;follow the Parrot download
instructions&lt;/a&gt;.  For those who would like to develop on Parrot, or help
develop Parrot itself, we recommend using &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;  on &lt;a href=&quot;https://svn.perl.org/parrot/trunk/&quot;&gt;our source code repository&lt;/a&gt; to get
the latest and best Parrot code.&lt;/p&gt;&lt;p&gt;Please note the updated &lt;a href=&quot;https://trac.parrot.org/parrot/wiki/ParrotRoadmap&quot;&gt;Parrot Roadmap&lt;/a&gt; and
our goals leading to the 1.0 release.&lt;/p&gt;&lt;p&gt;Parrot 0.8.1 News:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt; &lt;tt&gt;- Implementation&lt;br /&gt;&amp;nbsp; + added CPAN module Storable 2.12 as a configuration and build dependency&lt;br /&gt;&amp;nbsp; + removed the pseudo PIR opcode 'addr'&lt;br /&gt;&amp;nbsp; + added the 'box' opcode&lt;br /&gt;&amp;nbsp; + fixed 'pop_eh' handling in PIR libraries and examples&lt;br /&gt;&amp;nbsp; + removed usage of .return for tailcalls (use .tailcall instead)&lt;br /&gt;&amp;nbsp; + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR&lt;br /&gt;&amp;nbsp; + improved debugger and HLL coordination&lt;br /&gt;&amp;nbsp; + allowed MMD primitive autoboxing&lt;br /&gt;&amp;nbsp; + fixed all known memory leaks in PIR &quot;Hello, world!&quot;&lt;br /&gt;&amp;nbsp; + NCI signatures now JITted on x86-32 platforms (Windows and Linux)&lt;br /&gt;&amp;nbsp; + made the .const directive take a quoted type name instead of a constant&lt;br /&gt;&amp;nbsp; + made IMCC more re-entrant&lt;br /&gt;- Languages&lt;br /&gt;&amp;nbsp; + Rakudo&lt;br /&gt;&amp;nbsp; &amp;nbsp; - refactored Junctions implementation&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added &quot;fire and forget&quot; tool to rebase/rebuild/test Parrot and Rakudo&lt;br /&gt;&amp;nbsp; &amp;nbsp; - updated container/reference semantics&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added more builtin methods and functions&lt;br /&gt;&amp;nbsp; &amp;nbsp; - improved support for multilevel namespaces&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added support for .Str, .succ, .pred in user-defined classes&lt;br /&gt;&amp;nbsp; &amp;nbsp; - implemented pointy blocks on if/loops&lt;br /&gt;&amp;nbsp; &amp;nbsp; - increased STD.pm convergence&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added %*VM hash&lt;br /&gt;&amp;nbsp; &amp;nbsp; - improved MMD candidate sorting&lt;br /&gt;&amp;nbsp; &amp;nbsp; - improved integration of Num and Int&lt;br /&gt;&amp;nbsp; &amp;nbsp; - implemented increment on protoobjects&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added initial support for MAIN subs&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added .PARROT method&lt;br /&gt;&amp;nbsp; + Pipp&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added some predefined constants.&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added implemention of the function basename().&lt;br /&gt;&amp;nbsp; + Cardinal (Ruby)&lt;br /&gt;&amp;nbsp; &amp;nbsp; - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat&lt;br /&gt;&amp;nbsp; &amp;nbsp; - fixed various minor bugs&lt;br /&gt;&amp;nbsp; &amp;nbsp; - fixed broken Regexes&lt;br /&gt;- Compilers&lt;br /&gt;&amp;nbsp; + PCT&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added '.isa' method to PCT::Node&lt;br /&gt;&amp;nbsp; &amp;nbsp; - cleaned up 'immediate block' handling&lt;br /&gt;&amp;nbsp; &amp;nbsp; - allowed arguments to immediate blocks in loops/conditionals&lt;br /&gt;&amp;nbsp; &amp;nbsp; - metaclass objects can now 'add_method'&lt;br /&gt;&amp;nbsp; + PIRC&lt;br /&gt;&amp;nbsp; &amp;nbsp; - integrated macro processing in PIRC's lexer&lt;br /&gt;&amp;nbsp; &amp;nbsp; - integrated heredoc lexer in PIRC executable&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added preprocess and heredoc-preprocess commandline options&lt;br /&gt;&amp;nbsp; &amp;nbsp; - integrated the PASM grammar into PIRC&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added a register allocator to optimize the built-in vanilla allocator&lt;br /&gt;&amp;nbsp; &amp;nbsp; - code cleanups and documentation&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added 'make test' target&lt;br /&gt;&amp;nbsp; &amp;nbsp;+ TGE&lt;br /&gt;&amp;nbsp; &amp;nbsp; - updated to work with new namespace/classname syntax&lt;br /&gt;- Deprecations&lt;br /&gt;&amp;nbsp; + PARROT_API will become PARROT_EXPORT&lt;br /&gt;&amp;nbsp; + :lexid will become :subid&lt;br /&gt;- Miscellaneous&lt;br /&gt;&amp;nbsp; + Documentation&lt;br /&gt;&amp;nbsp; &amp;nbsp; - updates and additions to the Parrot book (see docs/book/)&lt;br /&gt;&amp;nbsp; + OpenGL&lt;br /&gt;&amp;nbsp; &amp;nbsp; - minor fixes to Parrot's base OpenGL bindings&lt;br /&gt;&amp;nbsp; &amp;nbsp; - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)&lt;br /&gt;&amp;nbsp; &amp;nbsp; - added simplified OpenGL PIR example for NCI JIT testing&lt;br /&gt;&amp;nbsp; + Tests&lt;br /&gt;&amp;nbsp; &amp;nbsp; - further improvements to parallel tests&lt;br /&gt;&amp;nbsp; &amp;nbsp; - tests no longer leave filesystem breadcrumbs&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt; &lt;/blockquote&gt;&lt;p&gt;Thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next release is 16 Dec 2008.&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;</description>
	<pubDate>Wed, 19 Nov 2008 03:35:14 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: Updated rakudo ROADMAP</title>
	<guid>http://use.perl.org/~pmichaud/journal/37900?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37900?from=rss</link>
	<description>&lt;p&gt;Tonight I updated Rakudo's &lt;a href=&quot;http://svn.perl.org/parrot/trunk/languages/perl6/ROADMAP&quot;&gt;ROADMAP&lt;/a&gt; file to reflect the progress we've made since it was last done (August 2008, YAPC::EU).  At first I thought there wouldn't be much to update, but it turns out we've accomplished a fair bit.&lt;/p&gt;&lt;p&gt;More importantly, more infrastructure pieces are falling into place so that the remaining items become even easier than they were before.   I expect to see good progress during the next month or so.&lt;/p&gt;&lt;p&gt;This weekend many of us attended the &lt;a href=&quot;http://www.parrot.org/wiki/parrot-developer-summit-2008&quot;&gt;Parrot Developer's Summit&lt;/a&gt; to plan the way forward to Parrot 1.0 (March 2009).  In parallel several of us also made plans for Rakudo's development in that time -- our goal is to have Rakudo on its own release cycle by then.  I very much like the way the time-based monthly release cycle has worked for Parrot development, so we will undoubtedly continue this in Rakudo.  Development for Rakudo will continue to track the Parrot trunk for a while, and we'll time Rakudo releases to follow a few days after each Parrot release.&lt;/p&gt;&lt;p&gt;We'll put together more details as we get closer; until then we're continuing to work on feature development.&lt;/p&gt;&lt;p&gt;During my airplane travel and at the summit I was able to get a lot of work on fixing lexical variables in Parrot.  Unfortunately I've also found several places where Parrot was not properly allocating and freeing contexts, so those need to be reviewed and fixed before we can merge the branch back into trunk.  Initial tests show that the design itself appears to work as expected, so now it's just a matter of reviewing and repairing context handling in Parrot.  I'm expecting (hoping) to merge the branch back into trunk sometime on Wednesday (after tomorrow's Parrot release), which will close out quite a few RT tickets.&lt;/p&gt;&lt;p&gt;Pm&lt;/p&gt;</description>
	<pubDate>Tue, 18 Nov 2008 06:03:52 +0000</pubDate>
</item>
<item>
	<title>chromatic: A Roadmap from the Parrot Developer Summit</title>
	<guid>http://use.perl.org/~chromatic/journal/37889?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37889?from=rss</link>
	<description>&lt;p&gt;I'm at the &lt;a href=&quot;http://www.parrot.org/wiki/parrot-developer-summit-2008&quot;&gt;Parrot Developer Summit&lt;/a&gt; this weekend, with Allison, Patrick, Jerry Gay, Klass-Jan Stol, Stephen Weeks, Kevin Tew, Jonathan Worthington, Jeff Horwitz, and Abhijit Mahabal.  Our main goal was to create a roadmap toward production-ready releases of &lt;a href=&quot;http://www.parrotvm.org/&quot;&gt;Parrot&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One of my early suggestions was to define a single-sentence &lt;a href=&quot;http://jamesshore.com/Agile-Book/vision.html&quot;&gt;vision&lt;/a&gt; for each milestone release.&lt;/p&gt;&lt;p&gt;Our tentative plan (to which we all agreed) is to continue monthly releases indefinitely.  Language implementors can (of course, as currently) track our trunk, or our monthly releases, but we've decided to produce two milestone releases each year which represent a good stable point on which to host a language.&lt;/p&gt;&lt;p&gt;Our plan is to produce the first of these milestone releases in March and the second in July.  Subsequent milestone releases will occur ever six months: January and July.  Here's our vision list for the next six milestone releases:&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;March 2009: &lt;em&gt;a stable API for language implementors&lt;/em&gt;, and the point at which we believe Parrot is an attractive platform to begin implementing languages, at least for people who don't want to track our trunk.&lt;/li&gt;&lt;li&gt;July 2009: &lt;em&gt;integration and interoperability&lt;/em&gt;, the point at which we provide the next generation of tools to make implementing languages even easier.&lt;/li&gt;&lt;li&gt;January 2010: &lt;em&gt;production readiness&lt;/em&gt;, the point at which Parrot is ready for your business.&lt;/li&gt;&lt;li&gt;July 2010: &lt;em&gt;portability&lt;/em&gt;, the point at which we branch out beyond our three core platforms to other devices and systems.&lt;/li&gt;&lt;li&gt;January 2011: &lt;em&gt;independence&lt;/em&gt;, the point at which Parrot is independent of the last remnants of non-Parrot build systems.&lt;/li&gt;&lt;li&gt;July 2011: &lt;em&gt;magical wishlist items&lt;/em&gt;, the point at which Parrot supports wonderful exotic features that many other virtual machines may never support.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We're concentrating our efforts on the March release.  Our schedule is aggressive, but it's workable.  (We invested two hours in two agile planning exercises to identify, prioritize, and cluster features into the six milestones we've identified.)  There's plenty of work to do, especially for novices and interested neophytes.  In particular, we could use people to help us identify missing documentation and to ensure that it's clear and appropriate -- not to mention people interested in running tests, triaging bugs, and learning how to use the system.&lt;/p&gt;&lt;p&gt;We'll have more to say in the coming weeks, but I think you'll be very impressed at our progress over the next couple of releases.&lt;/p&gt;</description>
	<pubDate>Sun, 16 Nov 2008 06:40:03 +0000</pubDate>
</item>
<item>
	<title>chromatic: Perl 6 Design Minutes for 12 November 2008</title>
	<guid>http://use.perl.org/~chromatic/journal/37875?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37875?from=rss</link>
	<description>&lt;p&gt;The Perl 6 design team met by phone on 12 November 2008.  Larry, Allison, Patrick, Jerry, Will, Nicholas, Jesse, and chromatic attended.&lt;/p&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;we have two sponsors now, BBC and ActiveState&lt;/li&gt;&lt;li&gt;starting conversations with a few others&lt;/li&gt;&lt;li&gt;it helps to have two already&lt;/li&gt;&lt;li&gt;mainly focused on the IO milestone milestone&lt;/li&gt;&lt;li&gt;will merge back in two stages&lt;/li&gt;&lt;li&gt;stage one is getting the new IO system working&lt;/li&gt;&lt;li&gt;you can use it as an object&lt;/li&gt;&lt;li&gt;adds just one test file&lt;/li&gt;&lt;li&gt;I can have all of the different architectures report any failures with that test file&lt;/li&gt;&lt;li&gt;will merge in the bigger change later&lt;/li&gt;&lt;li&gt;though it's a simpler change&lt;/li&gt;&lt;li&gt;replace calls to the existing system with calls to the new system&lt;/li&gt;&lt;li&gt;hope it'll be a smooth transition&lt;/li&gt;&lt;li&gt;fixed up some calling conventions stuff last night for Andrew Whitworth&lt;/li&gt;&lt;li&gt;some pieces weren't working for him&lt;/li&gt;&lt;li&gt;committed a small patch to fix them, and explained it&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;the first Parrot Developer Summit is this weekend&lt;/li&gt;&lt;li&gt;for people who don't know about it, it's too late to attend&lt;/li&gt;&lt;li&gt;there may be a dozen or so of us meeting&lt;/li&gt;&lt;li&gt;intent is to hammer out a roadmap for 1.0&lt;/li&gt;&lt;li&gt;lots of questions on the channel and mailing lists about when there will be Parrot 1.0&lt;/li&gt;&lt;li&gt;good, I suppose&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Christmas Eve!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;they've given up asking about Perl 6&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;good!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I don't have an answer yet&lt;/li&gt;&lt;li&gt;but our work this weekend will let us decide what we need to release 1.0&lt;/li&gt;&lt;li&gt;also had a grant approved&lt;/li&gt;&lt;li&gt;designing and implementing Perl 6 command line syntax&lt;/li&gt;&lt;li&gt;already started the work&lt;/li&gt;&lt;li&gt;researching other dynamic languages and compilers&lt;/li&gt;&lt;li&gt;most languages have just grown their syntax over time&lt;/li&gt;&lt;li&gt;it's kind of messy&lt;/li&gt;&lt;li&gt;have put together some ideas&lt;/li&gt;&lt;li&gt;discussed them with Larry&lt;/li&gt;&lt;li&gt;expect that to continue, until I have a design document that I can send for review&lt;/li&gt;&lt;li&gt;then I'll move on to implementation&lt;/li&gt;&lt;li&gt;all laid out in the grant proposal on TPF's site&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;expect me to harass you occasionally&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;things are going well&lt;/li&gt;&lt;li&gt;lots of additions to Rakudo this week&lt;/li&gt;&lt;li&gt;I fixed the string semantics&lt;/li&gt;&lt;li&gt;classes can override how objects report stringification&lt;/li&gt;&lt;li&gt;Jonathan, Jerry, and I fixed Rakudo's container semantics&lt;/li&gt;&lt;li&gt;it does references correctly&lt;/li&gt;&lt;li&gt;fixed a lot of bugs and closed a lot of tickets&lt;/li&gt;&lt;li&gt;Jonathan started and I finished getting pointy blocks to work on flow control statements other than &lt;code&gt;for&lt;/code&gt; &lt;/li&gt;&lt;li&gt;waiting for answers on &lt;code&gt;repeat while&lt;/code&gt; and &lt;code&gt;repeat until&lt;/code&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Larry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;me too&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;when one of us gets the answer, he should let the other one know&lt;/li&gt;&lt;li&gt;completely refactored Rakudo's junctions&lt;/li&gt;&lt;li&gt;worked on the assignment metaoperators, such as &lt;code&gt;+=&lt;/code&gt; and &lt;code&gt;*=&lt;/code&gt; &lt;/li&gt;&lt;li&gt;work correctly on protoobjects&lt;/li&gt;&lt;li&gt;I'm refactoring those now&lt;/li&gt;&lt;li&gt;will cause regression in one test that doesn't work right anyway&lt;/li&gt;&lt;li&gt;Rakudo is now over the 4500 passing test mark&lt;/li&gt;&lt;li&gt;we should get quite a few more over the next week or so&lt;/li&gt;&lt;li&gt;Jonathan and I will continue closing things out&lt;/li&gt;&lt;li&gt;worked more on the design of lexicals&lt;/li&gt;&lt;li&gt;continuing to update the document on my website&lt;/li&gt;&lt;li&gt;need to figure out autoclose in my head&lt;/li&gt;&lt;li&gt;Jonathan and I will hack on that this weekend&lt;/li&gt;&lt;li&gt;I could use his expertise in Parrot internals&lt;/li&gt;&lt;li&gt;also had a grant approved&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Larry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;went to the hackers conference this last weekend&lt;/li&gt;&lt;li&gt;high point was teaching Don Knuth how to decode his Korean email&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I thought he had no email!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Larry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;refactored the compile-time variables&lt;/li&gt;&lt;li&gt;there are no version-specific ones remaining&lt;/li&gt;&lt;li&gt;now &lt;code&gt;$?OS&lt;/code&gt;, &lt;code&gt;$?DISTRO&lt;/code&gt;, and &lt;code&gt;$?VM&lt;/code&gt; variable&lt;/li&gt;&lt;li&gt;generalized matching against pairs to call a method corresponding to the name on whatever the object is, matching against whatever the argument is&lt;/li&gt;&lt;li&gt;sort of inside out as to what named arguments in &lt;code&gt;BUILD&lt;/code&gt; routines do&lt;/li&gt;&lt;li&gt;refactored the &lt;code&gt;:pair&lt;/code&gt;-named methods&lt;/li&gt;&lt;li&gt;they were kind of grungy anyway&lt;/li&gt;&lt;li&gt;thinking about whether strings ought to have methods like &lt;code&gt;.r&lt;/code&gt; and &lt;code&gt;.w&lt;/code&gt; and &lt;code&gt;.x&lt;/code&gt; &lt;/li&gt;&lt;li&gt;or whether you ought to coerce to some sort of File type&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I lean toward coercion&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Larry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;everyone does&lt;/li&gt;&lt;li&gt;I just want to think it through&lt;/li&gt;&lt;li&gt;decided that &lt;code&gt;.perl&lt;/code&gt; isn't special to junctions&lt;/li&gt;&lt;li&gt;if you use it on one, it autothreads&lt;/li&gt;&lt;li&gt;if you stringify that junction, it produces a result as if you'd done &lt;code&gt;.perl&lt;/code&gt; on the whole junction&lt;/li&gt;&lt;li&gt;stringification on a junction produces Perl-style syntax&lt;/li&gt;&lt;li&gt;if you smart match a hash against a pair pattern, it tests the key and the value for matching&lt;/li&gt;&lt;li&gt;factoring out various amounts of boilerplate from the Perl 5 emitted code&lt;/li&gt;&lt;li&gt;simplifying code&lt;/li&gt;&lt;li&gt;fixed bugs with node wrapping&lt;/li&gt;&lt;li&gt;confused people looking at ASTs&lt;/li&gt;&lt;li&gt;chopped out TRE&lt;/li&gt;&lt;li&gt;discovered that my stupid LTM emulation ran twice as fast as the TRE code&lt;/li&gt;&lt;li&gt;that was eye-opening&lt;/li&gt;&lt;li&gt;STD now recognizes &lt;code&gt;::T&lt;/code&gt; as defining a valid type for later in the same scope&lt;/li&gt;&lt;li&gt;did some work to set up the infrastructure for STD to handle lexical scopes&lt;/li&gt;&lt;li&gt;nested pads&lt;/li&gt;&lt;li&gt;should have declarations in the right scope&lt;/li&gt;&lt;li&gt;part of the motivation&lt;/li&gt;&lt;li&gt;besides better error handling&lt;/li&gt;&lt;li&gt;set up a mechanism to define a prelude&lt;/li&gt;&lt;li&gt;freeze the lexical environment for the prelude&lt;/li&gt;&lt;li&gt;then slurp that up into STD&lt;/li&gt;&lt;li&gt;mundane functions and operators will probably end up there&lt;/li&gt;&lt;li&gt;have most of an implementation of a trie engine&lt;/li&gt;&lt;li&gt;that'll replace my stupid LTM&lt;/li&gt;&lt;li&gt;should evolve eventually into a full DFA&lt;/li&gt;&lt;li&gt;almost works&lt;/li&gt;&lt;li&gt;should run faster&lt;/li&gt;&lt;li&gt;and cut down on the on-disk cache&lt;/li&gt;&lt;li&gt;for various definitions of &quot;should&quot;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;c:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;mostly fixing bugs&lt;/li&gt;&lt;li&gt;trying to keep blockers from blocking people&lt;/li&gt;&lt;li&gt;adding a little polish here and there to make people work better&lt;/li&gt;&lt;li&gt;thinking about our release process post 1.0&lt;/li&gt;&lt;li&gt;will talk about that this weekend&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Will:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;spending most of my time deleting things from Parrot&lt;/li&gt;&lt;li&gt;ripping out deprecated features&lt;/li&gt;&lt;li&gt;everything that's in there, some goes back to 0.5&lt;/li&gt;&lt;li&gt;but everything in there now we can rip out before the next release&lt;/li&gt;&lt;li&gt;sad that I'll miss the summit this week&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Nicholas:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I'm the new grant manager for Dave Mitchell doing 5.10.1&lt;/li&gt;&lt;li&gt;announced the end-of-life for 5.8.x&lt;/li&gt;&lt;li&gt;surprised that no one told me I couldn't say that&lt;/li&gt;&lt;li&gt;if the Parrot Foundation is capable of raising money from people, how come TPF isn't?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I tried to do something similar for TPF four years ago&lt;/li&gt;&lt;li&gt;it was very uncomfortable for the Perl community&lt;/li&gt;&lt;li&gt;lots of pushback&lt;/li&gt;&lt;li&gt;they wanted guarantees that no company would have control over the development of Perl&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;c:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;no one has control over the development of Perl!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;also the amount of money required for Perl 5 is much larger&lt;/li&gt;&lt;li&gt;it's not about money for Parrot&lt;/li&gt;&lt;li&gt;four memberships for Parrot is enough to push toward 1.0&lt;/li&gt;&lt;li&gt;we're a small project&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jerry:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;have Perl 5 releases been sponsored before?&lt;/li&gt;&lt;li&gt;seems like a good thing&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Jesse:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;last week in China for the Beijing Perl Workshop&lt;/li&gt;&lt;li&gt;it was a lovely workshop&lt;/li&gt;&lt;li&gt;chatted with a lot of people about the state of Perl 6 and how they could get involved&lt;/li&gt;&lt;li&gt;offered to make lots of introductions&lt;/li&gt;&lt;li&gt;haven't taken anyone up on that yet&lt;/li&gt;&lt;li&gt;the Perl problem in China is that they're having a hard time finding competent Perl hackers&lt;/li&gt;&lt;li&gt;people are afraid to learn Perl because that'll make them unpalatable to the workforce&lt;/li&gt;&lt;li&gt;universities only teach C&lt;/li&gt;&lt;li&gt;people study on their own to learn C# and Java&lt;/li&gt;&lt;li&gt;most of the hiring firms really want C# and Java from their developers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;in Rakudo, over the past week, I'm seeing lots of segfaults in different places&lt;/li&gt;&lt;li&gt;suspect it might be something that Jonathan and I did&lt;/li&gt;&lt;li&gt;have no clue where to start looking&lt;/li&gt;&lt;li&gt;it shows up in the regression suites&lt;/li&gt;&lt;li&gt;can point you to specific instances of things that fail&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Will:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;I can help narrow it down to PIR if you have a specific test that fails&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;they really float around&lt;/li&gt;&lt;li&gt;showed up in the assignment tests this morning&lt;/li&gt;&lt;li&gt;a couple of revisions later, they don't show up later&lt;/li&gt;&lt;li&gt;only some of them does &lt;code&gt;-G&lt;/code&gt; help&lt;/li&gt;&lt;li&gt;the weird one this morning&lt;/li&gt;&lt;li&gt;if I run it from Parrot with the command line, I get a segfault&lt;/li&gt;&lt;li&gt;from the test harness, I don't&lt;/li&gt;&lt;li&gt;that seems backwards&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Allison:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;the test harness has more strict flags turned on&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;at one time, it used a different runcore&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;c:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;if there's a short PIR test case, we may be able to do a binary search&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;strong&gt;Patrick:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;it's hard to give a short PIR case&lt;/li&gt;&lt;li&gt;the segfault moves around so much&lt;/li&gt;&lt;/ul&gt;</description>
	<pubDate>Fri, 14 Nov 2008 07:10:32 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: The world according to .PARROT</title>
	<guid>http://use.perl.org/~pmichaud/journal/37870?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37870?from=rss</link>
	<description>&lt;p&gt;In Rakudo we have a number of places where bits of Parrot poke out from underneath the covers at inconvenient times; masak, moritz, and chrisdolan have been particularly good at finding these, especially when dealing with &lt;a href=&quot;http://use.perl.org/~masak/journal/37857&quot;&gt;strings in Rakudo&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;When we get HLL mapping fully working in Rakudo then a lot of these will go away; in the meantime I've been trying to explain what's happening &quot;behind the scenes&quot; that cause the seemingly bizarre behaviors.  But yesterday I decided it would be better to provide a way to remove the covers entirely...&lt;/p&gt;&lt;p&gt;So, Rakudo now has a .PARROT method that reports the underlying Parrot data type for an object.  This is in contrast to .WHAT, which gives back the (sometimes imperfect) Perl 6 view of an object.&lt;/p&gt;&lt;p&gt;Here's an example involving %*ENV -- normally we expect values in %*ENV to be (Perl6) Str objects, but the current implementation of %*ENV tends to give us String PMCs.  But rakudo considers Parrot String and Perl 6 Str to have the same .WHAT protoobject, so it looks like it's a 'Str'.&lt;/p&gt;&lt;p&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say %*ENV; /home/pmichaud&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say %*ENV.WHAT;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Str&lt;/p&gt;&lt;p&gt;The new .PARROT method lets us view the true identity of an object:&lt;/p&gt;&lt;p&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say %*ENV.PARROT;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String&lt;/p&gt;&lt;p&gt;This still doesn't fix the problem, but at least it gives some transparency into what's going on.&lt;/p&gt;&lt;p&gt;I also adjusted the value semantics for the String PMC so that it auto-promotes to a Perl 6 Str object whenever it's asked for its scalar value.  That should make it easier to get things into the form needed to get work done, at least until we can complete our other transitions that make this more seamless.&lt;/p&gt;&lt;p&gt;Pm&lt;/p&gt;</description>
	<pubDate>Thu, 13 Nov 2008 22:45:36 +0000</pubDate>
</item>
<item>
	<title>Patrick Michaud: Rakudo any/all/none junctions now collapse</title>
	<guid>http://use.perl.org/~pmichaud/journal/37868?from=rss</guid>
	<link>http://use.perl.org/~pmichaud/journal/37868?from=rss</link>
	<description>&lt;p&gt;For those who are wondering what happened to my journal posts over the past couple of months -- I've been focusing on some underlying Rakudo/Parrot design issues and supporting others more than writing code or prose.  Also, I think I needed a bit of a break.&lt;/p&gt;&lt;p&gt;I've decided that it'll be easier (and thus more likely) for me to increase visibility on Rakudo progress if I blog about new features and decisions as they happen rather than try to batch them up for a post every few days.  I do still plan to come up with &quot;weekly summaries&quot; as well, but I figure the immediate posts will be more satisfying for me and more helpful for others.&lt;/p&gt;&lt;p&gt;So, here's the first such post -- earlier this week I refactored Rakudo's Junction implementation to be cleaner and more correct, and bacek++ provided a patch to collapse duplicate values of one, any, and none Junctions.  We had to wait for confirmation from perl6-language for this, which we just got today.  So, we now have:&lt;/p&gt;&lt;p&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say any(1,2,2,1,3,2).perl;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; any(1, 2, 3);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say (any(1,2,3) % 2).perl;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; any(1, 0);&lt;/p&gt;&lt;p&gt;Although any/all/none junctions collapse, one() junctions do not:&lt;/p&gt;&lt;p&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; say (one(1,2,2,1,3,2) % 2).perl&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; one(1, 0, 0, 1, 1, 0)&lt;/p&gt;&lt;p&gt;This is because duplicate values change the boolean meaning of a one() junction, so we can't simply collapse them.  As Larry says, &quot;... one() junctions produce bags rather than sets.&quot;&lt;/p&gt;&lt;p&gt;As a result we've been able to unfudge more spectest for rakudo -- we're currently (r32625) passing 4598 spectests.&lt;/p&gt;</description>
	<pubDate>Thu, 13 Nov 2008 20:18:28 +0000</pubDate>
</item>
<item>
	<title>Moritz Lenz (Perl 6): Perl 6 Tidings for November 2008</title>
	<guid>http://perlgeek.de/blog-en/perl-6/tidings-2008-11.writeback</guid>
	<link>http://perlgeek.de/blog-en/perl-6/tidings-2008-11.writeback</link>
	<description>&lt;h2&gt;Specification&lt;/h2&gt;

&lt;p&gt;A couple of small improvements to the spec made me a bit happier this past
week:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
        There's now a &lt;a href=&quot;http://www.nntp.perl.org/group/perl.perl6.language/2008/11/msg29884.html&quot;&gt;Nil&lt;/a&gt;
        type. A &lt;code&gt;Nil&lt;/code&gt; represents the empty list, but unlike a
        normal &lt;code&gt;List&lt;/code&gt; object it is undefined in scalar context. It
        is returned by a bare &lt;code&gt;return&lt;/code&gt; statement.
    &lt;/li&gt;
    &lt;li&gt;
        A &lt;a href=&quot;http://www.nntp.perl.org/group/perl.perl6.language/2008/11/msg29886.html&quot;&gt;cleanup
        of the global variables&lt;/a&gt; added (among other things) a
        &lt;code&gt;$?VM&lt;/code&gt; variable, which holds informations about the backend
        being used to execute some code. I like this very much because
        currently some tests use the unspecced &lt;code&gt;$?PUGS_BACKEND&lt;/code&gt;
        variable, which of course breaks other implementions.
    &lt;/li&gt;
    &lt;li&gt;
        File test operators look like this in Perl 6 &lt;code&gt;$filename ~~
        :e&lt;/code&gt;. This used to boil down to calling the method
        &lt;code&gt;:e&lt;/code&gt; in class &lt;code&gt;Str&lt;/code&gt;, which was a bit messy,
        because colons are not part of an identifier, and thus :e wasn't
        really a valid method name. Now &lt;a href=&quot;http://www.nntp.perl.org/group/perl.perl6.language/2008/11/msg29887.html&quot;&gt;this
        is special-cased in the smart match operator instead&lt;/a&gt;, and the
        method is named without the colon.
   &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The smart links in the synopsis documents at &lt;a href=&quot;http://perlcabal.org/syn/&quot;&gt;http://perlcabal.org/syn/&lt;/a&gt; now contains
syntax hilighted code.&lt;/p&gt;

&lt;h2&gt;Implementations&lt;/h2&gt;

&lt;h3&gt;SMOP&lt;/h3&gt;

&lt;p&gt;In his &lt;a href=&quot;http://news.perlfoundation.org/2008/11/running_grants_2008vii.html&quot;&gt;report
to the TPF grant comittee&lt;/a&gt; Daniel Ruoso informed us about his work to
integrate SMOP into Perl 5 by means of writing an XS module.&lt;/p&gt;

&lt;p&gt;I'm not sure how much you can actually do with it right now, but it seems
like an important proof-of-concept.&lt;/p&gt;

&lt;h3&gt;Rakudo&lt;/h3&gt;

&lt;p&gt;Jonathan and Patrick &lt;a href=&quot;http://www.rakudo.org/2008/11/rakudo-container-refactor-and.html&quot;&gt;refactored
Rakudo's handling of containers and values&lt;/a&gt;, to great success. This
resulted in quite a few tickets being closed, and  some more passing spec
tests. Great work!&lt;/p&gt;

&lt;p&gt;It's now also possible to define custom stringification routines for your
classes (what's called &quot;overloading&quot; in Perl 5).&lt;/p&gt;

&lt;p&gt;Last but not least, both Patrick Michaud and Jerry Gay received grants from
Ian Hague's fanastic donation. Patrick will work on &lt;a href=&quot;http://news.perlfoundation.org/2008/11/tpf_awards_first_hague_grant_t.html&quot;&gt;protoregexes
and longest token matching (LTM)&lt;/a&gt; as well as the prerequisites to use
external libraries (which is needed if you want to write the prelude in Perl 6
- guess what the plan is...).&lt;/p&gt;

&lt;p&gt;(I've tried to explain the importance of LTM in &lt;a href=&quot;http://perlgeek.de/en/article/mutable-grammar-for-perl-6&quot;&gt;this article&lt;/a&gt;,
but I'm not sure if I succeeded. Anyway, it's essential for parsing Perl 6
correctly.&lt;/p&gt;</description>
	<pubDate>Sun, 09 Nov 2008 21:22:08 +0000</pubDate>
</item>
<item>
	<title>chromatic: Marketing Position</title>
	<guid>http://use.perl.org/~chromatic/journal/37829?from=rss</guid>
	<link>http://use.perl.org/~chromatic/journal/37829?from=rss</link>
	<description>&lt;p&gt;Sometimes I wonder what would happen if we gave Perl 6 the slogan &quot;Yes we can!&quot; and promoted it as &quot;Real, effective change!&quot;  Maybe people could stop feeling ashamed of programming again.&lt;/p&gt;</description>
	<pubDate>Sat, 08 Nov 2008 11:29:48 +0000</pubDate>
</item>

</channel>
</rss>
