At 03:41 PM 11/7/2001 -0500, Ken Fox wrote:
>Dan Sugalski wrote:
> >     my $foo;
> >     $foo = 12;
> >     print $foo;
> >     $foo /= 24;
> >     print $foo;
> >
> > may well have the vtable pointer attached to the PMC for $foo change with
> > every line of code. Probably will, honestly.
>
>Well, there's only two assignments there, so I assume that print is
>going to upgrade the scalar to have a string rep. Are you thinking of
>scalar representations something like:
>
>   undef
>   integer
>   integer_with_string
>   real_with_string (dirty)
>   real_with_string

Yup, something like that.

>I like the principle of automatically changing representations, but
>shouldn't the compiler be a little smarter? In this example every
>expression has a static type.

Right, but it's just an example. It's simple on purpose. Yes, I know the 
optimizer can potentially do a bunch of constant folding. No, that's not 
the point.

>Which brings up an interesting question. Does Perl the language
>require just-in-time representation changes

Yes, at the moment it does. And I think, though it's not fixed in stone 
yet, that we need to cope with global changes to the vtable entries of core 
data types. (We certainly need to for Ruby support, but that's a separate 
issue)


                                        Dan

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

Reply via email to