autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AS_IF optimization


From: Eric Blake
Subject: Re: AS_IF optimization
Date: Thu, 09 Apr 2009 23:11:45 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20090302 Thunderbird/2.0.0.21 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[moving to autoconf-patches]

According to Eric Blake on 4/7/2009 7:13 AM:
> According to Andreas Schwab on 4/7/2009 7:01 AM:
>> According to <http://www.in-ulm.de/~mascheck/bourne/> this was fixed in
>> the System III shell.
>
> Which pre-dates shell functions.  Therefore, since AS_IF is part of m4sh,
> which guarantees a shell with functions, can elide empty else statements
> with impunity.  Thanks for the research.

I'm thinking of applying this patch; any objections to the wording?

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkne00oACgkQ84KuGfSFAYCR5wCeJ5TS1DVHUndZwj5GP+huU2EP
p4oAoKrG9dvOX6sHAM7OxR2FG0/Yneok
=Y+rt
-----END PGP SIGNATURE-----
>From a65adc795cbf283604fbf56045e47c8af1a2685c Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Thu, 9 Apr 2009 22:33:37 -0600
Subject: [PATCH] Improve documentation about if exit status.

* doc/autoconf.texi (Limitations of Builtins) <if>: Mention that
exit status bugs don't affect modern targets.
Reported by Andreas Schwab.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog         |    5 +++++
 doc/autoconf.texi |   10 ++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 071b418..9ac238d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-04-09  Eric Blake  <address@hidden>

+       Improve documentation about if exit status.
+       * doc/autoconf.texi (Limitations of Builtins) <if>: Mention that
+       exit status bugs don't affect modern targets.
+       Reported by Andreas Schwab.
+
        Make AS_IF, AS_CASE, and AS_FOR more robust to blank arguments.
        * lib/m4sugar/m4sh.m4 (_AS_CASE, _AS_CASE_DEFAULT, AS_FOR, _AS_IF)
        (_AS_IF_ELSE, AS_IF): Avoid syntax error on blank argument.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index a47d3c8..c3033cd 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -15829,7 +15829,8 @@ Limitations of Builtins
 This is especially useful in other M4 macros, where the @dfn{then} and
 @dfn{else} branches might be macro arguments.

-There are shells that do not reset the exit status from an @command{if}:
+Some very old shells did not reset the exit status from an @command{if}
+with no @command{else}:

 @example
 $ @kbd{if (exit 42); then true; fi; echo $?}
@@ -15837,9 +15838,10 @@ Limitations of Builtins
 @end example

 @noindent
-whereas a proper shell should have printed @samp{0}.  This is especially
-bad in makefiles since it produces false failures.  This is why properly
-written makefiles, such as Automake's, have such hairy constructs:
+whereas a proper shell should have printed @samp{0}.  But this is no
+longer a portability problem; any shell that supports functions gets it
+correct.  However, it explains why some makefiles have such hairy
+constructs:

 @example
 if test -f "$file"; then
-- 
1.6.1.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]