At 08:12 AM 8/5/00 -0400, John Tobey wrote:
>Nick Ing-Simmons <[EMAIL PROTECTED]> wrote:
> > John Tobey <[EMAIL PROTECTED]> writes:
> > >Dan Sugalski <[EMAIL PROTECTED]> wrote:
> > >> Yup, and I realized one of my big problems to GCs that move memory
> > >> (references that are pointers and such) really isn't, if we keep the
> > >> two-level variable structure that we have now. The 'main' SV structure
> > >> won't move, while the guts that the equivalent of sv_any points to can
> > >> without a problem.
> > >
> > >I certainly hope this data layout factoid is still subject to change.
> >
> > Having an SV have a fixed address is handy for C extensions.
> > The 'entity' has got to have some 'handle' to defines its existance.
> > If not the SV* data structure then what is it that defines the thing?
>
>Just like in Perl, if you want a reference to it, put it somewhere and
>use a pointer.  Otherwise, use it by value.  (three words, or two if
>flags are dropped, or four if vptr is added, or one if everything is
>crammed into a pointer with low bits commandeered).

That's going to complicate a lot of things, and it will mean perl will end 
up doing all sorts of temp SV creation when these 'mini SVs' get passed to 
subs. Plus it complicates life a lot for people writing the guts. (Which 
would be us. :)

I think this sort of optimization is very premature, and it will require 
jumping through a lot of hoops because of perl's profligate use of dynamic 
polymorphing. If it's needed, well, we'll do it, but I'd rather put the 
effort elsewhere to start.

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to