cvs commit: src/etc rc.subr
Doug Barton
dougb at FreeBSD.org
Wed Jul 26 19:00:02 UTC 2006
Yar Tikhiy wrote:
> On Tue, Jul 25, 2006 at 10:27:49PM -0700, Doug Barton wrote:
>> Yar Tikhiy wrote:
>>> yar 2006-07-25 17:20:22 UTC
>>>
>>> FreeBSD src repository
>>>
>>> Modified files:
>>> etc rc.subr
>>> Log:
>>> Avoid extra runs of test(1) by using its built-in logical operations.
>>>
>>> Revision Changes Path
>>> 1.63 +9 -15 src/etc/rc.subr
>>>
>>> http://www.FreeBSD.org/cgi/cvsweb.cgi/src/etc/rc.subr.diff?&r1=1.62&r2=1.63&f=h
>> I'm pretty sure that this commit has the opposite effect from what you
>> intended. If you do:
>>
>> [ foo -a bar ]
>>
>> then the bar test will always be run, whereas if you do
>>
>> [ foo ] && [ bar ]
>>
>> bar won't run unless foo succeeds.
>
> I believed test(1) was smarter than that. But as a matter of fact,
> -a won't skip bar even if foo is false, neither will -o if foo is
> true. Is this a bug or a required feature?
If it makes you feel any better, I thought the same way you did, and learned
my lessons the hard way. :)
>> Also, you should be aware that in our /bin/sh test is a builtin, so what
>> you're trying to optimize for is not actually an issue to start with.
>
> I admit that I was under the opposite impression that test(1) is
> external to our sh(1). Perhaps our sh(1) manpage didn't state that
> clearly enough. (Just clarified it.)
Your change looks good, thanks for doing that.
> Anyway, I should have looked at builtin(1), it said the truth.
Well, no reason to really. Improving sh.1 is the right way to go here.
>> Unless you can show that this commit actually does improve performance, I'd
>> appreciate it if you'd reverse it.
>
> No objection! Fetched my back-out tool and gone applying it...
Much appreciated. :)
Doug
--
This .signature sanitized for your protection
More information about the cvs-src
mailing list