May 18, 2009
In std/conv.d I found that there are several imports that are done twice, once as private and once as regular imports.


Another thing,

Because I'm running Fedora 4 on my laptop (the newer Fedoras demand too much resources), I had to compile dmd. That seemed to work, once I changed

//#include      "../mars/mars.h"
#include        "../mars.h"

in dmd/backend/dwarf.c   (I thought this was fixed already?)


Now, when trying to compile a trivial test file, I noticed that merely including std.stdio results in template problems in std/traits.d unittests:

/tmp/dmdcc/dmd/linux/bin/../../src/phobos/std/traits.d(950): Error: template instance isStaticArray!(const(int)[]) does not match template declaration isStaticArray(T : U[N],U,uint N)
/tmp/dmdcc/dmd/linux/bin/../../src/phobos/std/traits.d(950): Error: expression isStaticArray!(const(int)[]) of type void does not have a boolean value
/tmp/dmdcc/dmd/linux/bin/../../src/phobos/std/traits.d(950): Error: static assert  (!isStaticArray!(const(int)[])) is not evaluatable at compile time


It seems one can include files that *don't* include stdio, for example

compiler.d ctype.d datebase.d __fileinit.d perf.d stdarg.d system.d uni.d typetuple.d

all seem to work. Additionally, one can even compile those files

$ dmd -c -w compiler.d ctype.d datebase.d __fileinit.d perf.d stdarg.d system.d uni.d typetuple.d

with no errors or warnings. (What they seem to have in common, is they don't include stdio, and therefore traits.d.)


Of course, I'll submit a bug report, or two. But before that, are there any points that help me understand the issues? Or even *better* that help me maybe write a more precise bug report (meaning, one that gets fixed sooner, and takes less time to fix).

May 18, 2009
Georg Wrede wrote:
> 
> In std/conv.d I found that there are several imports that are done twice, once as private and once as regular imports.

Thanks! Fixed.

Andrei