Sign In/My Account | View Cart  
advertisement


Listen Print

This week on Perl 6 (8/26 - 9/1, 2002)

by Piers Cawley
September 01, 2002

Well, it has been a week. Damian came to London and made our heads spin; perl6-language erupted in a flurry of interesting, high signal/noise threads; Parrot reached its 0.0.8 release; Larry made many of his wonderfully unexpected but obviously right interjections and the world kept on turning.

So, we'll kick off with perl6-internals as usual.

DOD etc

The 'elimination of garbage collection hand waving' thread continued as Nicholas Clark asked a hard question about garbage collection and dead object detection (DOD). As far as Nick could tell, it seems that 'if we have unrefcounted "deterministic destruction" objects somewhere freely in the GC system, then we'll be needing a DOD run after every statement' and he noted that 'all ways of doing deterministic destruction seem to have considerable overhead.' Sean O'Rourke wondered whether we could use a hybrid 'full GC + refcounts where needed' scheme, but Juergen Boemmels pointed out that refcounting would be contagious. Anything that contained a reference to a refcounted object would need to be refcounted in its turn.

Related Reading

Perl in a Nutshell, 2nd Edition

Perl in a Nutshell, 2nd Edition
By Stephen Spainhour, Ellen Siever, Nate Patwardhan

Meanwhile, Mike Lambert wondered why we needed to promise deterministic destruction in the first place and proposed a couple of schemes to deal with the canonical 'filehandle' case. Sean O'Rourke and Steve Fink both came forward with cases where deterministic destruction proved useful, and where Mike's scheme didn't really work. And that's where the thread came to rest. I have the feeling that it, or a thread like it, will be back.

http://makeashorterlink.com/

Dynamic Keys

Tom Hughes, who has been doing good work on keyed access wondered about dealing with dynamic keys, and proposed a way forward. Dan asked whether Tom had looked at the proposed ops in PDD06, and pointed out that dynamic keys didn't necessarily need to go the whole PMC hog. 'They're our internal structures -- we can screw with them as we need :)'. Tom pointed out a few issues with the PDD06 op set, and proposed a few more ops with a (hopefully) consistent naming scheme. So far he's had no answer to the questions he raised in that post.

http://makeashorterlink.com/

Perl6 Test Failures

Steve Fink wondered about all the test failures he keeps seeing for Perl 6; he doesn't want to go trying to make a language neutral regex engine play nicely with the Perl6 engine when that engine is in such a state of flux. Sean O'Rourke suggested nailing down some calling conventions and then both teams could code to those conventions. Steve pointed out that, so far, he knows of at least five attempts at a regex engine in parrot. Leopold Toetsch suggested that Steve try the tests again, forcing a grammar rebuild, and the test failures got all better.

http://makeashorterlink.com/

Regex status

On Wednesday, Dan wondered where we were with Apocalypse/Exegesis 5 compatible patterns/rules/regexes. Sean O'Rourke told him. (Answer: Still some way to go, but making good speed.)

http://makeashorterlink.com/

Counting down to 0.0.8

On Thursday, Jeff Goff posted his timetable for 0.0.8, 'Octarine' release of Parrot, complete with a 25-hour code freeze. Markus wondered whether using a GMT timetable might be more friendly for everyone who wasn't on the East Coast of the United States. Parrot actually saw release Monday, Sept. 2, which is slightly outside the scope of this summary, but I'll let it sneak in anyway.

http://makeashorterlink.com/

http://makeashorterlink.com/

An 'Oops' Moment

Leopold Toetsch found an interesting bug with the GC system interacting with initialization. examples/life.ar.p6 is a Perl6 implementation of Conway's Life, which has a rather lengthy initialization phase, after which it checks the @ARGS array, which is conventionally placed in P0 at startup. But there's a catch. By the time it comes to make the check, @ARGS has been garbage collected. Peter Gibbs posted a quick fix patch, and Mike Lambert stuck his hand up to being a 'lazy bum,' but reckoned that Steve Fink's fixes should solve the problem.

http://makeashorterlink.com/

Various changes to IMCC

Whilst 'idly toying' with IMCC, Steve Fink made a bunch of speculative changes, bundled 'em up in a patch and offered them to the list. I'm not sure what people thought of the changes, but the thread morphed into a discussion of generating conditional makefiles and making sure that IMCC and the other tools needed to get the Perl6 compiler working were as portable as possible. Mike Lambert pointed out that it may make sense to have the files generated by bison/flex checked directly into the repository, since then those tools wouldn't be needed except by people who go messing with the grammar.

http://makeashorterlink.com/

Concatenation Failing

Leon Brocard (phew, I was worried I was going to have to run his questionnaire this week) found a bug where concatenation fails occasionally, leaving no clues as to why. He attached some sample code that illustrates the problem. Peter Sinnott noted that Parrot seems to be getting confused about the length of the strings involved. Meanwhile, Peter Gibbs offered a patch and Mike Lambert reckoned it fixed a bug in his code, but couldn't for the life of him work out why. Peter reckons it has to do with unmake_COW resizing the allocation and causing confusion elsewhere. I get the feeling that what we have now is a 'symptomatic' fix in search of a fix for an underlying issue. But I'm just a summarizer.

Markus Laire found what he thinks might be another bug, but I've no idea if it's fixed by Peter Gibbs' patch.

http://makeashorterlink.com/

http://makeashorterlink.com/

IRIX64 alignment problem

Steven McDougall chased down a bug causing t/pmc/perlhash.t to throw a bus error, but wasn't at all sure how to go about fixing it, and asked for advice. Bryan C. Warnock offered a few pointers, as did Peter Gibbs, but we don't have a fix yet.

http://makeashorterlink.com/

Meanwhile, in perl6-language

Prototypes, grammars and subs, oh my!

Thom Boyer wondered what while's signature would be. He'd considered sub while (bool $test, &body); and sub (&test, &body); but neither really fit. Larry agreed and offered


    sub while (&test is expr, &body);

and then, reaching deeper into his bag of tricks, he pulled out the wonderful/scary


    sub while (&test is rx/<expr>/, &body);

(Think about that for a moment. What is proposed that you'll be able to specify a grammar for your functions argument list, which is definitely something that made me sit up and take notice.) Damian sat up and took notice, too, offering some refinements and doing some thinking aloud. Damian suggested that maybe the prototype should look like sub while ( &test is specified(/<Perl.expr>/), &body); >>. Damian also suggested blurring the line still further between statements and expressions by having the likes of C<for> return a value, and had some thoughts on multimethods. Trey Harris also offered some more comments on multimethods.

All of which leaves me looking forward with bated breath for Apocalypse 6.

Quote of the thread: "The whole point of making Perl 6 parse itself with regexes is to make this sort of stuff easy." -- Larry

http://makeashorterlink.com/

http://makeashorterlink.com/

Pages: 1, 2, 3

Next Pagearrow