autoconf/tests
Eric Blake dbb9fe36bf Provide O(n) replacement macros for M4 1.4.x.
* lib/m4sugar/foreach.m4: New file.
(m4_foreach, m4_case, _m4_shiftn, m4_do, m4_dquote_elt, _m4_map)
(m4_join, m4_joinall, m4_list_cmp, _m4_minmax): Replace m4sugar
macros based on $@ recursion [fast on M4 1.6, but quadratic on M4
1.4.x] with versions based on m4_for/m4_foreach [slow on 1.6, but
linear on 1.4.x].
* lib/m4sugar/m4sugar.m4 (m4_init): Dynamically load new file if
older M4 is assumed.
(m4_map_sep): Optimize.
(m4_max, m4_min): Refactor, by adding...
(_m4_max, _m4_min, _m4_minmax): ...more efficient helpers.
(m4_defn, m4_popdef, m4_undefine): Use foreach recursion.
* lib/m4sugar/Makefile.am (dist_m4sugarlib_DATA): Distribute new
file.
* tests/m4sugar.at (M4 loops): Add a stress test that takes
forever if m4_foreach and friends are quadratic.
* NEWS: Mention this.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-07-25 17:42:29 -06:00
..
.cvsignore Avoid parallel 'make check' issue. 2007-09-14 17:50:37 +00:00
.gitignore Prepare for conversion to git. 2007-09-14 22:25:56 +00:00
atlocal.in Work around MSYS and Cygwin bugs when dealing with trailing space. 2008-05-13 13:40:55 -06:00
autoscan.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
autotest.at Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18. 2008-06-05 15:18:11 -06:00
base.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
c.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
compile.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
foreign.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
fortran.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
local.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
m4sh.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
m4sugar.at Provide O(n) replacement macros for M4 1.4.x. 2008-07-25 17:42:29 -06:00
Makefile.am Avoid some autoreconf -Wall warnings. 2008-04-05 09:24:18 -06:00
mktests.sh Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
semantics.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
suite.at Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00
tools.at AC_AUTOCONF_VERSION might contain arbitrary macro names. 2008-04-10 14:09:18 -06:00
torture.at Fix '#undef variable /* comment */' transform in config headers. 2008-06-17 08:42:14 +02:00
wrapper.as Use GPLv2+ plus exception as license for release. 2008-04-05 17:04:48 -06:00