On Thursday, 13 August 2015 at 22:32:05 UTC, learn wrote:
yup - but on other pages visuald is advertised. when you order aspirin you don't want get GABA. i think it is a QS thing - when you release you look at all the advertisements.

I'm sorry to hear that you had bad out-of-the-box experience on Win10 + VS2015. I want to clear some things up: 1) There's nowhere written on the homepage that DMD (D's reference compiler) supports VS 2015 so I don't know where got that impression from.

2) The problem is not with VisualD itself. VisualD is a VS extension which uses whatever D compiler you have installed to build your project. All the nice features that VisualD provides (http://rainers.github.io/visuald/visuald/StartPage.html) are independent of the compiler. Actually, at the moment *only* VisualD advertises that it has VS2015 support and in fact it works as advertised - VisualD correctly detects that you have VS2015 and registers with it. I've been using Windows 10 x64 + VS2015 + VisualD v0.3.42 for a couple of days now I didn't have any issues with VisualD itself - developing, building and debugging works as advertised (for 32-bit apps that is, though VisualD has no problem telling the compiler to produce 64-bit code, so when you install a version of DMD that *has* MSVCRT 14.0 support it should all work out).

3) The real problem (as others have pointed out) is that MS made breaking changes in their lib C runtime (List of changes: https://msdn.microsoft.com/en-us/library/bb531344.aspx
(see CRT, especially the part about <stdio.h> and <conio.h>)
Blog post: http://blogs.msdn.com/b/vcblog/archive/2014/06/10/the-great-crt-refactoring.aspx) and we need to add support for this in DMD and the other compilers.

MSVC++ was not standards compliant for a long time and now the workarounds for it need to be reworked in druntime. It's not easy as it sounds because we need to support both MSVC++ v14.0 (that comes with VS 2015) and MSVC++ v12.0 and older (otherwise it's a breaking change for out users).

According to Steam, Windows 10 x64 users are only 2.2% and those who use VS2015 is an even smaller number, so I don't know why you are expecting first day support for a traditionally non-standards-compliant C runtime with insignificant userbase. Note that for 32-bit DMD ships with a custom C runtime lib and linker that work perfectly fine on Windows 10 and VS 2015.

AFAIU, for DMD there are three things that need to be done:
a) The installer needs to be able detect VS 2015 and Windows SDK 10 so it can add the correct paths to DMD's configuration file (sc.ini). b) MSVC C stdio runtime support wrapper needs to be put in a separate library from druntime and split in two parts: MSVCRT12 and MSVCRT14. c) DMD needs to able to detect the correct MSVCRT version at link-time and choose the appropriate wrapper to link druntime to.

a) could have been easily released with the latest DMD release, but I guess it was decided that it is better to wait till the full MSVCRT v14 support is finished (otherwise you would just get different kind of linker errors).

So sum up, support for MSVCRT 14 is in progress and should be complete for DMD v2.068.1 (expected ~1 month from now) or DMD v2.069.0 (expected ~2 months from now). Here you can follow the status of this issue: https://issues.dlang.org/show_bug.cgi?id=14849

Reply via email to