dmd 1.046 and 2.031 releases

Robert Jacques sandford at jhu.edu
Tue Jul 7 18:31:42 PDT 2009


On Tue, 07 Jul 2009 21:21:47 -0400, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> Robert Jacques wrote:
>> On Tue, 07 Jul 2009 20:48:50 -0400, Andrei Alexandrescu  
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> Robert Jacques wrote:
>>>>>> long g;
>>>>>> g = e + f;  => d = cast(long) e + cast(long) f;
>>>>>
>>>>> Works today.
>>>>  Wrong. I just tested this and what happens today is:
>>>> g = cast(long)(e+f);
>>>> And this is (I think) correct behavior according to the new rules and  
>>>> not a bug. In the new rules int is special, in this suggestion, it's  
>>>> not.
>>>
>>> I think this is a good idea that would improve things. I think,  
>>> however, it would be troublesome to implement because expressions are  
>>> typed bottom-up. The need here is to "teleport" type information from  
>>> the assignment node to the addition node, which is downwards. And I'm  
>>> not sure how this would generalize to other operators beyond "=".
>>>
>>>
>>> Andrei
>>  Hmm... why can't multiple expressions be built simultaneously and then  
>> the best chosen once the assignment/function call/etc is reached? This  
>> would also have the benifet of paving the way for polysemous values &  
>> expressions.
>
> Anything can be done... in infinite time with infinite resources. :o)
>
> Andrei

:) Well, weren't polysemous expressions already in the pipeline somewhere?


More information about the Digitalmars-d-announce mailing list