Florian Weimer wrote:
* Robert Dewar:

Making programs bug free has more to it than understanding the language
you are writing in, but it is a useful step forward to avoid problems
that come from simply not knowing the rules of the language you are
writing in (I can't guarantee that GNAT is bug free in that regard,
but I can't remember a case where a bug stemmed from this source).

There was some dependency on argument order evaluation in GNAT, but
this was part of GIGI, so it's not the best example.

Indeed, given that GIGI is written in C, by people who have not read the
C standard :-) In practice though I suspect this was just a glitch.
Depending on evaluation order is a bug that can be committed accidentally
even by those who know well that such things are undefined or, as in Ada,
non-deterministic. The trouble is that levels of abstraction often obscure
such errors (just abtracting things into a macro in C can sometimes have
that effect).


Reply via email to