QtD 0.1 is out!

Walter Bright newshound1 at digitalmars.com
Sat Feb 28 12:14:22 PST 2009


Christopher Wright wrote:
> This opens you up to certain bugs,

Yes, the bug where module A depends on module B being initialized first, 
yet B imports A. With this patch, it may or may not work correctly, as 
order of initialization for cyclic imports will be unpredictable.


> but they should be relatively rare.

But nasty, as they tend to show up when porting or updating the compiler 
or build system, long after the original programmer left. Furthermore, 
these bugs may go undetected at QA time if nobody put a test for proper 
initialization in the test suite.

Java is a very portable language, not because of the VM, but because it 
tries to eliminate all implementation and undefined behavior. It hasn't 
been 100% successful at that, but this facet of Java has, in my opinion, 
been a big factor in the wide adoption of Java.

In contrast, only experienced C and C++ programmers are able to write 
code that ports reliably. Experience at having been burned by 
implementation and undefined language behavior. This is no longer 
acceptable in a language.

> I've tried it, and it appears to work.

That's the problem with undefined behavior :-(, it only appears to work. 
It is not guaranteed to work.


More information about the Digitalmars-d-announce mailing list