This week on Perl 6 (9/9 - 9/15, 2002)
by Piers Cawley
|
Pages: 1, 2, 3, 4, 5
Problem Parsing Builtins
Aaron Sherman and others have been torture testing the Perl 6
compiler. The most comprehensive test is the Builtins.p6m file (now
split into several smaller files) that provides prototypes (and a
smaller number of implementations) for Perl 5's built-in functions (we
don't know what Perl 6's builtins will be, so Perl 5 is a good
start). Sadly, right now, the Perl6 compiler can't cope with all the
builtins, so there's been a game of working out which is broken, the
parser or the code. Aaron has posted many short scripts highlighting
problems he's found. My particular 'favorite' is my $x = 1; $x =
+x, sending the compiler off into an infinite recursion. Sean O'Rourke
has added these issues to his queue.
[RFC] buildings core.ops op_hash at runtime
Leopold Toetsch posted a proposal for altering the build system to get rid of some rather over the top duplication of (generated) code. Nicholas Clark liked the idea, but I don't believe the patch got applied -- yet.
Leo also suggested moving the op_info_table out into a separate file which could be shared by the various core_ops*.c files.
http://groups.google.com/groups
http://groups.google.com/groups
IMCC / Mac OS X problem
Leon Brocard (yay! Still batting 100 percent on this one ...) has been having problems building IMCC under Mac OS X. The individual .c files all compile, but bad things happen at link time. Leo, Kevin Falcone and Andy Dougherty all pitched in and, after a flurry of patches, IMCC is now building and working correctly under Mac OS X.
http://rt.perl.org/rt2/Ticket/Display.html
Problems with 64-bit integer builds
There have been problems building Parrot on some of the tinderbox systems, and many boxes are not green. Andy Dougherty had some thoughts on this, and on how to improve things. Andy's view is that so many of the tinderboxes are broken, it's hard to tell whether your new patch is making things better or worse, especially when the rebuilds can take several hours in some cases. Andy hopes that, once the majority of boxes are green most of the time, people will take more notice when one or another turns orange or red. In another thread, Andy offered a patch that had been a showstopper for some architectures, which would dump core during config's alignment detection tests.
http://groups.google.com/groups
http://rt.perl.org/rt2/Ticket/Display.html
RFC: How are compound keys with a PerlHash intended to work?
Leopold Toetsch wondered about the handling of compound keys in PerlHash objects. Dan confirmed that Leo's intuition about this was right, which was good, because Leo had a patch ready, but he still wondered about a some additional vtable methods. So he made some more proposals about how to deal with that case. Dan again agreed with Leo's analysis, and Leo came up with another patch. Steve Fink apologized for not having done this already, but his 'tuit shipment was confiscated due to heightened airport security.' Steve also neatly summarized the conclusions reached last time this came up.
Meanwhile, Graham Barr wondered where any type checking would happen. Leo thought it was implicit on lookup and showed code. So did Dan, but Ken Fox is still unsure.
http://groups.google.com/groups
http://rt.perl.org/rt2/Ticket/Display.html -- Leo's patch
http://groups.google.com/groups
Meanwhile, in perl6-language
The week before, Erik Steven Harrison had wondered what counted as a
runtime property, apart from true and false. This week, Damian
popped up with a list of 10 off the top of his head. return 255 but
undef;, or $name = "Damian" but We_better_call_ya("Bruce") anyone?
http://groups.google.com/groups
Second Try: Builtins
Aaron Sherman's efforts at producing an initial builtins list for Perl 6 got discussed on the language list as well. Chuck Kulchar had wondered how well, if at all, they worked with the current perl6 compiler (they don't... yet), and why they were written in Perl. Aaron Sherman posted his reasons (maintainability, maintainability and maintainability). Nicholas Clark argued that Parrot code wasn't necessarily hard to maintain, and also made the case for implementing some functionality in C. Aaron thought that, eventually, they're be a mix of different implementation languages, with many of the 'munge args, call equivalent library function' type functions moved out into libraries anyway.
http://groups.google.com/groups
More A5/E5 Questions
Discussions of the Perl 6 rules system rolled on. David Helgason had
worries about hypothetical variables but keys in a hash and should not
therefore have sigils in their names at all. Damian pointed out that
all Perl 6 variables were just keys in a hash. David wondered
about the difference between binding a value to a variable in a
containing scope and just binding to an entry in the match object
(Damian and Allison apparently have a really neat idea for this, but
it's not yet had the Larry stamp of approval). David's last worry was
that $0 was a rather cryptic name for the match object and
shouldn't it have a meaningful name like $MATCH (Damian thought
that squashing a cryptic name in favor of an arbitrary one wasn't
necessarily a win.
Jonathan Scott Duff had wondered (in off list mail to Damian, but
Damian answered in public) how he could tell ^^ and $$ only to
match just after and before his platform specific newline
sequence. Damian thought that suggested rolling ones own <sol>
and <eol> rules. Jonathan had also wondered about some of the
the binding semantics of nested rules. Damian's answer gave him an
appropriate 'ah! yes!' moment.
Aaron Sherman had another question about rules and kicked off the 'Throwing lexicals' (Weren't they a band?) by wondering 'How do rules create hypotheticals?' Everyone passed up the chance to do a 'Well, a mummy rule, and a daddy rule, who are very much in love...' joke, leaving it to the summary writer.
I confess, I'm not sure I understand Aaron's concern (about what to do when you assign to a hypothetical that doesn't exist in a containing scope. I thought you just bound to an appropriately named key in the current match object), which makes things a tad tricky, but Luke Palmer seemed to understand and wondered if there would be some way of declaring that a given hypothetical wouldn't infect its containing scope(s). Damian popped up again, promising that, once Larry had made a decision, he would be unveiling one of the solutions that he and Allison have cooked up.
http://groups.google.com/groups
http://groups.google.com/groups
http://groups.google.com/groups

