best replacement for - cout << "hello D" << endl; ?

Bill Baxter dnewsgroup at billbaxter.com
Thu Jul 12 17:19:33 PDT 2007


Bruce Adams wrote:
> It looks like a bug in the cygwin version of gdc. dmd works fine.
> I've filed it as:
> 
> http://d.puremagic.com/issues/show_bug.cgi?id=1338
> 
> This is the 3rd compiler bug I've found in 2 days of using D (and all on hello world level projects).
> 
> 2 in gdc and 1 in dmd. Someone is trying to tell me something.
>   a) use linux more
>   b) get involved and help fix the cygwin port.
> 
> Unfortunately I fear other users with these kinds of problem may end up getting message c) "don't use D on windows until its more stable".
> Which is also equivalent to don't use D for projects that need to be portable (to windows anyway).

Well the DMD bug you found is actually an OPTLINK bug (the long env vars 
trip up the linker thing, right), not really a bug in the compiler, per 
se.  But still, a DMD toolchain bug, yeh.  I'm surprised no one has run 
into that yet in 10 years or more of DMD/DMC usage.  Maybe it's a known 
issue in the DMC community?

But anyway, crazy linker bug aside -- the message I get is "When on 
Windows, use DMD".  Set yourself up a special dmd.bat that puts 
environment variables the way DMD likes em, and zero out any crazy long 
vars from Cygwin.  I use 'console' 
(http://sourceforge.net/projects/console) and have a tab set up to run a 
dmdvars.bat with this in it:

-----------------------
@echo off

echo Setting up environment for the DMD D compiler


set PATH=%DMDDIR%\dmd\bin;%DMDDIR%\dm\bin;%DMDDIR%\dsss\bin;%PATH%
set LIB=%DMDDIR%\dmd\lib;%DMDDIR%\dm\lib;%LIB%;"C:\Program 
Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib"
set INCLUDE=%INCLUDE%;"C:\Program Files\Microsoft Visual Studio .NET 
2003\Vc7\PlatformSDK\Include"
set WXDIR=c:\usr\pkg\wxWidgets\wxMSW-2.8.4
-------------------------

--bb


More information about the Digitalmars-d-learn mailing list