Rakudo needs from Parrot in 2011

Patrick R. Michaud pmichaud at pobox.com
Mon Jan 31 18:47:33 UTC 2011


On Mon, Jan 31, 2011 at 11:59:44AM -0500, Peter Lobsinger wrote:
> On Mon, Jan 31, 2011 at 9:56 AM, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> > 3.  Serialization.  The major item that makes Rakudo startup so slow
> >    is that we have to do so much initialization at startup to get
> >    Rakudo's type system and setting in place.
> >    There's not a good
> >    way in Parrot to reliably serialize a set of language-defined types,
> 
> In order for me to prioritize, which problem is this? One with
> serializing classes and objects? Or the one involving dynpmcs?

I think this item encompasses both problems, at least from Rakudo's
perspective.  We have dynpmcs _and_ we have classes and objects that
need scope-limited serialization.

> You are hitting the limits of PIR's syntax. It is very poor at
> expressing concepts related to arbitrary PMC constants. Parrot
> provides this functionality, mostly simply by not getting in the way.

In several responses to this message (both here and on #parrot), I've 
heard answers to the effect of "Parrot already provides this 
functionality..." I guess my overall response to these is 
"...but not yet in a form where Rakudo or the HLLs I work on can 
profitably make use of it." I can describe in general terms the 
problems I'm encountering, but in some areas (such as bytecode 
management and profiling) I don't have sufficient knowledge of 
Parrot guts to detail solutions.

A big concern I have in this area is that I think Parrot needs
some sort of dynamic linking capability whereby a dynamic loaded
library can hold references to things that are outside the library 
itself.  In the past my cursory scans of the packfile and bytecode 
formats don't seem to account for anything like this.

> Get away from PIR (and we're
> working to provide you the tools to do this), and you most likely will
> not have this issue.

If I may channel Jim Keenan for a moment: Is there any estimate as 
to which Parrot release will offer these tools?  Will it appear on 
the Parrot roadmap as a goal Parrot is committed to providing between 
now and 4.0?  Are there any preliminary design documents or discussion
that describe what these new tools might look like?

Pm


More information about the parrot-dev mailing list