This Week on Perl 6 (2 - 8 September 2001)
Notes
This Week in Perl 6 News • |
You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk.
Please send corrections and additions to bwarnock@capita.com.
It was a busy week in the Perl 6 community with 363 messages contributed by 42 authors across 32 threads. A fourth of the threads comprised over three-fourths of the traffic.
%MY::
Goodness
There were two huge discussions on the new %MY::
interface to the lexical symbol table.
(70 posts) The major thread, started by Ken Fox, centered around %MY::
as a language feature to be used and abused.
Is stuff like:
%MY::{'$lexical_var'} = \$other_var;
supposed to be a compile-time or run-time feature?
Modifying the caller’s environment:
$lexscope = caller().{MY};
$lexscope{'&die'} = &die_hard;
is especially annoying because it means that I can’t trust lexical variables anymore. The one good thing about Damian’s caller() example is that it appears in an import() function. That implies compile-time, but isn’t as clear as Larry’s Apocalypse.
This feature has significant impact on all parts of the implementation, so it would be nice if a little more was known. A basic question: how much performance is this feature worth?
Most of the discussions addressed adjusting lexical variables during runtime, and what semantics that would change with what is currently Perl 5’s lexical variables. Of particular concern, how runtime adjustment of lexical variables could defeat the current compile-time optimizations for variable resolution that Perl 5 currently enjoys, and whether %MY::
symbol resolution is confined to a physical scope, whereas a lexical $x
may refer to a lexical in an outer scope. These issues are being mulled over.
(45 posts) Brent Dax also asked whether %MY::
should be a real symbol table instead of the current scratchpad structure currently used by Perl 5. There was a lot of debate on the differences between lexical and local global variables, and whether that distinction would help or hinder a transition to a true symbol table. Much of this decision will be affected by the linguistic questions discussed above.
Prototypes
(20 posts) I proposed a method for runtime prototype checking and value assignment that was generally accepted.
Documents Released
(71 posts) Simon Cozens released an overview of the Parrot interpreter. This is mostly codifying and coalescing much of the information that has been presented before. Feedback has been rolled into the docs that will be provided with the first Parrot release, so you can catch the updated info there.
Later stages of the thread turned into a debate between Paolo Molaro and Dan Sugalski, centered once again around the decision to do a register-based virtual machine.
(5 posts) Dan Sugalski re-released the second version of PDD 6: Parrot Assembly Language.
(3 posts) Dave Storrs released the next version of his Perl 6 Debugger API PDD.
(16 posts) I released versions one and two of my “Statements and Blocks” language specification.
Math Functions To Add
(30 posts) Dan Sugalski queried the Perl community for math functions to add to Parrot.
Parroty Bits
By the time you read this, the initial Parrot baseline should be available via anonymous CVS. You may find details here. Simon Cozens holds the source pumpkin.
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub