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