Value Range Propigation Spec

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Mon Oct 27 17:43:20 PDT 2014


On 10/22/14 1:32 PM, Walter Bright wrote:
> On 10/22/2014 2:31 AM, Shammah Chancellor wrote:
>> A couple of us working on SDC are trying to get ValueRange propigation
>> implemented.   I was wonder if someone could offer some insight as to
>> how VRP
>> works in DMD.   If for example, trying to get the value range of a
>> global, what
>> is the expected behavior?
>>
>> It seems as though VRP is a language feature, and not a compiler
>> feature --
>> since this allows some code to compile and not others.   Is there a
>> specification for how it should work somewhere?  If not, it's hard to
>> implement
>> other compilers that will not generate errors in the same
>> circumstances as DMD.
>>
>
> VRP is definitely a language feature, not a compiler feature. The
> specification is straightforward - a narrowing conversion can be
> implicitly performed if it can be proved that it would not lose
> information.
>
> How it works, though, is kinda tricky, and the only guide to it is the
> compiler source code.

I think specification is equally tricky because it needs to specify the 
exact algorithms. -- Andrei



More information about the Digitalmars-d mailing list