autoconf-patches
[Top][All Lists]
Advanced

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

[PATCH] don't advertise shell function adversely


From: Paolo Bonzini
Subject: [PATCH] don't advertise shell function adversely
Date: Thu, 09 Oct 2008 10:04:23 -0400

And here is some documentation, finally.

2008-10-08  Paolo Bonzini  <address@hidden>

        * doc/autoconf.texi: Be less wary of shell functions.
---
 ChangeLog         |    4 ++++
 doc/autoconf.texi |   23 +++++++++++------------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 56bb40d..5aaaad0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2008-10-09  Paolo Bonzini  <address@hidden>
 
+       * doc/autoconf.texi: Be less wary of shell functions.
+
+2008-10-09  Paolo Bonzini  <address@hidden>
+
        * m4sugar/m4sh.m4 (AS_BASENAME): Just dispatch to $as_basename.
        (_AS_BASENAME_PREPARE): Test availability of basename and expr.
        Define shell functions.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 5753d37..2ea542c 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -1059,11 +1059,10 @@ to their lowest common denominator of features.
 Naturally, you might then think of shell scripts; who needs
 @command{autoconf}?  A set of properly written shell functions is enough to
 make it easy to write @command{configure} scripts by hand.  Sigh!
-Unfortunately, shell functions do not belong to the least common
-denominator; therefore, where you would like to define a function and
-use it ten times, you would instead need to copy its body ten times.
-Even in 2007, where shells without any function support are far and
-few between, there are pitfalls to avoid when making use of them.
+Unfortunately, even in 2008, where shells without any function support are
+far and few between, there are pitfalls to avoid when making use of them.
+Also, finding a Bourne shell that accepts shell functions is not trivial,
+even though there is almost always one on interesting porting targets.
 
 So, what is really needed is some kind of compiler, @command{autoconf},
 that takes an Autoconf program, @file{configure.ac}, and transforms it
@@ -12673,9 +12672,9 @@ that are not found in all Bourne-compatible shells; 
restrict yourself
 to the lowest common denominator.  Even @code{unset} is not supported
 by all shells!
 
-Shell functions are considered portable nowadays, though Autoconf still
-does not use them (Autotest does).  However, some pitfalls have to be
-avoided for portable use of shell functions (@pxref{Shell Functions}).
+Shell functions are considered portable nowadays.  However, some pitfalls
+have to be avoided for portable use of shell functions (@pxref{Shell
+Functions}).
 
 Some ancient systems have quite
 small limits on the length of the @samp{#!} line; for instance, 32
@@ -13645,8 +13644,8 @@ $ @kbd{pdksh -c 'echo $(( 010 ))'}
 
 When it is available, using arithmetic expansion provides a noticeable
 speedup in script execution; but testing for support requires
address@hidden to avoid syntax errors.  If shell function support has
-also been detected, then this construct can be used to assign @samp{foo}
address@hidden to avoid syntax errors.  If shell function support can
+be assumed, then this construct can be used to assign @samp{foo}
 to an arithmetic result, provided all numeric arguments are provided in
 decimal and without a leading zero:
 
@@ -14149,8 +14148,8 @@ f: not found
 @end example
 
 @noindent
-For this reason, Autotest uses the prefix @samp{at_func_} for its
-functions.
+For this reason, Autoconf (actually M4sh, @pxref{Programming in M4sh})
+uses the prefix @samp{as_func_} for its functions.
 
 Handling of positional parameters and shell options varies among shells.
 For example, Korn shells reset and restore trace output (@samp{set -x})
-- 
1.5.5





reply via email to

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