Day 72/73: Lists and regexes.

autrijus on 2005-04-14T18:03:00

So, with Pugs 6.2.0 out, life has resumed at a much more relaxed pace. I worked for two days on getting a RT-CSS-Bamboo powered ACL application server out of door, and it was quite a success at today's demo. I'll probably clean up it on weekends and release it.

Tonight I also talked with Chip and Dan on #parrot, over the worrisome charset bias in Parrot; currently, every string is taken as iso-8859-1 by default, which is easy to cause ambiguities, since all valid UTF-8 encodings can also be interpreted as iso-8859-1. We tentatively agreed on my proposal of making 7-bit ascii the One True Default, and force explicit declaration of everything else. I then worked on a patch, which causes random segfaults, thus proving my C-fu is really really weak. Oh well -- at least I'm subscribed to perl6-internals now. :)

On p6c, andras asked whether he can use :i on Perl 5 regular expressions; I promptly implemented it, along with the handy feature of turning //x mode on by default for Perl 5 regexes. However, Larry is inclined to preserve the original semantics, so I retracted that change, only to come up with something more -- :s :i :m :x are now all usable in rx:P5 mode. Larry then noted that it's better spelled as rx:P5<simx>, which I happily implemented.

On #perl6, we had some discussions about the nature of lists, arrays and hashes, in light of the new ITypes system. My current understanding is that Array and Hash are both subclasses of List, and a List can be keyed with either a string or a integer:

    <9 a 8 b>[1] # a
    <9 a 8 b>{8} # b
That also neatly explained why there is no .kv method for List in Rod's S29.

Robrt noted that CIA reports that Pugs averages a commit every 30 minutes. So it should be of no surprise that there's 48 more commits for me to summarise today:

  • stevan ported a naive bayesian test categorizer from the latest Dr. Dobbs journal to Perl 6, under the naive_bayesian directory.
  • stevan also noticed a weird bug in subroutine parameter flattening with junctions, and added tests for it, along with some other pugsbugs.
  • nothingmuch, our testgraph wizard, started to port the test graph script into Test::TAP::Model so it can work on any Test::Harness projects. The screenshot looks very sexy indeed, and he promised to backport it.
  • rootmj added his beautiful Pugs/Perl6 tutorial generator to the Pugs tree as examples/tutorial_gen -- the generator itself is written in Perl 6!
  • xern, our in-military Taipei.pm fellow, resumed working on his perl5-to-perl6 translator, based on iblech's Mini-HowTo.
  • scw fixed the bug that causes %h<x> < 3 > -1 to parsefail, by not globbing up the space between the brackets.
  • corion noticed that pugs -e '' no longer eats the trailing arguments, and unTODOed the test.
  • juerd annotates lots of cookbook code with comments about styles and idioms.
  • ninereasons checked in extensive tests about negative indexes for arrays, one of the bugs we fixed after 6.2.0 release. It turns out to be quite tricky, and there are still many edge cases waiting to be ironed out.
  • iblech noticed that accessing @array[10000] as rvalue incorrectly extends the array, and submitted a test; I fixed it right away.
  • iblech also checked in some more array tests, including the unimplemented ; separator, as well as deleting elements with negative indices.
  • masak added tests for changing nested array elements.
  • wolverian refactored the test tree according to the S29draft layout, and added yet some more array/hash tests.
  • andras, our new committer on board, checked in IRI (UTF-8 in URIs) decoding support to CGI.pm, along with some tests.
  • ovid cleaned up andras's code shortly after.
  • metaperl refactored the fp.p6 example into several individual files under the new examples/fp/ directory.
  • theorbtwo worked some more on the link cataloger for tests.

That's it for today. See you tomorrow!