The current status of D?

Timon Gehr timon.gehr at gmx.ch
Tue Dec 6 01:19:56 PST 2011


On 12/06/2011 09:37 AM, bearophile wrote:
> Don:
>
>> Right. But it's hard to come up with high-priority language issues these days. The old ones have been fixed.<g>.<
>
> There are several things that I'd like to see fixed/improved in D still. In particular there are two holes from C language that have no place in D, I mean code like:
>
> x = x++;
>
> Or code like (bar and baz are not pure):
>
> int z = 0;
> int foo(int x, int y) { return x + y; }
> int bar(int x) { z++; return x * x + z; }
> int baz(int x) { z--; return 2 * x + z; }
> int main() {
>      int w = foo(bar(5), baz(3));
>      return w;
> }
>
> See also:
> http://en.wikipedia.org/wiki/Sequence_point
>

I think ',' in parameter lists are already sequence points.

> You can't remove all undefined behaviours from D, but they must be reduced and minimized, because D tries to lead to correct and deterministic programs.
>
> A solution is to define the behaviour in those situations (and pay a bit of performance in some cases), an alternative is to statically forbid some kinds of code (and pay a bit of flexibility. C lints essentially forbid code like x=x++;), or a mix of the two solutions. (Forbidding something is not so bad because I've seen bad C code that mutates some variables inside a single expression, and it's code that is not easy to understand and it's not easy to translate to other languages).
>
> Bye,
> bearophile



More information about the Digitalmars-d mailing list