autoconf-patches
[Top][All Lists]
Advanced

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

Re: m4_defun_init


From: Paolo Bonzini
Subject: Re: m4_defun_init
Date: Fri, 24 Oct 2008 17:38:45 +0200
User-agent: Thunderbird 2.0.0.17 (Macintosh/20080914)

Eric Blake wrote:
> I'm shocked at how much difference this made, touching just m4sh!
> Pre-patch, running autoconf on coreutils took 22.270s, after it takes
> 18.127s; an 18% speedup, and with no change to configure contents.
> 
> The concept of this patch is that one-shot initialization routines, like
> AS_REQUIRE, are expensive.  Rather than calling the initialization every
> single time, as a no-op that just finds out that things were already
> initialized, it is nicer to define two versions of the same macro - one
> that does the initialization and popdef's itself, and another that does
> the common work.  In fact, the common version can often be m4_define'd
> rather than m4_defun'd: the main reason for m4_defun is for self-providing
> and for saving location details to print a nicer error stack about any
> detected dependency errors; but once the one-shot initializer has
> completed successfully, we know there are no dependency problems and the
> macro is provided, so we should no longer care about using the m4_defun
> prolog to track location, and m4_require notices that the macro has
> already been provided.

I'm not sure tracking the location is not useful.  As a first step, you
can use m4_define if the common version is empty and m4_defun otherwise.

Paolo




reply via email to

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