On Mon, May 7, 2012 at 2:10 AM, Jacob Carlborg <doob@me.com> wrote:
On 2012-05-07 08:03, Jonathan M Davis wrote:

The only place that I'm aware of where this policy has caused some problems is
arithmetic and integral promotions. There a few cases where it would be nice
to change the semantics for that, but for the most part, the C/C++ semantics
are fine, and I'm sure that Walter considers whatever loss we get there to be
worth the gain in making it so that C/C++ code ports to D without breaking
silently.

I had some problems with floats being default initialized to NaN.


That's still correct behavior for C, actually. Using an uninitialized variable in C results in undefined behavior, so D still complies with C requirements when it initializes floats to NaN.
I'm guessing there's more to it than that, though, because code that uses uninitialized floats was probably wrong to begin with.