Mail Archives: cygwin/2003/12/29/16:41:49
In message <3FF09D6C DOT 7F12C5AC AT dessent DOT net>, Brian Dessent writes:
>Peter Seebach wrote:
>> But, most importantly, it's in POSIX. I can see no reason for /bin/sh to not
>> be at least reasonably close to a POSIX shell, when the code is already
>> written.
>I was looking at the POSIX specs, and while getopts is listed as a
>required utility[1], and it is listed in the table "regular built-in
>utilities"[2] it is not in the table "special built-in utilities."[3]
>So, it looks like the command must be present but it does not
>necessarily have to be built into the shell.
Except that I don't think it can be implemented externally, because there's
no obvious way for it to set $OPTIND.
>> The "ash maintainer" is either me or Corinna. FWIW, I don't plan on
>> changing this. I want ash to be small and fast when running configure
>> scripts. I've stripped ash down to support only the minimal set of
>> functionality found in older versions of UNIX. I use the /bin/sh on
>> Digital UNIX 3.2 as a reference.
>> If you want more functionality, use bash.
>> FYI, getopts can also be a separate program although we don't supply it
>> with cygwin, currently.
That's the one I remember. The problem is that configure scripts, however
common, are not the only kind of shell scripts out there, and getopts is a
very, very, important utility to have access to when writing portable scripts.
It's certainly very unfriendly to programmers, who may well want to write
portable scripts. Having exactly one target where /bin/sh doesn't have
getopts is pretty awful. "use bash" doesn't work portably - not everyone
ships with a /bin/bash, either. :)
>So, it looks like cgf is the one you need to convince. Perhaps show the
>running time differences of a long configure script with and without a
>getopts-enabled ash. I have no idea what the differences may be, if
>any.
Intuition suggests there wouldn't be any measurable difference; there's no
mechanism for an unused feature to affect performance unless it's very
large.
-s
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -