www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - No rdmd.exe in /bin64 on Windows - is this an issue?

reply Scotpip <geoff variosoft.co.uk> writes:
Hi guys

Just installed the DMD 2.097.0 .exe download for Windows on my 64 
bit Win 10 workstation.

The install created a Path to the ../bin64 folder and $dmd runs 
fine.

But there was no $rdmd on the bin64 path. The only version of 
rdmd.exe is in the bin folder.

I added this to my path and it runs, but are there any 
implications for building 64 bit apps? I haven't dug into the 
language yet, so would appreciate advice.

Seems to me that either way this is a usability glitch - either 
the right version of rmd.exe is missing from the distro, or 
you're not adding the /bin path during the install, and it's not 
mentioned on the getting started page.

Given that this will be the first encounter with the language for 
many users, you might want to consider addressing this to create 
a good first impression?
Jul 12 2021
next sibling parent reply Mike Parker <aldacron gmail.com> writes:
On Monday, 12 July 2021 at 23:57:37 UTC, Scotpip wrote:

 Given that this will be the first encounter with the language 
 for many users, you might want to consider addressing this to 
 create a good first impression?
For a long time, the installer did not include 64-bit binaries on Windows for good reason. I didn't even realize they were now being distributed (and even if I had I wouldn't have noticed rdmd was missing, as I don't use it). I see that someone already reported this in our Bugzilla database a few months back as an enhancement. Given that the installer still adds the bin folder to the system PATH and not the bin64 folder, I wouldn't be surprised if very few people have been affected by this, meaning it likely hasn't caught the attention of anyone in a position to fix it. I'll bump the priority and make sure our pull-request manager knows about it. Thanks for bringing it up here.
Jul 12 2021
parent reply Scotpip <geoff variosoft.co.uk> writes:
Mike - thanks for responding!

You say that there wasn't a Windows 64 bit release "for good 
reason".

That sounds a bit ominous - I'd appreciate your insights into 
what was behind this.

Given the effort that's clearly gone into VisualD I was rather 
assuming that Windows was fully supported by the D community. As 
I'm pretty much stuck with Windows for this project, I hope I'm 
not mistaken?

Also, you say that you don't use rdmd. As someone who hasn't used 
a standalone compiled language for decades, I'd be grateful if 
you could share your workflow, as at first sight rdmd looks 
rather useful. For a non-trivial personal project, is there a 
specific approach you would recommend?
Jul 13 2021
parent reply Mike Parker <aldacron gmail.com> writes:
On Tuesday, 13 July 2021 at 11:23:38 UTC, Scotpip wrote:
 Mike - thanks for responding!

 You say that there wasn't a Windows 64 bit release "for good 
 reason".

 That sounds a bit ominous - I'd appreciate your insights into 
 what was behind this.
