Re: popdef(undefined), __m4_version__

Ralf Wildenhues <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
Hi Eric,

Eric Blake <ebb9 <at> byu.net> writes:
> 
> ~  	autoconf 2.62.45-65ff0	+[a]	+[b]	+[a] and [b]
> m4-1.4.11		20.171	19.858	20.858	19.357
> patched branch-1.6	21.294	20.154	22.202	20.250
> argv_ref branch		19.013	17.750	19.219	17.266
> master branch		29.966	28.948	32.417	27.904
> 
> The differences in base compile times are due somewhat to differing
> compiler options, but it is also a bit depressing that the master branch
> is 50% slower than 1.6.  Someday I'd like to profile that, and figure out
> why the discrepancy.

Position-independent code.  I haven't measured, but would bet on it.
Remaining efficient inside shared libraries requires to either refactor
so that externally visible symbols are not called often, or play tricks
with linkage.

> * src/builtin.c (m4_undefine, m4_popdef): Add warning.
> * src/symtab.c (lookup_symbol): Distinguish when deletion occurred.
> * doc/m4.texinfo (Undefine, Pushdef): Document the warning.
> * NEWS: Document this change, along with a 1.4.x compatibility
> definition.

Aren't those warnings forbidden by POSIX?

Anyway, current git Autoconf fails several tests with current branch-1.6 M4,
most look related to autoupdate.  For example:

+/home/ralf/local/bin/m4:/tmp/auJL1116/unm4.m4:2: Warning: _au__undefine:
undefined macro `'
+/home/ralf/local/bin/m4:/tmp/auJL1116/unm4.m4:2: Warning: _au__undefine:
undefined macro `builtin'

I assume that 2.62 will fail, too, thus M4 needs fixed or it won't be
compatible with Autoconf 2.62.

Cheers,
Ralf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.