Andrei Alexandrescu wrote:
Georg Wrede wrote:
I had no idea. Good you told me, I've put an ack in the source file.
Thanks. I tried to locate the source in the dmd tree, but in vain.
So probably it should appear when rdmd is run with no arguments for
there to be any effect... :-)
It's on dsource under phobos/tools. On
http://www.digitalmars.com/d/2.0/rdmd.html, there's a "download" link.
(I have just checked it in.)
Yes! Had to make the following changes to compile it (I'm on dmd2025):
$ diff rdmd.d-orig rdmd.d
34c34
< immutable string importWorld = "
---
> immutable string importWorld = """
46c46
< std.zlib;";
---
> std.zlib;""";
298,300c298,299
< File depsReader;
< depsReader.popen(depsGetter);
< scope(exit) collectException(depsReader.close); // we don't care
for errors
---
> auto depsReader = popen(depsGetter);
> scope(exit) fclose(depsReader); // we don't care for errors
then you're already running rdmd. So, where do you use --shebang?
Because of the primitive way the shell parses the shebang line. Consider:
#!/usr/bin/rdmd -unittest
... code ...
All's dandy. Now say I want also -O:
#!/usr/bin/rdmd -unittest -O
... code ...
No go. The shell passes "-unittest -O" as one argument to rdmd, which is
not recognized as a flag. Always parsing the spaces away is not an
option because there are filenames and string arguments with spaces. So
I added --shebang to mean, parse the spaces in this argument:
#!/usr/bin/rdmd --shebang=-unittest -O
... code ...
Yes, I've many times wondered about that. Somehow, with linux, (and
previously with unices) most of the time when something lookes stupid,
turns out there is a profound reason for it.
Of particular interest are --eval and --loop. Very helpful :o).
Oh, these both are cool!
PS: are you using zsh? The examples on
http://www.digitalmars.com/d/2.0/rdmd.html have a percent prompt
instead of the dollar prompt. Zsh seems to be fading out, the faq
http://zsh.sourceforge.net/FAQ/zshfaq01.html is from 2005, and the
last Fedora doesn't even have zsh as an option.
Yah. I didn't know it was going away. To me it seems pretty powerful,
e.g. more so than bash. Bummer...
Yeah, I used csh back when the only other option was sh. Had to switch
later, too.
And now a major gripe: I have just spent *half a day* trying to figure
out what's wrong when I try to use shebang with rdmd. I was basically
using hello.d with a shebang. And with rdmd I got this peculiar error
message:
.d'nnot read file '
/usr/local/digitalmars/dmd1040/linux/bin/rdmd: Couldn't compile or
execute ./numma.d.
Just now I figured it out: numma.d was a copy of hello.d, which of
course has Windows line endings. Aaaaaaaaaaaaaaaarrrrghhhhhh!