A simple question

Rainer Schuetze r.sagitario at gmx.de
Sat Nov 17 11:17:53 PST 2012



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/souztdpadfefltnvckcg@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).


More information about the Digitalmars-d mailing list