digitalmars.D - Initial Windows experience
- Peter Alexander (16/16) Jun 14 2019 I just want to highlight
- Basile B. (3/19) Jun 14 2019 Yes +1 for -m64 by default. This gives a working, out of the box
- Dennis (4/5) Jun 14 2019 With the latest DUB, it defaults to mscoff now:
- Basile B. (7/12) Jun 14 2019 no when you pass -m64 to DMD then it uses LLD (shipped with the
- user (4/4) Jun 14 2019 FINALLY ... I have been waiting for this since for ever.
- Andre Pany (12/16) Jun 14 2019 One thing you should keep in mind when you want to distribute
- Jonathan Marler (4/21) Jun 14 2019 Issue 19760 - Windows 10 -m64 undocumented dependency on MSVC ++
I just want to highlight https://github.com/vibe-d/vibe.d/issues/1908 -- building default vibe.d example applications on win32 fails due to obscure optlink error. It has been like this for nearly 2 years. I am not asking for help with this issue. Win32 with optlink is the default build for dub on Windows, and given that vibe.d is the most popular D project, this could very well be among the first things that a D newcomer tries. If I were new to D, I'd likely just give up there and assume the language and tooling are immature. The thread over there says that lld is shipped now with DMD. Is there any reason not to move to that and move away from optlink? It seems unnecessary to maintain and debug a separate linker when another more mature linker is available, working, and already bundled. Are there any reasons to stick with optlink as the default?
Jun 14 2019
On Friday, 14 June 2019 at 09:03:17 UTC, Peter Alexander wrote:I just want to highlight https://github.com/vibe-d/vibe.d/issues/1908 -- building default vibe.d example applications on win32 fails due to obscure optlink error. It has been like this for nearly 2 years. I am not asking for help with this issue. Win32 with optlink is the default build for dub on Windows, and given that vibe.d is the most popular D project, this could very well be among the first things that a D newcomer tries. If I were new to D, I'd likely just give up there and assume the language and tooling are immature. The thread over there says that lld is shipped now with DMD. Is there any reason not to move to that and move away from optlink? It seems unnecessary to maintain and debug a separate linker when another more mature linker is available, working, and already bundled. Are there any reasons to stick with optlink as the default?Yes +1 for -m64 by default. This gives a working, out of the box package when people download the 7z, just like in the past.
Jun 14 2019
On Friday, 14 June 2019 at 09:03:17 UTC, Peter Alexander wrote:Are there any reasons to stick with optlink as the default?With the latest DUB, it defaults to mscoff now: https://dlang.org/changelog/2.086.0.html#dmd-mscoff-default DMD itself still uses OPTLINK I believe.
Jun 14 2019
On Friday, 14 June 2019 at 10:29:07 UTC, Dennis wrote:On Friday, 14 June 2019 at 09:03:17 UTC, Peter Alexander wrote:no when you pass -m64 to DMD then it uses LLD (shipped with the default distrib) and the static libraries from MinGW (shipped with the default distrib as well). So the idea would be that -m64 should be the default. In this case people who don't have the MS toolchain setup would see their stuff compiled seamlessly and the others too. Even LDC supports -m64 without MS stuff nowadays.Are there any reasons to stick with optlink as the default?With the latest DUB, it defaults to mscoff now: https://dlang.org/changelog/2.086.0.html#dmd-mscoff-default DMD itself still uses OPTLINK I believe.
Jun 14 2019
FINALLY ... I have been waiting for this since for ever. I am about to cry now :) Thanks for all the effort ... all the people who worked on it. Now, I just have to see how can I port my Java code to D.
Jun 14 2019
On Friday, 14 June 2019 at 16:04:11 UTC, user wrote:FINALLY ... I have been waiting for this since for ever. I am about to cry now :) Thanks for all the effort ... all the people who worked on it. Now, I just have to see how can I port my Java code to D.One thing you should keep in mind when you want to distribute your applications. Applications compiled with lld will have a dependency to a ms c runtime dll. Your application will not work on systems without this dll. On the other hand applications compiled with ms linker from e.g. MS Build Tools won't have this dependency. This is nothing bad, just a detail you have to keep in mind whole setting up your production build pipeline. Kind regards Andre
Jun 14 2019
On Friday, 14 June 2019 at 16:25:07 UTC, Andre Pany wrote:On Friday, 14 June 2019 at 16:04:11 UTC, user wrote:Issue 19760 - Windows 10 -m64 undocumented dependency on MSVC ++ Redistributable when linking with LLD https://issues.dlang.org/show_bug.cgi?id=19760FINALLY ... I have been waiting for this since for ever. I am about to cry now :) Thanks for all the effort ... all the people who worked on it. Now, I just have to see how can I port my Java code to D.One thing you should keep in mind when you want to distribute your applications. Applications compiled with lld will have a dependency to a ms c runtime dll. Your application will not work on systems without this dll. On the other hand applications compiled with ms linker from e.g. MS Build Tools won't have this dependency. This is nothing bad, just a detail you have to keep in mind whole setting up your production build pipeline. Kind regards Andre
Jun 14 2019