This week on Perl 6 (week ending 2002-08-11)
by Piers Cawley
|
Pages: 1, 2, 3
Regex speedup
Angel reposted his patch to the regex subsystem, this time with
appropriate diff flags. Brent Dax needed more clarification, which
Angel gave; Dan accepted that, given docs and tests, the patch could
go in. Angel made another patch with docs and tests, although Mike
Lambert then asked for more clarification, and pointed out some issues
with the inline keyword not being standard across all C
compilers. He also wondered if Brent's old 'Tutorial' docs could be
updated and reinstated. Angel responded with more clarification, and a
promise that the tutorial would go in when he'd rewritten it, and
commented that 'The previous Rx version had excellent documentation,
so it will take a bit of time to get there.' I don't think this patch
has been applied yet.
http://groups.google.com/groups -- Start here.
Lexicals and globals assembly question
Brian Wheeler has been looking at store_lex, find_lex,
store_global and find_global and pointed out that the store_*
ops seemed to be the wrong way round, since the parrot rule is that
the destination is always the first operand. The response to this can
be summed up in one word: "Oops." Brian has patched it, and added
tests. Leopold Toetsch fixed things up in Builtins.pm.
http://groups.google.com/groups
Questions about pdd03_calling_conventions.pod
Jonathan Sillito asked a few questions about calling conventions, and
noticed that the callcc op appeared to be going the way of all
flesh. Dan answered the questions and remarked that callcc was to be
reinstated and shouldn't have disappeared in the first place. Sean
O'Rourke wondered why, since it could be replaced with calls to
invoke and other cleverness. Dan agreed. So callcc will stay
dead. (The only reason it was on the perch in the first place was
because it'd been nailed there.)
http://groups.google.com/groups -- Start here
Hash optimisations
Having had a patch to remove a function call from the hash algorithm accepted, Jason Greene offered a more comprehensive set of hash optimisations. Dan applied the patch. Nicholas Clark and Steve Fink had a few questions. Nicholas wondered why a constant had been changed, and Steve worried about memory use. Dan reckoned that worrying about memory to the tune of an unsigned int + alignment bytes at the expense of speed was the wrong trade-off to make. However, the other subthread had led to a different design which saved the space and only gave a small performance hit in the less common case. Dan agreed.
http://rt.perl.org/rt2/Ticket/Display.html
Various PMC issues
Stephen Rawls is still trying to write tuple.pmc. Which means he's
been nosing around the sources of all the other PMCs, looking at how
they do things, so, he had a bunch of questions, mostly to do with
PerlNums and PerlInts. The answer to many of the questions appears to
be 'the problem will go away when we get multimethod dispatch'. Dan is
pouting because he had 'wanted to go with a left-side-wins scheme, but
alas correctness has trumped speed...'. Dan has promised details of
Parrot multimethods 'soonish'.
http://groups.google.com/groups
http://groups.google.com/groups
Never ending story Keys
Josef wondered where we are with multi keyed access. Tom Hughes, who has promised to have a go at fixing things wondered if he was waiting for hell to freeze over. At which point it started 'snowing in Texas' as Dan came through with the design. There was much rejoicing, and a snowball fight was threatened. Tom had some questions (no surprise there: when you're the one doing the implementation, there's almost never enough information). Clarification was provided, as were supplementary questions, and supplementary answers. As Blur put it so eloquently: "Woohoo!"
http://groups.google.com/groups
http://groups.google.com/groups
Hatchet job on assemble.pl / the fixup table
Brian Wheeler took an axe to the assembler and some associated files
and asked for comments on his plans. Dan liked the sound of it, so
Brian posted a patch. Leopold "How do you pronounce" Toetsch suggested
making it a standalone library so stuff could just use Assembler
instead of calling yet another external program. Sean O'Rourke asked
for a summary of what had changed, and Brian gave him one. (Oo er).
http://groups.google.com/groups -- proposal
http://groups.google.com/groups -- patch
http://groups.google.com/groups -- summary
PMC assignment stuff
Dan has been a positive goldmine of designs and specs this week. This
time he offered the design for a new PMC assignment opcode. We already
have SET, which copies the pointers and CLONE making a
'full clone', but we also need ASSIGN to 'stuff a value from one
PMC to another'. Peter Gibbs made a start on implementation and asked
for some clarification, which was forthcoming, and then supplied a
patch with his implementation, along with tests. Go Peter!
http://groups.google.com/groups
http://groups.google.com/groups
Status on matrix patch?
Josef is worried about what's happening to the matrix patch. Simon
Cozens used this as an opportunity to crack the worst joke yet seen on
any perl6 mailing list, but Josef appears not to have seen the film
and didn't get the joke. Anyhoo, back on the main line of the thread,
the problem seems to be that in order to have things sensibly
arranged, it made sense for Josef to break the .pmc file up into a
couple of .c and .h files, along with matrix.pmc, but there's
currently no scheme for multi-file PMC classes. Dan also thinks that
putting code into the parrot core just to facilitate code sharing
between PMCs is probably not the right answer. This appears to have
opened a can of worms. Dan is searching for a bigger can -- sorry --
designing the infrastructure that this needs.
http://groups.google.com/groups -- Thread starts here.
http://groups.google.com/groups -- Terrible joke...
Constant & opcode swap ops
Dan offered designs to support multiple segment bytecodes, or at least, to swap in constant tables. Steve Fink wondered if it might be a good idea to wrap the interpreter in a PMC and use vtable methods to do constant table manipulations etc. Dan thinks that's a great idea for introspection, but worries that it'll slow things down if we make the interpreter itself go through those hoops all the time. Nicholas Clark also offered a few caveats ('Are you sure you want to do it this way?', words to strike fear into the heart of any designer I think). Dan isn't sure.
Faster assembler
Nicholas Clark offered a patch which makes
Assembler::_generate_bytecode faster. By around 1.5%. Dan applied
it. Sean O'Rourke offered more tweaks. Mattia Barbon had a patch which
meant that the tests could just 'use Parrot::Assembler' rather than
call assemble.pl, but the tweaks have outdated it. Dan and Nicholas
asked for the patch anyway because it would make remaking it easier.
http://rt.perl.org/rt2/Ticket/Display.html
Perl 6 regexes...
Dan threw down the gauntlet of implementing Perl 6's regexes from Apocalypse. Sean O'Rourke has apparently already taken it up. I think we'll be seeing more of this thread next week...
http://groups.google.com/groups

