May 20, 2014
On Tuesday, 20 May 2014 at 16:29:27 UTC, Andrej Mitrovic via Digitalmars-d wrote:
> On 5/20/14, Temtaime via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>> Windows is out of favor for DMD's developers.
>
> Please stop spreading misinformation.

- std.c.windows seriously outdated; third party libraries also outdated.
- WinRT support non-existent, D language lacks the necessary constructs (automatic reference counting, asynchronous calls). ARM compiler not available.
- 64 bit linker unavailable without Visual Studio;
- Run-time library loading on Windows is bugs prone.
- There is no consensus about how a GUI application must be built. Windows is by definition a GUI OS. You cannot say that you support Windows by limiting developers to build console applications only. Using third party libraries makes you think in anti-D patterns and results in big size executable files. D must first define some guidelines about a GUI application design and implement it for each OS. The Delphi or Lazarus approach can be used as a starting point.
May 20, 2014
Sorry i misunderstood you.
Yes dmd supports x64 on windows but it doesn't work without external tools.
It's a main trouble i think.
May 20, 2014
On Tuesday, 20 May 2014 at 19:15:59 UTC, Temtaime wrote:
> Yes dmd supports x64 on windows but it doesn't work without external tools.

DMD on Linux doesn't work without external tools (system GCC/ld) either.

Microsoft provides the required tools for free and they are not difficult to install, so that shouldn't really be an argument. Maybe we need to improve on the related documentation, though.

Best,
David
May 21, 2014
On 21 May 2014 05:15, Temtaime via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> Sorry i misunderstood you.
> Yes dmd supports x64 on windows but it doesn't work without external tools.
> It's a main trouble i think.

MSVC is the de facto standard toolset for Windows. How do you
interoperate with any other conventional windows libraries if DMD is
not MSVC compatible?
This is the key development of DMD for Win64, and it's the only reason
D is practically useful on Windows at all. I pine for the day that
32bit will get the same treatment.
The Microsoft linker is freely available, it produces debug output
that's compatible with the majority of windows tooling, and it's
generally good.

If you argue that your environment is exclusive of MSVC (how so? do
you use MinGW or something?), then surely the obvious thing to do is
to NOT use DMD. Use GDC or LDC, which are better compilers, and link
happily against MinGW code/libs.
The only deficit I see in the Windows world is not having a useful
Win32 compiler.
May 21, 2014
Yes, DMD uses ld on linux. It's OK because there is no other
linker. And it's system's default. Everybody(almost) have GCC.

But on windows.. MSVS is external IDE and toolset. Some people
yes they uses MinGW.
Why ? MSVS has some disadvantages for me for example it's poor
C++11 support. So it's useless in my work.

So for compile 64 app with DMD one must download dmd(~20 MB) and
install MSVS(~2 GB).
I think dmd should work out of the box isn't it ?

And what about other compilers ?
Latest LDC for example uses 064 frontend.

It's outdated for me because of bugs. I cannot ever compile my
app now with it.
With GDC it's alto difficult to get luck.
May 21, 2014
On 21 May 2014 13:45, Temtaime via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> Yes, DMD uses ld on linux. It's OK because there is no other linker. And it's system's default. Everybody(almost) have GCC.
>
> But on windows.. MSVS is external IDE and toolset. Some people
> yes they uses MinGW.
> Why ? MSVS has some disadvantages for me for example it's poor
> C++11 support. So it's useless in my work.
>
> So for compile 64 app with DMD one must download dmd(~20 MB) and
> install MSVS(~2 GB).
> I think dmd should work out of the box isn't it ?

It's still the standard on the platform. Interoperation with other
libraries/code typically demands MSVC compatibility.
I don't know how any large-scale Windows developers can avoid this
practical reality?

On the plus side, there is a recent push to get Clang/LLVM properly compatible with MSVC. When that happens, we should be able to rely on Clang+LDC for all windows needs.


> And what about other compilers ?
> Latest LDC for example uses 064 frontend.
>
> It's outdated for me because of bugs. I cannot ever compile my
> app now with it.
> With GDC it's alto difficult to get luck.

Poke the GDC/LDC guys? It would certainly be nice if those toolchains were more reliably up-to-date, but the sad truth is, those who use MinGW on windows are in the severe minority, so there's probably not so much motivation.
May 21, 2014
On Wednesday, 21 May 2014 at 03:45:42 UTC, Temtaime wrote:
> Yes, DMD uses ld on linux. It's OK because there is no other
> linker. And it's system's default. Everybody(almost) have GCC.
>
> But on windows.. MSVS is external IDE and toolset. Some people
> yes they uses MinGW.
> Why ? MSVS has some disadvantages for me for example it's poor
> C++11 support. So it's useless in my work.
>
> So for compile 64 app with DMD one must download dmd(~20 MB) and
> install MSVS(~2 GB).
> I think dmd should work out of the box isn't it ?
>
> And what about other compilers ?
> Latest LDC for example uses 064 frontend.
>
> It's outdated for me because of bugs. I cannot ever compile my
> app now with it.
> With GDC it's alto difficult to get luck.

MSVC is the OS vendor's official tooling. Like XCode/clang on Mac
OS X, xlc on Aix, aC++ on HP-UX, SunPro on Solaris and so forth.

--
Paulo
May 21, 2014
On Wednesday, 21 May 2014 at 03:15:34 UTC, Manu via Digitalmars-d
wrote:
> On 21 May 2014 05:15, Temtaime via Digitalmars-d
> <digitalmars-d@puremagic.com> wrote:
>> Sorry i misunderstood you.
>> Yes dmd supports x64 on windows but it doesn't work without external tools.
>> It's a main trouble i think.
>
> MSVC is the de facto standard toolset for Windows. How do you
> interoperate with any other conventional windows libraries if DMD is
> not MSVC compatible?
> This is the key development of DMD for Win64, and it's the only reason
> D is practically useful on Windows at all. I pine for the day that
> 32bit will get the same treatment.

I believe Rainer did some work on extending COFF support to
32-bit. I'm not sure how far along he got.
May 22, 2014

On 21.05.2014 14:17, Brad Anderson wrote:
> On Wednesday, 21 May 2014 at 03:15:34 UTC, Manu via Digitalmars-d
> wrote:
>> On 21 May 2014 05:15, Temtaime via Digitalmars-d
>> <digitalmars-d@puremagic.com> wrote:
>>> Sorry i misunderstood you.
>>> Yes dmd supports x64 on windows but it doesn't work without external
>>> tools.
>>> It's a main trouble i think.
>>
>> MSVC is the de facto standard toolset for Windows. How do you
>> interoperate with any other conventional windows libraries if DMD is
>> not MSVC compatible?
>> This is the key development of DMD for Win64, and it's the only reason
>> D is practically useful on Windows at all. I pine for the day that
>> 32bit will get the same treatment.
>
> I believe Rainer did some work on extending COFF support to
> 32-bit. I'm not sure how far along he got.

I recently considered making a pull request, but noticed an include dependency that failed to work for another PR, and got distracted. The updated compiler patches are here: https://github.com/rainers/dmd/tree/coff32
May 22, 2014
On Thursday, 22 May 2014 at 06:16:54 UTC, Rainer Schuetze wrote:
> I recently considered making a pull request, but noticed an include dependency that failed to work for another PR, and got distracted. The updated compiler patches are here: https://github.com/rainers/dmd/tree/coff32
I think this is a really important pull for win32 support, still the most widely used platform on which D is available.  Not everybody has the source for outside libraries or the time and inclination to recompile it to OMF using the Digital Mars toolchain.  I think it would really help D to get this pull in soon.