Visual D Build + DMD Bugginess = Bad
Sönke Ludwig
ludwig at informatik.uni-luebeck.de
Thu Oct 14 00:34:06 PDT 2010
Am 13.10.2010 21:45, schrieb dsimcha:
> I've noticed that, when passed multiple files at once, DMD is generally buggy
> in ways that I can't reproduce in small test cases. This includes things like
> magically ignoring __gshared variables, and not being able to convert a type
> to an alias to the same type, for example, not being able to convert a size_t
> to a uint on 32-bit, or not being able to convert a float[] to an R where R is
> a template parameter instantiated as float[].
>
> I have two questions:
>
> 1. Has anyone experienced similar things and if so are they further along
> than me at creating decent test cases?
>
> 2. I'm used to using Code::Blocks, but want to switch to Visual D because it
> seems to work a lot better for the most part. However, by default it seems to
> pass all project files to the compiler at once, where Code::Blocks compiles
> one file at a time. This means I have to deal with DMD's bugginess when
> passed mutliple files at once. Does anyone know how to make Visual D work
> Code::Blocks style, i.e. compile each file to an object file and link them
> afterwords?
Right now, I'm in exactly the same situation. However, the problems
might be a bit more obvious: Sometimes symbols are missing at link time
that should not and sometimes some symbols (most of the time phobos
symbols) are defined twice but with exactly the same module path.
(Error: multiple definition of conv_208_199f:
_D53C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d.52012__ModuleInfoZ
and conv:
_D53C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d.52012__ModuleInfoZ)
On Mac OS, using all-at-once compilation I get defective .lib files (the
ar tool complains that the .o file is smaller than it reports or
something similar) so I have to compile the code of all static libs
together with the application code.
The problem is that it is really difficult (almost impossible) to
isolate the problem in any way because sometimes appears erratically and
the code base is quite large. And also I cannot share the source code
for debugging.
More information about the Digitalmars-d
mailing list