Perl 6 Summary for 2004-11-01 through 2004-11-08
All~
Welcome to yet another summary, brought to you (once again) with the aid
of the musical stylings of Dar Williams and Soul Coughing and a small
stuffed elephant name Aliya. And, without further ado, I give you Perl 6
Language (whose traffic has picked up a little)...
Perl 6 Language
What was that anonymous thing?
Juerd wondered what things could be named and what anonymous. Larry
provided the answer: Subtypes, Enums, Lists (Lazy and Eager), Grammars,
and Packages, but then threatened to attack Juerd with hot grits.
<http://xrl.us/dvi2>
updated Apocalypses and Synopses
Larry proved links to the current versions of the various Apocalypses
and Synopses. Unfortunately he forgot to start a new thread with his
message...
<http://xrl.us/dvi3>
http://www.wall.org/~larry/apo -- apocalypses
http://www.wall.org/~larry/syn -- synopses
suggested warning for overriding operators
Aaron Sherman wanted to receive a warning for defining things like
"multi sub *infix:+(...) {...}". But Larry reasoned the anyone who'd use
the * there does not care for warnings.
<http://xrl.us/dvi4>
Perl 6 Compiler
Last week, I bemoaned my lack of google (and thus links). But a couple
kind souls pointed out that I could get links straight from the horses
mouth: nntp.perl.org. All I can say is, ::shrug:: "Who knew that there
was an internet outside of google?". Fortunately, I do not have to admit
to its existence as there were no message this week.
Parrot Internals
she-bangs for none!!
Last week James deBoer offered a patch to remove all of the shebang
lines from config/*.pl (after his initial patch to add them to all of
them was turned away). Warnock applies.
<http://xrl.us/dvi5>
Solaris 9 troubles
Christian Aperghis-Tramoni has some trouble whil trying to install on
Solaris 9. Warnock applies.
more vtables
Leo wanted to add a finalize vtable entry (in addition to destroy, which
is apparently use for free memory and not active resources). Jeff
commented on the difficulties implicit in finalizing stuff, and the
thread ran out of gas.
<http://xrl.us/dvi6>
build dynclasses by default
Last week, Leo was stalling to here about success and failures before
adding them to the default build. Brent 'Dax' Royal-Gordon and Sam Ruby
both chimed in with success. And so they did.
<http://xrl.us/dvi7>
<http://xrl.us/dvi8>
register frame recycling
Leo added in some basic continuation recycling. Dan didn't like that it
required the user to clone return continuations into full ones. Leo
agreed, but felt that a returncc function would be needed first. I
wondered why we needed this recycling and couldn't just let the DOD/GC
do it for us. The answer: speed.
<http://xrl.us/dvi9>
upcase binary strings
Dan wondered what should happen if you tried to play with the case of a
binary encoded string. The concensus seems to be either throw an
exception or nothing, depending on settings.
<http://xrl.us/dvja>
setref poorly named
Sam Ruby was initially confused by the strange behavior of setref. Leo
told him that it was intended to set a reference inside a reference type
and noted that classes needs a clean up. With the advent of dynclasses,
this sounds like a job for some adventurous lurker...
<http://xrl.us/dvjb>
tracebacks pmc vs ops
Leo wondered if we should have a PMC that could access the entire call
chain and do whatever evil it wanted. Dan conjectured that this sort of
thing was evil enough that ops might be well advised. Leo initially put
some methods into the continuation to do this, but later though about
putting them into the interpreter instead. I like the interp idea.
<http://xrl.us/dvjc>
parrot -t memory leaks
Last week our fearless leader notice some not insignificant memory leaks
with parrot -t. This week our fearless pumpking fixed them.
<http://xrl.us/dvjd>
Performance graphs
Matt Diephouse (assisted by Joshua Gatcomb) provided a pointer to a page
of periodic parrot performances, provided as pretty pictures. Please
provide possible improvement pointers.
<http://xrl.us/dvje>
<http://xrl.us/dvjf>
<http://xrl.us/dvjg>
uniline yield() and return()
St�phane Payrard (whose name google objects to strenuously) resent his
patch for uniline yield and return in PIR. Leo applied the patch.
<http://xrl.us/dvjh>
mod_parrot 0.1
Jeff Horwitz released mod_parrot 0.1. Pretty nifty.
<http://xrl.us/dvji>
<http://xrl.us/dvjj>
IO auto-flush troubles
Christian Aperghis-Tramoni wondered how to make stdout not buffer away
his prompt. The answer (provided by Mary Pauley and Luke Palmer) require
using pioctl and strange magic numbers.
<http://xrl.us/dvjk>
bigChanges--; release++?
Since the big indirect register change has gone through, some voices
suggested putting out a 0.1.2 release. Leo felt that it was too soon,
but seemed to be holding a minority opinion. I vote that we release
after the new register allocator (and possibly Dan's string stuff
depending on how long it takes).
<http://xrl.us/dvjm>
Dan's String Stuff
Dan is about to make some "Irrevocable Changes" so he decided to do his
work in a branch named "pluggable_encodings", assuming he can use CVS
(which is surprisingly hard at times). Since no one screamed foul, I
think it is a safe assumption.
<http://xrl.us/dvjn>
clone mmd
Sam Ruby submitted a patch adding mmd_clone for dynclasses. Leo
suggested an alternate approach, and Warnock['s Dilemna] took over.
<http://xrl.us/dvjo>
true coroutines
Klaas-Jan Stol wondered if parrot had "true" coroutine because Roberto
Ierusalimschy (of Lua fame) called it into question. Some confusion
ensued as to what the platonic ideal of a coroutine actually is, but the
answer seems to be: we should and if they aren't patches welcome.
<http://xrl.us/dvjp>
trouble with Closures and Subs
Klaas-Jan Stol was having trouble with closures and subs. Many people
provided some very useful pointers. If you are writing a compiler for
Parrot you should read this thread carefully. If you are writing a
summary for Parrot you should skim it and punt.
<http://xrl.us/dvjq>
Shared library and dynclasses
Sam Ruby wondered if dynclasses should link to libparrot.so. Dan
provided the answer: yes. Sam Ruby went on to suggest that if most PMCs
would eventually become dynclasses, then (to reduce executable size, the
parrot executable should probably also link to libparrot.so rather than
including all of it. No one commented on this observation...
<http://xrl.us/dvjr>
serach paths and libraries
Dan wants to stop being annoyed by library path issues. He figures that
the right way to do this is to allow dynamic library loading. Best of
all he wants the code to do that to be in the library. Thus he put out a
request for the ability to embed bytecode into an executable. Brent
'Dax' Royal-Gordon provided a slightly too evil method of doing this.
Other slightly less evil (or even good) options would definitely be
received thankfully.
<http://xrl.us/dvjs>
Benchmarks? tests? or both?
Joshua Gatcomb noticed that some benchmarks fail on occassion. Matt
Diephouse suggested making them tests too. Leo felt that would be fine
provided they did not take too long to run.
<http://xrl.us/dvjt>
Fibonacci Still Slow
It is odd how the wheel comes full circle. Originally designed as an
exercise in addition for students, the Fibonacci sequence has some
really interesting mathematical properties. While comletely ignoring its
unexpected niftiness (and explicit formula), this miraculous sequence is
still used as busy work for poor creatures. This time the creature is
parrot, and, despite Leo's best efforts, it is still slow. There was
some talk of how to optimize this before Dan put the smack down all of
it:
"No more performance changes. Period. We get parrot fully functional
first."
<http://xrl.us/dvju>
Parrot on Windows
Jerry Wiltz wondered how to get Parrot on his poor Win XP box. Fred and
Georgy provided many pointers. Christian Lott also had trouble, but
Nicholas Clark, Ron Blaschke, Peter Sinnott, and Steve Peters all
provided pointers.
<http://xrl.us/dvjv>
<http://xrl.us/dvjw>
Parrot build issues
Jack J. Woehr was having trouble building parrot on his Sun. Leo
provided the needed help. But then ICU became problematic. Many people
provided help and he eventually got it running forth, which promptly
segfaulted. Jack sounded discouraged, but he really should stay with it
now that he has gotten by the hard part...
<http://xrl.us/dvjx>
<http://xrl.us/dvjy>
detecting perldoc
James deBoer wondered if we should detect the presences of perldoc and
fail to configure if it is missing. The concensus seems to be that we
should detect the absence of perldoc, but if it is no there throw up a
big fat warning and procede.
<http://xrl.us/dvjz>
pow and other ops
There was/is a fairly long and ongoing discussion about ops on PMCs,
which Sam Ruby unwittingly started when he asked for MMD pow. While
there are people on all sides, it appears likely that the ops will stay.
<http://xrl.us/dvj2>
<http://xrl.us/dvj3>
<http://xrl.us/dvj4>
C on parrot?
bloves wondered what the current state of C on parrot was. But I think
he posted it through google groups (which does not actually reach the
list) as I did not find it in my email. The answer is essentially
non-existant, but if you are feeling brave/insane/suicidal patches
welcome.
<http://xrl.us/dvj5>
Streams and Filters
Ron Blaschke tracked does the problem with t/library/streams.t #14 on
Win32. The guilty party is line endings. One workaround would be to have
the file in question be set to binary in cvs (although that feels like
cheating).
<http://xrl.us/dvj6>
AIX PPC JIT
Adam Thomason provided a patch to fix some warnings. Leo applied it.
<http://xrl.us/dvj7>
Register allocation/volatility
Despite Dan's line in the sand strong statements about no more
optimization, Jeff Clites and Leo tossed about some radical ideas for
how to speed everything up.
<http://xrl.us/dvj8>
GC invocation
Leo suggested changing the GC from one that interupts everybody and does
its thing, to one that waits its turn and does its thing. I am concerned
that this could lead to resource starvation in a multithreaded system,
but nobody else posted anything. Of course he only suggested this today.
<http://xrl.us/dvj9>
eval questions
Leo wants some answers to some eval questions before he tries to clean
up dynamic code compiling. Answers??
<http://xrl.us/dvka>
include perl 6 files in config
Gerd Pokorra wants to be able to run perl6 from anywhere. He even
provided a means of achieving this end (although not in unified diff
format as is the custom).
<http://xrl.us/dvkb>
pioctl -> segfault
Stephane Payrard got a segfault while playing with the previously
mentioned pioctl magic numbers. Leo speculates that this might be do to
the lack of an end opcode.
[TODO] improve parrot-config.imc
Takers wanted.
<http://xrl.us/dvkc>
Missing arguments
Klaas-Jan Stol wondered how to detecting missing arguments. Leo and Dan
both pointed to the argument count registers.
<http://xrl.us/dvkd>
Update to embed.pod
St�phane Payrard provided an update to embed.pod. Leo applied it, but
Brent 'Dax' Royal-Gordon cried fould over the including of parrot.h. Dan
aggreed with Brent, and St�phane Payrard provided a patch to remove the
offending line.
<http://xrl.us/dvke>
calling convenctions, traceback, and register allocation
Leo suggested a new way to invoke functions which would clean up
calling, tracebacks, and register allocation. While such a change would
have great aesthetic value, Dan declared it premature as parrot is not
yet fully specified. Doubtless this will rearrise later, as aesthetics
is a powerful motivator.
<http://xrl.us/dvkf>
<http://xrl.us/dvkg>
The usual footer
If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send feedback to [EMAIL PROTECTED]
http://donate.perl-foundation.org/ -- The Perl Foundation
http://dev.perl.org/perl6/ -- Perl 6 Development site
http://planet.parrotcode.org/ -- Parrot Blog aggregator