Array bound checks removal increasing importance

Dmitry Olshansky via Digitalmars-d digitalmars-d at puremagic.com
Sun Jun 1 09:34:20 PDT 2014


01-Jun-2014 14:21, bearophile пишет:
> Dmitry Olshansky:
>
>> Who are those people that are not disabling bounds checks in system
>> language ? :)
>
> If you show D code on Reddit and you show to compile with -noboundscheck
> you hear some people growl. I don't remember this happening much in
> past. So I think the attitude toward disabling bound checks is changing.
>
> -----------
>
> Once some more logic for bound checks removal is in D, it can even be
> added a @bounded expression attribute:

An expression attribute? Why turn language into a mess over this tiny 
problem?

It seems to me that you are considering solutions that add arbitrary 
amounts of complexity to solve relatively small problems.

>
> foreach (immutable i; 0 .. a.length)
>      a[@bounded i]++;
>
> @bounded {
>      foreach (immutable i; 0 .. a.length)
>          a[@bounded i]++;
> }
>
> The purpose of @bounded is just to give a compile-time error if the
> compiler is not able to remove one (or more if used with the {} syntax)
> array bound check.

That "just" epithet is remarkable self-destruction.

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list