autoconf-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Autoconf source repository branch, master, updated. v2.62-43-g


From: Eric Blake
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.62-43-gebe1f38
Date: Wed, 16 Jul 2008 20:49:51 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=ebe1f38cbaff7c585be907af4b298f8e3a6e7005

The branch, master has been updated
       via  ebe1f38cbaff7c585be907af4b298f8e3a6e7005 (commit)
      from  6eb7c48491791475a3e557f632445d76aa8ce57c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ebe1f38cbaff7c585be907af4b298f8e3a6e7005
Author: Eric Blake <address@hidden>
Date:   Wed Jul 16 14:40:48 2008 -0600

    Revert m4_prepend; it is less efficient, and unused by bison.
    
    * lib/m4sugar/m4sugar.m4 (m4_prepend, m4_prepend_uniq)
    (m4_prepend_uniq_w): Delete addition from 2008-07-11.
    (_m4_grow_uniq_1): Rename back...
    (_m4_append_uniq): ...to this.
    * NEWS: Revert NEWS blurb.
    * doc/autoconf.texi (Text processing Macros) <m4_prepend>: Delete.
    * tests/m4sugar.at (m4@&address@hidden): Delete.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog              |   11 ++++++
 NEWS                   |    3 --
 doc/autoconf.texi      |   17 ----------
 lib/m4sugar/m4sugar.m4 |   60 ++++++++++++-----------------------
 tests/m4sugar.at       |   82 ------------------------------------------------
 5 files changed, 31 insertions(+), 142 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6491d76..ecf547b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-07-16  Eric Blake  <address@hidden>
+
+       Revert m4_prepend; it is less efficient, and unused by bison.
+       * lib/m4sugar/m4sugar.m4 (m4_prepend, m4_prepend_uniq)
+       (m4_prepend_uniq_w): Delete addition from 2008-07-11.
+       (_m4_grow_uniq_1): Rename back...
+       (_m4_append_uniq): ...to this.
+       * NEWS: Revert NEWS blurb.
+       * doc/autoconf.texi (Text processing Macros) <m4_prepend>: Delete.
+       * tests/m4sugar.at (m4@&address@hidden): Delete.
+
 2008-07-15  Eric Blake  <address@hidden>
 
        Avoid failure if version.m4 is omitted but m4_PACKAGE_* unused.
diff --git a/NEWS b/NEWS
index 86203db..06b705f 100644
--- a/NEWS
+++ b/NEWS
@@ -26,9 +26,6 @@ GNU Autoconf NEWS - User visible changes.
 ** Config header templates `#undef UNDEFINED /* comment */' do not lead to
    nested comments any more; regression introduced in 2.62.
 
-** The following m4sugar macros are new:
-   m4_prepend  m4_prepend_uniq  m4_prepend_uniq_w
-
 
 * Major changes in Autoconf 2.62 (2008-04-05) [stable]
   Released by Eric Blake, based on git versions 2.61a.*.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index a426cd8..a785471 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -11171,23 +11171,6 @@ with a single space.  This is a combination of 
@code{m4_flatten} and
 @code{m4_strip}.
 @end defmac
 
address@hidden m4_prepend (@var{macro-name}, @var{string}, @ovar{separator})
address@hidden m4_prepend_uniq (@var{macro-name}, @var{string}, 
@ovar{separator} @
-  @ovar{if-uniq}, @ovar{if-duplicate})
address@hidden m4_append_uniq_w (@var{macro-name}, @var{strings})
address@hidden
address@hidden
address@hidden
-These macros were introduced in Autoconf 2.63; they are like
address@hidden, @code{m4_append_uniq}, and @code{m4_append_uniq_w}
-respectively, except that the @var{string} argument is added at the
-beginning instead of the end of the definition of @code{macro-name}.
-
-Also note that unlike @code{m4_append}, @code{m4_prepend} has quadratic
-rather than linear scaling behavior.  Thus, if the order of list
-elements does not matter, it is better to append.
address@hidden defmac
-
 @defmac m4_re_escape (@var{string})
 @msindex{re_escape}
 Backslash-escape all characters in @var{string} that are active in
diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4
index 88eebf0..c6993ee 100644
--- a/lib/m4sugar/m4sugar.m4
+++ b/lib/m4sugar/m4sugar.m4
@@ -1876,11 +1876,9 @@ m4_define([m4_combine],
 
 
 # m4_append(MACRO-NAME, STRING, [SEPARATOR])
-# m4_prepend(MACRO-NAME, STRING, [SEPARATOR])
-# -------------------------------------------
+# ------------------------------------------
 # Redefine MACRO-NAME to hold its former content plus `SEPARATOR`'STRING'
-# at the end for m4_append, or `STRING`'SEPARATOR' at the beginning for
-# m4_prepend.  It is valid to use this macro with MACRO-NAME undefined,
+# at the end.  It is valid to use this macro with MACRO-NAME undefined,
 # in which case no SEPARATOR is added.  Be aware that the criterion is
 # `not being defined', and not `not being empty'.
 #
