Getting action on your favorite D issues

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Sat Jun 6 21:34:00 UTC 2020


On Saturday, 6 June 2020 at 19:52:11 UTC, Timon Gehr wrote:
> Unfortunately it does not mean the behavior is not defined. It 
> means the behavior is explicitly defined to be arbitrary. It's 
> not very well-designed terminology, but D inherits it from C.

The C99 standard has better terminology, though: it describes it 
as _indeterminate_, which can be either unspecified, or a trap 
value (the latter of which IIUC means any arbitrary bit pattern 
that fits in the block of memory the variable is stored in?).

If I've understood the spec correctly, "unspecified" allows for 
the possibility that an individual implementation _could_ specify 
the behaviour, it just doesn't require it -- right? -- whereas as 
you say, "implementation defined" in C explicitly means that the 
implementation _must_ specify the behaviour.

It looks like the D spec might benefit from adapting that kind of 
more precisely defined terminology.


More information about the Digitalmars-d mailing list