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