@@ -1926,64 +1924,46 @@ m4_define([m4_combine],
 # Note that m4_append can benefit from amortized O(n) m4 behavior, if
 # the underlying m4 implementation is smart enough to avoid copying existing
 # contents when enlarging a macro's definition into any pre-allocated storage
-# (m4 1.4.x unfortunately does not implement this optimization).  m4_prepend
-# is inherently O(n^2), since pre-allocated storage only occurs at the end
-# of a macro, so the existing contents must always be moved.
+# (m4 1.4.x unfortunately does not implement this optimization).  We do
+# not implement m4_prepend, since it is inherently O(n^2) (pre-allocated
+# storage only occurs at the end of a macro, so the existing contents must
+# always be moved).
 #
 # Use m4_builtin to avoid overhead of m4_defn.
 m4_define([m4_append],
 [m4_define([$1],
           m4_ifdef([$1], [m4_builtin([defn], [$1])[$3]])[$2])])
-m4_define([m4_prepend],
-[m4_define([$1],
-          [$2]m4_ifdef([$1], [[$3]m4_builtin([defn], [$1])]))])
 
 
 # m4_append_uniq(MACRO-NAME, STRING, [SEPARATOR], [IF-UNIQ], [IF-DUP])
-# m4_prepend_uniq(MACRO-NAME, STRING, [SEPARATOR], [IF-UNIQ], [IF-DUP])
-# ---------------------------------------------------------------------
-# Like `m4_append'/`m4_prepend', but add STRING only if not yet present.
-# Additionally, expand IF-UNIQ if STRING was appended, or IF-DUP if STRING
-# was already present.  Also, warn if SEPARATOR is not empty and occurs
-# within STRING, as the algorithm no longer guarantees uniqueness.
+# --------------------------------------------------------------------
+# Like `m4_append', but append only if not yet present.  Additionally,
+# expand IF-UNIQ if STRING was appended, or IF-DUP if STRING was already
+# present.  Also, warn if SEPARATOR is not empty and occurs within STRING,
+# as the algorithm no longer guarantees uniqueness.
 #
 # Note that while m4_append can be O(n) (depending on the quality of the
 # underlying M4 implementation), m4_append_uniq is inherently O(n^2)
 # because each append operation searches the entire string.
 m4_define([m4_append_uniq],
-[_m4_grow_uniq([m4_append], $@)])
-m4_define([m4_prepend_uniq],
-[_m4_grow_uniq([m4_prepend], $@)])
-
-# _m4_grow_uniq(HOW, MACRO-NAME, STRING, [SEP], [IF-UNIQ], [IF-DUP])
-# ------------------------------------------------------------------
-# Shared implementation of m4_append_uniq and m4_prepend_uniq.  HOW is
-# used to distinguish where the STRING will be added.
-m4_define([_m4_grow_uniq],
-[m4_ifval([$4], [m4_if(m4_index([$3], [$4]), [-1], [],
+[m4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [],
                       [m4_warn([syntax],
-                               [$1_uniq: `$3' contains `$4'])])])]$0_1($@))
-m4_define([_m4_grow_uniq_1],
-[m4_ifdef([$2],
-         [m4_if(m4_index([$4]m4_builtin([defn], [$2])[$4], [$4$3$4]), [-1],
-                [$1([$2], [$3], [$4])$5], [$6])],
-         [m4_define([$2], [$3])$5])])
+                               [$0: `$2' contains `$3'])])])_$0($@)])
+m4_define([_m4_append_uniq],
+[m4_ifdef([$1],
+         [m4_if(m4_index([$3]m4_builtin([defn], [$1])[$3], [$3$2$3]), [-1],
+                [m4_append([$1], [$2], [$3])$4], [$5])],
+         [m4_define([$1], [$2])$4])])
 
 # m4_append_uniq_w(MACRO-NAME, STRINGS)
-# m4_prepend_uniq_w(MACRO-NAME, STRINGS)
-# --------------------------------------
+# -------------------------------------
 # For each of the words in the whitespace separated list STRINGS, append
 # only the unique strings to the definition of MACRO-NAME.
 #
 # Avoid overhead of m4_defn by using m4_builtin.
 m4_define([m4_append_uniq_w],
 [m4_foreach_w([m4_Word], [$2],
-             [_m4_grow_uniq_1([m4_append], [$1],
-                              m4_builtin([defn], [m4_Word]), [ ])])])
-m4_define([m4_prepend_uniq_w],
-[m4_foreach_w([m4_Word], [$2],
-             [_m4_grow_uniq_1([m4_prepend], [$1],
-                              m4_builtin([defn], [m4_Word]), [ ])])])
+             [_m4_append_uniq([$1], m4_builtin([defn], [m4_Word]), [ ])])])
 
 
 # m4_text_wrap(STRING, [PREFIX], [FIRST-PREFIX], [WIDTH])
diff --git a/tests/m4sugar.at b/tests/m4sugar.at
index 6cbf4f6..69cb74b 100644
--- a/tests/m4sugar.at
+++ b/tests/m4sugar.at
@@ -278,88 +278,6 @@ AT_CHECK_M4SUGAR([-o-], 0, [[a a b
 AT_CLEANUP
 
 
-## ------------ ##
-## m4_prepend.  ##
-## ------------ ##
-
-AT_SETUP([m4@&address@hidden)
-
-AT_CHECK_M4SUGAR_TEXT(
-[[m4_define([active], [ACTIVE])dnl
-m4_prepend([sentence], [This is an])dnl
-m4_prepend([sentence], [ active ])dnl
-m4_prepend([sentence], [symbol.])dnl
-sentence
-m4_undefine([active])dnl
-sentence
-m4_define([active], [ACTIVE])dnl
-m4_prepend([hooks], [m4_define([act1], [act2])])dnl
-m4_prepend([hooks], [m4_define([act2], [active])])dnl
-m4_undefine([active])dnl
-act1
-hooks
-act1
-dnl Test for bug fixed in 2.62 when separator is active.
-m4_define([a], [A])dnl
-m4_prepend_uniq([foo], [-], [a])dnl
-m4_prepend_uniq([foo], [-], [a])dnl
-m4_prepend_uniq([bar], [-], [a])dnl
-m4_prepend_uniq([bar], [~], [a])dnl
-m4_prepend_uniq([bar], [-], [a])dnl
-m4_defn([foo])
-m4_defn([bar])
-foo
-bar
-m4_prepend_uniq([blah], [one], [, ], [new], [existing])
-m4_prepend_uniq([blah], [two], [, ], [new], [existing])
-m4_prepend_uniq([blah], [two], [, ], [new], [existing])
-m4_prepend_uniq([blah], [three], [, ], [new], [existing])
-m4_prepend([blah], [two], [, ])dnl
-blah
-m4_dquote(blah)
-m4_prepend([list], [one], [[, ]])dnl
-m4_prepend([list], [two], [[, ]])dnl
-m4_prepend([list], [three], [[, ]])dnl
-list
-m4_dquote(list)
-m4_prepend_uniq_w([numbers], [1 1 2])dnl
-m4_prepend_uniq_w([numbers], [ 2 3 ])dnl
-numbers
-]],
-[[symbol. ACTIVE This is an
-symbol. active This is an
-act1
-
-active
--
-~a-
--
-~A-
-new
-new
-existing
-new
-two, three, two, one
-[two],[three],[two],[one]
-three, two, one
-[three, two, one]
-3 2 1
-]])
-
-AT_DATA_M4SUGAR([script.4s],
-[[m4_prepend_uniq([str], [a], [ ])
-m4_prepend_uniq([str], [a b], [ ])
-m4_divert([0])dnl
-str
-]])
-
-AT_CHECK_M4SUGAR([-o-], 0, [[a b a
-]], [[script.4s:2: warning: m4@&address@hidden: `a b' contains ` '
-]])
-
-AT_CLEANUP
-
-
 ## --------- ##
 ## m4_join.  ##
 ## --------- ##


hooks/post-receive
--
GNU Autoconf source repository




reply via email to

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