Just A Summary : Category perl-6, everything about perl-6 http://www.bofh.org.uk/articles/category/perl-6.rss en-us 40 Piers Cawley Practices Punditry Ruby 'til 6 <p>Oh, I say. It seems that <a href="http://www.intertwingly.net/blog/2006/08/01/Python-vs-Ruby">Sam Ruby</a> is another member of the &#8220;Ruby &#8216;til [Perl] 6&#8221; club.</p> <p>I like Ruby a lot. For the kind dynamic OO/Functional coding style that I espouse, it&#8217;s a better Perl than Perl simply because it&#8217;s so much less verbose (I got <em>so</em> tired of always unpacking the argument list, it tended to put me off applying the <a href="http://www.c2.com/cgi/wiki?ComposedMethod">Composed Method</a> pattern anywhere near often enough).</p> <p>But it&#8217;s not my One True Language. Perl 6 looks like it might be an awful lot closer to it. If nothing else, it has Lisp style macros.</p> <p>A good macro system, especially when it&#8217;s combined with an accessible and well abstracted runtime is an awfully useful thing. For instance, consider the Rails controller. In a rails controller, public methods are &#8216;visible&#8217; as actions that can be accessed via the web (usually with a url of the form <code>/:controller/:action</code>). Protected and private methods aren&#8217;t accessible in the same way.</p> <p>But sometimes it&#8217;s quite handy to have a method on the controller that shouldn&#8217;t be deemed to be an action, but which you might want to call from a model. The canonical example here is when you&#8217;re doing <a href="http://www.c2.com/cgi/wiki?DoubleDispatch">Double Dispatch</a>. Here&#8217;s an example of bad code:</p> <div class="typocode"><pre><code class="typocode_default ">results = @search_results.collect do |item| case item when Comment: extract_comment_metadata(item) when Trackback: extract_trackback_metadata(item) else fail &quot;Oops!&quot; end end</code></pre></div> <p>Look, we&#8217;re using a case statement that dispatches on the class of another object! This is a job for Polymorphism. Let&#8217;s assume that the two <code>extract_*_metadata</code> methods need to do some of the things that only a controller can and can&#8217;t simply be replaced with <code>extract_metadata</code> on the Comment and Trackback objects. Here&#8217;s how I&#8217;d rejig the controller code:</p> <div class="typocode"><pre><code class="typocode_default ">results = @search_results.collect {|item| item.extract_metadata_for(self) }</code></pre></div> <p>And the support code in the model classes looks like<sup><a href="#fn1">1</a></sup></p> <div class="typocode"><pre><code class="typocode_default ">def Comment::extract_metadata_for(controller) controller.extract_comment_metadata(self) end def Trackback::extract_metadata_for(controller) controller.extract_trackback_metadata(self) end</code></pre></div> <p>And look! I&#8217;ve saved a line of code! Except, it doesn&#8217;t quite work like that. The <code>extract_*_metadata</code> methods aren&#8217;t public, we&#8217;re not supposed to call them from the model, so we&#8217;ll have to work around it:</p> <div class="typocode"><pre><code class="typocode_default ">def Comment::extract_metadata_for(controller) controller.send :extract_comment_metadata, self end def Trackback::extract_metadata_for(controller) controller.send :extract_trackback_metadata, self end</code></pre></div> <p>which isn&#8217;t the end of the world, but it does obfuscate an idiom that&#8217;s already unfamiliar to many readers. Not good.</p> <p>If you were writing Rails in Smalltalk, you would just file your controllers web visible actions in an &#8216;actions&#8217; protocol and have done with it. If you were writing it in Perl, you could use method properties, declaring actions with something like:</p> <div class="typocode"><pre><code class="typocode_default ">sub read :action { ... }</code></pre></div> <p>Sadly, ruby doesn&#8217;t have method properties. What I&#8217;d <em>like</em> to be able to write is something like:</p> <div class="typocode"><pre><code class="typocode_default ">action read ... end</code></pre></div> <p>And have that define my action and do the housekeeping so that the rest of the framework knows that it can dispatch to this from a web request. About the nearest you could get to this with current Ruby is:</p> <div class="typocode"><pre><code class="typocode_default ">action :read do ... end</code></pre></div> <p>It&#8217;s not awful, but it&#8217;s not pretty either.</p> <p>A good macro system would make it let you write things that feel even more like part of the language than the many excellent things that Ruby on Rails already does in this area.</p> <p>Another example: I would dearly love to be able to &#8216;unwind protect&#8217; my controller&#8217;s filter methods, it&#8217;d be great if I could write:</p> <div class="typocode"><pre><code class="typocode_default ">pre_filter whatever allocate_a_bunch_of_resources true unwind_protect tidy_up_allocated_resources end</code></pre></div> <p>The idea being that, if a filter block returns false, or throws an exception, we walk back up the stack of filters that have been called and execute their unwind_protect blocks. Admittedly, this sort of thing wouldn&#8217;t be terribly easy to write <em>with</em> a macro system, but I&#8217;m not sure it&#8217;s even possible to write without one because you need to preserve the value from just before the <code>unwind_protect</code> to return to the filter&#8217;s caller. You&#8217;d have to move your <code>unwind_protect</code> earlier in the code:</p> <div class="typocode"><pre><code class="typocode_default ">pre_filter :whatever def whatever unwind_protect do tidy_up_allocated_resources end allocate_a_bunch_of_resources true end</code></pre></div> <p>But that feels arse about face, and I don&#8217;t know how you&#8217;re going to catch any exception thrown by <code>allocate_a_bunch_of_resources</code>. I suppose you could do:</p> <div class="typocode"><pre><code class="typocode_default ">pre_filter :whatever def whatever unwind_protect do tidy_up_allocated_resources end allocate_a_bunch_of_resources true rescue Exception =&gt; e tidy_up_allocated_resources raise e end</code></pre></div> <p>But by now we&#8217;re looking at code that only a mother could love, and even then she&#8217;d need a pretty high tolerance threshold.</p> <p>Macro systems let you play these sorts of games, they&#8217;re just another tool for molding the language into something that makes it easy to solve the sorts of problems you face from day to day. One of the great things about using Ruby on Rails is that <span class="caps">DHH</span> and his cohorts have done a fabulous job of language design. Rails contains a host of handy domain specific languages (the most obvious being the stuff for declaring object relationships in ActiveRecord, but there&#8217;s some very handy stuff in the tag building and <span class="caps">RJS</span> support libraries as well) that work well together and allow the programmer to concentrate on solving his particular problem. It&#8217;s just that on occasion, it would be nice if they could go that one step further.</p> <p>Perl 6 will let me take those sorts of steps.</p> <p>I&#8217;d just like to say to any schemers/lispers who&#8217;ve made it this far: &#8220;Yes, I know.&#8221;</p> <p id="fn1"><sup>1</sup> It doesn&#8217;t quite, I&#8217;ve taken liberties with the <code>def</code> syntax to preserve some vertical space&#8230;</p> Thu, 03 Aug 2006 02:34:00 -0500 urn:uuid:82f8cd89-f228-41af-90fa-1f6e356921a7 pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2006/08/03/ruby-til-6#comments Perl Perl 6 Ruby http://www.bofh.org.uk/trackbacks?article_id=ruby-til-6&day=03&month=08&year=2006 http://www.bofh.org.uk/articles/2006/08/03/ruby-til-6 The Perl 6 Summary for the week ending 2005-01-09 <p>This week marks Matt Fowles&#8217;s first Summary posted on Just A Summary (here&#8217;s hoping it won&#8217;t be the last). We have been writing the Perl 6 Summary on alternate weeks since early last year when Piers returned from attempting to be a Maths teacher and had the time to write summaries again.</p> <p>So, here&#8217;s Matt&#8217;s take on the week, complete with props to a troll. Now we know why the summary was late.</p> <p>Welcome to another Perl 6 Summary. On a complete tangent, if you are playing World of Warcraft and see a troll hunter named Krynna, she rocks. She royally saved me. Be nice to her.</p> <h4>Perl 6 Compiler</h4> <h5><span class="caps">PIL</span> Containers and Roles</h5> <p>Audrey explained that she and Stevan have been putting in effort to allow Pugs and <span class="caps">PIL</span> to bootstrap Roles and eventually the entire object model.</p> <p><a href="http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/b4dd4226a05aabd4/942641fb351db8bb#942641fb351db8bb">http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/b4dd4226a05aabd4/942641fb351db8bb#942641fb351db8bb</a></p> <h5>Reference and Assignment Semantics</h5> <p>Audrey posted a brain dump focusing on the issues and implications of how containers, assignment, and auto dereferencing interact.</p> <p><a href="http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/9b13766895a21db0/146e208baf93c9da#146e208baf93c9da">http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/9b13766895a21db0/146e208baf93c9da#146e208baf93c9da</a></p> <h5>Table of Perl 6 &#8220;Types&#8221;</h5> <p>Stevan Little posted a summary of his understanding of Perl 6&#8217;s core type hierarchy. Larry replied with a few comments and corrections.</p> <p><a href="http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/343c6ca45eaf75b2/43efd79fd877512e#43efd79fd877512e">http://groups.google.com/group/perl.perl6.compiler/browse_thread/thread/343c6ca45eaf75b2/43efd79fd877512e#43efd79fd877512e</a></p> <h4>Parrot</h4> <h5>Configure and Symlinks</h5> <p>Alberto Simoes wondered how the configuration system should handle symlinks. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/65d0580f06163e62/46dd98da13a4e2e4#46dd98da13a4e2e4">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/65d0580f06163e62/46dd98da13a4e2e4#46dd98da13a4e2e4</a></p> <h5>Removed <span class="caps">NCI</span> Types</h5> <p>Dan Sugalski wondered why the T and L parameters have been removed from <span class="caps">NCI</span> and how he should work around their absence. Leo suggested you ManagedStruct PMCs for it and pointed him to the <span class="caps">SDL</span> libraries.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/79282160cc3b7caf/232ca7c167792d94#232ca7c167792d94">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/79282160cc3b7caf/232ca7c167792d94#232ca7c167792d94</a></p> <h5><code>mkdir</code> test can fail</h5> <p>Bob rogers posted a patch fixing an unanchored regular expression in the <code>mkdir</code> test. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/80e0fcdcb79ac604/6e6f210b0feb68ab#6e6f210b0feb68ab">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/80e0fcdcb79ac604/6e6f210b0feb68ab#6e6f210b0feb68ab</a></p> <h5>Build html should use Pod::Find</h5> <p>Joshua Isom suggested that Pod::Find would make building html less error prone and more robust to changes the Pod structure. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/e52de8403e23a161/eb1caef45f448f85#eb1caef45f448f85">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/e52de8403e23a161/eb1caef45f448f85#eb1caef45f448f85</a></p> <h5><span class="caps">CWD</span> on HP-UX</h5> <p>Nick Glencross posted a fix to <code>os.pmc</code> for HP-UX. Alberto Sim&#305;es applied the patch.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/efa7305ff99b48a0/f167ae99bae4704a#f167ae99bae4704a">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/efa7305ff99b48a0/f167ae99bae4704a#f167ae99bae4704a</a></p> <h5>Alignment Issues on HP-UX</h5> <p>Nick Glencross posted a back trace from a test failing on HP_UX. His initial analysis indicates that it is an alignment issue. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/ce9628374307221e/e459d1f5ef3cc1bd#e459d1f5ef3cc1bd">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/ce9628374307221e/e459d1f5ef3cc1bd#e459d1f5ef3cc1bd</a></p> <h5>Tcl Todo</h5> <p>Will Coleda posted more todos for Tcl. Like last week, I won&#8217;t summarize them all. But I am very happy to see Tcl coming along again. I must say that I always like watching the test percentages climb.</p> <h5>Parrot 0.4.1</h5> <p>Leo announced the release of Parrot 0.4.1.</p> <h5>Sun&#8217;s Compiler No Like <span class="caps">CRLF</span></h5> <p>Andy Dougherty noticed that Sun&#8217;s compiler was choking on coroutine.pmc because it had bad line endings. He fixed it, and Jerry Gay applied the patch.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/edfd440125aa9b33/9f646f2379ad520a#9f646f2379ad520a">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/edfd440125aa9b33/9f646f2379ad520a#9f646f2379ad520a</a></p> <h5>atan2 issues</h5> <p>Joshua Hoblitt committed a possible fix for some atan2 issues occuring on openbsd, solaris, and cygwin. The fix didn&#8217;t help cygwin or solaris. No word on openbsd.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/f0304137d88751b6/c0712e007deeede5#c0712e007deeede5">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/f0304137d88751b6/c0712e007deeede5#c0712e007deeede5</a></p> <h5><code>OS.pmc</code> needs a few methods</h5> <p>Will Coleda created a few todo: <code>OS.pmc</code> needs an <code>lstat</code> method, and methods to set <code>atime</code> and <code>mtime</code>.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/82e08434f37eafaa/3609da9d2641ecd0#3609da9d2641ecd0">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/82e08434f37eafaa/3609da9d2641ecd0#3609da9d2641ecd0</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/acf4595682eeba3c/a78191943a5cd21e#a78191943a5cd21e">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/acf4595682eeba3c/a78191943a5cd21e#a78191943a5cd21e</a></p> <h5>Vanishing Warnings</h5> <p>Will Coleda noticed that a few warnings disappeared. Leo admitted that he accidentally applied a fix some time ago.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/e799005367e5738d/123ccc8d1143a23d#123ccc8d1143a23d">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/e799005367e5738d/123ccc8d1143a23d#123ccc8d1143a23d</a></p> <h5>Configure.pl and Optimize</h5> <p>Andy Dougherty noticed that <code>Configure.pl --optimize</code> no longer worked correctly. Joshua Hoblitt took the opportunity to clean up that portion of <code>Configure.pl</code>.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/1c68358164e8b36a/b672f5f84be459cb#b672f5f84be459cb">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/1c68358164e8b36a/b672f5f84be459cb#b672f5f84be459cb</a></p> <h5>Event System Question</h5> <p>Klaas-Jan Stol wondered why events (unlike exceptions) are handled after a little time instead of immediately. Leo explained that this was due to the asynchronous nature of an events arrival and the inability to resume execution after a long jump.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/622417a1fb7b15c6/0ab9e044ba779988#0ab9e044ba779988">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/622417a1fb7b15c6/0ab9e044ba779988#0ab9e044ba779988</a></p> <h5><span class="caps">CFLAGS</span> missed two files</h5> <p>Andy Dougherty noticed that the core_ops source files missed come of the directory rearrangements. Jerry Gay applied the patch.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/554a5adc0b00f73c/e5067070cb6b621c#e5067070cb6b621c">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/554a5adc0b00f73c/e5067070cb6b621c#e5067070cb6b621c</a></p> <h5>File::Temp Issue</h5> <p>Leo noticed an issue in t/run/options. Jerry tracked it down to an old version of Perl and the File::Temp module and fixed the problem.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/1712fb8a8b4c77b8/f5e8fbfa18d7279e#f5e8fbfa18d7279e">http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/1712fb8a8b4c77b8/f5e8fbfa18d7279e#f5e8fbfa18d7279e</a></p> <h5>Simple Namespace Question</h5> <p>Joshua Isom wondered how to separate namespaces for find_global calls. Leo explain that he should use a list like <code>['Foo'; 'Bar']</code>.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/a884cc3c8cb83634/18813183c113508e#18813183c113508e">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/a884cc3c8cb83634/18813183c113508e#18813183c113508e</a></p> <h5>Credits</h5> <p>The ever modest Nick Glencross updated his name in the credits file to be a little more understated. Oddly, no one applied the patch.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/d57f1d7f86dd17d5/ba9a9277f45d4b94#ba9a9277f45d4b94">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/d57f1d7f86dd17d5/ba9a9277f45d4b94#ba9a9277f45d4b94</a></p> <h5>parrot config revisited</h5> <p>Nick Glencross posted a few questions, thoughts, and patches involving parrot_get_config. Leo agreed with most of it, but had a few comments.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/581d87d36d7752b1/3c124a185e2a02ff#3c124a185e2a02ff">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/581d87d36d7752b1/3c124a185e2a02ff#3c124a185e2a02ff</a></p> <h5>pkgsrc build</h5> <p>Anders Nor Berle provided a few patches making thing work a little more smoothly with FreeBSD and pkgsrc. Jerry Gay reviewed the patches and Florian Ragwitz applied the relevant portions. In fact, 0.4.1 got added to pkgsrc for the curious.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/f2f0cfcfe8ae27c4/5bde981c101a524a#5bde981c101a524a">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/f2f0cfcfe8ae27c4/5bde981c101a524a#5bde981c101a524a</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e21d0d22545c9a1f/073b244c8fc1effc#073b244c8fc1effc">0.4.1 added</a></p> <h5>static and shared libparrot</h5> <p>Florian Ragwitz provided a patch that fixed the issue with building both a shared and static libparrot. Nick Glencross applied the patch. Nick Glencross made <span class="caps">OS X</span> and HP-UX build shared parrots. Anders Nor Berle helped FreeBSD along. Jonathan Worthington brought <span class="caps">MSVC</span> into line. Nick Glencross also finished up the painful task of making it all work on Cygwin.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8958d41e014961da/804eb49e16fce1f3#804eb49e16fce1f3">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8958d41e014961da/804eb49e16fce1f3#804eb49e16fce1f3</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/a588ac33cc52216f/62ebd6819467e5ca#62ebd6819467e5ca">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/a588ac33cc52216f/62ebd6819467e5ca#62ebd6819467e5ca</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/cfd3979b696361b7/30d773996ead034e#30d773996ead034e">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/cfd3979b696361b7/30d773996ead034e#30d773996ead034e</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0fc8e0b3b4173d1f/d7150979859a5686#d7150979859a5686">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0fc8e0b3b4173d1f/d7150979859a5686#d7150979859a5686</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/56dcf1f0a9026681/f498525fcdf16214#f498525fcdf16214">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/56dcf1f0a9026681/f498525fcdf16214#f498525fcdf16214</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8b2081073b558507/f9440a32da3c78cf#f9440a32da3c78cf">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8b2081073b558507/f9440a32da3c78cf#f9440a32da3c78cf</a></p> <h5>GC Bug with String Ops</h5> <p>Roger Browne was tracking a GC Bug involving string operations. Unfortunately, no one else could reproduce it. Doubtless, we will see it again.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/76ba86f5792028f8/e2689bb5cc96ad53#e2689bb5cc96ad53">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/76ba86f5792028f8/e2689bb5cc96ad53#e2689bb5cc96ad53</a></p> <h5>Winter Cleaning</h5> <p>Jerry Gay, not content with his fall clean up, has done a winter clean up too. This time he went through and cleaned all the svn metadata.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/80610e42f8532b28/4b3441e6d59214ad#4b3441e6d59214ad">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/80610e42f8532b28/4b3441e6d59214ad#4b3441e6d59214ad</a></p> <h5>Paper on Parrot</h5> <p>Klaas-Jan Stol posted a link to his paper on Parrot. It is not yet finished and, like most things documenting parrot, already out-of-date, but it can probably serve as a good introduction.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/f62ba03f728f4715/157620587fc8920b#157620587fc8920b">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/f62ba03f728f4715/157620587fc8920b#157620587fc8920b</a></p> <p><a href="http://members.home.nl/joeijoei/parrot/paper.pdf">The Paper</a></p> <p><a href="http://members.home.nl/joeijoei/parrot/paper.pdf">http://members.home.nl/joeijoei/parrot/paper.pdf</a></p> <h5><code>string_to_int</code> issues</h5> <p>Roger Browne found and tried to fix a problem with <code>string_to_int</code>. Unfortunately Leo beat him to the fix. Fortunately, Roger found and fixed another problem with it.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/179b11d7a05f56a1/768d8a8b3d3c6128#768d8a8b3d3c6128">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/179b11d7a05f56a1/768d8a8b3d3c6128#768d8a8b3d3c6128</a></p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/838c12171baf29e7/932db171dd5163a9#932db171dd5163a9">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/838c12171baf29e7/932db171dd5163a9#932db171dd5163a9</a></p> <h5>Parrot for Windows Macros</h5> <p>Christian Lott wondered how hard it would be to write inter application macros in Parrot. Unfortunately, his wonderings didn&#8217;t seem to make it to the list. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/352a7091170ac2d2/c61bd0d26ff13edd?utoken=K8yzFTcAAADWXQ4sS--whFjzzhFxvEM0DybgO1VO7hObr9VCWjXlbtO6JXaRzBummFrFvR-_qGYgXZvolmEQX2aER5F1QK86">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/352a7091170ac2d2/c61bd0d26ff13edd?utoken=K8yzFTcAAADWXQ4sS&#8212;whFjzzhFxvEM0DybgO1VO7hObr9VCWjXlbtO6JXaRzBummFrFvR-_qGYgXZvolmEQX2aER5F1QK86</a></p> <h5>Installation of Include Files</h5> <p>Anders Nor Berle provided a patch which fixed parrot&#8217;s installation of include files. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0e40335eabbd471e/25cec580b185f538#25cec580b185f538">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0e40335eabbd471e/25cec580b185f538#25cec580b185f538</a></p> <h5>Parrot on Cygwin</h5> <p>Alberto Sim&#305;es wondered if he was doing something wrong while trying to get parrot to build on cygwin. Nick Glencross answered that it didn&#8217;t work yet, but he was on the job.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/bc4f9357e6649a12/afb039ecfd6ad300#afb039ecfd6ad300">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/bc4f9357e6649a12/afb039ecfd6ad300#afb039ecfd6ad300</a></p> <h5>Clearing Exceptions Only in the Current Context</h5> <p>Bob Rogers provided a patch which makes clear_eh only clear exception handlers in the current context. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/fdc7033d01108917/44855db848f6cc0f#44855db848f6cc0f">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/fdc7033d01108917/44855db848f6cc0f#44855db848f6cc0f</a></p> <h5>Update Patch Instructions</h5> <p>Roger Browne posted a patch updating submissions.pod. Joshua Hoblitt applied and improved upon Roger&#8217;s patch.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/db9d0eff03781959/fc82328218aeb4fc#fc82328218aeb4fc">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/db9d0eff03781959/fc82328218aeb4fc#fc82328218aeb4fc</a></p> <h5>File Copy</h5> <p>Will Coleda opened a can of worms when he asked for a copy file method on os.pmc. Chip had some good insights.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/1c11f0a67bde34c2/07daca1c6e17fac1#07daca1c6e17fac1">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/1c11f0a67bde34c2/07daca1c6e17fac1#07daca1c6e17fac1</a></p> <h5>doc/ops Permission Issue</h5> <p>Joshua Isom posted a patch fixing some permissions issues with installed parrot docs. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/62a61c089c0d0063/0bde8dd35b98204d#0bde8dd35b98204d">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/62a61c089c0d0063/0bde8dd35b98204d#0bde8dd35b98204d</a></p> <h5>Smoke that Cross Site Scripting</h5> <p>Joshua Hoblitt noticed that the smoke system was not very health conscious about its input. Florian Ragwitz said that he was about to do a rewrite to fix the issue.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/9056405f08428637/f59aedd91a7f0d2a#f59aedd91a7f0d2a">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/9056405f08428637/f59aedd91a7f0d2a#f59aedd91a7f0d2a</a></p> <h5>Patches Go to parrotbug</h5> <p>Joshua Hoblitt noticed that not all patches were making it into RT. So he posted a friendly reminder that everyone should submit patches through parrotbug.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/1f5b8cf5d3b18535/29ea7fb95a2adb67#29ea7fb95a2adb67">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/1f5b8cf5d3b18535/29ea7fb95a2adb67#29ea7fb95a2adb67</a></p> <h5><span class="caps">TODO</span>: make distcheck</h5> <p>Joshua Hoblitt created a <span class="caps">TOD</span> for distcheck.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/6df6c66d68ce39dd/6766691ced8f1c0d#6766691ced8f1c0d">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/6df6c66d68ce39dd/6766691ced8f1c0d#6766691ced8f1c0d</a></p> <h5><code>META.yml</code> Needed</h5> <p>Joshua Hoblitt also suggested that we generate a <code>META.yml</code> so <span class="caps">CPAN</span> can index it.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/d03881ef79c8e40a/760e9a0101f75253#760e9a0101f75253">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/d03881ef79c8e40a/760e9a0101f75253#760e9a0101f75253</a></p> <h5>Muddle Cleanup</h5> <p>Bernhard Schmalhofer resurrected an old ticket when he posted his thoughts on how far our documentation muddle had progressed. Original ticket from Sep 2004.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0696c10897a4bba2/833729bcaabc3e5d#833729bcaabc3e5d">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/0696c10897a4bba2/833729bcaabc3e5d#833729bcaabc3e5d</a></p> <h5>optimize <code>pmc2c.pl</code></h5> <p>Joshua Hoblitt noticed that <code>pmc2c.pl</code> could be fairly easily optimized. Anyone up for some low hanging fruit?</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/ee8da32d7c701bda/2b256995c5a05672#2b256995c5a05672">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/ee8da32d7c701bda/2b256995c5a05672#2b256995c5a05672</a></p> <h5>Dynamic Binding</h5> <p>Bob Rogers posted an <span class="caps">RFC</span> about dynamic binding. Leo and Steve Gunnell both provided comments.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/03080716c382777b/e98296c5f83bf35e#e98296c5f83bf35e">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/03080716c382777b/e98296c5f83bf35e#e98296c5f83bf35e</a></p> <h5>svk-bootstrap-dump</h5> <p>Joshua Hoblitt noticed that svk&#8217;s bootstrap dump was a little old. We should probably automatically generate updated one for the <span class="caps">SVK</span> loving world.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/c5af8f390965b654/a7ed7ba32c67fabd#a7ed7ba32c67fabd">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/c5af8f390965b654/a7ed7ba32c67fabd#a7ed7ba32c67fabd</a></p> <h5>Dyn Op Build Process</h5> <p>Jonathan Worthington committed some changes rationalizing and improving the dynops build process. Nick Glencross affirmed that it worked on cygwin.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/feb1376b19577157/0c7ec926160f63ff#0c7ec926160f63ff">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/feb1376b19577157/0c7ec926160f63ff#0c7ec926160f63ff</a></p> <h5>COWs Eat Memory</h5> <p>Leo found an interesting example. By reversing a string in place using substr he can make Parrot consume memory like never before. This was causing a panic, which he fixed. But the core issue remains.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/7b57df47d1cafba5/097808a56675ff13#097808a56675ff13">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/7b57df47d1cafba5/097808a56675ff13#097808a56675ff13</a></p> <h5>Bug Wranglers</h5> <p>Joshua Hoblitt posted a start to a bug wrangler document. Jerry Gay encouraged him to check it in.</p> <p><a href="http://video.google.com/videoplay?docid=4057591681481453187&#38;q=cats+herding">http://video.google.com/videoplay?docid=4057591681481453187&#38;q=cats+herding</a></p> <p>Funny <span class="caps">EDS</span> Commercial &#8211; Cat Herding &#8211; Google Video <a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/39c645e9a0c8d631/8864eae5becaac9a#8864eae5becaac9a">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/39c645e9a0c8d631/8864eae5becaac9a#8864eae5becaac9a</a></p> <h5>Lua2PIR Translator</h5> <p>Klaas-Jan Stol posted an update to his Lua2PIR translator.</p> <p><a href="http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/adbeecb12dc0bf7a/6746c6d18aaff181#6746c6d18aaff181">http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/adbeecb12dc0bf7a/6746c6d18aaff181#6746c6d18aaff181</a></p> <h4>Perl 6 Language</h4> <h5>Environmental Variables</h5> <p>Luke Palmer suggested that <code>$/</code> and <code>$!</code> should be made into environmental variables. Thomas Sandlass like the idea.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/c786b08adcb05de4/4be6c807430c91ad?utoken=_u3iJzYAAACm_q77TyrrVe_fwJ69_5uAbTPhSNyRrVYFoesl1T45OZNOpZR5DAKMQdongt7EtgAokkP7PIEG6lz8OJ6yP8p">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/c786b08adcb05de4/4be6c807430c91ad?utoken=_u3iJzYAAACm_q77TyrrVe_fwJ69_5uAbTPhSNyRrVYFoesl1T45OZNOpZR5DAKMQdongt7EtgAokkP7PIEG6lz8OJ6yP8p-</a>-</p> <h5>Implementing Several Signatures</h5> <p>Jonathan Lang wondered if there where a concise way to implement several function signatures at once. Fayland Lam pointed out the is commutative trait, but Miroslav Silovic warned that that actually generated another function which transposed the arguments.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/2644235fdb0d4971/c37ea5f7f141e882#c37ea5f7f141e882">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/2644235fdb0d4971/c37ea5f7f141e882#c37ea5f7f141e882</a></p> <h5>Zip vs Each</h5> <p>Jonathan Lang noticed that S4 and S3 did not agree on the usage of <code>zip</code>. Larry clarified that S4 was out of date.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/69729272707d39c2/2097797fe3dda319#2097797fe3dda319">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/69729272707d39c2/2097797fe3dda319#2097797fe3dda319</a></p> <h5>Junctions Again</h5> <p>Once more the perennial argument has returned. Junctions will either cure cancer, kill babies, or both. Odds are they won&#8217;t change this time.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/45507ab64b0aa771/82d7bc5304e1a214#82d7bc5304e1a214">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/45507ab64b0aa771/82d7bc5304e1a214#82d7bc5304e1a214</a></p> <h5>Friendly Facades</h5> <p>Gaal Yahas wondered how to make &#8220;friendly facades&#8221; like <code>use_ok</code>. Yuval Kogman suggested making it a macro, and Luke Palmer suggested a powerful scope object.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/02c5a7051cb25247/afa19cc3dfdc6ccc#afa19cc3dfdc6ccc">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/02c5a7051cb25247/afa19cc3dfdc6ccc#afa19cc3dfdc6ccc</a></p> <h5>Class vs Object Contradiction</h5> <p>Stevan Little posted a possible contradiction he saw from <span class="caps">S12</span>. Warnock applies.</p> <h5>Representation Types</h5> <p>Stevan Little wondered how to handle representation types other that P6opaque. Warnock applies.</p> <p><a href="http://groups.google.com/group/perl.perl6.language/browse_frm/thread/b27b8d2aac67b5bb/ce8b1d93c796cef8#ce8b1d93c796cef8">http://groups.google.com/group/perl.perl6.language/browse_frm/thread/b27b8d2aac67b5bb/ce8b1d93c796cef8#ce8b1d93c796cef8</a></p> <h4>The usual footer</h4> <p>To post to any of these mailing lists please subscribe by sending email to <perl6-internals-subscribe@perl.org>, <perl6-language-subscribe@perl.org>, or <perl6-compiler-subscribe@perl.org>. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to ubermatt@gmail.com</p> <p><a href="http://donate.perl-foundation.org/">The Perl Foundation</a></p> <p><a href="http://dev.perl.org/perl6/">Perl 6 Development site</a></p> <p><a href="http://planet.parrotcode.org/">Parrot Blog aggregator</a></p> Thu, 12 Jan 2006 08:17:00 -0600 urn:uuid:d3c0a884-a0e5-4754-9f19-04728d8c39de pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2006/01/12/the-perl-6-summary-for-the-week-ending-2005-01-09#comments Perl 6 Perl 6 Summaries perl6 p6summary 20060109 http://www.bofh.org.uk/trackbacks?article_id=the-perl-6-summary-for-the-week-ending-2005-01-09&day=12&month=01&year=2006 http://www.bofh.org.uk/articles/2006/01/12/the-perl-6-summary-for-the-week-ending-2005-01-09 The Perl 6 Summary for the week ending 2006-01-01 <p>Another year, another summary. You might think I&#8217;m going to summarize the events of the whole year, but it turns out that chromatic&#8217;s already done it. So in the spirit of laziness, I&#8217;ll just point you at his year end summary.</p> <p><a href="http://www.oreillynet.com/pub/wlg/8894">http://www.oreillynet.com/pub/wlg/8894</a></p> <p>Sadly for us all, he doesn&#8217;t go into enough detail on the events of the last week for me to go straight into the coda. I shall have to talk to him about next year.</p> <p>This week sees a big non-technical change in the Pugs camp, lots of roadmapping and implementation in the Parrot camp, and a more and more concrete feel of what the language is going to look like in the perl6-language camp.</p> <p>Pretty much business as usual really.</p> <h3>This week in perl6-compiler</h3> <h4>Runtime typecasting</h4> <p>Autrijus Tang is now Audrey Tang. Read her explanation on her blog. Speaking personally I&#8217;m delighted that she&#8217;s found the courage to make the change and wish her the best of luck and happiness in her new/true identity.</p> <p><a href="http://pugs.blogs.com/audrey/2005/12/runtime_typecas.html">http://pugs.blogs.com/audrey/2005/12/runtime_typecas.html</a></p> <h4>Pugs on Cygwin</h4> <p>There was a fair amount of discussion on getting pugs and parrot running in the Cygwin environment this week. Last time I looked, things were working again.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400512261400l2cf167eauc2825a1ba73b0c1b@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400512261400l2cf167eauc2825a1ba73b0c1b@mail.gmail.com</a></p> <h4>This week&#8217;s Pugs developments</h4> <p>Audrey&#8217;s taken to summarizing pugs developments on her blog and to posting digests of these posts on the list. She wrote about <span class="caps">PIL</span> and Rules this week.</p> <p><a href="http://groups.google.com/groups?threadm=43B6DBEB.7020303@autrijus.org">Pugs-PIL developments</a></p> <p><a href="http://groups.google.com/groups?threadm=43B6DCB9.4060402@autrijus.org">Pugs-Rule developments</a></p> <p><a href="http://groups.google.com/groups?threadm=43B8229F.2030007@autrijus.org">Pugs-Rule: Grammar support</a></p> <h3>Meanwhile, in perl6-internals</h3> <h4>Threading <span class="caps">PDD</span>?</h4> <p>Patrick Michaud suggested, after a question from Klaas-Jan Stol, that it might be a good idea to create a placeholder Threading <span class="caps">PDD</span> (Parrot Design Document) noting that threading hasn&#8217;t been specced yet and that a draft would be welcomed. Warnock applies.</p> <p><a href="http://groups.google.com/groups?threadm=20051226180251.GB18241@host.pmichaud.com">http://groups.google.com/groups?threadm=20051226180251.GB18241@host.pmichaud.com</a></p> <h4>Pugs is the official Perl 6?</h4> <p>Or am I putting words into Luke&#8217;s mouth? Read, then decide.</p> <p><a href="http://groups.google.com/groups?threadm=7ca3f0160512272328w495ad815hecc409bd716fcbb7@mail.gmail.com">http://groups.google.com/groups?threadm=7ca3f0160512272328w495ad815hecc409bd716fcbb7@mail.gmail.com</a></p> <h4>.imc or .pir? There can only be one</h4> <p>As part of the great Parrot reorganization, Chip declared that the <span class="caps">IMC</span> vs <span class="caps">PIR</span> ambiguity had to be resolved. As he put it:</p> <p><span class="caps">IMC</span> vs. <span class="caps">PIR</span></p> <p>Two names enter</p> <p>One name leaves</p> <p>The name that left was <span class="caps">PIR</span>; any files you find with .imc extensions should be cruelly laughed at while you kick sand in their faces.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400512281152u70a9726amb42b479c15be8bd0@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400512281152u70a9726amb42b479c15be8bd0@mail.gmail.com</a></p> <h4>Dynamic binding patch</h4> <p>Bob Rogers offered up a patch to implement dynamic binding of globals for the list&#8217;s consideration. Leo thought the patch was mostly sound, but that the whole dynamic binding thing needed more thought and infrastructure. Which is probably a broad hint to Chip and possibly @Larry (said hint hasn&#8217;t been taken yet though, well, not in public).</p> <p><a href="http://groups.google.com/groups?threadm=17333.25927.15166.416455@rgrjr.dyndns.org">http://groups.google.com/groups?threadm=17333.25927.15166.416455@rgrjr.dyndns.org</a></p> <h4>Smoke testing</h4> <p>Leo pointed everyone at the Perl Image Testing Architecture, which has possibly the coolest acronym of any Perl project in recent years. He thought it would be useful to use for additional Parrot platform testing as well.</p> <p><a href="http://groups.google.com/groups?threadm=c52768167fd0624b66f97734cdf30d2b@toetsch.at">http://groups.google.com/groups?threadm=c52768167fd0624b66f97734cdf30d2b@toetsch.at</a></p> <p><a href="http://ali.as/pita/">http://ali.as/pita/</a></p> <h4>Lots and lots of TODOs</h4> <p>I&#8217;m not going to enumerate them here, but Will Coleda, Matt Diephouse and others have been adding loads of <span class="caps">TODO</span> entries to the Parrot bugtracker. Which is nice.</p> <h4><span class="caps">IMCC</span> optimizer instruction duplication and opcode write/reads</h4> <p>Amos Robinson wanted to know how to go about duplicating instructions and wondered about the correct semantics of in/out/inout arguments. Leo came through with the answers.</p> <p><a href="http://groups.google.com/groups?threadm=cf7d0f370512310643s31ff2cf4n2d952aeb57c31f70@mail.gmail.com">http://groups.google.com/groups?threadm=cf7d0f370512310643s31ff2cf4n2d952aeb57c31f70@mail.gmail.com</a></p> <h3>Meanwhile in perl6-language</h3> <h4>Iterating over complex structures</h4> <p>Rob Kinyon applied the &#8216;What does Ruby do?&#8217; pattern to the problem of iterating over complex structures. Mostly it looks good, but I&#8217;m hoping that someone else considers applying the &#8216;What does Smalltalk do?&#8217; pattern as well. Subject to tuit supply, I might even do that myself.</p> <p><a href="http://groups.google.com/groups?threadm=70384420512251808q3c3bc01cue2cd8af86062d9bb@mail.gmail.com">http://groups.google.com/groups?threadm=70384420512251808q3c3bc01cue2cd8af86062d9bb@mail.gmail.com</a></p> <h4>Match objects</h4> <p>&#8220;Who is Match, and to what does he object?&#8221;</p> <p>Sorry. Couldn&#8217;t resist.</p> <p>Patrick and Luke discussed the behaviour of match objects.</p> <h4>(Array) introspection</h4> <p>Ilmari Vacklin wondered about how to introspect on the structure of arrays and other data structures. Warnock applies.</p> <p><a href="http://groups.google.com/groups?threadm=1135632846.7282.4.camel@localhost.localdomain">http://groups.google.com/groups?threadm=1135632846.7282.4.camel@localhost.localdomain</a></p> <h4>Array/list transformations</h4> <p>Rob Kinyon pointed out the difficulties of dealing with binding array slices and other such goodies. Larry thought it wasn&#8217;t really that difficult (from the point of view of the perl programmer, things might be different for the implementers)</p> <p><a href="http://groups.google.com/groups?threadm=70384420512262110u4ce4861o628e3a0b585e8bae@mail.gmail.com">http://groups.google.com/groups?threadm=70384420512262110u4ce4861o628e3a0b585e8bae@mail.gmail.com</a></p> <h4>Relationship between slurpy parameters</h4> <p>Austin Frank wondered about the different uses of <code>prefix:&lt;*&gt;</code> in parameter lists and elsewhere. Stuart Cook had answers. Piers Cawley worried about the current behaviour of <code>prefix:&lt;*&gt;</code> in parameter lists and about how eager its flattening should be.</p> <p><a href="http://groups.google.com/groups?threadm=43B332B9.2050400@gmail.com">http://groups.google.com/groups?threadm=43B332B9.2050400@gmail.com</a></p> <h4>Building the documentation that will ship with Perl 6 and Pugs</h4> <p>Andrew Savige outlined some off the issues that need addressing as we move towards releasing a properly documented Pugs, and the Perl 6. After outlining issues, he called for volunteers. Nobody commented on the list (yet), but I hope people will be taking up the challenge.</p> <p><a href="http://groups.google.com/groups?threadm=20051231014706.94262.qmail@web36103.mail.mud.yahoo.com">http://groups.google.com/groups?threadm=20051231014706.94262.qmail@web36103.mail.mud.yahoo.com</a></p> <h4><code>$/</code> and <code>$!</code> should be <code>env</code></h4> <p>Luke proposed that we change <code>$!</code> and <code>$/</code> into <code>env</code> variables. Because almost nobody understands what an env variable is (your summarizer had never even heard of &#8216;em&#8212;I think I may have to do some serious synopsis rereading and soon) Luke explained what they were and why they should be used in this case. The usual Sunday Warnocking applies&#8212;expect more detail next week.</p> <p><a href="http://groups.google.com/groups?threadm=7ca3f0160601011034m21da9f24h86f5888d77c0b4ad@mail.gmail.com">http://groups.google.com/groups?threadm=7ca3f0160601011034m21da9f24h86f5888d77c0b4ad@mail.gmail.com</a></p> <h4>Rules should be independent of evaluation strategy</h4> <p>Luke talked about an idea for implementing different parsing engines that use Perl rules but without necessarily doing recursive descent style parsing. Nicholas Clark pointed out a typo, but the basic thrust of the article remains in Sunday Warnock land.</p> <p><a href="http://groups.google.com/groups?threadm=7ca3f0160601011115l25d08592o930f4cb0d065b58d@mail.gmail.com">http://groups.google.com/groups?threadm=7ca3f0160601011115l25d08592o930f4cb0d065b58d@mail.gmail.com</a></p> <h3>Acknowledgements, apologies and everything else</h3> <p>Happy new year everyone. I&#8217;ve just opened up a 4th annual subdirectory in my summaries directory. I had hoped we&#8217;d have the real Perl 6 by now, but these things take the time they need I guess. Things are looking good for the future though. Here&#8217;s hoping that Audrey and the other pugs people keep up their phenomenal rate of development.</p> <p>I hope that, from next week you&#8217;ll be able to find Matt&#8217;s summaries in the same place as mine, <a href="http://www.bofh.org.uk/articles/category/perl-6-summaries">http://www.bofh.org.uk/articles/category/perl-6-summaries</a>.</p> <h4>Help Chip</h4> <p><a href="http://geeksunite.org/">Chip still needs help.</a></p> <h4>The usual coda</h4> <p>If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.</p> <p><a href="http://donate.perlfoundation.org/">The Perl Foundation</a></p> <p>The Perl Foundation Blog is an excellent source of news about the Perl Foundation&#8217;s activities.</p> <p><a href="http://blog.perlfoundation.org/">http://blog.perlfoundation.org/</a></p> <p>Planet Perl Six is a handy news aggregator of several Perl 6 related sources.</p> <p><a href="http://planet6.perl.org/">http://planet6.perl.org/</a></p> <p><a href="http://dev.perl.org/perl6/">Perl 6 Development site</a></p> Tue, 03 Jan 2006 09:06:00 -0600 urn:uuid:fa6c51a6-7d83-4a45-9381-457799a6637a pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2006/01/03/the-perl-6-summary-for-the-week-ending-2006-01-01#comments Perl 6 Perl 6 Summaries perl6 p6summary 20060101 http://www.bofh.org.uk/trackbacks?article_id=the-perl-6-summary-for-the-week-ending-2006-01-01&day=03&month=01&year=2006 http://www.bofh.org.uk/articles/2006/01/03/the-perl-6-summary-for-the-week-ending-2006-01-01 The Perl 6 Summary for the week ending 2005-12-18 <p>Welcome to another Perl 6 summary. This has been a week of shootouts, cleanups, relationships and cunning translations. Read on for the details (or, this being a summary, pointers to the details).</p> <h3>This week in perl6-compiler</h3> <p>2 messages? Sometimes I wonder why I even bother summarizing this list; I could just paste its contents in their entirety. However:</p> <h4>Call for a Pumpking: Do you want a Ponie?</h4> <p>Jesse announced that Nicholas Clark was retiring as Ponie&#8217;s Pumpking following his departure from Fotango. So we&#8217;re looking for another volunteer to take Ponie from its current state to a working Perl 5 runtime fully integrated with Parrot. If you&#8217;re a C programmer with a good grasp of the Perl 5 internals and you&#8217;re interested in taking on the job, ponie-pumpking@perl.org is eager to hear from you.</p> <p><a href="http://groups.google.com/groups?threadm=20051214225235.GR25436@bestpractical.com">http://groups.google.com/groups?threadm=20051214225235.GR25436@bestpractical.com</a></p> <h4>Pugs, Javascript and Perl 5</h4> <p>Continuing Pugs&#8217; tradition of linguistic mashup, Chia-liang Kao announced that Pugs Javascript backend can now support Perl5.</p> <p><a href="http://groups.google.com/groups?threadm=20051214022446.GC9267@home.clkao.org">http://groups.google.com/groups?threadm=20051214022446.GC9267@home.clkao.org</a></p> <h3>Meanwhile, in perl6-internals</h3> <h4>Parrot Shootout</h4> <p>Work continued on implementing and optimizing Parrot&#8217;s entry for the Language Shootout.</p> <p><a href="http://groups.google.com/groups?threadm=05D985D7-A48E-44A2-9CFF-B219A18DF864@pacbell.net">http://groups.google.com/groups?threadm=05D985D7-A48E-44A2-9CFF-B219A18DF864@pacbell.net</a></p> <p><a href="http://groups.google.com/groups?threadm=31247ad5226f5927031cabb213a483b2@ritalin.shout.net">http://groups.google.com/groups?threadm=31247ad5226f5927031cabb213a483b2@ritalin.shout.net</a></p> <p><a href="http://groups.google.com/groups?threadm=8109939b614a9dd99df5b9b7387c16bb@ritalin.shout.net">http://groups.google.com/groups?threadm=8109939b614a9dd99df5b9b7387c16bb@ritalin.shout.net</a></p> <p><a href="http://groups.google.com/groups?threadm=942c27460512151539h691425e4x1cfd06e3a3278e9@mail.gmail.com">http://groups.google.com/groups?threadm=942c27460512151539h691425e4&#215;1cfd06e3a3278e9@mail.gmail.com</a></p> <p><a href="http://groups.google.com/groups?threadm=942c27460512151659h42872a66xa740809c47dd857a@mail.gmail.com">http://groups.google.com/groups?threadm=942c27460512151659h42872a66xa740809c47dd857a@mail.gmail.com</a></p> <p><a href="http://groups.google.com/groups?threadm=3bbbb64e9c99a66ec0d6f1b8bc693277@ritalin.shout.net">http://groups.google.com/groups?threadm=3bbbb64e9c99a66ec0d6f1b8bc693277@ritalin.shout.net</a></p> <h4>Variables, Aliasing and Undefined-ness</h4> <p>Matt Diephouse wondered how he should translate the following in to <span class="caps">PIR</span> code:</p> <pre><code>$var = "Foo"; *alias = *var; $alias = undef; $alias = "Baz"; print $var, "\n";</code></pre> <p>Audrey &#8220;Autrijus&#8221; Tang suggested that allowing multiple LexInfo names to point to the same underlying register would make this sort of thing (and several Perl6isms) a good deal easier to implement. Leo pointed out that it actually had been implemented, though I&#8217;m not sure if Luthor includes this. (Pugs always targets the latest Parrot release).</p> <p><a href="http://groups.google.com/groups?threadm=198c87380512150046o3efb9626x7c30588105b5b8e5@mail.gmail.com">http://groups.google.com/groups?threadm=198c87380512150046o3efb9626&#215;7c30588105b5b8e5@mail.gmail.com</a></p> <h4>Cleaning up the build process</h4> <p>Joshua Hoblitt went to town on RT posting a breakdown of proposed refactorings of the Parrot build process</p> <h4>ParTCL shootout</h4> <p>Will Coleda suggested that it would be useful to set things up to run the <span class="caps">TCL</span> shootout benchmarks on ParTCL. He&#8217;s not exactly sure that they&#8217;d <em>work</em> just yet (or be fast, come to that), but they&#8217;d certainly be a handy test/benchmark suite. After a couple of patches, it seems that ParTCL can at least run the &#8220;hello&#8221; benchmark. Still, a journey of a 1000 miles starts with but a single step and all that.</p> <p><a href="http://groups.google.com/groups?threadm=3FB91E50-040E-4CD7-83DF-FC8D4AEFBCE2@coleda.com">http://groups.google.com/groups?threadm=3FB91E50-040E-4CD7-83DF-FC8D4AEFBCE2@coleda.com</a></p> <h4>Parrot directory reorganization (phase 2 mark 3)</h4> <p>Jerry Gay&#8217;s reorganization of the Parrot distribution&#8217;s directory structure continued apace. Reorganizing the <span class="caps">JIT</span> subdirectory and its associated config system proved to be something of a sticking place, but Joshua Hoblitt sorted things out.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400512121814m6e6a64d4gfccddfc95a9a5cfd@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400512121814m6e6a64d4gfccddfc95a9a5cfd@mail.gmail.com</a></p> <h4>Bug or feature?</h4> <p>Chip had some thoughts about <span class="caps">PIR</span>&#8217;s macro support and concluded that we need a robust multi-line quoting convention in order to pass multiple lines of code to macros. He outlined some suggested syntax. Discussion ensued, mostly favourable.</p> <p><a href="http://groups.google.com/groups?threadm=20051212185501.GK6257@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051212185501.GK6257@tytlal.topaz.cx</a></p> <h4>Building Parrot includes</h4> <p>Leo noted that the files in <code>runtime/parrot/include/*.pasm</code> are created by configure. He argued that they should really be generated by a Makefile rule, which would have the advantage of taking note of dependencies. There followed a certain amount of quibbling with Joshua Hoblitt, but I don&#8217;t think anyone disagrees with the gist of the proposal.</p> <p><a href="http://groups.google.com/groups?threadm=rt-3.0.11-37898-125569.9.16891768502722@perl.org">http://groups.google.com/groups?threadm=rt-3.0.11-37898-125569.9.16891768502722@perl.org</a></p> <h4>Library loading &#8211; no more duplicates</h4> <p>Leo announce that, as a of r10458, Parrot doesn&#8217;t <code>load_bytecode</code> from the same file twice any more. Chip and Nicholas Clark applauded the change and plotted ways to make it even more effective.</p> <p><a href="http://groups.google.com/groups?threadm=439D6A23.80305@toetsch.at">http://groups.google.com/groups?threadm=439D6A23.80305@toetsch.at</a></p> <h4>Fixing japhs</h4> <p>Not content with implementing shootout benchmarks, Joshua Isom has also fixed a few of Parrot&#8217;s example japhs.</p> <p><a href="http://groups.google.com/groups?threadm=dcf0c8153462a13760cc9f0c6ccd0070@ritalin.shout.net">http://groups.google.com/groups?threadm=dcf0c8153462a13760cc9f0c6ccd0070@ritalin.shout.net</a></p> <h4>Q: String.get_integer</h4> <p>Leo had some questions about magical conversion between strings and integers. Patrick and others reckoned that his proposed behaviour was about right. Personally, I&#8217;m not convinced that the basic String <span class="caps">PMC</span> should do any magic conversion, but PerlString definitely should.</p> <p><a href="http://groups.google.com/groups?threadm=43A2D3BD.6010203@toetsch.at">http://groups.google.com/groups?threadm=43A2D3BD.6010203@toetsch.at</a></p> <h4>Parrot Borking</h4> <p>Steve Gunnell had a problems with Parrot throwing segfaults. Leo gave him some pointers to tracking the issue down and recommended using the <span class="caps">SVN</span> repository and not the <span class="caps">CVS</span> mirror.</p> <p><a href="http://groups.google.com/groups?threadm=1134899914.8669.11.camel@eldred.local">http://groups.google.com/groups?threadm=1134899914.8669.11.camel@eldred.local</a></p> <h3>Meanwhile, in perl6-language</h3> <h4>Relational data models and Perl 6</h4> <p>Darren Duncan&#8217;s been doing some thinking about Relational data models and how to support working with them in Perl 6 and posted the results of his thought on this to the list. Lots of discussion ensued. There was a fair amount of quibbling over details, but the general tenor of the discussion was in favour of supporting relational data models (possibly as a separate module).</p> <p><a href="http://groups.google.com/groups?threadm=p06230900bfc66428a67e@[192.168.1.100">http://groups.google.com/groups?threadm=p06230900bfc66428a67e@[192.168.1.100]</a>]</p> <h4>Handling <code>undef</code> better</h4> <p>Darren also had some ideas about making undef behave more like a relational <span class="caps">NULL</span>. These were received a little less favourably&#8212;they aren&#8217;t exactly compatible with autovivification, which is one of those things that many people like about Perl.</p> <p>So, a little later, Darren retracted his original proposal and posted a new one which takes into account the various different ways in which undef gets used in Perl programs.</p> <p><a href="http://groups.google.com/groups?threadm=p06230900bfc90d05004d@[192.168.1.100">http://groups.google.com/groups?threadm=p06230900bfc90d05004d@[192.168.1.100]</a>]</p> <p><a href="http://groups.google.com/groups?threadm=p06230900bfca4b9752ed@[192.168.1.100">http://groups.google.com/groups?threadm=p06230900bfca4b9752ed@[192.168.1.100]</a>]</p> <h4>Transliteration preferring longest match</h4> <p>Brad Bowman wondered why the <code>trans</code> function described in Synopsis 05 specifies that the longest matching input sequence should be the one that wins. He thought that a simple &#8216;first in order&#8217; rule would be more useful and flexible. The answer was that, because transliteration matches literal strings, if you didn&#8217;t have &#8216;longest&#8217; wins rules then, depending on the order, you might as well simply remove the longer literal because it&#8217;d never be used.</p> <p><a href="http://dev.perl.org/perl6/doc/design/syn/S05.html#Transliteration">http://dev.perl.org/perl6/doc/design/syn/S05.html#Transliteration</a></p> <p><a href="http://groups.google.com/groups?threadm=43A1ACDB.2060603@bereft.net">http://groups.google.com/groups?threadm=43A1ACDB.2060603@bereft.net</a></p> <h4>Import/export and module configuration</h4> <p>Gaal Yahas had some questions about Perl 6&#8217;s import/export model and the various hooks that get called in the process. Larry had many answers and speculations. He also noted that he can now &#8216;translate about 95% of random Perl 5 back to identical Perl 5&#8217;. Which probably doesn&#8217;t sound like much at first glance, but it means he&#8217;s getting a great deal closer to being able to translate random Perl 5 code into equivalent Perl 6 code.</p> <p>As Larry puts it, he is &#8220;now confident that we can hit the original p5-to-p6 spec of translating 95% of scripts at least 95% accurately&#8221;.</p> <p><a href="http://groups.google.com/groups?threadm=20051213104247.GA4095@sike.forum2.org">http://groups.google.com/groups?threadm=20051213104247.GA4095@sike.forum2.org</a></p> <h3>Acknowledgements, apologies and everything else</h3> <p>Wow! It&#8217;s still Monday! The move went pretty smoothly and our lives are slowly emerging from the boxes they had been packed in. We&#8217;re still boggling at how many boxes of china there were though. At one point I began to think we&#8217;d packed the country in there. I&#8217;m typing this from my new office on the second (third if you&#8217;re American) floor of our new (well, 178 years old, but new to us) house and wondering how much of the stuff that&#8217;s spread out over two table tops is really necessary.</p> <h4>Help Chip</h4> <p><a href="http://geeksunite.org/">http://geeksunite.org/</a>&#8212;Chip still needs help.</p> <h4>The usual coda</h4> <p>If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.</p> <p><a href="http://donate.perlfoundation.org/">http://donate.perlfoundation.org/</a>&#8212;The Perl Foundation</p> <p>The Perl Foundation Blog is an excellent source of news about the Perl Foundation&#8217;s activities.</p> <p><a href="http://blog.perlfoundation.org/">http://blog.perlfoundation.org/</a></p> <p>Planet Perl Six is a handy news aggregator of several Perl 6 related sources.</p> <p><a href="http://planet6.perl.org/">http://planet6.perl.org/</a></p> <p><a href="http://dev.perl.org/perl6/">http://dev.perl.org/perl6/</a>&#8212;Perl 6 Development site</p> Mon, 19 Dec 2005 11:21:00 -0600 urn:uuid:4423b2ca-a349-48d6-ad43-c7dae10bdea1 pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2005/12/19/the-perl-6-summary-for-the-week-ending-2005-12-18#comments Perl 6 Perl 6 Summaries perl6 p6summary 20051218 http://www.bofh.org.uk/trackbacks?article_id=the-perl-6-summary-for-the-week-ending-2005-12-18&day=19&month=12&year=2005 http://www.bofh.org.uk/articles/2005/12/19/the-perl-6-summary-for-the-week-ending-2005-12-18 The Perl 6 Summary for the week ending 2005-12-04 <p>I heard a rumour on the London.pm mailing list week. Apparently the Perl 6 Summaries are no longer being ublished. As I&#8217;m sure you can imagine, it came as something of a surprise to me.</p> <p>This week has been all about Parrot, Leo&#8217;s got the new lexical scheme, calling conventions and exception handlers working and made Parrot stricter about arguments. The end of the week saw the release of &#8216;Luthor&#8217;, version 0.4.0 of Parrot.</p> <p>Read on for more details&#8230;</p> <h3>This week in perl6-compiler</h3> <p>Um&#8230; one post in perl6-compiler this week. And that was crossposted to perl6-language. And because it got posted at the end of the week, none of the actual discussion occurred this week.</p> <p>Moving swiftly on&#8230;</p> <h3>This week in perl6-internals</h3> <p>Much more going on here as everyone rushed towards the release of Parrot 0.4.0 &#8220;Luthor&#8221; at the end of the week.</p> <h4>Exception handlers and calling conventions</h4> <p>As I predicted last week, Leo&#8217;s brain dump about exception handling got discussed this week. It was well liked, and after a small bit of sugar was sprinkled on to make ParTCL&#8217;s life a little easier (and possibly unsprinkled later) all manner of things were well.</p> <p><a href="http://groups.google.com/groups?threadm=5b4f21642641211939b10fe8548ea876@toetsch.at">http://groups.google.com/groups?threadm=5b4f21642641211939b10fe8548ea876@toetsch.at</a></p> <h4>Subs may not contain dynamic call info, ever</h4> <p>Chip posted a clarification of his comments on what data could and couldn&#8217;t be hung off a Sub object at runtime. Let&#8217;s be reentrant people.</p> <p><a href="http://groups.google.com/groups?threadm=20051128035833.GD6446@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051128035833.GD6446@tytlal.topaz.cx</a></p> <h4><span class="caps">PDD20</span> Tcl</h4> <p>Will Coleda announced that ParTCL is now working with the new lexically lovely Parrot calling conventions. There was much rejoicing.</p> <p><a href="http://groups.google.com/groups?threadm=A235A03B-6CF1-4C5A-83FB-AB49805ED491@coleda.com">http://groups.google.com/groups?threadm=A235A03B-6CF1-4C5A-83FB-AB49805ED491@coleda.com</a></p> <h4>Test::More and Tests in <span class="caps">PIR</span></h4> <p>Leo showed the love for chromatic&#8217;s shiny pure parrot implementation of Test::More. So the patch was applied.</p> <p><a href="http://groups.google.com/groups?threadm=cbd309ab4fac265f6ceab71ccb2cd91d@toetsch.at">http://groups.google.com/groups?threadm=cbd309ab4fac265f6ceab71ccb2cd91d@toetsch.at</a></p> <h4>Upcoming changes</h4> <p>Leo announced the scratchpad&#8217;s impending doom and outlined the planned change for comment. Nobody commented, and the changes went in.</p> <p><a href="http://groups.google.com/groups?threadm=5c3a3e2a9838b2e7ed45b7a0d03d52f7@toetsch.at">http://groups.google.com/groups?threadm=5c3a3e2a9838b2e7ed45b7a0d03d52f7@toetsch.at</a></p> <h4>Parrot directory reorganization</h4> <p>Quick quiz: where would you expect to find tests in the parrot distribution? How about generated source files?</p> <p>Jerry Gay proposed a reorganization to make things a little more lovely.</p> <p>The consensus seemed to be that a reorg along Jerry&#8217;s lines wouldn&#8217;t be a bad idea, but Chip pointed out that, whatever gets done it should be done &#8216;cautiously so as to minimize unpleasantness&#8217;. So Jerry is proceeding cautiously, starting with a host of new <span class="caps">TODO</span> tickets in RT.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400511281645s5e75a64fl529dfad83f8457af@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400511281645s5e75a64fl529dfad83f8457af@mail.gmail.com</a></p> <h4>Solving <code>=</code> confusion: <code>:=</code> for aliasing</h4> <p>There are those of us who are wondering why this one took so long&#8230;</p> <p>Chip proposed that people start to spell aliasing as <code>:=</code> and assignment as <code>=</code>. I think it&#8217;s a really good idea, but then I don&#8217;t have a large amount of <span class="caps">PIR</span> code to maintain so what do I know. Some other folks weren&#8217;t so sure, but Chip is not to be denied. Discussion then span off into what language to write the automagical translator in.</p> <p>I believe this may involve writing it in <span class="caps">PIR</span> then converting it to <span class="caps">PIL</span>, which would be converted to Perl 5 using pugs and then Larry&#8217;s Perl 5 to Perl 5 project could be used to convert it to <span class="caps">XML</span>, which could then be modified using <span class="caps">XSLT</span> and converted back into <span class="caps">PIR</span> using some scary voodoo magic.</p> <p>Or they could just write it in Perl 5. Prosaic, but possible right now.</p> <p><a href="http://groups.google.com/groups?threadm=20051129200801.GT6446@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051129200801.GT6446@tytlal.topaz.cx</a></p> <h4><span class="caps">PDD03</span> Revisions</h4> <p>Chip announced that he&#8217;d put up another revision of <span class="caps">PDD03</span> on Parrot calling conventions. Most of the changes are simple clarifications and flag renaming, but he&#8217;s also proposing a new <code>READONLY</code> flag for C<get_params> to make it easy to support the default Perl 6 argument mode. Response was muted, but favourable.</p> <p><a href="http://groups.google.com/groups?threadm=20051130030122.GL6446@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051130030122.GL6446@tytlal.topaz.cx</a></p> <h4><span class="caps">PDD03</span> and Overflow/Underflow</h4> <p>It&#8217;s been mandated for ages that Parrot should throw an exception when functions get called with the wrong number of arguments. It&#8217;s always been one of those things that will be implemented &#8216;some day&#8217;. Well this week had a someday in it as Leo made parrot do what it&#8217;s supposed to do. And broke <span class="caps">PGE</span> for a while&#8230;</p> <p><a href="http://groups.google.com/groups?threadm=438D8A90.8070105@toetsch.at">http://groups.google.com/groups?threadm=438D8A90.8070105@toetsch.at</a></p> <h4><span class="caps">PDD20</span> questions</h4> <p>Jonathan Sillito is a class act. He didn&#8217;t just ask a bunch of questions about the new <span class="caps">PDD20</span> on lexical variables, he promised to take the answers he received and use them to patch <span class="caps">PDD20</span> to make things clearer. Spurred on by this promise, Chip was unstinting in his answers and clarifications of them. Which is nice.</p> <p><a href="http://groups.google.com/groups?threadm=8be166ff0511301202s4382b6efwc579d7d711419bc9@mail.gmail.com">http://groups.google.com/groups?threadm=8be166ff0511301202s4382b6efwc579d7d711419bc9@mail.gmail.com</a></p> <h4><span class="caps">PIR</span> methods and local variables occupy the same &#8216;namespace&#8217;</h4> <p>Allison Randal used Snarks, Boojums and Thingies to demonstrate a possible problem with the way Parrots local variable and method namespaces overlap. Leo pointed out that this can sometimes be useful. So, for the time being, Parrot continues as is in this area. If you go getting the bowsprit and the rudder mixed up, it&#8217;s your own silly fault.</p> <p><a href="http://groups.google.com/groups?threadm=AB54429A-690E-47FA-805C-33FEEBAF9EB9@perl.org">http://groups.google.com/groups?threadm=AB54429A-690E-47FA-805C-33FEEBAF9EB9@perl.org</a></p> <h4>Suddenly&#8230; Namespaces!</h4> <p>After &#8220;many months and lots of work,&#8221; Matt Diephouse returned from the mountain top bearing a couple of stone tablets. One was labelled &#8216;Namespace Spec&#8217; and the other &#8216;[Draft]&#8217;. Muttering dark incantations about giving a discussion eyes, he laid out their contents and asked for comments. And low, there were comments in abundance. I would attempt to summarize both the spec and the ensuing discussion but, alas, the margin here is narrow and my time is short. Suffice it to say that if namespaces are your bag, you should read this thread.</p> <p><a href="http://groups.google.com/groups?threadm=198c87380512012231w42dee5a9y96c9c06508b55fbe@mail.gmail.com">http://groups.google.com/groups?threadm=198c87380512012231w42dee5a9y96c9c06508b55fbe@mail.gmail.com</a></p> <h4><span class="caps">HLL</span> and autoboxing</h4> <p>Okay, who else has an image of two of those transformer robot things from the Renault Megane advert punching each others&#8217; lights out?</p> <p>Ahem.</p> <p>I&#8217;m afraid I didn&#8217;t quite understand François Perrad&#8217;s question about maps and autoboxing. Luckily Roger Browne and Leo did.</p> <p><a href="http://groups.google.com/groups?threadm=5.1.0.14.2.20051202100324.02cfe6d8@pop.besancon.parkeon.com">http://groups.google.com/groups?threadm=5.1.0.14.2.20051202100324.02cfe6d8@pop.besancon.parkeon.com</a></p> <h4>Punie&#8217;s demo likes its memory</h4> <p>Jerry Gay worried that Punie is using way too much memory, running out of the stuff on his 512Mb machine. He wondered if it was a bug or to be expected. Luke thought it might be an issue with the algorithm used in the attribute grammar implementation which is somewhat less than abstemious with memory. Nick Glencross noted that, after he&#8217;d done a nuke of the distribution and rechecked it out, the problem seemed to go away. So, it&#8217;s either fixed, or there was something odd going on somewhere.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400512021414t6b789daev5c4bc5df089938da@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400512021414t6b789daev5c4bc5df089938da@mail.gmail.com</a></p> <h4>Parrot 0.4.0 &#8220;Luthor&#8221;</h4> <p>Leo announced the usual freezes and parrot proceeded smoothly down the road to release. After the release he discussed goals for the next release and asked for comments.</p> <p><a href="http://groups.google.com/groups?threadm=ed864ea1d4db3a436c7de6d6bf4046f8@toetsch.at">http://groups.google.com/groups?threadm=ed864ea1d4db3a436c7de6d6bf4046f8@toetsch.at</a></p> <p><a href="http://groups.google.com/groups?threadm=df23aee8ec07c676e2748102f6668d72@toetsch.at">http://groups.google.com/groups?threadm=df23aee8ec07c676e2748102f6668d72@toetsch.at</a></p> <h3>Meanwhile, in perl6-language</h3> <p>A quiet week here too.</p> <h4>Capabilities in Perl 6</h4> <p>Rob Kinyon has read slides on CAPerl and had some thoughts about how to build the idea into Perl 6. Larry and Yuval Kogman commented on it.</p> <p><a href="http://groups.google.com/groups?threadm=70384420512010754w1dbdc62cq5404a295da5b6e7e@mail.gmail.com">http://groups.google.com/groups?threadm=70384420512010754w1dbdc62cq5404a295da5b6e7e@mail.gmail.com</a></p> <p><a href="http://caperl.links.org">http://caperl.links.org</a></p> <h3>Acknowledgements, apologies and everything else</h3> <p>It&#8217;s not exactly Monday today is it? Well, I could lie and claim that I was waiting for the Perl Foundation blog to be announced before I posted the summary, but that would be Wrong. Instead I shall claim (with some justification) that there&#8217;s an awful lot of things that need sorting out when you&#8217;re moving house, and they take far longer than you expect.</p> <p>My ankle and shin are progressing nicely, thanks for asking, and there has been a good deal less random swearing in the Cawley household this week.</p> <p><a href="http://blog.perlfoundation.org/">http://blog.perlfoundation.org/</a>&#8212;The Perl Foundation blog</p> <h4>Help Chip</h4> <p><a href="http://geeksunite.org/">http://geeksunite.org/</a>&#8212;Chip still needs help.</p> <h4>The usual coda</h4> <p>If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.</p> <p><a href="http://donate.perlfoundation.org/">http://donate.perlfoundation.org/</a>&#8212;The Perl Foundation</p> <p><a href="http://dev.perl.org/perl6/">http://dev.perl.org/perl6/</a>&#8212;Perl 6 Development site</p> <p>Vaguely pretty photos by me can be found at:</p> <p><a href="http://www.flickr.com/photos/pdcawley">http://www.flickr.com/photos/pdcawley</a></p> Thu, 08 Dec 2005 15:40:00 -0600 urn:uuid:5205b983-c24e-44f9-9632-e64839ee1f17 pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2005/12/08/the-perl-6-summary-for-the-week-ending-2005-12-04#comments Perl 6 Perl 6 Summaries perl6 p6summary 20051204 http://www.bofh.org.uk/trackbacks?article_id=the-perl-6-summary-for-the-week-ending-2005-12-04&day=08&month=12&year=2005 http://www.bofh.org.uk/articles/2005/12/08/the-perl-6-summary-for-the-week-ending-2005-12-04 Perl 6 Summary: Week ending 2005-11-27 <p>Another week passes. Another summary is written. Another sentence is written in the passive voice.</p> <h3>This week in perl6-compiler</h3> <h4>Perl 5 tests for <span class="caps">PGE</span>::P5Regexp</h4> <p>Jerry Gay announced that he&#8217;d checked in a subset of perl 5.9.2&#8217;s regexp tests to give <span class="caps">PGE</span> something to work on. Right now only 130 of 960 tests are running, in part because the test harness he&#8217;s using can&#8217;t quite cope with the test file syntax used for the original tests. I&#8217;m sure it won&#8217;t stay that way or long.</p> <p>A couple of days later he announced that more tests were being converted and that there were now 360 passing tests and a further 155 or so <span class="caps">TODO</span> tests.</p> <p>Well done Jerry.</p> <p><a href="http://groups.google.com/groups?threadm=1d9a3f400511211939i134aa0fnefc86179431b96fd@mail.gmail.com">http://groups.google.com/groups?threadm=1d9a3f400511211939i134aa0fnefc86179431b96fd@mail.gmail.com</a></p> <h4><span class="caps">PDD 20</span> and :outer</h4> <p>Leo had some questions about the workings of lexical pads and <code>:outer</code>. He showed a couple of examples in high level language and wondered if his parrot conversions were right. Chip thought that Leo shouldn&#8217;t worry about implementing the Perl 5 semantics of a named inner subroutine because the way Perl 5 does it is a bug not a feature. Dave Mitchell wasn&#8217;t so sure.</p> <p><a href="http://groups.google.com/groups?threadm=43832AF2.2040402@toetsch.at">http://groups.google.com/groups?threadm=43832AF2.2040402@toetsch.at</a></p> <h4>DynLexPad</h4> <p>Leo&#8217;s working on implementing a DynLexPad <span class="caps">PMC</span> to provide &#8216;a more dynamic lexpad&#8217; akin to the new deprecated ScratchPad <span class="caps">PMC</span>. He outlined his current plans and asked for comments from <span class="caps">HLL</span> authors about what they needed.</p> <p><a href="http://groups.google.com/groups?threadm=43834203.2020209@toetsch.at">http://groups.google.com/groups?threadm=43834203.2020209@toetsch.at</a></p> <h4>Punie to <span class="caps">AST</span></h4> <p>Allison has checked in the code to transform PunieGrammar match objects into Abstract Syntax Trees (ASTs). Apparently the set of <span class="caps">AST</span> node types she&#8217;s using isn&#8217;t quite the same as the Pugs <span class="caps">PIL</span>. Hopefully one day we&#8217;ll have a common <span class="caps">AST</span> format, and all manner of things shall be well.</p> <p><a href="http://groups.google.com/groups?threadm=FE692303-15F8-42D8-AF73-270BCEDA6EAD@perl.org">http://groups.google.com/groups?threadm=FE692303-15F8-42D8-AF73-270BCEDA6EAD@perl.org</a></p> <h3>Meanwhile, in perl6-internals</h3> <h4><span class="caps">RESPONSIBLE</span>_PARTIES or <span class="caps">ENTITIES</span>_AT_FAULT?</h4> <p>Joshua Hoblitt suggested that Jerry Gay should be added to the F<RESPONSIBLE_PARTIES> file as the person in charge of the test suite. After a small amount of byplay suggesting the file be renamed, the nomination was strongly seconded and Jerry&#8217;s name added to the list.</p> <p><a href="http://groups.google.com/groups?threadm=20051120210940.GB22898@ifa.hawaii.edu">http://groups.google.com/groups?threadm=20051120210940.GB22898@ifa.hawaii.edu</a></p> <h4>Curses and parrot problems?</h4> <p>Josh Isam has been having problems with using the curses library under both Darwin and freebsd. He wondered if anyone had any pointers for fixing things. Leo thought it might be that the parrot ncurses support was getting a function signature wrong somewhere and suggested Josh check that.</p> <p><a href="http://groups.google.com/groups?threadm=Pine.LNX.4.53.0511222245480.1385@ritalin.shout.net">http://groups.google.com/groups?threadm=Pine.LNX.4.53.0511222245480.1385@ritalin.shout.net</a></p> <h4>Subs may not contain dynamic call info, ever</h4> <p>Repeat after Chip: &#8220;Subs don&#8217;t have callers. Call frames have callers.&#8221;</p> <p>After a short discussion with Leo, Chip wrote a short treatise on the relationships between Subs and Closures, noting that they should only hold static information.</p> <p><a href="http://groups.google.com/groups?threadm=20051123180834.GF6095@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051123180834.GF6095@tytlal.topaz.cx</a></p> <h4>Undefined labels</h4> <p>While working on <span class="caps">TODO</span> #37590 (catch illegal bsr at compile time), Leo&#8217;s made parrot rather more picky about labels and how they are used. Essentially, if you weren&#8217;t doing daft things with labels you&#8217;re probably all right. If you were, you should probably check this post.</p> <p>After Leo checked the fixes in (r10168), several <span class="caps">PGE</span> tests started breaking. Less than 6 hours later, Patrick check version r10176 in and the tests started passing again. Leo (and I) was impressed.</p> <p><a href="http://groups.google.com/groups?threadm=87bc76ce931e9c7e29ed9be192d32de4@toetsch.at">http://groups.google.com/groups?threadm=87bc76ce931e9c7e29ed9be192d32de4@toetsch.at</a></p> <p><a href="http://groups.google.com/groups?threadm=3a149d0a332aa57205267f928fe1544a@toetsch.at">http://groups.google.com/groups?threadm=3a149d0a332aa57205267f928fe1544a@toetsch.at</a></p> <h4>Exception handlers and calling conventions</h4> <p>Leo posted a brain dump about how to get exception handling to work in Parrot. In particular he wanted help with syntax (exception handling semantics aren&#8217;t exactly rocket science when you&#8217;ve got a continuation based virtual machine after all). Warnock applied (However, I am reliably informed that next week&#8217;s summary will have some responses; anyone who suggests that that&#8217;s because this summary is late will be annoyingly Right).</p> <p><a href="http://groups.google.com/groups?threadm=5b4f21642641211939b10fe8548ea876@toetsch.at">http://groups.google.com/groups?threadm=5b4f21642641211939b10fe8548ea876@toetsch.at</a></p> <h4>Test::More and tests in <span class="caps">PIR</span></h4> <p>Not content with having a pure <span class="caps">PIR</span> implementation of Test::Builder, chromatic posted his implementation of Test::More in pure parrot. Admittedly the current version should likely be called Test::Less::Is::More, but the journey of 1000 cliches starts with a single step and all that. And that&#8217;s not all, the fearlessly lowercased one intends to start work on the big daddy, Parrot::Test with an eye to doing even more in Parrot. (Which makes a good deal of sense. After all, the plan is to get Parrot to a point where it can be built without needing a working perl installation)</p> <p><a href="http://groups.google.com/groups?threadm=1133039776.6474.48.camel@localhost">http://groups.google.com/groups?threadm=1133039776.6474.48.camel@localhost</a></p> <h3>Meanwhile, in perl6-language</h3> <h4><code>\x{123a 123b 123c}</code></h4> <p>Juerd had praised Ruud H.G. van Tol&#8217;s proposal of <code>\x{123a 123b 123c}</code> as a replacement for <code>\x{123a} \x{123b} \x{123c}</code> in rules. Larry wasn&#8217;t so sure. He suggested <code>\x[123a,123b,123c]</code> but still wasn&#8217;t exactly happy with it. He also had some thoughts about character class syntax, and the meaning of spaces within a character class spec. This being the language list, the discussion spun off in various directions (all related to rules, just not necessarily that much to do with the nominal subject). It was good stuff though; threads with Larry, Damian, Patrick and Luke in them usually are.</p> <p>One little tidbit that came out of this was a reminder that the best place to read synopses and apocalypses is at svn.perl.org or dev.perl.org because they are kept up to date, unlike the ones at perl.com.</p> <p><a href="http://groups.google.com/groups?threadm=20051120023217.GA507@wall.org">http://groups.google.com/groups?threadm=20051120023217.GA507@wall.org</a></p> <h4>Multidimensional argument list binding</h4> <p>Ingo Blechschmidt&#8217;s question from the end of last week about multidimensional argument list binding got addressed this week. He, Luke and Larry discussed different aspects of slurpiness. Personally, I expect I&#8217;ll be using the <code>*</code>;foo@ for almost all my slurpy needs.</p> <p><a href="http://groups.google.com/groups?threadm=dlql9i$bnf$1@sea.gmane.org">http://groups.google.com/groups?threadm=dlql9i$bnf$1@sea.gmane.org</a></p> <h4><code>statement_control&lt;foo&gt;()</code></h4> <p>Ingo Blechschmidt had asserted that <code>for</code> is not strictly a Perl 6 keyword, but is (conceptually at least) at statement control subroutine. Rob Kinyon wondered what other &#8216;keywords&#8217; were actually statement control subs. According to Ingo, pretty much everything that&#8217;s used for control flow modification is a statement control subroutine, but that they&#8217;ll almost certainly be optimised away to &#8216;primitives&#8217; of some sort (after all, it&#8217;s rather hard to come up with a definition of <code>if</code>, say that isn&#8217;t at least slightly circular).</p> <p><a href="http://groups.google.com/groups?threadm=70384420511202024y223ac219h3ecea2cbd0feef8@mail.gmail.com">http://groups.google.com/groups?threadm=70384420511202024y223ac219h3ecea2cbd0feef8@mail.gmail.com</a></p> <h4><code>till</code></h4> <p>Perl 6&#8217;s stock of agricultural operators continues to grow apace. Not content with <code>gather</code>, we now have C<till>, which replaces the old flipflop operator <code>..</code> (sorry beachware fans).</p> <p>Larry had some thoughts on the detailed semantics in response to a question from Ingo. Most of Ingo&#8217;s problems disappeared when he realised that <code>till</code> would be a macro.</p> <p><a href="http://groups.google.com/groups?threadm=20051121062128.GA9451@wall.org">http://groups.google.com/groups?threadm=20051121062128.GA9451@wall.org</a></p> <h4>Ponie!</h4> <p>Joshua Gatcomb wondered what was happening to Ponie and if Fotango would continue to fund it. Warnock applies.</p> <p><a href="http://groups.google.com/groups?threadm=941eab840511211220t1ee6952dpb578ed10259f29@mail.gmail.com">http://groups.google.com/groups?threadm=941eab840511211220t1ee6952dpb578ed10259f29@mail.gmail.com</a></p> <h4>Dis-junctive patterns</h4> <p>Gaal Yahas found what looked like a bug in pugs. Larry agreed that it looks pretty entomological. It&#8217;s probably already fixed in bleadpugs.</p> <p><a href="http://groups.google.com/groups?threadm=20051122073126.GE14252@sike.forum2.org">http://groups.google.com/groups?threadm=20051122073126.GE14252@sike.forum2.org</a></p> <h4>Type sigils and a new unary <code>^</code> operator</h4> <p>Larry announced that, after all the discussion of coming up with a type sigil and searching for various possibilities, he&#8217;s ended up back at <code>::</code>, which was what it was before the discussion started. Apparently the tipping point came when he realised that he wanted <code>^$x</code> back as a unary operator that&#8217;s short for <code>0..($x-1)</code> which would make it easy to write things like:</p> <pre><code>for ^5 {...}</code></pre> <p>without falling foul of fencepost errors etc. Some people didn&#8217;t like it. Vocally. Larry stood firm. Yay Larry. (Impartial summarizer? What&#8217;s that then?)</p> <p><a href="http://groups.google.com/groups?threadm=20051122223412.GA28366@wall.org">http://groups.google.com/groups?threadm=20051122223412.GA28366@wall.org</a></p> <h4>Lazy lists in Str context</h4> <p>Flavio S. Glock reckoned it would be nice if:</p> <pre><code>say substr( ~(1..Inf), 0, 10 )</code></pre> <p>printed &#8220;1 2 3 4 5&#8221;. There was discussion, but I think we stayed firmly in &#8220;Not going to happen.&#8221; Unless I completely misread the thread of course.</p> <p><a href="http://groups.google.com/groups?threadm=aa47605d0511230413p20173745k@mail.gmail.com">http://groups.google.com/groups?threadm=aa47605d0511230413p20173745k@mail.gmail.com</a></p> <h4>Binding of list slice elements</h4> <p>Ingo Blechschmidt is great at posting a few lines of not particularly mind bending code and then following consequences through until either your mind is broken, or you assume that Ingo&#8217;s must be (more usually the former than the latter, to Ingo&#8217;s everlasting credit).</p> <p>This time he followed through on the implications of binding array slices. Nothing from @larry yet, but he posted at the end of the week.</p> <p><a href="http://groups.google.com/groups?threadm=dm4has$u3s$1@sea.gmane.org">http://groups.google.com/groups?threadm=dm4has$u3s$1@sea.gmane.org</a></p> <h3>Acknowledgements, apologies and everything else</h3> <p>This summary was made from the finest mailing list posts, each individually plucked and filleted for your delight and elucidation. The alert among you will have noted that today is Wednesday and not Monday, which means we&#8217;re a little late. What can I say? It&#8217;s ready when it&#8217;s ready.</p> <p>This summary was also brought to you through the labours of Piers Cawley and not Matt Fowles as we had planned when, dewy eyed and innocent, I set off on the long journey down to the wilds of London with the express intention of attending the London Perl Workshop, the International Magic Convention, Sharp&#8217;s folk club and divers fine gentlemen&#8217;s outfitters, jewellers, bookshops and quality eating establishments.</p> <p>All was proceeding flawlessly, until, on Saturday morning as the tube train doors began to close in front of me, I attempted to stop running and discovered that the soles of my shoes had other ideas and fell on my arse, twisted my ankle and scraped an unfeasibly large amount of skin from my shin off on the bottom of the aforementioned tube train. Luckily the driver noticed my plight and did not drive off, taking my left foot with him. Instead he opened the doors and waited for me to dust myself off and board his vehicle, which carried me to Paddington where, after much hobbling and swearing I was bandaged and deposited once more on London&#8217;s cold and unfeeling streets.</p> <p>So, I hopped into a taxi (and I use the word hopped advisedly) and repaired straightway to King&#8217;s Cross and thence home to Gateshead, where my discomfort was somewhat ameliorated by the distraction of preparing this week&#8217;s summary. I hope to be writing next week&#8217;s summary as well because the week after I&#8217;ll be moving house and don&#8217;t quite know when I&#8217;ll have my bandwidth back.</p> <h4>Help Chip</h4> <p><a href="http://geeksunite.org/">http://geeksunite.org/</a>&#8212;Chip still needs help.</p> <h4>The usual coda</h4> <p>If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.</p> <p><a href="http://donate.perl-foundation.org/">http://donate.perl-foundation.org/</a>&#8212;The Perl Foundation</p> <p><a href="http://dev.perl.org/perl6/">http://dev.perl.org/perl6/</a>&#8212;Perl 6 Development site</p> <p>Check out my website, it&#8217;s lovely.</p> <p><a href="http://www.bofh.org.uk/">http://www.bofh.org.uk/</a></p> <p>Vaguely pretty photos by me can be found at:</p> <p><a href="http://www.flickr.com/photos/pdcawley">http://www.flickr.com/photos/pdcawley</a></p> Wed, 30 Nov 2005 19:19:00 -0600 urn:uuid:a9daf1f2-235d-4961-ba64-1cf7f0a1d5d6 pdcawley@bofh.org.uk (Piers Cawley) http://www.bofh.org.uk/articles/2005/11/30/perl-6-summary-week-ending-2005-11-27#comments Perl Perl 6 Perl 6 Summaries perl6 p6summary 20051127 http://www.bofh.org.uk/trackbacks?article_id=perl-6-summary-week-ending-2005-11-27&day=30&month=11&year=2005 http://www.bofh.org.uk/articles/2005/11/30/perl-6-summary-week-ending-2005-11-27 Perl 6 Summary for the fortnight ending 2005-11-13 <p>Welcome to another fortnight&#8217;s worth of summary. We&#8217;ll get back to a weekly schedule one of these fine days, you see if we don&#8217;t.</p> <h3>This fortnight in perl6-compiler</h3> <p>There was a surprisingly large amount of activity on the list, but again, the place to look for perl6 compiler news is the Planet Perl Six aggregator.</p> <p><a href="http://planetsix.perl.org/">http://planetsix.perl.org/</a></p> <h4><span class="caps">PGE</span> improvements and changes</h4> <p>Patrick announced that he&#8217;d checked in some major changes to the <span class="caps">PGE</span> internals. The changes include a shiny new shift-reduce operator precedence parser which is used to parse the rules themselves. <span class="caps">PGE</span> finally has a <code>&lt;p6rule&gt;</code> parsing rule which can be used to parse a valid Perl 6 rule. There are other changes, but those two are the headlines. Patrick asked for the usual questions, comments, patches and tests.</p> <p>A couple of days later, he posted a more comprehensive overview of the new and shiny bits in <span class="caps">PGE</span>.</p> <p><a href="http://groups.google.com/groups?threadm=20051101062541.GA30198@host.pmichaud.com">http://groups.google.com/groups?threadm=20051101062541.GA30198@host.pmichaud.com</a></p> <p><a href="http://groups.google.com/groups?threadm=20051104144923.GA12353@host.pmichaud.com">http://groups.google.com/groups?threadm=20051104144923.GA12353@host.pmichaud.com</a></p> <h4><span class="caps">PGE</span> problem with non-greedy quantifiers</h4> <p>Allison fell foul of some changes in the new <span class="caps">PGE</span>. This turned out to be a bug in <span class="caps">PGE</span>, so Patrick fixed it.</p> <p><a href="http://groups.google.com/groups?threadm=ED559257-B0D9-4216-98E4-88C0AC3B4F0F@perl.org">http://groups.google.com/groups?threadm=ED559257-B0D9-4216-98E4-88C0AC3B4F0F@perl.org</a></p> <h4>The meaning of \n and \N</h4> <p>Noting that Synopsis 5 says that &#8216;<code>\n</code> now matches a logical (platform independent) newline, not just <code>\012</code>&#8217;, Patrick asked the list for more details about what that should mean so he could get on and implement it in <span class="caps">PGE</span>. He offered up a suggested matching rule. Larry thought that the suggested rule was close enough for jazz.</p> <p><a href="http://groups.google.com/groups?threadm=20051104155307.GA15393@host.pmichaud.com">http://groups.google.com/groups?threadm=20051104155307.GA15393@host.pmichaud.com</a></p> <h4><code>[]</code> and <code>()</code> on rule modifiers</h4> <p>Patrick continues to work on the <span class="caps">PGE</span>. This time he asked about the behaviour of rule modifiers, with particular reference to the <code>:w</code> modifier. Larry had answers.</p> <p><a href="http://groups.google.com/groups?threadm=20051104192614.GA30432@host.pmichaud.com">http://groups.google.com/groups?threadm=20051104192614.GA30432@host.pmichaud.com</a></p> <h4>Parrot 0.3.1 &#8220;Wart&#8221; released</h4> <p>Leo announced the release of Parrot 0.3.1 &#8220;Wart&#8221;, complete with shiny new features like variable sized register frames and no more spilling, a much better <span class="caps">PGE</span> (see above) and other goodies. The latest release has more than 3000 tests, and that&#8217;s probably still not enough.</p> <p><a href="http://groups.google.com/groups?threadm=436E0DBB.8040300@toetsch.at">http://groups.google.com/groups?threadm=436E0DBB.8040300@toetsch.at</a></p> <h4>Octal in p6rules (and strings)</h4> <p>Patrick Continued his voyage of stringy discovery, this time asking about the black art of specifying glyphs/bytes/whatever using octal notation. He wondered about his assumption that the correct way to do it is with <code>\o123</code> by analogy with using <code>0o123</code> to specify a number in octal. He also wanted confirmation that the <code>\nnn</code> notation had been dropped. A surprisingly long discussion ensued as Larry did a good deal of thinking aloud and Patrick got on with implementing the nailed down bits.</p> <p><a href="http://groups.google.com/groups?threadm=20051107165159.GA13344@host.pmichaud.com">http://groups.google.com/groups?threadm=20051107165159.GA13344@host.pmichaud.com</a></p> <h3>Meanwhile, in perl6-internals</h3> <h4>SWIGging Parrot</h4> <p>John Lenz is one of the developers a <span class="caps">SWIG</span>, which started off as the Python equivalent to Perl&#8217;s XS. He had some questions about writing a <span class="caps">SWIG</span> module for parrot and asked if there would be interest in having <span class="caps">SWIG</span> be one of the &#8216;official&#8217; ways of doing native calls from Parrot. Leo thought not, pointing out that Parrot&#8217;s <span class="caps">NCI</span> is fully dynamic and groovy.</p> <p><a href="http://groups.google.com/groups?threadm=35051.192.168.0.12.1130741345.squirrel@192.168.0.2">http://groups.google.com/groups?threadm=35051.192.168.0.12.1130741345.squirrel@192.168.0.2</a></p> <h4><span class="caps">NCI</span> using ffcall library</h4> <p>Garrett Goebel joined in the ongoing discussion of using ffcall to implement the Parrot <span class="caps">NCI</span> (Native Call Interface) by pointing back to an earlier discussion of using libffi to implement the Parrot <span class="caps">NCI</span>. Last time round, Dan had pointed out that, because libffi is an external library, there still needs to be a supported (if possibly hackish) way of doing <span class="caps">NCI</span> that comes with Parrot, but that configure could probe for external libraries to use where they are available.</p> <p><a href="http://groups.google.com/groups?threadm=E4901162278E99499731C168EC803B59991554@mail.scriptpro.com">http://groups.google.com/groups?threadm=E4901162278E99499731C168EC803B59991554@mail.scriptpro.com</a></p> <h4>Heredocs in function calls</h4> <p>Patrick wondered if there might be a convenient way to support heredoc parameters in <span class="caps">PIR</span> function calls. Nicholas Clark wondered why one would bother since most <span class="caps">PIR</span> code should be generated code.</p> <p>Later on, Leo implemented them. About the only place they don&#8217;t work now is in macro arguments.</p> <p><a href="http://groups.google.com/groups?threadm=20051101074509.GA1506@host.pmichaud.com">http://groups.google.com/groups?threadm=20051101074509.GA1506@host.pmichaud.com</a></p> <p><a href="http://groups.google.com/groups?threadm=4369CBC7.1070407@toetsch.at">http://groups.google.com/groups?threadm=4369CBC7.1070407@toetsch.at</a></p> <h4>Simple register allocation</h4> <p>Summarizing a discussion on <span class="caps">IRC</span>, Patrick noted that it would be nice if the <span class="caps">PIR</span> compiler had a way to use a very basic register allocation for .subs that only use a small number of registers. After all, there&#8217;s little point in doing a complex analysis of control flow if a sub uses (say) 5 registers at most. The problem is that this analysis gets harder as the subs get longer (O(n) on the length of the sub). In the case of <span class="caps">PGE</span> (for instance), the subs can get very long, with lots of control flow statements, but use a maximum of 10 <span class="caps">PMC</span>, 9 int and 4 string registers for the whole thing.</p> <p>Warnock applies.</p> <p><a href="http://groups.google.com/groups?threadm=rt-3.0.11-37578-123722.7.0478443353673@perl.org">http://groups.google.com/groups?threadm=rt-3.0.11-37578-123722.7.0478443353673@perl.org</a></p> <h4>Careful with that <code>bsr</code> Eugene</h4> <p>Leo noted that, with the introduction of variable sized register frames, it is no longer legal to <code>bsr</code> into a different <code>.sub</code>.</p> <p><a href="http://groups.google.com/groups?threadm=ce791f585f2d5b3ae727692fa6476666@toetsch.at">http://groups.google.com/groups?threadm=ce791f585f2d5b3ae727692fa6476666@toetsch.at</a></p> <h4>Reconfiguring configure</h4> <p>Joshua Hoblitt sketched out a route map for getting from our current &#8216;built to throw away&#8217; configuration system to the sunny uplands of the miniparrot based config system. Everyone who commented sounded positive. Now, if someone could just implement it&#8230;</p> <p><a href="http://groups.google.com/groups?threadm=20051103073105.GB16634@ifa.hawaii.edu">http://groups.google.com/groups?threadm=20051103073105.GB16634@ifa.hawaii.edu</a></p> <h4>Shifting right by more than the width of int</h4> <p>Joshua Isam had problems doing a right shift of more than the width of an integer. Which is no surprise really as the behaviour is officially undefined in the C spec, which is the implementation that Parrot uses. There was some discussion, but the consensus is that it&#8217;s best to stick with the C semantics for integer registers and if the need arises for more complex semantics, it&#8217;s always possible to write a new <span class="caps">PMC</span>.</p> <p><a href="http://groups.google.com/groups?threadm=740b6a05281f1e3f3b54cd7791838a51@ritalin.shout.net">http://groups.google.com/groups?threadm=740b6a05281f1e3f3b54cd7791838a51@ritalin.shout.net</a></p> <h4>Suspend and resume opcode</h4> <p>Tomo sent in a patch implementing <code>suspend</code> and <code>resume</code> opcodes. After a certain amount of kerfuffle involving the mailing list software stripping troff attachments and dodgy software deciding that a .t file full of tests was actually a troff source, Leo rejected the patch and pointed Tomo in the direction of coroutines.</p> <p>The mailing list will now accept troff attachments. Hurrah.</p> <p><a href="http://groups.google.com/groups?threadm=436B403C.2000307@nekomimists.ddo.jp">http://groups.google.com/groups?threadm=436B403C.2000307@nekomimists.ddo.jp</a></p> <h4>Creeping up on ffcall <span class="caps">NCI</span></h4> <p>Nick Glencross posted another update of his work on getting <span class="caps">NCI</span> to use the ffcall library. He&#8217;s now added config smarts to detect the ffcall and other handy features.</p> <p><a href="http://groups.google.com/groups?threadm=dcb629180511040927kd7042f2vdb722f49a4df2a9a@mail.gmail.com">http://groups.google.com/groups?threadm=dcb629180511040927kd7042f2vdb722f49a4df2a9a@mail.gmail.com</a></p> <h4>Removing unmaintained languages from parrot tree</h4> <p>Jerry Gay noticed that there were an awful lot of unmaintained languages in the Parrot tree. He recommended getting in touch with their last known authors and eventually removing the dead languages.</p> <p><a href="http://groups.google.com/groups?threadm=rt-3.0.11-37611-123890.17.8232124086628@perl.org">http://groups.google.com/groups?threadm=rt-3.0.11-37611-123890.17.8232124086628@perl.org</a></p> <h4>Testing non-core <span class="caps">PIR</span> libraries with Parrot::Test</h4> <p>Allison outlined some of the problems she&#8217;d been having testing her tree transformation engines outside of the parrot tree. It turns out that Parrot or the Test tool require absolute paths to various libraries, which is no fun at all. She suggested fixing Parrot::Test up so as to try and divine (and set) a sensible load path for Parrot. Meanwhile, chromatic continues to beaver away at implementing Test::More in <span class="caps">PIR</span>.</p> <p><a href="http://groups.google.com/groups?threadm=D3C8F121-06ED-40BF-B5E4-DB94D0414B12@perl.org">http://groups.google.com/groups?threadm=D3C8F121-06ED-40BF-B5E4-DB94D0414B12@perl.org</a></p> <h4>Updating parrotcode.org</h4> <p>Will Coleda announced that he&#8217;d been doing some tidying up of the parrotcode.org website and asked for suggestions for an updated &#8216;where we are&#8217; section. Various answers and suggestions were provided.</p> <p><a href="http://www.parrotcode.org/">http://www.parrotcode.org/</a></p> <h4><code>find_type</code> considered dubious</h4> <p>Roger Browne was puzzled by the behaviour of the <code>find_type</code> opcode, which works for both <span class="caps">PMC</span> types and native Parrot types. He thought that this was both confusing and counter productive. Leo didn&#8217;t seem to agree with him.</p> <p><a href="http://groups.google.com/groups?threadm=1131544548.7662.9.camel@eiffel.demon.co.uk">http://groups.google.com/groups?threadm=1131544548.7662.9.camel@eiffel.demon.co.uk</a></p> <h4>Unicode strings and encodings</h4> <p>Leo announced that he&#8217;s going through the various string functions to make them usable with all the string encodings we know about. He outlined what he proposed to do solicited comments in case of insanity.</p> <p><a href="http://groups.google.com/groups?threadm=437353FF.5020106@toetsch.at">http://groups.google.com/groups?threadm=437353FF.5020106@toetsch.at</a></p> <h4>Legal names for <span class="caps">PMCS</span></h4> <p>Roger Browne (whose name I keep wanting to use as a Clerihew) wondered what the rules were for naming PMCs. Leo reckoned that, unless someone rejigs <code>pmc2c.pl</code> to mangle non word characters appropriately, a <span class="caps">PMC</span> name should follow the same rules as C identifiers.</p> <p><a href="http://groups.google.com/groups?threadm=1131707019.23357.6.camel@eiffel.demon.co.uk">http://groups.google.com/groups?threadm=1131707019.23357.6.camel@eiffel.demon.co.uk</a></p> <h4><code>string_bitwise_*</code></h4> <p>Noting that, with <span class="caps">ICU</span> installed, parrot has &#8216;rather complete support for Unicode string manipulation&#8217;, Leo wondered about making the bitwise string manipulations work. In particularly, he wondered how they should behave in the face of charset and/or encoding mismatches. According to Leo, it seems to boil down to a choice between throwing an exception or simply mashing everything together and marking the &#8216;resulting bit mess&#8217; as binary. Warnock applies.</p> <p><a href="http://groups.google.com/groups?threadm=4375E49D.5060405@toetsch.at">http://groups.google.com/groups?threadm=4375E49D.5060405@toetsch.at</a></p> <h4>Parrot fink</h4> <p>Will Coleda passed on a query from the #parrot irc channel. Someone had wondered if there was a Fink build of Parrot available. (Fink is an <span class="caps">OS X</span> open source package manager along the lines of, well, pretty much every other package manager). There isn&#8217;t, so Will wondered if there was anyone on the list who could help put one together. Leo noted that Parrot is already Debianized (yay!) which might help with the fink approach too. Joshua Isam worked on the task.</p> <p><a href="http://groups.google.com/groups?threadm=AD8403CA-D106-414E-8D85-DE525AEA37BD@coleda.com">http://groups.google.com/groups?threadm=AD8403CA-D106-414E-8D85-DE525AEA37BD@coleda.com</a></p> <h4>Changing default <span class="caps">STDOUT</span>/STDERR Filehandles for <span class="caps">PIR</span> code</h4> <p>One of the things that chromatic needs in order to write a pure <span class="caps">PIR</span> version of Parrot::Test is a way to redirect <span class="caps">STDOUT</span> and <span class="caps">STDERR</span> within a section of <span class="caps">PIR</span> code. He&#8217;s looked at the implementation of the ParrotIO <span class="caps">PMC</span> and the print opcode, but can&#8217;t see where to begin. So, he asked for help. At close of play on Sunday there had been no answer, but I&#8217;m sure someone will be along soon.</p> <p><a href="http://groups.google.com/groups?threadm=1131833503.24170.5.camel@localhost">http://groups.google.com/groups?threadm=1131833503.24170.5.camel@localhost</a></p> <h4><span class="caps">PDD20</span>: An idea: Call frames as PMCs</h4> <p>Chip led the applause for Leo&#8217;s implementation of the new lexical scheme in all of a week. He then went on to outline an idea for turning call frames into PMCs. Leo wasn&#8217;t sure, pointing out that the call frame would have the same issues as promoting a continuation. I have to confess that I&#8217;d tended to assume that the <span class="caps">PMC</span> that Chip&#8217;s proposing already exists, and it&#8217;s called a continuation.</p> <p><a href="http://groups.google.com/groups?threadm=20051113034521.GC6553@tytlal.topaz.cx">http://groups.google.com/groups?threadm=20051113034521.GC6553@tytlal.topaz.cx</a></p> <h4><code>:outer("foo")</code> is working</h4> <p>Leo announced that <code>:outer("foo")</code> now works, with a couple of caveats.</p> <p><a href="http://groups.google.com/groups?threadm=437734FF.40203@toetsch.at">http://groups.google.com/groups?threadm=437734FF.40203@toetsch.at</a></p> <h3>Meanwhile, in perl6-language</h3> <h4>Ways to add behaviour</h4> <p>The problem with summarizing an ongoing thread that you&#8217;ve not really been following is getting the context again. I have to confess that, when I returned to the &#8216;Ways to add behaviour&#8217; thread this week I was somewhat stumped. Thomas Sandlass and Larry appeared to be having fun with terminology and type algebra. I&#8217;m sure that we&#8217;ll end up with a more robust language as a result of all this, but it doesn&#8217;t mean I could follow the discussion as it was happening.</p> <p><a href="http://groups.google.com/groups?threadm=20051026173441.GB29341@wall.org">http://groups.google.com/groups?threadm=20051026173441.GB29341@wall.org</a></p> <h4><code>$_</code> defaulting for mutating ops</h4> <p>Remember last time? Juerd had proposed that mutating ops like <code>++</code> default to mutating <code>$_</code> in the absence of a left hand argument. It seems that the discussion convinced Juerd that it wasn&#8217;t a good idea after all. But, this being perl6-language, it also seemed to convince others that it is a good idea.</p> <p><a href="http://groups.google.com/groups?threadm=Pine.LNX.4.33.0510280955200.28049-100000@sharkey.morinda.com">http://groups.google.com/groups?threadm=Pine.LNX.4.33.0510280955200.28049-100000@sharkey.morinda.com</a></p> <h4>Role method conflicts and disambiguation</h4> <p>Discussion of how to handle conflicting role methods and their disambiguation continued. Unless I&#8217;m going soft in the head, I could have sworn that the original Smalltalk &#8216;Traits&#8217; paper (they&#8217;re called Roles in Perl 6 because we already have Traits) dealt with disambiguation in a fairly straightforward fashion. I continue to be reminded of the same joke as last week.</p> <p><a href="http://groups.google.com/groups?threadm=20051101091913.GB4058@woobling.org">http://groups.google.com/groups?threadm=20051101091913.GB4058@woobling.org</a></p> <h4>Co/contra variance of roles/factories in theory.pod</h4> <p>Err&#8230; I haven&#8217;t the faintest idea what Luke and Thomas Sandlass are talking about here. Luckily, it seems that Larry did understand it.</p> <p><a href="http://groups.google.com/groups?threadm=436A5291.7010205@orthogon.com">http://groups.google.com/groups?threadm=436A5291.7010205@orthogon.com</a></p> <h4>Perl 6 perlplexities</h4> <p>Michele Dondi worries that the increase in complexity of some aspects of Perl 6 is much bigger than the increase in functionality that the complexity buys us. In particular Michele is concerned that the Perl 6 parameter passing and signature stuff is going to be a big loss. People mostly disagreed with him. Rob Kinyon made a remark that chimed strongly with me, pointing out that Ruby&#8217;s OO system is substantially more complex than Perl 5&#8217;s, but that it&#8217;s also a great deal easier to use. (Rob&#8217;s not alone in this, I am writing most of my new OO code in Ruby. I fully expect to switch back to Perl 6 as soon as it becomes good enough though).</p> <p>Lots of good discussion here. I was convinced once again that Perl 6&#8217;s signatures are going to be the best thing since sliced bread. Even if I do still like Smalltalk method selectors best of all.</p> <p><a href="http://groups.google.com/groups?threadm=Pine.LNX.4.62.0510211140010.21523@spock.pcteor1.mi.infn.it">http://groups.google.com/groups?threadm=Pine.LNX.4.62.0510211140010.21523@spock.pcteor1.mi.infn.it</a></p> <h4>Implicitly doing a role</h4> <p>If a tree falls in a forest with no one to hear it, does it make a sound? If a class implements the same interface as a role without saying that it does, does it still do the role? One of these philosophical questions was asked by Austin Frank. The other is a timeless wossname. Can you guess which is which?</p> <p>Rob Kinyon thought that the answer to the second question was &#8216;no&#8217;. So did chromatic, citing the usual Dog/Tree problem with &#8216;bark&#8217;. After further thought, chromatic proposed that a class <strong>should</strong> create an implicit empty role of the same name to make things easy for people writing mock objects and other entertainingly different variants of the original class.</p> <p>Decorated Dog anyone?</p> <p><a href="http://groups.google.com/groups?threadm=436BA54F.9040501@gmail.com">http://groups.google.com/groups?threadm=436BA54F.9040501@gmail.com</a></p> <h4>The new class sigil</h4> <p>Remember when the new class sigil was going to be ¢? Well, we&#8217;re still getting one, but it&#8217;s called ^ now. I think.</p> <p><a href="http://groups.google.com/groups?threadm=436BB303.4080502@orthogon.com">http://groups.google.com/groups?threadm=436BB303.4080502@orthogon.com</a></p> <h4>Private methods and role composition</h4> <p>