This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit http://www.perl6.org/

This week on Perl 6 (17-23 June 2002)

by Piers Cawley, 020020624

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.)

More 6PAN musings: local namespaces

John Siracusa archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com 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: archive.develooper.com

Regexes and untainting

Miko archive.develooper.com that, by default regexes shouldn't untaint, and proposed a 'safer' mechanism for managing taintedness. Jonathan Paton archive.develooper.com 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.

what's new

In an effort to understand the state of Perl 6, raptor archive.develooper.com 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 archive.develooper.com a few things and generally confirmed that the stick was correctly oriented.

Meanwhile... over in perl6-internals

latest Parrot

Luke Palmer archive.develooper.com 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) archive.develooper.com 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.

Perl6 grammar

Melvin Smith posted a archive.develooper.com towards being able to parse Perl 6. Jerome Vuillon pointed us at the beginnings of a www.pps.jussieu.fr that he was putting together using yacc, and Sean O'Rourke archive.develooper.com his Parse::RecDescent based grammar sketch. And there was much rejoicing.

Irrational fear of macros

Melvin Smith archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com 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 archive.develooper.com his splendidly cunning trick for defining something as both a subroutine and a macro. Well, I was impressed anyway.

Tasks for the interested

Dan posted a archive.develooper.com 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 archive.develooper.com 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|archive.develooper.com> where he announced his proof of concept for loadable java bytecodes. Dan encouraged him to keep up the good work.

matrix design

Josef H\xF6\xF6k posted a archive.develooper.com which opened something of a can of worms. People archive.develooper.com for first class matrices (though Dan disagreed with them, pointing at the PDL project.)

Josef's basic design also got a archive.develooper.com 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 www.netlib.org 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 archive.develooper.com 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...

Stack and GC

Melvin Smith archive.develooper.com 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 patch containing his first cut at continuations and exceptions.

Vtables

David Lloyd has updated the dev.perl.org

Glossary

The parrot glossary is now available at dev.perl.org

More tests

Robert Spier archive.develooper.com that, according to www.hitchhiker.org the tests only cover 33% of the parrot codebase. We need more tests.

INTVAL keys

David Lloyd archive.develooper.com the arrival of a new _keyed_int form for every _keyed vtable method, and asked for contributions and tests that exercise them.

New stack tests

Simon Glover archive.develooper.com a torture test of the N stack.

Another new language

Jeff archive.develooper.com a (currently limited) implementation of FORTH.

.include directive for new assembler

Brian Wheeler has archive.develooper.com a .include directive for the assembler which was generally liked, eventually getting committed.

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...