DMD - Windows

q66 quaker66 at gmail.com
Fri Jan 6 12:15:27 PST 2012


On Friday, 6 January 2012 at 20:03:01 UTC, Adam Wilson wrote:
> On Fri, 06 Jan 2012 10:27:58 -0800, Manu <turkeyman at gmail.com> 
> wrote:
>
>> Okay, so I was trying to link to a C lib, and I realised... 
>> DMD doesn't
>> support/produce VS compatible libs.
>> I should have realised this sooner, noting the cv debuginfo.
>>
>> So like... WTF?
>>
>> How am I supposed to use DMD in Windows in anything other than 
>> trivial,
>> self-contained programs?
>> VisualC is the de facto standard in Windows. All libs are 
>> COFF, and (unless
>> I'm working with GCC) everything I want to link to is produced 
>> from VC.
>>
>> Let's also mention the debug info... Virtually every 3rd party 
>> tool assumes
>> and/or works best with PDB debug info. Being required to run 
>> cv2pdb is
>> pretty lame.
>>
>> So... why no support for COFF libs, and PDB debug info?
>> Surely at least a compiler option would do the business if 
>> there is some
>> kinky attachment to CV and OMF :/
>>
>> I was hoping to start a project using D as a front end 
>> language interacting
>> with my C/C++ engine lib... but I can't.
>> ... and now that I think if it... how do ANY programs built 
>> with DMD
>> actually work? .. How does it link to system32.lib, 
>> user32.lib, etc?
>
> DMD on Linux gets ELF with x64 support.
> DMD on OSX gets Mach-O with x64 support.
> DMD on Windows gets ... OMF with no x64 support.
>
> COFF is an absolute requirements when working on Windows, yet 
> DMD doesn't support it. Everything, every programming 
> interface, every application running on x64 Windows is built 
> with COFF, the default output of every other compiler on 
> Windows is COFF, everyone else programming on Windows is 
> expecting COFF.
> Windows represents the largest OS install base in the world; 
> and yet, Windows based D programmers are told that they have to 
> dig up extremely esoteric tools from the darkest, smelliest, 
> most cobwebbed corners of the Internet, just to be able to 
> interact with the the rest of the Windows world.
>
> This situation is simply unacceptable.
>
> Everything else on Windows is COFF, if DMD ever wants to be 
> accepted as a mainstream Windows development tool, it simply 
> *MUST* support COFF. And no amount of wishing will ever change 
> this. Without COFF, D will ALWAYS be hamstrung on Windows, even 
> if OMF ever got x64 support. Every other platform that DMD 
> supports got their native object formats. It is now time to get 
> the native Windows format in D.
>
> All DMD needs to do is output the COFF files, any number of 
> linkers available on Windows can handle it from there. It 
> doesn't have to replace OMF and it doesn't even have to be the 
> default option, but it absolutely MUST be AN option.

I'm not a Windows user myself, but I completely agree. I'm 
writing a game engine and I'd like to do it in D at some point. 
However, I also have to support Windows and the other platforms 
(I develop on FreeBSD and support Windows,Linux,Mac,FreeBSD) and 
OMF is a blocker. I'm really glad DMD now supports ELF shared 
libs though. It basically solves one half of my problems.


More information about the Digitalmars-d mailing list