new release doesn't work as advertised
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Thu Aug 13 20:05:32 PDT 2015
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
More information about the Digitalmars-d
mailing list