Vision for the D language - stabilizing complexity?

Andrew Godfrey via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 16 05:32:31 PDT 2016


On Saturday, 16 July 2016 at 06:40:31 UTC, Walter Bright wrote:

> But in C++, everything is @system. I'm not sure how people 
> successfully create enormous programs with it.

I work on Microsoft Word. I'm not sure how much I can share about 
internal verification tools, but I can say: We do have SAL 
annotation: https://msdn.microsoft.com/en-us/library/ms235402.aspx

As solutions go, SAL is dissatisfyingly incomplete, and not an 
easy mini-language to learn (I still haven't managed it, I look 
up what I need on the occasions that I need it). But it does 
impress at times with what it can catch. It goes a bit beyond 
memory safety, too, so I would guess that there are bug patterns 
it can catch that D currently won't.

One class of bug I find interesting here is uninitialized 
variables. I'm not sure if Visual Studio helps here (we have an 
internal tool, I know some 3rd party tools do this too). But it's 
interesting that these tools can (often, not always) spot code 
paths where a variable doesn't get initialized. D's approach to 
this helps strongly to avoid using uninitialized memory, but in 
so doing, it discards the information these tools are using to 
spot such bugs. (So, the kind of bug D lets slip through here 
would tend to be one where variable foo's value is foo.init but 
it should have been initialized to some other value).


More information about the Digitalmars-d mailing list