[Top][All Lists]
[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
- m4_defun_init, Eric Blake, 2008/10/24
- Re: m4_defun_init,
Paolo Bonzini <=