Steven Schveighoffer wrote:
On Fri, 19 Feb 2010 10:22:15 -0500, grauzone <[email protected]> wrote:
SafeD will take care of it. As the compiler has to support SafeD anyway, the same mechanisms can be used to create warnings or even errors in normal D code.

I'm not sure where Andrei will draw the line for SafeD. SafeD still has to be UsefulD ;)

Good point, but safe means safe. It's can't be a hint. Perhaps the biggest crisis between Walter and me consumed when he mentioned he wanted to make "safe" just a hint and still disable bounds checking in release mode, safe or not. He was kind enough to back off, which was very nice of him - I see no way in which I could accept a compromise on that particular matter. (By the way, much of the very fruitful collaboration between us has been caused by our ability to work out good compromises even though we have sometimes different viewpoints.)

Statically-allocated arrays are not a difficult safety issue. We have two solutions - (a) have the compiler just disable conversions for stack-allocated T[N] to T[] in safe mode, (b) have the compiler perform its own flow analysis and transparently switch to dynamic allocation when needed, just like in the case of closures.

But I think slicing a static array makes the compiler lose all knowledge that it is a scoped entity.

I thought the same, but then I figured this works:

int[10] a;
int[5] b = a[0 .. 5];

Well it's off-topic, I know.

I agree that the current situation needs addressing.


Andrei

Reply via email to