[perl #60048] [BUG] [MMD] CGP Does Not Work with PCC Runcore Reentry

Geoffrey Broadwell geoff at broadwell.org
Wed Dec 24 02:47:23 UTC 2008


On Tue, 2008-12-23 at 17:31 -0800, Will Coleda via RT wrote:
> chromatic mentioned on #parrot that if we remove PIC, we're going to break all the 
> predereferenced runcores. After some discussion, this probably means ripping out:
> 
> 16:42 <@chromatic> Everything other than the default core, the nearly-useless 
>                    profiling core, and the gc-debug core.
> 
> So, I vote we update the deprecation notice in trunk to include the runcores (which means 
> delaying the removal until post-0.9.0), and then I can continue the mayhem and destruction 
> that has begun in the branch.
> 
> Comments?

This is certainly a biggie, but I believe we've been doing this on a
smaller scale more and more lately: removing functionality and/or
optimizations that we don't have the spare cycles to support.

On the one hand this is a good thing -- we'll actually hit 1.0 in a few
months.  I'm all for getting that wider audience.

On the other hand, I'm somewhat concerned that Parrot 1.0 will either
itself be rather slow, or will architecturally force HLL implementations
to be slow.  While looking for the IRC discussion mentioned by Coke, I
found the following interchange (slightly edited for clarity):

<donaldh>   Hmm. Bad memory profile for rakudo. A piece of PIR that runs
            a SQLite query and prints ~18000 rows tops out at 6 MB when
            run with -G. The equivalent in Rakudo tops out at 1.6GB
<chromatic> PGE/PCT/Rakudo uses more STRINGs and PMCs.  If you disable
            garbage collection, Parrot won't reuse them.
<donaldh>   Sure. I'm just realising how much pressure Rakudo is putting
            on GC.
<pmichaud>  rakudo is somewhat constrained by the architecture Parrot
            provides, unfortunately.

This interchange raised a flag for me.  Am I incorrect in seeing this as
a problem?  Since Parrot 1.0 is supposed to be the stable interface for
HLL implementors to aim for, I'd hate for that interface to be very
suboptimal, performance-wise, even if it is technically sufficient to
get things to *work*.  Or is the plan that Parrot 1.5/2.0 are going to
include the needed performance and functional improvements as part of
the push to production?


-'f




More information about the parrot-dev mailing list