June 01, 2013
Hi,

On Sat, Jun 1, 2013 at 11:39 AM, Shriramana Sharma <samjnaa@gmail.com> wrote:
> ldmd2 01-namaste.d
> /usr/bin/ld: fatal error: namaste: open: Is a directory
> collect2: error: ld returned 1 exit status
> Error: /usr/bin/gcc failed with status: 1

You probably have a directory called "namaste" in the same path where your source file is in. The linker error message tells you that it can't write an executable of the same name. The error message could be better, but unfortunately it is generated by the system linker, not LDC.

> Along with the binary tarball, please include installation instructions so newbies like me can install and use it. Thank you.

The point of the binary packages is that they don't require any installation, just like the DMD ones. It's the first thing mentioned in the "Package downloads" paragraph of the release announcement, but it probably should be mentioned more prominently on a/the download page for the next release.

 — David
June 02, 2013
Hello and thanks to Kai and David for replying. Sure enough your deduction was right -- my module was named namaste but I had a directory of the same name.

Now we have three different behaviours:

dmd writes to a binary of the same name as the (first) source file
(removing the .d extension)
gdc requires an explicit -o filename just like gcc
ldc creates executables with the name being the module name defined
within the file.

Why this divergent behaviour? Can't we have one uniform policy? Both GCC and Clang require the -o option for outputting to a specific filename. Why don't we make it default here? I mean, even if we are trying to make things "convenient", let's have some switch to ask for the convenience like -a for autoname or something...

Anyhow, thanks for ldc -- I'll be testing it out. Since gdc gobbled up my dmd installation, I removed both but hopefully ldc can help me out.

-- 
Shriramana Sharma ஶ்ரீரமணஶர்மா श्रीरमणशर्मा