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