This Week in Perl 6, August 2-9, 2005
All--
Welcome to another summary, brought to you by Chinese food. The attentive among you will notice that this summary is a day late, because I did not feel like doing it yesterday. If only I could do that at work.
Vadim Konovalov submitted a patch to Pugs affecting @*ARGS
processing. In the world of Pugs, this means that he received a committer bit
and applied it himself.
Autrijus wants to type push Perl 6's type inferencing as far as it can go (and maybe a little beyond). To this end, he has been soliciting input from all comers. It looks like he has put a lot of thought and research into it. One day, I expect to be thanking Autrijus for important (if likely difficult to understand) compiler errors and warnings.
WWW::Kontent
ReleaseBrent "Dax" Royal-Gordon announced the release of WWW::Kontent
0.01: "a flexible web content management system written in Perl 6 and
executable with Pugs." It looks nifty to me. Maybe we need to fight Ruby on
Rails with Perl 6 on Pylons or something. That doesn't quite have the right
ring to it, but there has to be something catchy there somewhere.
Phil Crow wondered why Pugs would not interpolate his arrays. Ingo
Blechschmidt and Patrick explained that @foo does not interpolate,
but @foo[] does. I sense a frequently asked question here.
Autrijus announced the release of Pugs 6.2.9. It is full of nifty new features, including the ability to lay on hands!
Andrew Shitov wondered why Perl 6 no longer allowed white space between
function names and parens. Autrijus explained that it allows print
(1+2)*3 to print 9 instead of 3. As someone who just last week explained
the peculiarity of Ruby printing 3 in the above situation to a complete novice,
I welcome the change.
Autrijus posted a few pretty pictures explaining the compiler model and the container model. While the compiler model was readily understandable to me, the container one wasn't. Fortunately, when prompted, Autrijus provided a great explanation to accompany the diagram.
Upon discovering that Pugs released a new version, Grégoire Péan released a new version of PxPerl that includes the new Pugs. I (and many others) thank Grégoire for lowering the entry bar for Perl 6 hacking on Windows.
Declaring lexicals mid-block confuses things, especially declaring them
mid-statement, as in $x = $x + my $x if $x;. Autrijus proposed
hoisting declarations of lexicals to the top of the block. Unfortunately, this
can make CALLER:: do funny things. Thus, he suggests outlawing it.
Larry agreed.
LD_LIBRARY_PATHBdonlan noticed that Parrot's test suite was not setting
LD_LIBRARY_PATH, which makes tests fail. Leo pointed out that most
users manually set their LD_LIBRARY_PATH, as Parrot often needs
this, but he agreed that the tests should do it just in case.
Tom submitted a patch that improves the command-line argument processing powers of ops2c.pl. Warnock applies.
Klaas-Jan Stol was having trouble putting special characters like ANSI clear
screen and "¥" into strings. Nick pointed out that he need to be careful
with encodings and escapes. In Parrot, \O is an octal escape. In
Lua, it is apparently not.
Leo announced the release of Parrot 0.2.3, "Serenity," which reminds me, Firefly is coming back soon! I can't wait! Oddly, Google seems to have swallowed his release notice, but not his warnings.
|
by Matt Fowles
Michal Wallace found a bug that would disappear if the file was renamed. Leo, with the help of valgrind, provided Michal with a pointer. Michal used that to find a likely culprit and provide a patch, which Leo then refined.
François Perrad provided a patch fixing gdbmhash on MinGW. Bernhard
Schmalhofer applied it.
François Perrad also fixed a link problem with pystring.o. Jonathan Worthington applied that patch.
Amir Karger wanted to know how to fill a large data structure in PIR, other than explicitly. Leo suggested reading it in from a config file.
Rjtucke asked the ever-dangerous question, "How can I help?". Unfortunately, I think he asked it on Google Groups, and thus no one saw it.
"PGE Glob Escapes; millions die before it can be rounded up again." Actually,
Will Coleda noticed that he could not add a literal * to globs in
PGE. Patrick fixed it so he could.
Amir Karger has decided to write a Z-code-to-PIR translator. He wants to
integrate its test suite with Parrot's language tests. Unfortunately, it does
not use Test::Simple, or even Perl. Thus he wanted to know a good
way to integrate it. Will Coleda, Bernhard Schmalhofer, and chromatic all
provided suggestions.
mod_parrot
0.3Adrian Lambeck provided a patch to fix src/call_list.txt for
mod_parrot-0.3. chromatic applied it.
Patrick noticed that the Parrot build was breaking. Jonathan Worthington narrowed it down to an exact revision number. Leo realized his mistake and fixed it.
Bernhard Schmalhofer applied some old patches from Joshua Gatcomb, in the hope of improving Cygwin support. Nick Glencross provided needed Parrot Cygwin test results.
SUPER MethodsKlaas-Jan Stol wondered how to call a specific parent methods (possibly bypassing child methods). Leo answered.
Adrian Lambeck was having trouble compiling Pugs against Parrot. Leo worked with him to find a solution, although they haven't resolved it yet.
chromatic has written pure-Parrot versions of Test::Builder and Test::Builder::Tester. As always, patches are welcome.
Gerd Pokorra wanted to know how to add a new opcode to parrot. Klaas-Jan Stol and Leo provided answers.
François Perrad provided several patches for MinGW and Win32. Warnock applies.
Jonathan Worthington posted an updated intro.pod. Autrijus provided a few edits, and Jonathan is planning on committing it.
Jim McKim made the mistake of using Emacs. Fortunately, he counterbalanced that failing with the virtue of submitting a patch to fix an error in pir-mode.el to make the file work better. chromatic applied the patch.
Curtis Rawls seemed to be having trouble using his newly acquired commit bit. Warnock applies.
-ETom noticed that parrot -E segfaulted and provided a patch. He
was not very confident about the patch.
make
test in bcAmir Karger noticed that make test in bc dies because
he does not have antlr installed. Bernhard Schmalhofer said that
he would try and fix it up to use the config-test for antlr.
Amir Karger noticed that interpreter.c broke during a recent
compilation. Leo pointed out that he need to make realclean.
|
by Matt Fowles
François Perrad provided two patches to make m4 work on MinGW. Warnock applies.
substr
SegfaultWill Coleda posted a short PIR test that will segfault in the
substr opcode. This led to some discussion of variable-width
encodings. Leo explained that substr was a call that would
probably force Parrot to rectify variable-width encodings into fixed-width ones
(which it does lazily). Then he fixed it (presumably as he had suggested).
Steve "treefrog" posted a patch he needed to get Cygwin testing. I think he may have posted it to Google Groups directly, though. Warnock applies.
Leo attempted to free himself from the horns of Warnock by reposting his suggested call opcode cleanup. Patrick and I voiced our support. More accurately, I voiced support and Patrick indifference.
Nigel Hamilton began speculating that Perl 6 might have an extremely complicated control flow. Then he began to wonder aloud about a form of control flow I can only describe as brain-melting. Luke Palmer suggested that his proposal might best start as a module.
Ingo Blechschmidt's question of the flattening (or not) of slurpy params continued producing some suggestions. Piers seemed somewhat unhappy with earlier answers, but the thread died out.
if Topicalize?Luke Palmer noticed if foo() -> $foo { ... } in an OSCON
talk and wondered if if now topicalized. Stuart Cook offered a
workaround.
Luke Palmer posted his thoughts on unifying units and data constructors (as in Haskell or ML). Warnock applies.
undefIngo Blechschmidt wondered what would happen if he called
undef.chars or char undef. Brent "Dax" Royal-Gordon
responded that it would return undef in the absence of use fatal.
Larry confirmed this behavior.
.ref and .metaIngo Blechschmidt wondered what would happen if he assigned to
.ref or .meta. Luke Palmer figured that it would not
be allowed. I think it should cause a large person to come over to your house
and kick you. This is probably a good reason I don't write error messages.
.ref and .metaIngo Blechschmidt left a bunch of blanks for people to fill in with respect
to .ref and .meta. Luke Palmer apparently segfaulted
in the attempt to fill in the blanks.
Ingo Blechschmidt wondered if one could subscript pairs. Larry declared no.
Andrew Shitov was having trouble running Perl 6 under the latest Parrot. Autrijus pointed out that he was trying to run the compiler attempt abandoned in June of 2004 and then pointed him toward Pugs.
Tim Bunce wondered if any work had started on parsing Java interface definitions and translating them to Perl 6. Warnock applies (which probably means no).
Stevan Little posted some of his thoughts on the MetaObject internals for comment. Many questions ensued, my eyes glazed over, the summarizer punted.
defined
and typed TraitsAutrijus mused about how to deal with defined and typed traits in Perl 6.
This led Larry to wonder about undef being a class, or a class being undef, or
something confusing.
is
constant SugarAutrijus wondered how is constant would desugar if it were a
special form. Larry came up with suggestions, some of which said it desugared
and some of which said it didn't.
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
Perl.com Compilation Copyright © 1998-2006 O'Reilly Media, Inc.