4 ms·
What Walter meant in his comment was that his static analyzer has no false positives (it never allows a memory unsafe program to compile). He's provided a few s
by anchpop 7y ago
What Walter meant in his comment was that his static analyzer has no false positives (it never allows a memory unsafe program to compile). He's provided a few simpler examples in this thread of cases where his analyzer produces false negatives. I knew that was going to be the case because no program can flag 100% of negatives without also flagging a few positives by accident (as a consequence of Rice's theorem). I just meant to demonstrate that, but I don't know anything about D so I wanted to pick something that I was certain his analyzer would fail one way or the other.
That doesn't mean that his analyzer isn't useful. I find rust extremely useful because it catches almost me whenever I accidentally write memory unsafe code without burdening me too much otherwise. But almost every rust coder has run into a case where they wrote some code that was safe, but not allowed. That's just a fact of life and it serves no one to make incorrect claims about one's software
- WalterBright 7y agohttps://news.ycombinator.com/item?id=22714673 https://news.ycombinator.com/item?id=22714673
- exiled13 7y ago> I don't know anything about D so I wanted to pick something that I was certain his analyzer would fail one way or the other. What he is talking about is a proposed implementation of the solution. It isn't actually in the D language yet. No one's tested it (except for Walter). So I would definitely take its' validity with a grain of salt.
- WalterBright 7y ago> It isn't actually in the D language yet. It is in the released compiler as a preview feature.
- exiled13 7y agoOh that buggy mess got merged huh.
- bonzini 7y ago> (it never allows a memory unsafe program to compile Those would be false negatives, not false positives. FP = flagging what should not be flagged, FN = not flagging what should be flagged.