2008-08-22 Eric Blake <ebb9@byu.net>
+ * TODO: Add an item for additional m4sugar looping constructs.
+ Suggested by Ralf Wildenhues.
+
Add reminder to keep dual implementations in sync.
* lib/m4sugar/m4sugar.m4: Add comments.
* lib/m4sugar/foreach.m4: Likewise.
F**k! --trace FOO does not catch indir([FOO], $@)!
Fixed in M4 1.6, but we can't rely on it yet.
+** m4 loops
+As of 2.63, m4_for has a fixed iteration count for speed in the common
+usage case. But it used to allow the user to alter iteration count by
+reassigning the iterator, allowing a break-like functionality (or even
+infloops). Does this need a new (but maybe slower) macro? Should we
+also provide something like m4_while([TEST], [EXPR])? Maybe an
+m4_break() that works inside a looping construct?
+http://lists.gnu.org/archive/html/autoconf-patches/2008-08/msg00121.html
+
* Autoconf 3
** Cache name spaces.
I think one sad decision in Autoconf was to use white space separated
lists for some arguments. For instance AC_CHECK_FUNCS(foo bar). I
tend to think that, even if it is not as nice, we should use m4 lists,
-i.e., AC_CHECK_FUNCS((foo, bar)) in this case. This would ease
+i.e., AC_CHECK_FUNCS([foo, bar]) in this case. This would ease
specializing loops, and more importantly, make them much more robust.
A typical example of things that can be performed if we use m4 lists
With the current scheme it would be extremely difficult to loop over
AC_CHECK_STRUCTS(struct foo struct bar), while it natural and well
-defined for m4 lists: AC_CHECK_STRUCTS((struct foo, struct bar)).
+defined for m4 lists: AC_CHECK_STRUCTS([struct foo, struct bar]).
I know that makes a huge difference in syntax, but a major release
should be ready to settle a new world. We *can* provide helping tools