This is the mail archive of the
mailing list for the Cygwin project.
Re: Question about ash and getopts
- From: seebs at plethora dot net (Peter Seebach)
- To: cygwin at cygwin dot com
- Date: Mon, 29 Dec 2003 15:41:15 -0600
- Subject: Re: Question about ash and getopts
- Reply-to: seebs at plethora dot net (Peter Seebach)
In message <3FF09D6C.7F12C5AC@dessent.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
>I was looking at the POSIX specs, and while getopts is listed as a
>required utility, and it is listed in the table "regular built-in
>utilities" it is not in the table "special built-in utilities."
>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
Intuition suggests there wouldn't be any measurable difference; there's no
mechanism for an unused feature to affect performance unless it's very
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html