Andrei Alexandrescu wrote:
Georg Wrede wrote:
Andrei Alexandrescu wrote:
Leandro Lucarella wrote:
Andrei Alexandrescu, el 2 de marzo a las 10:42 me escribiste:
Leandro Lucarella wrote:
Boost 1.38.0 includes a new library ScopeExit:
http://www.boost.org/users/news/version_1_38_0
This library is based on D's scope(exit) according to the
documentation,
see at the end of the link:
http://www.boost.org/doc/libs/1_38_0/libs/scope_exit/doc/html/scope_exit/alternatives.html
Cool. I confess I'm mildly miffed. In the "Acknowledge" section
(sic) yours truly is being acknowledged "for pointing me to
scope(exit) construct of the D programming language." In the
Alternatives section there's an unatrributed link to the ScopeGuard
article. My understanding of ScopeExit looks much more inspired and
derivative from ScopeGuard than a distinct artifact, something that
goes entirely unacknowledged.
For some reason ScopeGuard and scope(exit) consistently escapes
proper acknowledgments. Petru Marginean and I introduced the
concept in C++ and argued for its usefulness. I invented the gorram
scope(exit) statement for D, and Walter almost forgot to
acknowledge me. And now this. What are you going to do...
Is there any particular reason why you are so concerned about
credits? I'm not saying they don't matter, but you seem to take it
too hard.
I'm, if anything, at the very low end of credit-beggars foodchain.
You wouldn't believe if I told you about some (rather notorious
within the community) people I know that ought to be a tad more
modest :o). I just have a dim view of not giving credit. Proper
credit is extremely easy to give, costs nothing, and is the right
thing to do. The author of ScopeExit clearly knew everything of
ScopeGuard since he linked to it, but did not quite acknowledge the
relationship of his work to ScopeGuard, which should be done even
assuming he developed ScopeExit entirely in isolation. That's just...
you don't do that.
I'm at the low end too. For example, rdmd is based on my original
idea. But by not begging around for acknowledgements, I bet nobody at
all knows it anymore.
Many years ago I sent a private mail to Walter with the idea, six
months later I started advocating it vigorously on this NG, later I
mailed a shell script to him that does what rdmd does now.
The whole concept is mine, right down to shebangs in D source files
and caching binaries.
Heh, so incidentally, there might be some point in activating myself
in that area. Also outside of the D community.... :-(
The biggest lie I've ever heard is "the meek shall inherit the earth".
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... :-)
By the way, I added a couple more flags:
Usage: rdmd [RDMD AND DMD OPTIONS]... program [PROGRAM OPTIONS]...
Builds (with dependents) and runs a D program.
Example: rdmd -release myprog --myprogparm 5
Any option to be passed to dmd must occur before the program name. In
addition
to dmd options, rdmd recognizes the following options:
--build-only just build the executable, don't run it
--chatty write dmd commands to stdout before executing them
--compiler=comp use the specified compiler (e.g. gdmd) instead of dmd
Heh, had to actually use this one when I checked rdmd before posting.
Now i have dmd1 and dmd2 and obviously needed this.
--dry-run do not compile, just show what commands would be run
(implies --chatty)
--force force a rebuild even if apparently not necessary
--eval=code evaluate code a la perl -e
--loop assume "foreach (line; stdin.byLine()) { ... }" for
eval
--help this message
--man open web browser on manual page
--shebang rdmd is in a shebang line (put as first argument)
If foo.d is to be run like
$ ./foo.d
then rdmd has to be on the shebang line anyway. And if you run
$ rdmd foo.d
then you're already running rdmd. So, where do you use --shebang?
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.