Notes on 2.030

Georg Wrede georg at nospam.org
Mon May 18 10:00:08 PDT 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).




More information about the Digitalmars-d mailing list