<div class="gmail_quote">On 8 March 2012 16:41, Jacob Carlborg <span dir="ltr"><<a href="mailto:doob@me.com">doob@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 2012-03-08 10:12, Manu wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On 8 March 2012 00:21, Jonathan M Davis <<a href="mailto:jmdavisProg@gmx.com" target="_blank">jmdavisProg@gmx.com</a><br></div><div><div class="h5">
<mailto:<a href="mailto:jmdavisProg@gmx.com" target="_blank">jmdavisProg@gmx.com</a>>> wrote:<br>
<br>
    On Wednesday, March 07, 2012 23:07:11 Mars wrote:<br>
     > On Friday, 2 March 2012 at 11:53:56 UTC, Manu wrote:<br>
     > > Personally, I just want to be able to link like a normal<br>
     > > windows developer.<br>
     > > My code is C/C++, built with VC, and I want to link my D app<br>
     > > against those<br>
     > > libs using the VC linker, and debug with Visual Studio. This is<br>
     > > the<br>
     > > workflow I think the vast majority of Windows devs will expect,<br>
     > > and it<br>
     > > sounds simple enough. This is the only thing standing between<br>
     > > me using D<br>
     > > for any major projects, and just experimenting with the<br>
     > > language for<br>
     > > evaluation, or just academic interest.<br>
     > > 64bit is far less important to me personally, VisualC linker<br>
     > > compatibility<br>
     > > is the big one. I just want to link against my C code without<br>
     > > jumping<br>
     > > through lots of hoops.<br>
     ><br>
     > That's exactly my problem... and although I love D, these hurdles<br>
     > made me take a step back, to C++, while I wait for this to<br>
     > change, so I can finally use D efficiently.<br>
     ><br>
     > I'm sure this isn't a trivial task, but the problematic isn't new<br>
     > after all. Why hasn't it been addressed yet? In my eyes this<br>
     > should be a top priority, to make it easier for new users to get<br>
     > into D. Till this poll I actually believed the problem was that D<br>
     > isn't used much by Windows users.<br>
<br>
    I don' think that Walter really views it as much of a problem - or<br>
    if he does,<br>
    he didn't used to. Remember that he's used to an environment where<br>
    he doesn't<br>
    use Visual Studio or Microsoft's C++ compiler. And his customers use<br>
    dmc just<br>
    like he does (since they're his customers), so many of the people<br>
    that he<br>
    interacts with in the C/C++ world are not necessarily particularly<br>
    Microsoft-<br>
    centric on Windows.<br>
<br>
    Add to that the enormous task that it is to actually make dmd work<br>
    with COFF<br>
    or 64-bit or anything of the sort on Windows, and it's no wonder that it<br>
    hasn't happened yet.<br>
<br>
    To be fair, there are plenty of other things that have needed to be<br>
    done, and<br>
    what we have for Windows does work, even if it's suboptimal. So,<br>
    it's not all<br>
    that unreasonable that the issue would be put off as long as it has<br>
    been. And<br>
    Walter _has_ been slowing working on porting optlink to C (the fact<br>
    that it's<br>
    written in assembly makes it really fast but hard to maintain and<br>
    change),<br>
    which would make it possible to then start porting stuff to 64-bit and<br>
    considering COFF and stuff like that.<br>
<br>
<br></div></div><div class="im">
Is it possible to just fix the compiler to output COFF objects *without*<br>
touching optlink at all?<br>
I'm not interested in using optlink with this feature, I intend to link<br>
with Visual Studio, that's the whole point. So ignoring optlink, that's<br>
a major slice of work taken out of the equation...<br>
Maybe it would be nice to support optlink in future, but it seems the<br>
priority is backwards.<br>
</div></blockquote>
<br>
DMD would need to be compatible with the Microsoft linker and runtime as well, that is, except from outputting object file in the correct format.</blockquote><div><br></div><div>By 'runtime' you mean the crt? I don't think that'll be a major headache. Probably just a few subtle differences to deal with.</div>
<div>A nice side effect would be that all those horrid OMF conversions of MS libs bundled with D wouldn't be necessary.</div><div><br></div><div>And what else affects linker compatibility other than object format and mangling convention?</div>
<div><br></div><div><div>How is DMD actually affected by any of this other than object format? Name mangling?</div></div></div>