Garrett D'Amore wrote:
> On 03/18/10 08:53 AM, Stefan Teleman wrote:
>> This project raises a concern in my mind with respect to a very old 
>> and generally accepted UNIX architectural principle:
>>
>> "Tools, Not Policy".
>>
>> If i understand it correctly, this case effectively vacates the 
>> principle stated above, and replaces it with its exact opposite:
>>
>> "Policy, Not Tools".
>>
>> Because the only possible rationale for having /usr/gnu/bin/grep 
>> transparently and silently replaced by a shell builtin grep is as a 
>> result of some mandatory policy in effect, which would trump explicit 
>>  user selection.
>>
>> It would be very helpful if the project team would kindly explain how 
>> it intends to address the architectural concern above, and also how it 
>> intends to mitigate the proliferation of userland commands with 
>> identical names, but providing, in many cases, different semantics.
> 
> Users can override the policy and disable the builtins if they so 
> choose.  They could also choose another shell instead of ksh93 -- these 
> changes don't apply to bash or tcsh or zsh.

Why do I need to explicitly disable something I don't want in the 
first place ? I want to use the GNU grep in /usr/gnu/bin/grep. I don't 
want to have to tell the shell NOT to silently override my explicit 
choices. Having the shell override explicit choices by default is in 
my opinion inherently broken. And the rationale behind this breakage 
appears to be: "We broke the expected behavior. If you don't like this 
breakage, change your shell."

> I guess I don't really understand the objection -- the builtin behaves 
> the same way, but performs better.  What's the issue? 

The issue is that there are now 4 different grep's in Solaris, and 
that the shell can pick a different one from the one i explicitly 
chose by setting my PATH. I find that having 4 different greps is 
excessive, and very difficult to justify architecturally.

And it is not acceptable to say "get rid of /usr/gnu and make room for 
the ksh93 builtins", because that's not how it is supposed to work. 
The GNU coreutils/binutils were integrated first.

--Stefan

-- 
Stefan Teleman
Oracle Corporation
stefan.teleman at Sun.COM

Reply via email to