autoconf-patches
[Top][All Lists]
Advanced

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

Re: FYI: fix m4_cdr


From: Ralf Wildenhues
Subject: Re: FYI: fix m4_cdr
Date: Wed, 8 Jun 2005 10:07:31 +0200
User-agent: Mutt/1.4.1i

Hi Stepan,

* Stepan Kasal wrote on Mon, Jun 06, 2005 at 10:45:23AM CEST:
> Hello,
>   I fixed m4_cdr.  It returned [[]] where it should have returned an
> empty list.  m4_foreach, which also confused these two, was fixed, too.
> 
> These changes could break code which depended on this misbehaviour;
> but I don't expect to see this in practice.

This patch breaks bootstrapping of Libtool (at least; tested with CVS HEAD)
when GNU m4 1.4.1 is used:
| autoreconf: Entering directory `.'
| autoreconf: configure.ac: not using Gettext
| autoreconf: running: aclocal --force -I m4
| configure.ac:186: /usr/bin/m4: ERROR: Recursion limit of 1024 exceeded, use 
-L<N> to change it
| autom4te: /usr/bin/m4 failed with exit status: 1

Now while I've seen the recommendation for 1.4.3, this is still going to
bother people.  Even if you specifically force GNU m4 >= 1.4.3 for
building Autoconf, it's quite a challenge to expect users to have that
installed for their other packages as well.

Many of the systems I test on have 1.4.1 as the latest installed.  Some
have quotas tight enough that I cannot keep a build tree for both of
Autoconf and Libtool on non-temporary disk storage around, (but I have
not yet tried to build m4-1.4.3 there).

Regards
Ralf

> 2005-06-06  Stepan Kasal  <address@hidden>
> 
>       m4_cdr of one-member list was [[]] (one-member list containing an
>       empty string) instead of [] (an empty list.  Callers were skewed to
>       match this misbehaviour.  As a consequence of this:
>        - m4_foreach([x], [], [foo]) expanded to `foo', while
>        - the expansion of m4_foreach([x], [[]], [foo]) was empty.
>       I fixed this bug.
> 
>       * lib/m4sugar/m4sugar.m4 (m4_cdr): If only one argument is given,
>         expand to an empty string; print error msg if called without
>         an argument list.
>       (m4_foreach, m4_map, m4_map_sep): Don't expect the previous
>         misbehaviour; handle [] and [[]] correctly.





reply via email to

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