<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8111225535263222311</id><updated>2011-07-08T10:17:11.200-07:00</updated><category term='Perl 6'/><category term='Parrot'/><category term='Rakudo'/><title type='text'>Lithology</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-3157137362013448564</id><published>2011-06-29T16:42:00.000-07:00</published><updated>2011-06-29T16:53:39.520-07:00</updated><title type='text'>#perl6 2011-06-29</title><content type='html'>&lt;h2&gt;Meta&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021067"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;moritz: new idea, after talking about the no-longer-done mailing list summaries, we thought it would be cool if someone, while reading the ir clogs, could just flag important things as a pseudo-summary&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4024892"&gt;moritz&lt;/a&gt;)&lt;br /&gt;TimToady: re &lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021067" title="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021067"&gt;http://irclog.perlgeek.de/perl[…]1-06-29#i_4021067&lt;/a&gt; it can certainly be done, though I'm not yet sure if it should include authentication, or just a global (not perl nick) flag per line&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;News&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4024311"&gt;colomon&lt;/a&gt;)&lt;br /&gt;moritz: &lt;a href="http://www.harmonyware.com/perl/p6numerics/" title="http://www.harmonyware.com/perl/p6numerics/"&gt;http://www.harmonyware.com/perl/p6numerics/&lt;/a&gt; (second draft)&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4024752"&gt;PerlJam&lt;/a&gt;)&lt;br /&gt;colomon: that point about the Bridge not specifying the type was a revelation to me.  I hadn't thought much about it before.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026396"&gt;masak&lt;/a&gt;)&lt;br /&gt;TimToady: I added a paragraph about &amp;lt;...&amp;gt; to &lt;a href="http://strangelyconsistent.org/blog/june-21-2011-nested-data-structures" title="http://strangelyconsistent.org/blog/june-21-2011-nested-data-structures"&gt;http://strangelyconsistent.org[…]d-data-structures&lt;/a&gt; based on your feedback.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027722"&gt;masak&lt;/a&gt;)&lt;br /&gt;blog post! &lt;a href="http://strangelyconsistent.org/blog/june-22-format-strings" title="http://strangelyconsistent.org/blog/june-22-format-strings"&gt;http://strangelyconsistent.org[…]22-format-strings&lt;/a&gt;&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025647"&gt;colomon&lt;/a&gt;)&lt;br /&gt;TimToady: I've updated the talk with the changes to the mandel sub you suggested and additional comments :)&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Language&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025022"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;getc is a stdio function&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025026"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;it doesn't control what goes into the buffer&lt;br&gt;&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025134"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;the compounds of s,m,q, etc are just that letter plus the switch&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025141"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;so ss turns into s:s and sss would turn into s:ss&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025165"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;otoh, if we slurp up a bunch of keywords starting with s, people will hat us&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025183"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;and we proably shouldn't make s:foo -&amp;gt; sfoo a productive mechanism anyway&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025251"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;there is a hypothetical 'quote' declarator&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025259"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;so we could just arbitrary declare some common ones, like qqx&lt;br&gt;&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4025769"&gt;jlaire&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://perlcabal.org/syn/S05.html"&gt;S05&lt;/a&gt; has a few instances of C&amp;lt;s//&amp;gt;, I changed them all to C&amp;lt;s///&amp;gt;: &lt;a href="http://laire.fi/t/S05.patch" title="http://laire.fi/t/S05.patch"&gt;http://laire.fi/t/S05.patch&lt;/a&gt;&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026747"&gt;dalek&lt;/a&gt;)&lt;br /&gt;specs: s// -&amp;gt; s/// from jlaire++&lt;br&gt;&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026922"&gt;[Coke]&lt;/a&gt;)&lt;br /&gt;ROODE was pondering how nice it would be if he had $foo ?= 'a' : 'b' in 5.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026923"&gt;sorear&lt;/a&gt;)&lt;br /&gt;$foo ?? 'a' !!= 'b' would work, but is specifically forbidden&lt;br&gt;&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027273"&gt;pmichaud&lt;/a&gt;)&lt;br /&gt;I don't agree with jnthn/masak's proposal (or some of the details of the resulting specpatch)&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027275"&gt;pmichaud&lt;/a&gt;)&lt;br /&gt;I especially don't like the 1=&amp;gt;  stuff.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027286"&gt;sorear&lt;/a&gt;)&lt;br /&gt;the only change I would have made personally is to make :x opt-in&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027306"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;well, would it help to say that the :x form uses the names in the proto, but the actual multis can use different names on the same positions?&lt;br&gt;&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027520"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;still would like to see &lt;a href="http://perlcabal.org/syn/S12.html#line_2268"&gt;S12:2268&lt;/a&gt; happen&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Internals&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021085"&gt;pmichaud&lt;/a&gt;)&lt;br /&gt;TimToady: what's the best model/code for me to look at to implement full ltm-semantics?&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021092"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;well, my stuff did real &lt;abbr title="Longest Token Matching"&gt;LTM&lt;/abbr&gt; but not with a real dfa-ish engine, while it's my understanding that niecza does it in a theoretically purer fashion&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021122"&gt;sorear&lt;/a&gt;)&lt;br /&gt;AFAIR discarding fates is the main break niecza makes from Cursor&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021124"&gt;sorear&lt;/a&gt;)&lt;br /&gt;well not so much &amp;quot;discarding&amp;quot; as &amp;quot;I haven't implemented them yet, and with DFAs being &amp;lt;10% of parse time I see no pressing need&amp;quot;&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021144"&gt;sorear&lt;/a&gt;)&lt;br /&gt;pmichaud: the basic principle of the &lt;abbr title="Longest Token Matching"&gt;LTM&lt;/abbr&gt; handling (in niecza and Cursor) is that | is a || that intelligently reorders clauses&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021157"&gt;sorear&lt;/a&gt;)&lt;br /&gt;Cursor.cs&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4021162"&gt;sorear&lt;/a&gt;)&lt;br /&gt;pmichaud: start from LTMPushAlts&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Niecza&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4020922"&gt;sorear&lt;/a&gt;)&lt;br /&gt;niecza now passes every substr.t test except the StrPos ones&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026448"&gt;sorear&lt;/a&gt;)&lt;br /&gt;btw, niecza is now passing over 3000 spectests&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027427"&gt;dalek&lt;/a&gt;)&lt;br /&gt;niecza: Implement term:&amp;lt;proceed&amp;gt;, Any.{isa,can,does}, we now pass given.t&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027453"&gt;sorear&lt;/a&gt;)&lt;br /&gt;I predict that by the time of the July release, Rakudo will be the faster one, but Niecza will have the more features&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026609"&gt;dalek&lt;/a&gt;)&lt;br /&gt;niecza: Implement &amp;lt;-&amp;gt; auto-rwification&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026638"&gt;sorear&lt;/a&gt;)&lt;br /&gt;it turned out to be very easy&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Modules&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4022339"&gt;tadzik&lt;/a&gt;)&lt;br /&gt;dukeleto, colomon: that's a bit messy. projects.list is for backwards-compatibility only, and should be buried probably. Now module-starter was added to the ecosystem long ago, but it was moritz's module. My version wasn'&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4022376"&gt;dukeleto&lt;/a&gt;)&lt;br /&gt;tadzik: i gave module-starter some love today&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Tests&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027123"&gt;colomon&lt;/a&gt;)&lt;br /&gt;sorear: yes, what I'm doing is changing the automatic trig test generator to get rid of the trigbase tests&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4027340"&gt;dalek&lt;/a&gt;)&lt;br /&gt;roast: Remove the trigbase tests from the trig spectests.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026817"&gt;sorear&lt;/a&gt;)&lt;br /&gt;masak: being able to test the &lt;abbr title="Read-Eval-Print Loop"&gt;REPL&lt;/abbr&gt; would be _so awesome_&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026866"&gt;sorear&lt;/a&gt;)&lt;br /&gt;mberends: the standard way to test a Perl 6 implementation is prove -e IMP test.pl&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Rosetta Code&lt;/h2&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026166"&gt;Util&lt;/a&gt;)&lt;br /&gt;I think Rat is only *used* in this draft task: &lt;a href="http://rosettacode.org/wiki/Convert_decimal_number" title="http://rosettacode.org/wiki/Convert_decimal_number"&gt;http://rosettacode.org/wiki/Co[…]rt_decimal_number&lt;/a&gt;&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026168"&gt;Util&lt;/a&gt;)&lt;br /&gt;Rationals greatly enhance the awesomeness of &lt;a href="http://rosettacode.org/wiki/Reduced_row_echelon_form#Perl_6" title="http://rosettacode.org/wiki/Reduced_row_echelon_form#Perl_6"&gt;http://rosettacode.org/wiki/Re[…]helon_form#Perl_6&lt;/a&gt;&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026171"&gt;Util&lt;/a&gt;)&lt;br /&gt;We get *exact* output; compare to Ruby, Groovy, and Javascript.&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026302"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;Util: it was &lt;a href="http://rosettacode.org/wiki/Van_der_Corput_sequence#Perl_6" title="http://rosettacode.org/wiki/Van_der_Corput_sequence#Perl_6"&gt;http://rosettacode.org/wiki/Va[…]t_sequence#Perl_6&lt;/a&gt; I was thinking of&lt;br&gt;&lt;br /&gt;(&lt;a href="http://irclog.perlgeek.de/perl6/2011-06-29#i_4026303"&gt;TimToady&lt;/a&gt;)&lt;br /&gt;shows off the Rats&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-3157137362013448564?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/3157137362013448564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2011/06/perl6-2011-06-29.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/3157137362013448564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/3157137362013448564'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2011/06/perl6-2011-06-29.html' title='#perl6 2011-06-29'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-6033102627015938549</id><published>2010-02-28T02:37:00.000-08:00</published><updated>2010-02-28T03:57:17.513-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Some days of regret and hope</title><content type='html'>Dear readers and protagonists!&lt;br /&gt;&lt;br /&gt;As you know when you are reading this, I have not been able to deliver weekly summaries for a while. Just as the activity of the Perl&amp;nbsp;6, Parrot, and Rakudo projects leapt upward, the workload in my job increased and I found myself unable to stay at the screen after hours.&lt;br /&gt;&lt;br /&gt;I have not at all lost interest in these projects, which in fact are becoming more inspiring every day. I still follow your work closely and I am considering other formats of summarizing that might allow me to contribute again.&lt;br /&gt;&lt;br /&gt;Thanks for sharing your enthusiasm and for your encouraging comments!&lt;br /&gt;&lt;br /&gt;Lithos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-6033102627015938549?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/6033102627015938549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2010/02/some-days-of-regret-and-hope.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/6033102627015938549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/6033102627015938549'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2010/02/some-days-of-regret-and-hope.html' title='Some days of regret and hope'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-3905125587039211426</id><published>2010-02-02T12:53:00.000-08:00</published><updated>2010-02-02T13:07:58.826-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, January 18 to Sunday, January 24 in the year 2010&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://perlcabal.org/syn/S07.html"&gt;Synopsis 7&lt;/a&gt; was updated to better define the notions of &lt;i&gt;mostly lazy&lt;/i&gt;, &lt;i&gt;mostly eager&lt;/i&gt; and &lt;i&gt;strictly eager&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;List assignment semantics have been refined: List assignment will be &lt;i&gt;mostly eager&lt;/i&gt;, meaning that it will cause evaluation of the leading part of the right-hand side that is known to be finite. In any case, list assignment will evaluate enough elements to fill scalar slots in the signature, so &lt;code&gt;($one, $two, @many) = 1..*&lt;/code&gt; will eagerly calculate &lt;code&gt;$one&lt;/code&gt; and &lt;code&gt;$two&lt;/code&gt;. Portions of a list that end with an exact value will be treated as finite, even if it is infeasible to actually evaluate all elements up to that exact value.&lt;br /&gt;&lt;br /&gt;There were several changes to types involved with sequential things (&lt;code&gt;List&lt;/code&gt;, &lt;code&gt;Seq&lt;/code&gt;, &lt;code&gt;Parcel&lt;/code&gt;, &lt;code&gt;Capture&lt;/code&gt;, &lt;code&gt;Iterator&lt;/code&gt;):&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;List&lt;/code&gt; role represents lazy access to a list. The iterator of a list is the list itself. Thus &lt;code&gt;Iterator&lt;/code&gt;, the type of Perl lists, does the &lt;code&gt;List&lt;/code&gt; role. However, types doing the &lt;code&gt;List&lt;/code&gt; role will usually be hidden from casual view, as iteration is typically triggered by context, not by calling iterator methods.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;List&lt;/code&gt; does no longer do the &lt;code&gt;Positional&lt;/code&gt; role, but it gains a method &lt;code&gt;new&lt;/code&gt; and a sub &lt;code&gt;list&lt;/code&gt; for creating a &lt;code&gt;List&lt;/code&gt; that visits all iterable elements of the given arguments.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Seq&lt;/code&gt; does the &lt;code&gt;Iterable&lt;/code&gt; role and is allowed to generate its values lazily. The elements that have already been reified, however,  will be considered immutable. (The &lt;code&gt;Iterable&lt;/code&gt; role also replaces the &lt;code&gt;Each&lt;/code&gt; role mentioned in sections about hyperoperators.)&lt;br /&gt;&lt;br /&gt;In item context, a list is turned into a lazy &lt;code&gt;Seq&lt;/code&gt; object. A &lt;code&gt;Parcel&lt;/code&gt; also turns into a &lt;code&gt;Seq&lt;/code&gt; object in item context.&lt;br /&gt;&lt;br /&gt;The empty &lt;code&gt;Parcel&lt;/code&gt; (called &lt;code&gt;Nil&lt;/code&gt;) will evaluate to a null list in list context and to an empty &lt;code&gt;Seq&lt;/code&gt; in slice context. As iterators can never return a &lt;code&gt;Parcel&lt;/code&gt;, &lt;code&gt;Nil&lt;/code&gt; will be used as the value that marks the end of iteration.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Array&lt;/code&gt; also gets a &lt;code&gt;new&lt;/code&gt; method.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Blob&lt;/code&gt; does the &lt;code&gt;Stringy&lt;/code&gt; role. Conjecturally &lt;code&gt;Stringy&lt;/code&gt; might be split into two roles: a general one containing operations for dense sequences (which both &lt;code&gt;Blob&lt;/code&gt; and &lt;code&gt;Str&lt;/code&gt; are), and a specialized one for operations specific to characters (done only by &lt;code&gt;Str&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;The deletion criterion of &lt;code&gt;KeyWeight&lt;/code&gt; was brought in line with the other containers. Keys will only be deleted when their weight goes exactly to zero. Implementations may complain, however, if a negative weight is used.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Patrick Michaud returned to Rakudo development and updated Rakudo to work with Parrot 2.0. He also enabled basic list assignment and in the process triggered refinements of the spec. He also prepared Rakudo development release #25.&lt;br /&gt;&lt;br /&gt;Jonathan Worthington taught the &lt;b&gt;ng&lt;/b&gt; branch the &lt;code&gt;$foo.'methname'()&lt;/code&gt; syntax and the default &lt;code&gt;*%_&lt;/code&gt; parameter of methods, making the branch pass several tests of method invocations. He also improved the handling of &lt;code&gt;has&lt;/code&gt; attributes.&lt;br /&gt;&lt;br /&gt;Solomon Foster worked to make the &lt;b&gt;ng&lt;/b&gt; branch pass some list-related tests.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.parrot.org/news/2010/Parrot-2.0.0"&gt;Parrot 2.0.0&lt;/a&gt; was released on Wednesday, January 20 by chromatic. Major features are the merged &lt;code&gt;CallContext&lt;/code&gt; PMC that also supports attribute-based introspection and the improvements of the PMC freeze code.&lt;br /&gt;&lt;br /&gt;Right after the release, James Keenan merged the &lt;b&gt;noalignptrs&lt;/b&gt; branch into trunk, removing a needless configuration step, and the &lt;b&gt;no_running_make_test&lt;/b&gt; branch, which gets rid of an unused harness option.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;IMCC&lt;/code&gt; now forbids the use of macro labels outside the macro definition, and thereby fixes a &lt;a href="http://trac.parrot.org/parrot/ticket/902"&gt;reported segfault&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stephen Weeks worked on the &lt;b&gt;pge_no_namespace_methods&lt;/b&gt; branch to fix method lookup in PGE.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-3905125587039211426?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/3905125587039211426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2010/02/seven-days-between-parrot-and-camel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/3905125587039211426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/3905125587039211426'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2010/02/seven-days-between-parrot-and-camel.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-1218866010700461891</id><published>2010-01-26T05:51:00.000-08:00</published><updated>2010-01-26T05:54:38.406-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, January 11 to Sunday, January 17 in the year 2010&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;There were no spec changes except for some typo fixes.&lt;br /&gt;&lt;br /&gt;One of the fixes sparked some discussion about the correct reading of the sentence "&lt;i&gt;Regexes are now first-class language, not strings&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;Larry Wall refactored the &lt;code&gt;Cursor&lt;/code&gt; class in his STD grammar implementation.&lt;br /&gt;&lt;br /&gt;Kyle Hasselbacher contributed many spectests for RT tickets and split up the smartmatch operator tests into several files.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Jonathan Worthington returned to Rakudo development and immediately increased the momentum of the &lt;b&gt;ng&lt;/b&gt; branch by implementing parametric roles, role punning, and "&lt;code&gt;my Can of Beer $starobrno&lt;/code&gt;" declarations.&lt;br /&gt;&lt;br /&gt;Solomon Foster made exponentiation right-associative as per &lt;code&gt;STD.pm&lt;/code&gt; and implemented &lt;code&gt;Complex.roots&lt;/code&gt; and &lt;code&gt;Num.Complex&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;John Harrison fixed &lt;code&gt;List.new(1, 2, 3)&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Peter Lobsinger merged the &lt;b&gt;pmc_freeze_cleanup&lt;/b&gt; branch to trunk.&lt;br /&gt;&lt;br /&gt;James Keenan merged the branches &lt;b&gt;remove_Parrot_ex_calc_handler_offset&lt;/b&gt; and &lt;b&gt;tt473_remove_memcpy_aligned&lt;/b&gt; to trunk.&lt;br /&gt;&lt;br /&gt;In the &lt;b&gt;tt389_fix&lt;/b&gt; branch for fixing bug &lt;a href="http://trac.parrot.org/parrot/ticket/389"&gt;389&lt;/a&gt;, chromatic was blocking a bit on related fixes to PGE/TGE. He expects the branch to land just after release 2.0. A separate branch &lt;b&gt;pge_no_namespace_methods&lt;/b&gt; has been created to fix PGE not to look for methods in namespaces.&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin started the &lt;b&gt;gc_encapsulate&lt;/b&gt; branch for improving the encapsulation of pluggable garbage collectors.&lt;br /&gt;&lt;br /&gt;Peter Lobsinger added the &lt;code&gt;testG&lt;/code&gt; make target and &lt;code&gt;-G&lt;/code&gt; harness flag for running the tests with the &lt;code&gt;gcdebug&lt;/code&gt; runcore. He reports 8 failures currently on Linux x86_64 using this flag. He also disabled Garbage-collection when threads are used as they don't play nice together.&lt;br /&gt;&lt;br /&gt;Aninhumer contributed documentation about defining subs in PIR. He also suggested mentioning Duke Leto's &lt;a href="http://github.com/leto/parrot"&gt;GitHub mirror&lt;/a&gt; as an easy place to apply documentation changes.&lt;br /&gt;&lt;br /&gt;"&lt;code&gt;vv&lt;/code&gt;" and similar NCI signatures have been deprecated.&lt;br /&gt;&lt;br /&gt;François Perrad added new meta data for Cardinal and Forth to plumage.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-1218866010700461891?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/1218866010700461891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/1218866010700461891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/1218866010700461891'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_26.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-6899287865165183336</id><published>2010-01-15T07:50:00.000-08:00</published><updated>2010-01-15T07:54:58.209-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, January 4 to Sunday, January 10 in the year 2010&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The spec remained quiet except for some cleanup and clarification:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;KeyHash&lt;/code&gt; containers will have a default value (such as &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;''&lt;/code&gt; or &lt;code&gt;Nil&lt;/code&gt; or &lt;code&gt;Bool::False&lt;/code&gt;) and delete any entry if its value goes to this default.&lt;br /&gt;&lt;br /&gt;Declaration examples were updated to properly use &lt;code&gt;constant&lt;/code&gt; as a type declarator syntactically.&lt;br /&gt;&lt;br /&gt;Some fossils using the range constructor &lt;code&gt;..&lt;/code&gt; with the obsolete &lt;code&gt;:by&lt;/code&gt; adverb were fixed to use the &lt;code&gt;...&lt;/code&gt; sequence operator.&lt;br /&gt;&lt;br /&gt;Remnants of &lt;code&gt;.true&lt;/code&gt; changed to &lt;code&gt;.so&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;While still waiting for the return of its main protagonists, the &lt;b&gt;ng&lt;/b&gt; branch made some progress:&lt;br /&gt;&lt;br /&gt;Jonathan Scott Duff implemented unspace parsing and parsing of variable shapes in declarations.&lt;br /&gt;&lt;br /&gt;Solomon Foster added &lt;code&gt;log&lt;/code&gt; functions with &lt;code&gt;$base&lt;/code&gt; parameter.&lt;br /&gt;&lt;br /&gt;Stephen Weeks added &lt;code&gt;&amp;amp;warn&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In the &lt;b&gt;one_make&lt;/b&gt; branch, Will Coleda has already converted &lt;code&gt;data_json&lt;/code&gt;, &lt;code&gt;pirc&lt;/code&gt;, &lt;code&gt;nqp&lt;/code&gt;, &lt;code&gt;imcc&lt;/code&gt;, and &lt;code&gt;json&lt;/code&gt; to use included Makefile fragments instead of recursive &lt;code&gt;make&lt;/code&gt; invocations. Each subproject provides a &lt;code&gt;Defines.mak&lt;/code&gt; and a &lt;code&gt;Rules.mak&lt;/code&gt; file so all variable definitions can be gathered before the rule definitions start. The &lt;code&gt;checkdepend.pl&lt;/code&gt; tool now has a &lt;code&gt;--dump&lt;/code&gt; option for printing the preprocessed Makefile and checks &lt;code&gt;.include&lt;/code&gt; and &lt;code&gt;load_bytecode&lt;/code&gt; dependencies of PIR files in addition to C &lt;code&gt;#include&lt;/code&gt;s.&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin changed tailcall ops to detach the &lt;code&gt;RetContinuation&lt;/code&gt; from the context in an attempt to fix the &lt;a href="http://trac.parrot.org/parrot/ticket/1393"&gt;elusive bug 1393&lt;/a&gt;. The issue does not seem to be fully resolved, however, as James Keenan still reports test failures.&lt;br /&gt;&lt;br /&gt;In order to fix bug &lt;a href="http://trac.parrot.org/parrot/ticket/389"&gt;389&lt;/a&gt; (methods are wrongly entered in namespaces), chromatic started the &lt;b&gt;tt389_fix&lt;/b&gt; branch.&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;OrderedHash&lt;/code&gt; PMC has been deprecated.&lt;br /&gt;&lt;br /&gt;François Perrad added a separate &lt;code&gt;install-doc&lt;/code&gt; target for installing documentation files and examples.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-6899287865165183336?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/6899287865165183336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/6899287865165183336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/6899287865165183336'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_15.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-4736754598707149495</id><published>2010-01-06T12:40:00.000-08:00</published><updated>2010-01-06T12:45:59.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, December 28 in the year 2009 to Sunday, January 4 in the year 2010&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Larry Wall updated &lt;a href="http://perlcabal.org/syn/S01.html"&gt;Synopsis 1&lt;/a&gt;, explaining the &lt;i&gt;spiral, cooperative, and convergent&lt;/i&gt; design process of Perl&amp;nbsp;6. He emphasized that Perl&amp;nbsp;6 will be anything that passes the official test suite owned by the community. The spec will not be frozen prematurely: Specced features should be considered conjectural until they have been proven in an implementation. The rate of convergence is, according to Larry Wall, an &lt;i&gt;emergent property&lt;/i&gt;, and cannot be forced, but only encouraged by cooperation.&lt;br /&gt;&lt;br /&gt;The standard Perl&amp;nbsp;6 grammar will be able to parse a well-behaved subset of Perl&amp;nbsp;5. Implementations will only be required to support this subset.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Apart from continued core setting work by David Romano and Moritz Lenz, the ng branch remained mostly silent. Stephen Weeks added a first draft of a new &lt;code&gt;Failure&lt;/code&gt; class. Jonathan Scott Duff renamed &lt;code&gt;break&lt;/code&gt;/&lt;code&gt;continue&lt;/code&gt; to &lt;code&gt;succeed&lt;/code&gt;/&lt;code&gt;proceed&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The master branch learned &lt;code&gt;:l&lt;/code&gt; for checking whether a file is a symbolic link (contributed by Heikki Mehtänen).&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In the &lt;b&gt;one_make&lt;/b&gt; branch, Will Coleda is working towards a &lt;a href="http://groups.google.com/group/parrot-dev/browse_thread/thread/a2118b1fbbb58df0/897e9a7e-e0374b77"&gt;single top-level makefile&lt;/a&gt; that includes submakefiles instead of invoking &lt;code&gt;make&lt;/code&gt; recursively. Some of the required dependency cleanups already propagated to the trunk.&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin created the &lt;b&gt;boehm_gc&lt;/b&gt; branch on which he integrated the Boehm-Demers-Weiser garbage collector into Parrot as an alternative to the default mark-and-sweep collector. Results so far suggest that the Boehm GC &amp;mdash; being a conservative GC &amp;mdash; turns out slower than Parrot's primitive but exact GC that knows about the internal structure of Parrot objects.&lt;br /&gt;&lt;br /&gt;Peter Lobsinger and Kevin Tew continued work in the &lt;code&gt;pmc_freeze_cleanup&lt;/code&gt; branch that aims at cleaning up and unifying PMC freeze/thaw serialization and packfile reading/writing. They were already able to eliminate the need for &lt;code&gt;EXTRA_IS_PROP_HASH&lt;/code&gt;. The prophash handling is now contained in a single function and plans are to move it to &lt;code&gt;default.pmc&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;James Keenan merged the branch for removing &lt;code&gt;Parrot_ex_calc_handler_offset&lt;/code&gt; back to trunk.&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin applied a patch by Jimmy to use &lt;code&gt;UINTVAL&lt;/code&gt;s to store the number of Parrot registers.&lt;br /&gt;&lt;br /&gt;François Perrad added Forth to &lt;code&gt;smoke_languages.pl&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-4736754598707149495?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/4736754598707149495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4736754598707149495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4736754598707149495'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-4849695831881827188</id><published>2009-12-28T14:24:00.000-08:00</published><updated>2009-12-28T14:29:31.347-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, December 21 to Sunday, December 27 in the year 2009&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The spec remained quiet during Christmas.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Apart from some core setting work by Solomon Foster and David Romano, the ng branch was silent.&lt;br /&gt;&lt;br /&gt;The master branch learned &lt;code&gt;:s&lt;/code&gt; for getting file sizes.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Work is going on to make PIRC easier to build. (PIRC is an alternative PIR compiler with a yacc/bison grammar and a flex-generated lexer. It is meant to replace the IMCC compiler.) The &lt;code&gt;pirc_config&lt;/code&gt; branch has been created for adding a &lt;code&gt;--pirc&lt;/code&gt; configure option. The goal is to make using PIRC an option before Parrot 2.0.&lt;br /&gt;&lt;br /&gt;Will Coleda (a.k.a coke) improved the optional automatic testing of make dependencies (&lt;code&gt;tools/dev/checkdepend.pl&lt;/code&gt;) and fixed many of the reported errors.&lt;br /&gt;&lt;br /&gt;Christoph Otto cleaned up the description of the bytecode format in &lt;a href="http://trac.parrot.org/parrot/browser/trunk/docs/pdds/pdd13_bytecode.pod"&gt;PDD 13&lt;/a&gt; and made packfiles somewhat smaller and faster by omitting redundant pc → filename mappings.&lt;br /&gt;&lt;br /&gt;Peter Lobsinger and Kevin Tew continued work in the &lt;code&gt;pmc_freeze_cleanup&lt;/code&gt; branch that aims at cleaning up and unifying PMC freeze/thaw serialization and packfile reading/writing.&lt;br /&gt;&lt;br /&gt;Geoffrey Broadwell has completed the migration of &lt;b&gt;plumage&lt;/b&gt; glue code to nqp-rx. All regexes are written in nqp-rx now, so PGE is no longer required. All plumage-specific code has been removed from &lt;a href="http://gitorious.org/parrot-plumage/parrot-plumage/blobs/master/src/lib/Util.nqp"&gt;&lt;code&gt;Util.nqp&lt;/code&gt;&lt;/a&gt; in order to prepare the file for possible inclusion as a library in the nqp-rx distribution. However, &lt;code&gt;Util.nqp&lt;/code&gt; still needs tests and a &lt;a href="http://trac.parrot.org/parrot/ticket/1389"&gt;ticket&lt;/a&gt; has been opened in order to encourage contributors. There is also a document explaining &lt;a href="http://gitorious.org/parrot-plumage/parrot-plumage/blobs/master/docs/hacking/add-tests.pod"&gt;how to add tests to plumage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[As mistakenly reported for week 51,]&lt;/i&gt; Bob Kuo, a.k.a. bubaflub, celebrated his new commit bit with a firework of changes, converting many further tests to PIR among other things.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-4849695831881827188?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/4849695831881827188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_28.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4849695831881827188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4849695831881827188'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_28.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-2452195689097287183</id><published>2009-12-22T13:40:00.000-08:00</published><updated>2009-12-22T13:43:45.174-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, December 14 to Sunday, December 20 in the year 2009&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;Cool&lt;/code&gt; class appears, an ancestor for all classes that are willing to convert their values in order to support the "culturally universal" methods defined in &lt;code&gt;Cool&lt;/code&gt; (for example &lt;code&gt;.abs&lt;/code&gt; or &lt;code&gt;.substr&lt;/code&gt;). The mutable &lt;code&gt;Cool&lt;/code&gt; namespace will also contain the multi methods of last resort that are searched if normal multiple dispatch does not find a viable candidate. All built-in classes except junctions and &lt;code&gt;Whatever&lt;/code&gt; derive from &lt;code&gt;Cool&lt;/code&gt;. User-defined classes do not derive from &lt;code&gt;Cool&lt;/code&gt; by default.&lt;br /&gt;&lt;br /&gt;The verbs for leaving a &lt;code&gt;when&lt;/code&gt; block early will be &lt;code&gt;proceed&lt;/code&gt; and &lt;code&gt;succeed&lt;/code&gt; (instead of the false friends &lt;code&gt;continue&lt;/code&gt; and &lt;code&gt;break&lt;/code&gt;). &lt;code&gt;proceed&lt;/code&gt; resumes execution after the closing curly of the &lt;code&gt;when&lt;/code&gt; block. &lt;code&gt;succeed&lt;/code&gt; immediately leaves the surrounding topicalizer block.&lt;br /&gt;&lt;br /&gt;The loose prefix operator for testing truth has been renamed from &lt;code&gt;true&lt;/code&gt; to &lt;code&gt;so&lt;/code&gt; in order to make it more distinct from &lt;code&gt;True&lt;/code&gt; and shorter than &lt;code&gt;not&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;REJECTS&lt;/code&gt; method has been removed. The negated smart match operator &lt;code&gt;!~~&lt;/code&gt; will use &lt;code&gt;!foo.ACCEPTS&lt;/code&gt; instead.&lt;br /&gt;&lt;br /&gt;Picking from baggy containers has been refined. A separate &lt;code&gt;.grab&lt;/code&gt; method will do a mutating &lt;code&gt;.pick&lt;/code&gt; which removes the selected element (once) from the container. When used without replacement, &lt;code&gt;.pick&lt;/code&gt; will keep a private temporary copy of the &lt;code&gt;Bag&lt;/code&gt; and &lt;code&gt;.grab&lt;/code&gt; from that. The &lt;code&gt;.pickpairs&lt;/code&gt; and &lt;code&gt;.grabpairs&lt;/code&gt; methods will treat each key/replication count pair as a single item to pick (and remove).&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Shortly after Parrot's 1.9.0 release, the Rakudo master branch was released as &lt;a href="http://www.rakudo.org/node/61"&gt;development release #24 ("Seoul")&lt;/a&gt;. Due to spectest changes, this release passes fewer tests than #23, but the relative percentage of passed tests has increased. The most visible changes in #24 are the switch from &lt;code&gt;Object&lt;/code&gt; to &lt;code&gt;Mu&lt;/code&gt; and the removal of &lt;code&gt;undef&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;In the &lt;code&gt;ng&lt;/code&gt; branch, Jonathan Worthington reimplemented &lt;code&gt;does&lt;/code&gt; in terms of the meta-model, not relying on Parrot's primitives. Work continued to make more spectest pass with the &lt;code&gt;ng&lt;/code&gt; branch.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Gerd Pokorra released &lt;a href="http://www.parrot.org/news/2009/Parrot-1.9.0"&gt;Parrot 1.9.0 "Blue-fronted Amazon"&lt;/a&gt; on December 15. Among the most notable changes are the greatly improved nqp-rx compiler and the extensible profiling runcore.&lt;br /&gt;&lt;br /&gt;The Parrot developers held a &lt;a href="http://wknight8111.blogspot.com/2009/12/parrot-developer-meeting-yesterday.html"&gt;roadmap meeting&lt;/a&gt;, identifying priorities for upcoming Parrot milestones. An important outcome was the change to a shorter 3-month support cycle. Parrot development for 2.0 and 2.3 will focus on the needs of &lt;a href="http://use.perl.org/%7Epmichaud/journal/39411"&gt;Rakudo *&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;context_unify3_simple&lt;/code&gt; branch by Vasily Chekalkin landed and merged the &lt;code&gt;Context&lt;/code&gt; and &lt;code&gt;CallSignature&lt;/code&gt; PMCs into &lt;code&gt;CallContext&lt;/code&gt;. The branch is a descendant of &lt;code&gt;context_unify3&lt;/code&gt; that omits some more involved changes to context creation.&lt;br /&gt;&lt;br /&gt;In the &lt;code&gt;pmc_freeze_cleanup&lt;/code&gt; branch created by Peter Lobsinger, the Parrot developers are busily cleaning up and merging freeze/thaw serialization and the PBC bytecode format. The new code uses the &lt;code&gt;visit_info&lt;/code&gt; struct as its pivot and keeps out of string internals.&lt;br /&gt;&lt;br /&gt;François Perrad continued to improve distutils and languages infrastructure.&lt;br /&gt;&lt;br /&gt;Bob Kuo, a.k.a. bubaflub, celebrated his new commit bit with a firework of changes, converting many further tests to PIR among other things.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-2452195689097287183?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/2452195689097287183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/2452195689097287183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/2452195689097287183'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_22.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-8148030756630086588</id><published>2009-12-13T15:50:00.000-08:00</published><updated>2009-12-13T16:09:35.360-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, December 7 to Sunday, December 13 in the year 2009&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://perlcabal.org/syn/S14.html#Compile-time_Composition"&gt;Role composition&lt;/a&gt; rules changed so the collision of &lt;code&gt;has&lt;/code&gt; attributes with the same name will always be considered a conflict, even if their types happen to match.&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;p{...}&lt;/code&gt; quoting construct for filenames has been removed in favour of the &lt;code&gt;:p&lt;/code&gt; modifier, so paths will be written as &lt;code&gt;q:p{...}&lt;/code&gt;, or &lt;code&gt;qp{...}&lt;/code&gt; in short.&lt;br /&gt;&lt;br /&gt;Bare &lt;code&gt;say&lt;/code&gt; and &lt;code&gt;print&lt;/code&gt; were reduced from errors to warnings. Upon a question about useful defaults, Larry Wall explained that Perl 6 will free the programmer from memorizing arbitrary lists of special cases. He also pointed out the concise forms &lt;code&gt;.say&lt;/code&gt; and &lt;code&gt;.print&lt;/code&gt; for printing the topic.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;On the Rakudo &lt;code&gt;ng&lt;/code&gt; branch, Jonathan Worthington &lt;a href="http://use.perl.org/~JonathanWorthington/journal/39997?from=rss"&gt;continued work&lt;/a&gt; on the &lt;a href="http://github.com/rakudo/rakudo/blob/ng/docs/metamodel.pod"&gt;meta-object protocol&lt;/a&gt;, filling in more parts of role composition. Attributes are now properly composed into packages by calling the &lt;code&gt;compose&lt;/code&gt; method on the meta-attribute. For initialized attributes, a build closure is passed along. The &lt;code&gt;RoleHOW&lt;/code&gt; meta-class moved towards independence from Parrot's &lt;code&gt;Role&lt;/code&gt; PMC.&lt;br /&gt;&lt;br /&gt;Notably, the &lt;code&gt;does&lt;/code&gt; and &lt;code&gt;but&lt;/code&gt; operators for mixing in roles are now written entirely in Perl 6, and the role appliers are NQP classes with only a little Parrot-specific code.&lt;br /&gt;&lt;br /&gt;Jonathan Worthington also added a first sketch of an implementation of enumeration types.&lt;br /&gt;&lt;br /&gt;Solomon Foster, Moritz Lenz, and Stephen Weeks did more work on the core setting. As of this writing, the &lt;code&gt;ng&lt;/code&gt; branch passes over 2400 spectests.&lt;br /&gt;&lt;br /&gt;In the &lt;b&gt;nqp-rx&lt;/b&gt; repository, Patrick Michaud started to rewrite the &lt;code&gt;HLL::Compiler&lt;/code&gt; class in NQP.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Christoph Otto refactored the profiling runcore to allow multiple output formats. Currently it supports the human-readable &lt;code&gt;pprof&lt;/code&gt; format and the silent &lt;code&gt;none&lt;/code&gt; format (for profiling the runcore itself). Plans are to add binary output and output in callgrind format. The updated runcore also supports recording annotations in pprof files. &lt;a href="http://trac.parrot.org/parrot/browser/trunk/docs/dev/profiling.pod"&gt;Environment variables&lt;/a&gt; are used to control these features.&lt;br /&gt;&lt;br /&gt;Working on the last part of his Hague grant, Patrick Michaud committed a &lt;a href="http://trac.parrot.org/parrot/browser/trunk/docs/pdds/draft/pdd31_hll.pod"&gt;new draft for PDD 31&lt;/a&gt; on HLL compilers and interoperability.&lt;br /&gt;&lt;br /&gt;The running of &lt;code&gt;:immediate&lt;/code&gt;, non-&lt;code&gt;:anon&lt;/code&gt; subs is now delayed when writing PBC bytecode, so the subs can run during reading PBC, which should make &lt;code&gt;.const&lt;/code&gt; more usable for HLLs (as &lt;code&gt;:immediate&lt;/code&gt; subs may set up things for creating the constant data from the bytecode).&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin created the &lt;a href="http://trac.parrot.org/parrot/browser/branches/context_unify3"&gt;context_unify3&lt;/a&gt; branch in the third attempt to merge the &lt;code&gt;CallSignature&lt;/code&gt; and &lt;code&gt;Context&lt;/code&gt; PMC types. The unified PMC will be known as &lt;code&gt;CallContext&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Bob Rogers posted a proof-of-concept patch for unwinding nested runloops upon the invocation of an exception handler.&lt;br /&gt;&lt;br /&gt;Peter Lobsinger is looking into &lt;a href="http://trac.parrot.org/parrot/ticket/1359"&gt;merging&lt;/a&gt; the PBC bytecode format and the freeze/thaw serialization format for PMCs.&lt;br /&gt;&lt;br /&gt;The December 12 &lt;a href="http://trac.parrot.org/parrot/wiki/PreDecemberReleaseHackathon"&gt;pre-release hackathon&lt;/a&gt; focused on &lt;a href="http://trac.parrot.org/parrot/ticket/1370"&gt;removing uses of the &lt;code&gt;strstart&lt;/code&gt; field&lt;/a&gt; outside the string internals. However, many occurrences cannot be replaced easily, and Andy Dougherty and Patrick Michaud warned about breaking code for cases of substrings that may not be tested.&lt;br /&gt;&lt;br /&gt;A lot of cage cleaning happened this week: JimmyZ contributed many patches to make PMC code use &lt;code&gt;GET_ATTR&lt;/code&gt; and &lt;code&gt;SET_ATTR&lt;/code&gt; macros. Bubaflub converted further tests to PIR. François Perrad improved C code indentation in areas not yet tested by &lt;code&gt;codingstd.t&lt;/code&gt;. Michael H. Hind fixed g++ build failures.&lt;br /&gt;&lt;br /&gt;Geoffrey Broadwell added Mercurial support to &lt;b&gt;plumage&lt;/b&gt; and &lt;a href="http://gitorious.org/parrot-plumage/parrot-plumage/trees/master/docs/hacking"&gt;documented&lt;/a&gt; how to add new build tools to the system.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-8148030756630086588?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/8148030756630086588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/8148030756630086588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/8148030756630086588'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_13.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-530511456040291936</id><published>2009-12-09T16:06:00.000-08:00</published><updated>2009-12-13T16:09:35.361-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;i&gt;from Monday, November 30, to Sunday, December 6, in the year 2009&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering the Language:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Enumeration types will be collections of &lt;code&gt;Enum&lt;/code&gt;s, that is of pairs with constant values (formerly known as &lt;code&gt;PairVal&lt;/code&gt;s). Like a &lt;code&gt;Pair&lt;/code&gt;, an &lt;code&gt;Enum&lt;/code&gt; has &lt;code&gt;.key&lt;/code&gt; and &lt;code&gt;.value&lt;/code&gt;, but both are read-only. An (anonymous) &lt;code&gt;enum&lt;/code&gt; declaration creates an &lt;code&gt;EnumMap&lt;/code&gt;, a sequence of &lt;code&gt;Enum&lt;/code&gt;s, the values of which are determined at compile time. An &lt;code&gt;.enums&lt;/code&gt; accessor will be provided by enumeration types to get at the associations (instead of &lt;code&gt;.mapping&lt;/code&gt;), and by other containers as a read-only analog to &lt;code&gt;.pairs&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The collection types &lt;code&gt;EnumMap&lt;/code&gt; and its modifiable value analog &lt;code&gt;PairMap&lt;/code&gt; (a sequence of &lt;code&gt;Pair&lt;/code&gt;s) will do roles for both positional and associative access.  At the implementation's discretion, the latter may use anything from linear scan to optimized hash-like lookup.&lt;br /&gt;&lt;br /&gt;The mixins created with &lt;code&gt;but&lt;/code&gt; fall into two categories: Mixing in an enumeration type adds a modifiable attribute. Mixing in a value adds a read-only accessor method.  The attribute added for rw mixins starts out uninitialized, unless a &lt;code&gt;WHENCE&lt;/code&gt; closure is given.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Rakudo:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;While the &lt;code&gt;master&lt;/code&gt; branch remained quiet except for an improvement of &lt;code&gt;Rat&lt;/code&gt; operators, the &lt;code&gt;ng&lt;/code&gt; branch continued to be the focus of development. In the course of his work on the meta-object protocol, Jonathan Worthington implemented role to instance application. Stephen Weeks committed a first draft of &lt;code&gt;CATCH&lt;/code&gt; and &lt;code&gt;CONTROL&lt;/code&gt;. Solomon Foster and Moritz Lenz restored many parts of the core setting, and perlpilot added &lt;code&gt;while&lt;/code&gt; and &lt;code&gt;until&lt;/code&gt; statement modifiers.&lt;br /&gt;&lt;br /&gt;Stephen Weeks plans to implement lazy &lt;code&gt;gather&lt;/code&gt; and &lt;code&gt;take&lt;/code&gt;, but is blocking on the redesign of Rakudo's iterator interface.&lt;br /&gt;&lt;br /&gt;Meanwhile, &lt;code&gt;nqp-rx&lt;/code&gt; acquired an initial version of the smartmatch operator, the &lt;code&gt;/.../&lt;/code&gt; construct for writing regexes and improved longname syntax.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Considering Parrot:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Garbage collection gained further attention when Patrick Michaud posted an observation about heavy GC overhead which he presumed to be caused by a small number of mortal but long-lived objects and inefficient marking. Contrariwise, chromatic attributed the overhead to the large number of short-lived objects generated internally by the Parrot Calling Conventions (PCC). Both supported their arguments with interesting experimental data.&lt;br /&gt;&lt;br /&gt;Various approaches were suggested, among them separate pools for immortal and PCC objects, combining objects to superobjects with escape pointer lists, stack allocation, and avoiding needless autoboxing.&lt;br /&gt;&lt;br /&gt;Traces of recycled objects showed pointless GC runs during startup, which led to an adjustment of the replenish level factor.&lt;br /&gt;&lt;br /&gt;Vasily Chekalkin merged the &lt;code&gt;CallSignature&lt;/code&gt; and &lt;code&gt;CallSignatureReturns&lt;/code&gt; PMC types in order to reduce the number of objects created. This change improved the &lt;code&gt;fib.pir&lt;/code&gt; benchmark by 7%.&lt;br /&gt;&lt;br /&gt;PCC learned to use the HLL type map when autoboxing values.&lt;br /&gt;&lt;br /&gt;Patrick Michaud questioned the deprecation of label-based exception handlers, which led to discussions of continuations invoked as/by exception handlers and the resulting inferior runloop problem. [To the reporter's understanding this problem arises when an exception handler declared in one runloop is invoked in another (nested) runloop and then resumes execution by falling through to the surrounding code.] The general consensus seemed to be that while nested runloops should be removed on the long term, an intermediate solution &amp;mdash; e.g.  an explicit opcode for resuming execution in the runloop declaring the handler &amp;mdash; was needed.&lt;br /&gt;&lt;br /&gt;Jonathan Leto provided microbenchmark results for past and present parrot versions.&lt;br /&gt;&lt;br /&gt;The question was raised whether PIR should get an &lt;code&gt;__END__&lt;/code&gt; tag, but the response was mostly negative.&lt;br /&gt;&lt;br /&gt;François Perrad committed many additions to and refactorings of &lt;code&gt;distutils&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Geoffrey Broadwell reports that 80% of &lt;code&gt;plumage&lt;/code&gt; refactorings are done and that it is time to add new features again.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-530511456040291936?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/530511456040291936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/530511456040291936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/530511456040291936'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-4176757664211385569</id><published>2009-11-29T15:17:00.000-08:00</published><updated>2009-12-01T04:41:30.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;span style="font-style: italic;"&gt;from Monday, November 23, to Sunday, November 29, in the year 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Considering the Language:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Seeking a word that conveys both allness and nothingness, Larry Wall renamed the root of the Perl&amp;nbsp;6 type hierarchy to &lt;code&gt;Mu&lt;/code&gt;, an allusion to the Zen concept of "no thing" or emptiness as the nature of all things. (Cows were also mentioned.)&lt;br /&gt;&lt;br /&gt;The radical change to &lt;code&gt;Mu&lt;/code&gt; was the outcome of a wider exploration: &lt;code&gt;undef&lt;/code&gt; as a term becomes obsolete, as there will be no singleton undefined value in Perl&amp;nbsp;6, but rather various flavours, for example the most undefined &lt;code&gt;Mu&lt;/code&gt;, other protoobjects carrying type information, failure objects (created with &lt;code&gt;fail&lt;/code&gt;), or &lt;code&gt;Nil&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Said &lt;code&gt;Nil&lt;/code&gt; is no longer a type, but a name for the empty parcel &lt;code&gt;()&lt;/code&gt;, which represents the absence of return values and resets containers to their initial value upon assignment (&lt;code&gt;Mu&lt;/code&gt; for untyped scalar containers).&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;sink&lt;/code&gt; prefix dissolves returned values to &lt;code&gt;Nil&lt;/code&gt;, which can help trigger actions in case of empty lists as in "&lt;code&gt;for @some || sink { warn "None!" } {...}&lt;/code&gt;".&lt;br /&gt;&lt;br /&gt;The convenience macro &lt;code&gt;.notdef&lt;/code&gt; and multi &lt;code&gt;notdef&lt;/code&gt; will be useful for matching undefined values.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://perlcabal.org/syn/S12.html#Enums"&gt;chapter about enums in Synopsis 12&lt;/a&gt; got expanded. Enum types are no longer roles, instead the types of enum values will just be guaranteed to be derived from and convertible to the enum's base type. Enum keys may be used as type names (each type containing a single enum value).  The enum type itself appears like a typename package containing a set of constant declarations and supplies a &lt;code&gt;.mapping&lt;/code&gt; method to get at the translation of symbolic values to enum values.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Considering Rakudo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick Michaud's reimplementation of "Not Quite Perl", &lt;a href="http://github.com/perl6/nqp-rx"&gt;nqp-rx&lt;/a&gt;, kept improving: Quoted strings can now be used as method names (including interpolation), regexes learned to heed &lt;code&gt;:pos&lt;/code&gt; and &lt;code&gt;:continue&lt;/code&gt; options, and Stephen Weeks contributed exception handling via &lt;code&gt;try&lt;/code&gt;, &lt;code&gt;CATCH&lt;/code&gt;, and &lt;code&gt;CONTROL&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://github.com/rakudo/rakudo/commits/ng"&gt;rakudo ng&lt;/a&gt; branch continued climbing up the spectest curve, which turned out steeper than initially hoped for, as many test files require features beyond those actually targeted by the respective test.&lt;br /&gt;&lt;br /&gt;Still the branch made good progress, as the Rakudo developers added &lt;code&gt;eval&lt;/code&gt;, lazy signature binding, regexes, and parts of the meta-object protocol, which was the focus of Jonathan Worthington's &lt;a href="http://use.perl.org/%7EJonathanWorthington/journal/39943?from=rss"&gt;Rakudo Day&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Considering Parrot:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last week, &lt;a href="http://irclog.perlgeek.de/parrot/2009-11-20#i_1751189"&gt;chromatic had observed&lt;/a&gt; that in one of Rakudo's use cases the repeated marking of a modest number of long-lived objects consumed over 88% of total CPU time. This finding led to discussions about garbage collection this week, and to the general agreement that a generational garbage collector would be an important improvement. Allison Randal confirmed that garbage collection will become a likely focus of development after release 2.0.&lt;br /&gt;&lt;br /&gt;Cotto committed an NQP port of the profiling script &lt;code&gt;pprof2cg&lt;/code&gt;, noting, however, that it was 26.5 times slower than the Perl version.&lt;br /&gt;&lt;br /&gt;Patches by bubaflub and kurahaupo converted further tests from Perl 5 to PIR.&lt;br /&gt;&lt;br /&gt;Allison Randal sent a &lt;a href="http://lists.parrot.org/pipermail/parrot-dev/2009-November/003422.html"&gt;note about MMD&lt;/a&gt; to the parrot-dev list, outlining how hypercube graphs could be used for fast calculation of Manhattan distances during dispatch.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://trac.parrot.org/parrot/wiki/ModuleEcosystem"&gt;Plumage&lt;/a&gt; saw a lot of refactoring and glue code reduction as more features of nqp-rx became available. Geoffrey Broadwell proposed a naming scheme for plumage dependencies which seemed to be well received. François Perrad continued work on his distutils package and contributed plumage metadata for several projects. As of this writing, the metadata base of plumage counts 23 projects.&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-4176757664211385569?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/4176757664211385569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/11/seven-days-between-parrot-and-camel_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4176757664211385569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/4176757664211385569'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/11/seven-days-between-parrot-and-camel_29.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111225535263222311.post-7552193204594586182</id><published>2009-11-22T15:07:00.000-08:00</published><updated>2009-12-01T04:41:30.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parrot'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Rakudo'/><title type='text'>Seven Days between the Parrot and the Camel</title><content type='html'>&lt;span style="font-style: italic;"&gt;from Monday, November 16, to Sunday, November 22, in the year 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Considering Parrot:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Parrot trunk remained mostly quiet after &lt;a href="http://www.parrot.org/news/2009/Parrot-1.8.0"&gt;release 1.8.0&lt;/a&gt; went out, while the Parrot developers finished the move from rt.perl.org to the Trac issue tracker in a burst of activity.  James Keenan, in particular, did a huge amount of ticket updates and documentation fixes.&lt;br /&gt;&lt;br /&gt;Most notably, nqp-rx, Patrick Michaud's self-hosting reimplementation of "Not Quite Perl" and Perl 6 regexes, is now distributed along with Parrot and gaining new users. Among them is &lt;a href="http://gitorious.org/parrot-plumage"&gt;plumage&lt;/a&gt; which became the source of several nqp-rx feature requests.&lt;br /&gt;&lt;br /&gt;François Perrad's build system "distutils" saw many additions, among them an update step, &lt;code&gt;smoke&lt;/code&gt; target, &lt;code&gt;plumage&lt;/code&gt; target, and a Win32 Inno installer target.&lt;br /&gt;&lt;br /&gt;Similar to &lt;code&gt;PMCNULL&lt;/code&gt;, &lt;code&gt;STRINGNULL&lt;/code&gt; is now available for representing the lack of a &lt;code&gt;STRING&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Addressing the &lt;a href="http://groups.google.com/group/parrot-dev/browse_thread/thread/71c80b282ef43e1a"&gt;needs of HLL developers&lt;/a&gt;, chromatic implemented several performance improvements, squeezing over 12% [reporter's calculation] out of the nqp-rx &lt;code&gt;Action.pm&lt;/code&gt; benchmark. Most of this is due to the addition of a method cache in the Object PMC and special-casing of hot paths in the Hash PMC.&lt;br /&gt;&lt;br /&gt;A new mailing list &lt;a href="http://lists.parrot.org/mailman/listinfo/parrot-users"&gt;parrot-users&lt;/a&gt; (with &lt;a href="http://groups.google.com/group/parrot-users"&gt;group&lt;/a&gt;) was installed so language authors can seek assistance undisturbed by the sounds of Parrot's internal machinery.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Considering Rakudo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rakudo.org/node/59"&gt;Development release #23 "Lisbon"&lt;/a&gt; was cut from master, but most of this weeks activity took place on the &lt;a href="http://github.com/rakudo/rakudo/commits/ng"&gt;new "ng" branch&lt;/a&gt; where Patrick Michaud and Jonathan Worthington are quickly rebuilding Rakudo's internals using nqp-rx.  As more features become available, contributors are starting to implement parts of the core setting in Perl 6.&lt;br /&gt;&lt;br /&gt;♢&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Considering the Language:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The seventh meta-operator &lt;code&gt;S&lt;/code&gt; appears with the ability to attach a sequence point to any non-fiddly infix operator. The resulting operator guarantees that its operands are evaluated sequentially and that shortcuts are taken where applicable.  Former &lt;code&gt;also&lt;/code&gt; is now spelled &lt;code&gt;S&amp;amp;&lt;/code&gt;, and the junctive sequential &lt;code&gt;else&lt;/code&gt; -- which only made a brief occurrence -- is spelled &lt;code&gt;S|&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;An area that might still need some sorting out is the combination of the sequencing &lt;code&gt;S&lt;/code&gt; with the reversal meta-operator &lt;code&gt;R&lt;/code&gt;. Conjecturally, application of &lt;code&gt;R&lt;/code&gt; reverses the sequence of evaluation along with the operands, i.e. &lt;code&gt;a RS/ b&lt;/code&gt; evaluates &lt;code&gt;a&lt;/code&gt; first and &lt;code&gt;b&lt;/code&gt; second, while &lt;code&gt;a SR/ b&lt;/code&gt; evaluates &lt;code&gt;b&lt;/code&gt; first and &lt;code&gt;a&lt;/code&gt; second.&lt;br /&gt;&lt;br /&gt;The semantics of rational numbers were elaborated and balanced between precision and performance. &lt;code&gt;FatRat&lt;/code&gt;s joined the pack providing arbitrary precision in both numerator and denominator at any cost. The parametric &lt;code&gt;Rational&lt;/code&gt; role serves as the general abstraction for rational numbers, analogous to &lt;code&gt;Integral&lt;/code&gt; for integers.&lt;br /&gt;&lt;br /&gt;The stringification prefix &lt;code&gt;~&lt;/code&gt; got divorced from &lt;code&gt;.Str&lt;/code&gt;. Unary &lt;code&gt;~&lt;/code&gt; imposes a Stringy context and -- like Perl 5 stringification --, will turn undefined values into the empty string (with warning).&lt;br /&gt;&lt;br /&gt;Slightly changing, &lt;code&gt;constant&lt;/code&gt; now considers itself a type declarator, declaring a type that has a single value determined at BEGIN time (so the optimizer can inline its uses).  Scope declarators as in &lt;code&gt;my constant&lt;/code&gt;, &lt;code&gt;has constant&lt;/code&gt;, etc. can be used to specify visibility and storage location.  By default constants (like enums) get &lt;code&gt;our&lt;/code&gt; scope.&lt;br /&gt;&lt;br /&gt;A new scope declarator, &lt;code&gt;anon&lt;/code&gt;, can be used to create anonymous subs with "of" type (i.e. &lt;code&gt;anon Foo sub {...}&lt;/code&gt;), so you don't have to abuse &lt;code&gt;my&lt;/code&gt; or &lt;code&gt;our&lt;/code&gt; for this purpose.&lt;br /&gt;&lt;br /&gt;The "void" context got tentatively renamed to "sink".  (Like its big sister, Perl 6 has three main contexts (sink, item, and list) controlling whether an expression should yield none, one, or many of its values.)&lt;br /&gt;&lt;br /&gt;Parcel semantics got some attention this week and the &lt;code&gt;is ref&lt;/code&gt; parameter trait changed to &lt;code&gt;is parcel&lt;/code&gt;.  Larry encourages us to spell &lt;code&gt;\$p&lt;/code&gt; instead of &lt;code&gt;$p is parcel&lt;/code&gt;, however, as the trait is mainly meant for introspection. (As every language feature needs its antagonist, Parcels show up when context is not called for. They provide a way for passing data without imposing context.)&lt;br /&gt;&lt;br /&gt;In other cont...areas the heavily overloaded word "context" was allowed to drop some of its burden: "contextual" variables became "dynamic" variables and are now accessible via the &lt;code&gt;DYNAMIC&lt;/code&gt; pseudo-package. Things formerly known as "dynamic contexts" or "activation records" are now simply "call frames".&lt;br /&gt;&lt;br /&gt;♢&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111225535263222311-7552193204594586182?l=lith-ology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lith-ology.blogspot.com/feeds/7552193204594586182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lith-ology.blogspot.com/2009/11/seven-days-between-parrot-and-camel.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/7552193204594586182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111225535263222311/posts/default/7552193204594586182'/><link rel='alternate' type='text/html' href='http://lith-ology.blogspot.com/2009/11/seven-days-between-parrot-and-camel.html' title='Seven Days between the Parrot and the Camel'/><author><name>Lithos</name><uri>http://www.blogger.com/profile/18214306613527433405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
