At 5:29 PM +0100 8/28/02, Nicholas Clark wrote:
>On Wed, Aug 28, 2002 at 12:17:55PM -0400, Dan Sugalski wrote:
>> At 10:36 AM +0200 8/28/02, [EMAIL PROTECTED] wrote:
>> > >> Will there be automatic calling of the deserialization method
>> >>> for objects, so that code like this DWIMs...
>> >
>> >>> my Date $bday = 'June 25, 2002';
>> >
>> >> Err... what do you mean it to do?
>> >
>> >Wow, this is nice. He means (I think) that this will be translated into
>> >
>> >my Date $bday = Date->new('June 25, 2002');
>>
>> That's really unlikely. More likely what'll happen is:
>>
>> my Date $bday;
>> $bday = 'June 25, 2002';
>>
>> and it'll be up to $bday's string assignment code to decide what to
>> do when handed a string that looks like a date.
>
>op wise, how is that different from the original suggestion of
>
> my Date $bday = 'June 25, 2002';
It isn't. It was mostly to stem the followup "eight zillion flavors
of new" cascade that was sure to follow. :)
> > That should work OK for a variety of reasons. $bday is strongly typed
>> since you told perl what type it was in the my declaration. Date can
>> also override string assignment, thus Doing The Right Thing (pitching
>> a fit or taking a date) when you assign to it.
>>
>> I can see downsides to it, though--it means you lose the compile-time
>> type checking, since just because we're getting the wrong type
>> doesn't mean it's really an error. OTOH it's not like we have strong
>> compile-time type checking now...
>
>If the compiler were able to see that my Date $bday = 'June 25, 2002';
>is one statement that both types $bday as Date, and then assigns a constant
>to it, is it possible to do the conversion of that constant to a constant
>$bday object at compile time? (and hence get compile time checking)
>Without affecting general run time behaviour.
That's possible, yes. We could construct the object at compiletime
and store a real serialized version in the bytecode, and deserialize
at execution time. We probably will do that, though maybe not for the
first version of the compilers.
--
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk