Subject: Re: make -j and failure modes
To: Ben Harris <bjh21@NetBSD.org>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-userlevel
Date: 12/10/2003 23:17:11
    Date:        Wed, 10 Dec 2003 15:52:42 +0000 (GMT)
    From:        Ben Harris <bjh21@NetBSD.org>
    Message-ID:  <Pine.SOL.4.58.0312101540000.12032@draco.cus.cam.ac.uk>

  | you either make "(false)" behave differently from "false" (POSIX
  | behaviour, exemplified by Bash)

Yes, and I have no problem with that one - one assumes that if the ()
are added, that's done for a reason.   What's more, one may assume that
if one is giving complex command sequences to the shell, one will manage
error handling oneself - "Set -e" (which I half remember actually predates
&& and stuff in shells) is really intended to allow scripts comprised of
mostly a long list of commands to abort when one of the commands fails.
It isn't really the way that any reasonable shell program should operate
(and that includes shell programs generated by makefiles).

  | or make "(false && true)" behave differently from "false && true"
  | (historical behaviour, exemplified by ksh).

AT&T ksh perhaps - not the pdksh that NetBSD ships as ksh, that one
agrees with NetBSD's sh and with bash (and posix).

Of the shells NetBSD ships by default, only csh gets this "wrong" (and
it gets it so wrong as to be laughable).   Of course, no-one claims csh
as being posix sh compliant, or anywhere close.

kre