This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [patch] to libstdc++-v3: fix for the Bourne shell
- To: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Subject: Re: [patch] to libstdc++-v3: fix for the Bourne shell
- From: "Zack Weinberg" <zackw at stanford dot edu>
- Date: Thu, 25 Jan 2001 23:53:49 -0800
- References: <0101260651.AA29232@ivan.Harhan.ORG>
On Thu, Jan 25, 2001 at 10:51:12PM -0800, Michael Sokolov wrote:
> Zack Weinberg <zackw@stanford.edu> wrote:
>
> > Your suggested change therefore introduces a bug: if the configure
> > script is run with MAKE set to the empty string, it will choke.
>
> I do not consider this a bug. A crucial feature of UNIX and its workalikes is
> that if you intentionally shoot yourself in the foot, no one will
> stop you.
Fair 'nuff.
> I would certainly consider setting MAKE to an empty string as
> intentionally shooting yourself in the foot. Why should configure
> specifically guard against this bogus setting and not others? How is
> MAKE= different from MAKE=white_rabbit?
It is possible that there genuinely is a Make work-alike named
"white_rabbit" on someone's system. Who is ./configure to say
different? However, it is not possible for it to be named "".
> > I would also like to remind you that there is no unique "UNIX" nor is
> > there any unique "Bourne shell."
>
> Wrong. Bourne is the shell's author's last name. The Bourne shell is
> the one that Steve Bourne wrote. Period. No other shell can be
> called the Bourne shell. Tne Bourne shell appears in the UNIX V7
> distribution, it is the standard V7 UNIX shell.
Fine, then your shell isn't the Bourne shell either, because it has
been hacked on by numerous people other than Steve Bourne.
> Also UNIX is one specific system. It is the system described in Dennis M.
> Ritchie and Ken Thompson's article "The UNIX Time-Sharing System" in the July
> 1974 issue of Communications of the ACM.
Then your system is not Unix, because it is not identical with the
system described in that article.
I hope you see the absurdity of these definitions.
Perhaps a more reasonable definition of "Unix" would be the set of
systems with kernel code directly descended from what Ken Thompson
used to send out on his tapes. But that already encompasses an
insanely large group, including systems on both sides of the SysV/BSD
fence. It is not meaningful to speak of *the* behavior exhibited by
"Unix" systems even at the system call level.
Perhaps a more reasonable definition of "Bourne shell" would be the
set of shells with code directly descended from what Steve Bourne
wrote. Once again, that encompasses an insanely large group, and I
guarantee you it includes shells that do support ${var:-default}. It
is not meaningful to speak of *the* behavior exhibited by "Bourne
shell"s.
Most people are concerned with functional equivalence, not code
heritage, which gives much broader definitions of both.
> 4.3BSD is a version of UNIX, not Unix. UNIX is case-sensitive.
I direct your attention to the paper on the history of Unix written by
Dennis Ritchie in which he explains that it was intended to be spelt
"Unix", but they were intoxicated with troff's new-born ability to
generate small caps.
zw
p.s. For everyone watching, you may find
http://perso.wanadoo.fr/levenez/unix/history.html of interest.