Front page | perl.perl6.compiler |
Postings from November 2004
Perl 6 Summary for 2004-10-23 through 2004-11-01
From:
Matt Fowles
Date:
November 1, 2004 20:32
Subject:
Perl 6 Summary for 2004-10-23 through 2004-11-01
Message ID:
f2601a7f0411012032709957b4@mail.gmail.com
Perl 6 Summary for 2004-10-23 through 2004-11-01
All~
Welcome to another summary, this one being slightly delayed by
Halloween. Before I start off with perl6-language, let me remind all
American readers to vote tomorrow. Non-American readers should also
vote, but it seems unlikely that your day of voting is tomorrow. So
without further ado,
Perl 6 Language
assorted questions
Rich Morin wanted to know two things. One, can he hook into function
calls and just about everything else for his evil purposes. Two, can he
get floating point values which automagically track their rounding
errors. Austin Hastings pointed out that two would probably best be
implemented as an opaque object whose value is a junction. Luke Palmer
demonstrated an evil way to embed whatever hooks he wanted by adding an
extra layer to the grammar. Somehow, I worry that shooting myself in the
foot with this would take most of my body off...
<http://xrl.us/drsq>
Perl6 backwards compatibility
U. Ruirarchzatrea expressed a desire for perfect backwards
compatibility to perl5 and a ponie too. Matthew Walton, Brent 'Dax'
Royal-Gordon, and Luke Palmer all told him that he could have a ponie,
but it would not be perfect.
<http://xrl.us/drsr>
Perl 6 Compiler
Sadly google still does not mirror p6c. Does anyone know someone who can
be poked/prodded/pleaded with about this? End result: no links for you!
Status check?
Ovid popped in to see if he could find more detailed status info about
the progress of p6c. Patrick Michaud provided a slightly unsatisfying
answer of "not much longer", and Luke Palmer provided a slightly more
detailed answer which can be summarized as "not much longer".
Parrot Internals
siva, the multifacetted pmc
Stephane Payrard asked about some problems he had encountered creating
the magical all in one Siva PMC. Leo provided a helpful prod towards
LVALUE_CAST. The other problems may or may not related to the mandrake
cooker. Hopefully someone will tell us.
<http://xrl.us/drss>
JITted functions calling external functions
Leo reported that, thanks to Jeff, one can now call into Parrot
functions from JIT. Yay!
<http://xrl.us/drst>
make testexec
Currently make testexec will create and run a trivial "hello world"
program for the exec core. Leo would like it to run the full test suite
instead. This is a big thing, but would probably win you many friends
and influence people.
<http://xrl.us/drsu>
Calling Conventions and Indirect Register Access
Leo provided several warning that he was going to make some big changes
that would break any code that did not follow the calling conventions.
He went to implement and commit a whole lot of stuff. I was impressed,
and Dan later wondered if it was all done or not (as he wants to make
some big changes soon). Apparently it is for the most part.
<http://xrl.us/drsv>
<http://xrl.us/drsw>
<http://xrl.us/drsx>
<http://xrl.us/drsy>
<http://xrl.us/drsz>
<http://xrl.us/drs2>
Stalk Walking Bug
Nicholas Clark, with Leo's help, found a bug in the stalk walking code.
Apparrently, our mask for valid pointers was a little over zealous.
Nicholas checked in a quick fix. Steve Fink has a few suggestions.
<http://xrl.us/drs3>
Register Allocation
Bill Coffman is continuing his amazing work with register allocation. He
has been making strong progress, and his new code is fast approaching
production ready. Unfortunately for Dan, it still has a few rough points
and a small memory leak preventing it from being used on Dan's evil
code. Leo has been helping him along the entire time, and I predict that
all of Bill's work will find its way into Parrot before the next
summary.
<http://xrl.us/drs4>
<http://xrl.us/drs5>
libjit
Robert Spier pointed out the fairly nifty libjit. Unfortunately,
according to Leo, the current jit is far enough along that it would be
too much work to switch. I tend to believe him.
<http://xrl.us/drs6>
-- libjit
<http://xrl.us/drs7>
Looking for a hardware donation
H.Merijn Brand reminded Leo that he hadn't been contacted yet about some
"Diana" menthol alcohol. I was confused, but apparently Leo wasn't...
<http://xrl.us/drs8>
pmc/inode analogy
Stéphane Payrard wanted to know if his analogy between pmcs and
filesystems was correct. Leo felt that it was mostly right and attempted
to explain value/variable split. Dan corrected Leo and went a little
further. What I have taken away from this is "do not think of it in
terms of high ;evel language operators, instead think of it in terms of
C. You get pointers and values (and you can point to a value).
Somethings do shallow copies (i.e. pointer copies) others do deep.
<http://xrl.us/drs9>
pmc_type
Nicholas Clark wanted to know what a pcm_type of 0 means. The answer: no
such type. This led to Stéphane Payrard asking about pmc_type values for
abstract types. They don't get types cause they can't be directly
instatiated. This led Paolo Molaro to wonder about the virtue of having
a system closer to C++ with array lookup for virtual functions.
Nicholas, Leo, and Paolo banged on this for a while and decided that
there was some room for optimization... Leo scares me when he
optimizes...
<http://xrl.us/drta>
extend.c:Parrot_call
Leo was bothered by the fact that Parrot_call only supported void return
values. So, much to Jeff Horwitz's joy, he fixed it.
<http://xrl.us/drtb>
Computed Goto Destroyer of Weak Machines!!!
Vijay D. though that parrot was failing to install when it "hung" while
compiling the computed goto cores. Nick Glencross, Leo, Dan, Peter
Sinnott, and Joshua Gatcomb all helped out explaining that cg is really
hard on one's system and can be disabled with the --cgoto=0 flag to
Configure.pl.
<http://xrl.us/drtc>
byte code
Peter Hickman wanted to know if Perl 6 would be able to be distributed
in bytecode. The answer is yes, but this won't help you hide your
source, as that will frequently be necessary meta-data. It will,
however, speed up your compilation and even allow mmap of the bytecode
to share between threads.
<http://xrl.us/drtd>
Pirate/Python
Sam Ruby has continued his work on Python and is making good progress.
He was a little concerned about the speed issues of converting
everything to dynclasses. He and Leo talked out some alternatives.
Things are looking promising.
<http://xrl.us/drte>
threading issues
Sam Ruby wanted to know about possible threading issues. Leo requested
that they let the sleeping giant lie for a while longer...
<http://xrl.us/drtf>
.include "../relative path"
Matt Diephouse added a todo item for .including with relative paths.
Takers welcome.
<http://xrl.us/drtg>
Array fun
Bernhard Schmalhofer added a few benchmarks for the various array PMCs.
Leo applied the patch.
<http://xrl.us/drth>
Prederefed run cores
Leo had some concerns about the prederef run cores. Dan suggested
pitching them, but Leo opted to fix them instead. Some discussion of
their relative values ensued, then someone started using assembly to
support their point and my head exploded.
<http://xrl.us/drti>
Parakeet in CVS
Michel Pelletier has finally gotten himself a perl.org account. The idea
being that this would allow him to maintain Parakeet in CVS.
Unfortunately, Warnock Applies.
<http://xrl.us/drtj>
GC crach
Matt Diephouse found a way to make Parrot's GC crash. Leo fixed it with
alacrity.
<http://xrl.us/drtk>
PPC JIT failure
Jeff Clites found and fixed a bug in the grow-the-arena threshold for
JIT. Leo seemed to feel that Jeff's solution was only a temporary one.
<http://xrl.us/drtm>
AIX PPC JIT warning
Jeff Clites voiced some concern over the state of JIT on AIX. Adam
Thomason told him "Worry not, it's already broken."
<http://xrl.us/drtn>
Call Chain Access
Approrpiately, Leo found himself playing with chains around Halloween.
He wondered if the call chain should have a PMC wrapper. Dan figured
not, as ops which do evil things would be unlikely to invoked
accidentally, whereas a PMC might...
<http://xrl.us/drto>
newsub opcodes
Leo wanted to add some newsub opcodes to save allocations. Dan countered
that it would be a better thing to get constant pmcs working properly.
So Leo did.
<http://xrl.us/drtp>
<http://xrl.us/drtq>
<http://xrl.us/drtr>
pmc2c2.pm features.
Leo suggested a couple extra features that he wanted in pmc2c2.pm. Sam
Ruby supplied them.
<http://xrl.us/drts>
Build dynclasses by default
Will Coleda provided a patch to build dynclasses by default. Leo is
stalling before applying it, hoping to hear from other platforms. Now
would be a great time to chime in... ::cricket noises:::
<http://xrl.us/drtt>
warnings for duplicate vars
IMCC currently doesn't produce them. Will Coleda supplied a naive
attempt at this, but Leo decided it would be better to do it the elegant
way and split the PASM and PIR lexers/parsers apart.
<http://xrl.us/drtu>
Parrot on AMD64
Brent 'Dax' Royal-Gordon managed to find an AMD64 for himself. Not only
am I jealous, but Parrot passes all expected tests on it when one adds
--ccflags=':add{ -fPIC }'.
<http://xrl.us/drtv>
dynopslib troubles
Klaas-Jan discovered that dynopslib was failing. Leo concurred and asked
for patches.
<http://xrl.us/drtw>
makefile bad $(TOUCH)
Jeff Clites noticed that Makefile's $(TOUCH) does not actually work on
many platforms and suggested a solution. Michael G Schwern suggested
using ExtUtils::Command instead. Who knows what will finally happen?
<http://xrl.us/drtx>
Debug ops
Dan wondered about adding some ops for debugging parrot code. The
response was favorable and enthusiastic.
<http://xrl.us/drty>
parrot -t massive leaks
Dan noticed that parrot -t leaks more memory then most cheap computers
have.
<http://xrl.us/drtz>
hash vtable
Sam Ruby wondered about adding a hash vtable method for Python's
benefit. Dan seemed to think it was a good idea.
<http://xrl.us/drt2>
disassembler broken
Matt Diephouse noticed that the dissambler was broken. Dan pointed out
that he was testing it wrong. But Matt soon discovered that it didn't
work even if he tested it right.
<http://xrl.us/drt3>
she-bangs for everybody
James deBoer provided a patch adding shebang lines to config/*.pl. Brent
'Dax' Royal-Gordon reasoned that these were unnessecary as these scripts
should only be run by Configure.pl. James countered by offering a patch
removing all of the shebang lines from the other ones. I like his style.
<http://xrl.us/drt4>
<http://xrl.us/drt5>
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 ubermatt@gmail.com
http://donate.perl-foundation.org/ -- The Perl Foundation
http://dev.perl.org/perl6/ -- Perl 6 Development site
http://planet.parrotcode.org/ -- Parrot Blog aggregator
-
Perl 6 Summary for 2004-10-23 through 2004-11-01
by Matt Fowles