digitalmars.D.announce - Release D 2.078.1
- Martin Nowak (23/23) Jan 22 2018 -----BEGIN PGP SIGNED MESSAGE-----
- thedeemon (14/15) Jan 23 2018 The Windows 7z archive version now has much simpler sc.ini, in
- Andre Pany (5/20) Jan 23 2018 Did you call vcvarsall in the current dos box/PowerShell? It is a
- Atila Neves (8/32) Jan 25 2018 I just ran into this today. With the dmd 2.077.1 Windows
- Rainer Schuetze (4/40) Jan 25 2018 Visual Studio is supposed to be detected by dmd now, either from the
- Atila Neves (15/58) Jan 31 2018 $ dub init
- Arjan (5/30) Jan 31 2018 By any chance, is this on a corperate machine? I've hit the same
- Atila Neves (4/11) Feb 01 2018 No, regular Windows 10 with VS 2015. Even if it were, dmd 2.077.1
- Rainer Schuetze (8/73) Jan 31 2018 Unfortunately, that is not dmds output of the linker command line, but
- Atila Neves (22/96) Feb 01 2018 Sorry, I misunderstood what you meant. It's:
- Rainer Schuetze (2/10) Feb 01 2018 Thanks. https://github.com/dlang/dmd/pull/7827
- Martin Nowak (6/10) Feb 09 2018 That was my first suggestion as well, it's just to darn slow to call
- Rainer Schuetze (13/32) Jan 23 2018 The UCRT library path and legacy_stdio_definitions.lib should have been
- Rainer Schuetze (4/23) Feb 01 2018 Should be fixed by https://github.com/dlang/dmd/pull/7828
- Radu (6/12) Jan 24 2018 Just want to bring to your attention a major regression
- Martin Nowak (5/10) Jan 24 2018 Not to be insulting, but hoping for better understanding.
- Radu (14/26) Jan 24 2018 First of all, thanks for fixing it!
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.078.1. http://dlang.org/download.html This point release fixes a few issues over 2.078.1, see the changelog for more details. http://dlang.org/changelog/2.078.1.html - -Martin -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEpzRNrTw0HqEtE8TmsnOBFhK7GTkFAlpmTQsACgkQsnOBFhK7 GTnSuA//fQg6tNNstQtnVouir7KUVHJH6+hhN22HT9m0ucIUfoekUAGSIrfs9ayZ KgTMaR0oNqzqNvFJMd8a1ngC/DKLtuTr8+aV99GuXCM8SvaSPv8PwTEACAJpPx+I hkcYtIV+oz1OBKvjE7EtB6injYUS/fY6B2s2VAmGDXY1PyItWrHqTd+UD7RMP5o4 ahu1TDOfC9DamDJ9JecvBe7d/cFNCCwxXw13nD21LYoAACGgmMpzB/Wbt+6xacQL Y9lnCtr8S7WvhB+LB+Po2RKSKpgYJfuIRSKiLSZOkgak1pQAty0GsFEfazw0su+F kL/1srVhddgOWQzLDhV4AuvC5hKR+C6kd9KzevUBir+2cpYkMamPOuK5BRMnMyvI my3/k6onp0sUx2i0rvds9ZWGpJSQxDhR1ui6j08KrGJI7FRVc3RHVR1KgSyopkYj CGPbuuRwkR474yUoRuARmQmuuf1mfgUr7w3HDNM1Jsz0YS7UhxRHKZ7QCbEyIJpF E1diN6DxDbiNrc4I+5UqQBQra/MHCXl1QQpEp+uBWHRqhfaSkUe1/xfdVB7Bvz4Q Nt0Y1/FQH09Tog5zzCnvsgpNvsWnUhH43iG2iaYy5IgDeqt/RApJU5nJLZD01iqr xosoq86diwwgjfTp3DtYWvC1aqKUwUEzVKTeOcGq7/znpJUImus= =+MLM -----END PGP SIGNATURE-----
Jan 22 2018
On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Glad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 23 2018
On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 23 2018
On Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:I just ran into this today. With the dmd 2.077.1 Windows installer things just work, and it's never necessary to call vcvarsall.bat to build D code for 64-bit. Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and sc.ini doesn't seem to reference Visual Studio at all like it used to. AtilaOn Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 25 2018
On 25.01.2018 14:54, Atila Neves wrote:On Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:Visual Studio is supposed to be detected by dmd now, either from the environment or from the registry. What errors do you get? Try running with -v to show the linker command line.On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:I just ran into this today. With the dmd 2.077.1 Windows installer things just work, and it's never necessary to call vcvarsall.bat to build D code for 64-bit. Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and sc.ini doesn't seem to reference Visual Studio at all like it used to. AtilaOn Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 25 2018
On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:On 25.01.2018 14:54, Atila Neves wrote:$ dub init $ dub build --arch=x86_64 Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. example ~master: building configuration "application"... Linking... LINK : fatal error LNK1104: cannot open file 'shell32.lib' -v shows that it's linking like so: C:\D\dmd2\windows\bin\dmd.exe -of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.exe .dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.obj -m64 -g Should I file a bug for dmd or the installer? Are 64-bit dub builds not done by CI on Windows? This is pretty embarassing. AtilaOn Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:Visual Studio is supposed to be detected by dmd now, either from the environment or from the registry. What errors do you get? Try running with -v to show the linker command line.On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:I just ran into this today. With the dmd 2.077.1 Windows installer things just work, and it's never necessary to call vcvarsall.bat to build D code for 64-bit. Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and sc.ini doesn't seem to reference Visual Studio at all like it used to. AtilaOn Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 31 2018
On Wednesday, 31 January 2018 at 15:58:02 UTC, Atila Neves wrote:On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:By any chance, is this on a corperate machine? I've hit the same issue seems to do with enforced windows group-policy which disables registry access for certain type of applications at my place.On 25.01.2018 14:54, Atila Neves wrote:$ dub init $ dub build --arch=x86_64 Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. example ~master: building configuration "application"... Linking... LINK : fatal error LNK1104: cannot open file 'shell32.lib' -v shows that it's linking like so: C:\D\dmd2\windows\bin\dmd.exe -of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.exe .dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.obj -m64 -g Should I file a bug for dmd or the installer? Are 64-bit dub builds not done by CI on Windows? This is pretty embarassing. Atila[...]Visual Studio is supposed to be detected by dmd now, either from the environment or from the registry. What errors do you get? Try running with -v to show the linker command line.
Jan 31 2018
On Wednesday, 31 January 2018 at 16:35:59 UTC, Arjan wrote:On Wednesday, 31 January 2018 at 15:58:02 UTC, Atila Neves wrote:No, regular Windows 10 with VS 2015. Even if it were, dmd 2.077.1 works fine, 2.078.0 and 2.078.1 do not. Atila[...]By any chance, is this on a corperate machine? I've hit the same issue seems to do with enforced windows group-policy which disables registry access for certain type of applications at my place.
Feb 01 2018
On 31/01/2018 16:58, Atila Neves wrote:On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:Unfortunately, that is not dmds output of the linker command line, but dubs invocation of dmd. Just try "dmd -v -m64 test.d". Does Arjan's suggestion help, i.e. are you working as a restricted user? Did you install VS for the current user only (not sure if that's actually possible)?On 25.01.2018 14:54, Atila Neves wrote:$ dub init $ dub build --arch=x86_64 Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. example ~master: building configuration "application"... Linking... LINK : fatal error LNK1104: cannot open file 'shell32.lib' -v shows that it's linking like so: C:\D\dmd2\windows\bin\dmd.exe -of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.exe .dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.obj -m64 -gOn Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:Visual Studio is supposed to be detected by dmd now, either from the environment or from the registry. What errors do you get? Try running with -v to show the linker command line.On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:I just ran into this today. With the dmd 2.077.1 Windows installer things just work, and it's never necessary to call vcvarsall.bat to build D code for 64-bit. Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and sc.ini doesn't seem to reference Visual Studio at all like it used to. AtilaOn Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.Should I file a bug for dmd or the installer?It's a dmd issue.Are 64-bit dub builds not done by CI on Windows? This is pretty embarassing.Every PR is tested against both VS2013 (auto-tester) and VS2015 (Appveyor).
Jan 31 2018
On Wednesday, 31 January 2018 at 19:09:03 UTC, Rainer Schuetze wrote:On 31/01/2018 16:58, Atila Neves wrote:Sorry, I misunderstood what you meant. It's: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe /NOLOGO app /OPT:NOICF /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64" legacy_stdio_definitions.lib There are 3 shell32.lib files on my system, located at: C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\{arm,x64,x86} Notice that it's similar to the path being used above. Given that cl.exe doesn't have a problem running on my system I went and looked at vcvarsall.bat expecting there to be checks for either 8.1 or 10. I was right, there's logic to figure it out. It'd probably be easier to `executeShell("vcvarsall.bat")` than trying to replicate the logic in dmd itself. It's bound to get it wrong (as it has) and we don't have Microsoft's resources to test backwards compatibility.On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:Unfortunately, that is not dmds output of the linker command line, but dubs invocation of dmd. Just try "dmd -v -m64 test.d".On 25.01.2018 14:54, Atila Neves wrote:$ dub init $ dub build --arch=x86_64 Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. example ~master: building configuration "application"... Linking... LINK : fatal error LNK1104: cannot open file 'shell32.lib' -v shows that it's linking like so: C:\D\dmd2\windows\bin\dmd.exe -of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.exe .dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D 3E746CD\example.obj -m64 -gOn Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:Visual Studio is supposed to be detected by dmd now, either from the environment or from the registry. What errors do you get? Try running with -v to show the linker command line.On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:I just ran into this today. With the dmd 2.077.1 Windows installer things just work, and it's never necessary to call vcvarsall.bat to build D code for 64-bit. Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and sc.ini doesn't seem to reference Visual Studio at all like it used to. AtilaOn Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Did you call vcvarsall in the current dos box/PowerShell? It is a tool included with all visual studio variants. Kind regards AndreGlad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.Does Arjan's suggestion help, i.e. are you working as a restricted user? Did you install VS for the current user only (not sure if that's actually possible)?I've installed dmd 2.077.1 and dmd 2.078.1 now several times, each time erasing the other. It's a regression.https://issues.dlang.org/show_bug.cgi?id=18352Should I file a bug for dmd or the installer?It's a dmd issue.
Feb 01 2018
On 01/02/2018 17:16, Atila Neves wrote:Thanks. https://github.com/dlang/dmd/pull/7827https://issues.dlang.org/show_bug.cgi?id=18352Should I file a bug for dmd or the installer?It's a dmd issue.
Feb 01 2018
On 02/01/2018 05:16 PM, Atila Neves wrote:It'd probably be easier to `executeShell("vcvarsall.bat")` than trying to replicate the logic in dmd itself. It's bound to get it wrong (as it has) and we don't have Microsoft's resources to test backwards compatibility.That was my first suggestion as well, it's just to darn slow to call though. Executing vcvarsall.bat takes 2+ seconds just to setup the env variables, so we have to replicate what it does ourselves. Maybe it's worth revisiting to figure out what takes so much time. -Martin
Feb 09 2018
On 23.01.2018 14:08, thedeemon wrote:On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:The UCRT library path and legacy_stdio_definitions.lib should have been detected automatically. I suspect that the Build Tools don't set the environment variable VisualStudioVersion (why should they?) which is used to detect whether the UCRT library path and legacy_stdio_definitions.lib are needed. This PR https://github.com/dlang/dmd/pull/7500 would have fixed that by changing the detection to the existence of legacy_stdio_definitions.lib in the VC library path. Unfortunately it didn't make it into the release. (The PR contains other stuff, too, that was not meant to go into a .1 release.) (Having VS installed would help, too, as it is also detected without the environment set.)Glad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Jan 23 2018
On 23/01/2018 14:08, thedeemon wrote:On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Should be fixed by https://github.com/dlang/dmd/pull/7828 Let's hope it makes it into 2.078.2 this time (I didn't expect another point-release).Glad to announce D 2.078.1.The Windows 7z archive version now has much simpler sc.ini, in fact too simple. With Visual C++ 2015 x64 Native Build Tools now trying to run dmd -m64 hi.d I get LINK : fatal error LNK1104: cannot open file 'libucrt.lib' Error: linker exited with status 1104 So I needed to edit sc.ini and add back LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64" to the [Environment64] section. Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.
Feb 01 2018
On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:Glad to announce D 2.078.1. http://dlang.org/download.html This point release fixes a few issues over 2.078.1, see the changelog for more details. http://dlang.org/changelog/2.078.1.html - -MartinJust want to bring to your attention a major regression introduced in 2.078, and still present on current master, re. the new __equals template. https://issues.dlang.org/show_bug.cgi?id=18252 Comparing arrays of associative arrays is broken!
Jan 24 2018
On Wednesday, 24 January 2018 at 13:30:42 UTC, Radu wrote:Just want to bring to your attention a major regression introduced in 2.078, and still present on current master, re. the new __equals template. https://issues.dlang.org/show_bug.cgi?id=18252 Comparing arrays of associative arrays is broken!Not to be insulting, but hoping for better understanding. Why, even when the compiler almost directly points to the problem at hand (a missing check for associative arrays :o, https://github.com/dlang/druntime/blob/a66f9fa78f2e295146fb2b3fc8e567983c9e9aed/ rc/object.d#L3486), doesn't this simply convert to a small pull request to fix the problem (https://github.com/dlang/druntime/pull/2058)?
Jan 24 2018
On Wednesday, 24 January 2018 at 20:05:42 UTC, Martin Nowak wrote:On Wednesday, 24 January 2018 at 13:30:42 UTC, Radu wrote:First of all, thanks for fixing it! No injuries suffered :D, but here is a list: - not so confident I understood the whole issue form that implementation, count it as lack of experience. - if wanting to get hands dirty - setting up the whole D dev env (compiler, runtime, tests) on a new machine it takes a while, at least the way I count it. - even if I get that running and make a change that runs on my machine, the outlook of time spent in ping-pong with the reviewers/auto-testers on a PR is daunting. To wrap it up - it is not `easy as pie` for random contributor to make even a simple PR because of the perceived overhead both in engineering and social aspects, that or I'm to lazy :OJust want to bring to your attention a major regression introduced in 2.078, and still present on current master, re. the new __equals template. https://issues.dlang.org/show_bug.cgi?id=18252 Comparing arrays of associative arrays is broken!Not to be insulting, but hoping for better understanding. Why, even when the compiler almost directly points to the problem at hand (a missing check for associative arrays :o, https://github.com/dlang/druntime/blob/a66f9fa78f2e295146fb2b3fc8e567983c9e9aed/ rc/object.d#L3486), doesn't this simply convert to a small pull request to fix the problem (https://github.com/dlang/druntime/pull/2058)?
Jan 24 2018