On 11/16/2012 4:08 AM, Nick Sabalausky wrote:
On Fri, 16 Nov 2012 01:11:18 +0100
As for your specific issue, there's a few different factors:

1. Like other have already said, all the files need to be sent to DMD
together (possibly by using RDMD) or, if not that, then at least their
objects all need to be sent to the linker together. I realize you're
using VisualD and therefore have reason to expect it to be taken care
of automatically, but since something obviously might be going awry in
that regard, you'll need to take it up with the VisualD developer. If
you're nice to him, he might even be glad to help out.

2. If there is indeed an actual bug in the compiler or linker (instead
of either VisualD or your project's VisualD settings), and you want it
addressed promptly (keeping in mind this is a non-commercial venture
and you're not paying anyone for support, so therefore there are NO
timeframe guarantees), then it will help greatly if you provide a test
case (and file it in the bug tracker: http://d.puremagic.com/issues/ )
which fully demonstrates the problem *without* having any reliance on
any tool other than the compiler/linker itself. Yes, this means dealing
with the command line.

3. The linker's error message needs to be better (as many people have
already agreed with you on). The linker itself is written in
highly-optimized assembly (and is in the process of being - very
meticulously - converted to C for easier maintenance, as a stepping
stone to it eventually moving to D), so changes to it *will be* slow.
What *can* be done though, is to pipe its output through a D demangler,
and in fact I think someone's already made such a tool. If you're not
willing to use a direct command line to do that, then you can put in a
request (not a demand) with the VisualD dev to have such functionality
incorporated into VisualD. Or, although this may be a stretch, you
could even offer to help incorporate the change to VisualD yourself.

4. I'm not sure I even see a specific problem in that thread that
hasn't been addressed. First of all, it looks like your DFL problem was
solved by including DFL in your VisualD project's dependencies.
Secondly, I'm not getting your error when I try this:

http://forum.dlang.org/thread/souztdpadfefltnvc...@forum.dlang.org?page=2#post-djjkyaqnwlsquticjfmw:40forum.dlang.org

Both of those files compile fine for me with DMD 2.060, and if I toss
in a "void main() {}" I even get a working executable.


Even though the discussion seems to have cooled down, I'd like to clarify a number of speculations:

Visual D compiles the files that are added to the project, not anything imported as rdmd does (I think this does not scale for larger projects where you better use libraries for sub-projects).

Visual D does not use incremental builds because this causes linker problems due to missing symbols. Judging from single file compilation it won't even reduce build times because import dependencies cause almost everything is compiled or at least semantically analyzed anyways (though this might be with my projects only).

As of 0.3.34 Visual D demangles the linker output (if not explicitely disabled in the options).

Reply via email to