Boost.ScopeExit based on D's scope(exit)
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Mar 3 13:10:39 PST 2009
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.
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
--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)
Of particular interest are --eval and --loop. Very helpful :o).
Andrei
More information about the Digitalmars-d-announce
mailing list