=head1 This week on Perl 6 (17-23 June 2002) by Piers Cawley, 020020624
=head2 Notes It's been a while since the last Perl 6 digest and summarizing everything that's happened since then would take, ooh, a while. So I've punted on that, and just pretended that the last one was published this time last week. (Well sort of, sometimes I'll refer back to earlier posts in threads that continued this week.) =head2 More 6PAN musings: local namespaces John Siracusa L<asked|http:[EMAIL PROTECTED]/msg10140.html> a bunch of questions about the naming of local modules in Perl6, pointing us at java's style of uk.org.bofh.html.template, which makes sure that one organizations templating system won't clash with that of another. Various schema were proposed, then Larry L<popped up|http:[EMAIL PROTECTED]/msg10162.html> and told us that there'd be more than one way to do it, along with a way of aliasing names to avoid RSI. Aaron Sherman warned us away from reinventing X.whatever it was addressing. After some discussion about the merits of long, guaranteed unique module names versus a standardized module naming schema, Webb Sprague L<suggested|http:[EMAIL PROTECTED]/msg10152.html> a CPAN "Curation Project" be formed. The idea being that there'd be the more or less unstructured seething mass of CPAN, and then there'd be a group of "highly managed, by real people" modules that were promoted from that pool to an "Extended Perl Library". Which led to a discussion about where you'd find the "real people" and a certain amount of silliness about acronyms. Favourite quote of the thread: L<The problem is that the directive to "be smart" quickly expands to "be omniscient."|http:[EMAIL PROTECTED]/msg10149.html> =head2 Regexes and untainting Miko L<proposed|http:[EMAIL PROTECTED]/msg10166.html> that, by default regexes shouldn't untaint, and proposed a 'safer' mechanism for managing taintedness. Jonathan Paton L<pointed out|http:[EMAIL PROTECTED]/msg10167.html> that some of this is already possible in Perl 5. He also came up with the idea of marking different rules as untaint safe or unsafe when they are defined. =head2 what's new In an effort to understand the state of Perl 6, raptor L<posted|http:[EMAIL PROTECTED]/msg10155.html> a really good summary of some of the changes from Perl 5 to Perl 6 asking if he'd got the right end of the stick. Damian L<clarified|http:[EMAIL PROTECTED]/msg10168.html> a few things and generally confirmed that the stick was correctly oriented. =head2 Meanwhile... over in perl6-internals =head2 latest Parrot Luke Palmer L<asked|http:[EMAIL PROTECTED]/msg10573.html> why the latest ChangeLog entry was from March 19, and was the Parrot he'd just got from CVS really the latest version. Dan explained that it was, but that the ChangeLog wasn't being kept up to date 'for some reason', which triggered a small amount of kvetching about CVS. Robert Spier (sensible chap) L<suggested|http:[EMAIL PROTECTED]/msg10577.html> that all non trivial patches should contain a 'human readable' changelog entry along with the patch and at least one test. Ask agreed. And so do I. =head2 Perl6 grammar Melvin Smith posted a L<suggested roadmap|http:[EMAIL PROTECTED]/msg10561.html> towards being able to parse Perl 6. Jerome Vuillon pointed us at the beginnings of a L<parser|http://www.pps.jussieu.fr/~vouillon/parrot/parser.y> that he was putting together using yacc, and Sean O'Rourke L<posted|http:[EMAIL PROTECTED]/msg10598.html> his Parse::RecDescent based grammar sketch. And there was much rejoicing. =head2 Irrational fear of macros Melvin Smith L<pointed out|http:[EMAIL PROTECTED]/msg10567.html> a joke in the perl 5 source about the sheer number of macros in the perl 5 source. Which provoked a variety of serious responses. Dave Goerhrig L<reckoned|http:[EMAIL PROTECTED]/msg10581.html> that macros weren't inherently bad, but having hordes of them wasn't necessarily good, and his sig quote: qw/ who is praying for parrot to support XS code, cause he doesn't want to rewrite SDL_perl's 11,000 lines /; provoked a L<serious response|http:[EMAIL PROTECTED]/msg10662.html> from Tim Bunce proposing a 'wrapper that manages a simple perl5-like run-time environment'. Tim's .sig (Tim [who doesn't want to rewrite the DBI's ~4000 lines or tell the many DBD authors that they have to rewrite their drivers].) gave us a clue as to his motivation in wanting this too... The 'Irrational fear of macros' thread proper was L<kicked off|http:[EMAIL PROTECTED]/msg10582.html> by that man Dave Goehrig as he launched a defence of macros, pointing out that "Perl 5's problem with macros ... is that too many of them remain largely undocumented, under-utilized, or over-exposed." He argued for "a dictionary, a work to explain the usage of each element of the API. Parrot needs a rosetta stone, through which future implementors will decipher and re-interpret the decisions made years in the past." Melvin L<disagreed|http:[EMAIL PROTECTED]/msg10584.html>, pointing out that macros don't play well with debuggers, and argued that it's far better to write code that is self explanatory than to write code that requires to to constantly refer back to a dictionary to understand it. Larry, as is his wont, cut through all this with yet another of his L<incisive posts|http:[EMAIL PROTECTED]/msg10585.html> explaining why perl 5's macro system looks like it does. "After all these years, I still know exactly what a dPOPTOPnnrl does, and it's not because I remember the name." Meanwhile, Mike Schwern L<showed off|http:[EMAIL PROTECTED]/msg10600.html> his splendidly cunning trick for defining something as both a subroutine I<and> a macro. Well, I was impressed anyway. =head2 Tasks for the interested Dan posted a L<handy list|http:[EMAIL PROTECTED]/msg10589.html> of other virtual machines, and asked interested people to try and make lists of the opcodes used by each of them, and what those opcodes do. And then to write opcode libraries for them. The usual suspects were all there (Perl5, Python, Ruby, JVM, .NET) along with the dark horse that is the Infocom Z-machine. Does Dan have a thing for classic text adventures? Rafael Garcia-Suarez suggested that if anyone managed to do the job for Perl 5, p5p would definitely be interested in seeing the results.) Simon Wistow L<proposed|http:[EMAIL PROTECTED]/msg10604.html> PHP/Zend as another candidate for this approach. Dan pointed out that, daft as it seemed, the z-machine would be a really good system to tackle since, as well as needing a custom opcode library, the z-machine would also need the ability to load packed files, and that making $ parrot -m:zmachine lurking_horror.dat do the right thing "involves most of the infrastructure we'd need to get working to get .NET and JVM code loaded in." It looks like Josh Wilmes has stepped up to this particular plate. On the Java front, Leon Brocard pointed out his <earlier post|http:[EMAIL PROTECTED]/msg09812.html> where he announced his proof of concept for loadable java bytecodes. Dan encouraged him to keep up the good work. =head2 matrix design Josef Höök posted a L<suggested matrix representation|http:[EMAIL PROTECTED]/msg10599.html> which opened something of a can of worms. People L<questioned the need|http:[EMAIL PROTECTED]/msg10606.html> for first class matrices (though Dan disagreed with them, pointing at the PDL project.) Josef's basic design also got a L<vote|http:[EMAIL PROTECTED]/msg10609.html> of "Yech! :)" from Dan, who reckoned that it was better to start with a simple data structure, get that working and then worry about making it sparse. For some reason this led off into a discussion of hyper operators. In a message that doesn't appear to have been archived, Paul Kienzle pointed us at L<BLAS|http://www.netlib.org/blas/faq.html> and reckoned that a compatible representation would win big because of tools like LAPACK "which provides fast stable implementations of a lot of very useful linear algebra." Ashley Winters L<suggested|http:[EMAIL PROTECTED]/msg10616.html> that we take advantage of the lazy evaluation we're expecting from Perl 6 and set things up to do deferred calculation. He also suggested that we don't "need to worry about optimizing complex operations too much, the PDL people have come up with miracles before... they just need the tools." Which sounds good to me... =head2 Stack and GC Melvin Smith L<asked|http:[EMAIL PROTECTED]/msg10623.html> a few questions and made a few proposals about the stack and garbage collection with particular reference to continuations, coroutines and other entertaining flow of control constructs. And then released a L<patch| http:[EMAIL PROTECTED]/msg10624.html> containing his first cut at continuations and exceptions. =head2 Vtables David Lloyd has updated the L<Vtable PDD|http://dev.perl.org/perl6/pdd/pdd02_vtables.html>. =head2 Glossary The parrot glossary is now available at L<http://dev.perl.org/perl6/pdd/pdd02_vtables.html> =head2 More tests Robert Spier L<pointed out|http:[EMAIL PROTECTED]/msg10633.html> that, according to L<http://www.hitchhiker.org/parrot_coverage/> the tests only cover 33% of the parrot codebase. We need more tests. =head2 INTVAL keys David Lloyd L<announced|http:[EMAIL PROTECTED]/msg10639.html> the arrival of a new C<_keyed_int> form for every C<_keyed> vtable method, and asked for contributions and tests that exercise them. =head2 New stack tests Simon Glover L<offered|http:[EMAIL PROTECTED]/msg10643.html> a torture test of the N stack. =head2 Another new language Jeff L<offers|http:[EMAIL PROTECTED]/msg10646.html> a (currently limited) implementation of FORTH. =head2 .include directive for new assembler Brian Wheeler has L<implemented|http:[EMAIL PROTECTED]/msg10647.html> a .include directive for the assembler which was generally liked, eventually getting committed. =head2 Steve Fink goes on hiatus Steve Fink announced that, for at least the next couple of months, he was going to be too busy to do any work on parrot, and that anyone ho wanted to was to feel free to do whatever they wanted with has.c and the regex compiler he'd been working on. Given the speed of Parrot development it'll be interesting to see his reaction when he comes back... -- Piers "It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?