Nothing ominous. It was just because of the state of the Windows development ecosystem when Walter started working on D 20 years ago and the desire for the out-of-box experience to *just work*. He started with a backend for his C compiler and the optlink linker, neither of which supported 64-bit, and both of which only supported the OMF object file format. He had a license to ship the Win32 link libraries that he packaged with his C compiler, so he shipped those with dmd as well. He put off 64-bit support for quite a while because (I believe, he can correct me if I'm wrong) there was no good way to get it implemented. On Linux and Mac, people had no problem installing the system build tools and development libraries. In the Windows ecosystem, the equivalent was ostensibly the Microsoft Build Tools and Windows SDK, but outside of serious Windows dev shops people were averse to installing them. It probably didn't help that VS was commercial (the first free version that eventually came along---can't remember what it was called, but it preceded the Community Edition---was limited in features and restricted by license). When he finally got it done, he added support for Microsoft's version of the COFF object file format in the backend, but the ecosystem hadn't changed all that much in terms of attitudes. Requiring the MS stuff to be installed for an out-of-the-box experience on 64-bit systems would have really hindered adoption. So the 32-bit distribution remained the default. Later on, in order to start providing an out-of-the-box 64-bit experience, the decision was made to ship lld-link (the LLVM linker). Walter tried to get the rights to distribute Microsoft's 64-bit link libraries to go along with it, but MS said no. So instead, a system was set up to generate them from MinGW's libraries and ship the generated link libraries. But time was needed to ensure the new stuff worked as intended before throwing the switch on default 64-bit. I guess the fact that the installer now includes 64-bit binaries means the time has almost come to pull the switch on 64-bit packages. So I expect not too far down the road we'll see installers that configure the 64-bit binaries on the system path on 64-bit systems.
 Given the effort that's clearly gone into VisualD I was rather 
 assuming that Windows was fully supported by the D community. 
 As I'm pretty much stuck with Windows for this project, I hope 
 I'm not mistaken?
Windows is supported just fine. I've been using it since I started with D in 2003. Walter is primarily a Windows user. The biggest issue has always been one of external tooling preventing an out-of-the-box 64-bit experience. But you don't need the 64-bit binaries on the system path to build 64-bit. Just put the bin folder on the system path and pass -m64 to the compiler.
 Also, you say that you don't use rdmd. As someone who hasn't 
 used a standalone compiled language for decades, I'd be 
 grateful if you could share your workflow, as at first sight 
 rdmd looks rather useful. For a non-trivial personal project, 
 is there a specific approach you would recommend?
I use dub, a build tool and package manager, which also ships with dmd. The docs start here: https://dub.pm/getting_started And the package repository is here: https://code.dlang.org/ A little while back, dub was modified to start compiling 64-bit by default on 64-bit Windows systems, so it's kind of proving that the time has come to start making 64-bit the default. Also, LDC, the LLVM-based D compiler, ships 64-bit Windows binaries and has for a long time. https://github.com/ldc-developers/ldc/releases Dub can be configured to compile with dmd, ldc, or gdc.
Jul 13 2021
parent Scotpip <geoff variosoft.co.uk> writes:
Mike - I'm bowled over by your response - what a great 
introduction to the community!

You've given me the confidence to dig in and really learn the 
language.

I had a brief flirtation with one of the newer niche system 
languages but ran into showstoppers pretty early on. The 
community was great, but... Very sketchy docs. A datetime library 
that doesn't handle timezones? And no mature unit-testing 
framework?? And that was just the first couple of days - who 
knows what other showstoppers were lurking. Seems that there's a 
reason why some of these languages aren't used in serious 
production, no matter how sexy the syntax and the benchmarks...

D feels like another world. Obviously professional design, with 
some very powerful features, like the Contract Programming and 
the UFCS. You can quickly sense the depth of experience behind 
this. Massive and mature standard lib. Great docs and tutorials. 
Feels like an industrial-strength language with actual corporate 
users.

Can't imagine why it hasn't achieved more traction in the C/C++ 
community, but I'm sure I'm not the first to make that 
observation...

Oh - I did find the dub build feature after I posted. Seems that 
you guys had the idea of integrated build and package management 
before Rust. It does make a lot of sense, I just wasn't expecting 
to see it here.

Anyway, thanks again for your help - much appreciated.
Jul 13 2021
prev sibling parent reply RazvanN <razvan.nitu1305 gmail.com> writes:
On Monday, 12 July 2021 at 23:57:37 UTC, Scotpip wrote:
 Hi guys

 Just installed the DMD 2.097.0 .exe download for Windows on my 
 64 bit Win 10 workstation.

 [...]
PR: https://github.com/dlang/installer/pull/484
Jul 16 2021
parent Scotpip <geoff variosoft.co.uk> writes:
On Friday, 16 July 2021 at 08:22:14 UTC, RazvanN wrote:
 On Monday, 12 July 2021 at 23:57:37 UTC, Scotpip wrote:
 Hi guys

 Just installed the DMD 2.097.0 .exe download for Windows on my 
 64 bit Win 10 workstation.

 [...]
PR: https://github.com/dlang/installer/pull/484
Good work!
Jul 16 2021