what are the most common bugs in your D apps?
bearophile
bearophileHUGS at lycos.com
Sun Apr 5 22:28:58 PDT 2009
davidl Wrote:
> Actually I'm not sure about what kind of bugs my d apps usually have.
I suggest every serious programmer to keep a document that contains all the bugs he/she/shi has fixed in her/his/hir code, plus a note that explains such bug a bit.
This is a bug I have put 3 times in my D programs, that shows an-error prone design detail of D arrays:
import std.stdio: writefln;
void process(int[] arr) {
arr.length = arr.length / 2;
foreach (i, ref el; arr)
el += 2;
}
void main() {
auto a = new int[10];
process(a);
writefln(a);
}
I think D arrays have to be passed by reference by default or they have to be immutable. Such mixed thing just leads to troubles.
I have had another class troubles while translating C to do D. Global variables in C are initialized to 0, while in D floating point values (global too) are initialized to nan (or now signaling nan in D2), this leads to different results.
There are several other bugs I have had in D. The good thing is that, I am used to use lot of unit testing, so I can catch many of them. Around I see lot of D code with too few unittests (for example most of the code in Phobos has just few unittests. That's bad).
Bye,
bearophile
More information about the Digitalmars-d
mailing list