autoconf-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] Support a stack of LINENO values for AS_MESSAGE.


From: Paolo Bonzini
Subject: Re: [PATCH] Support a stack of LINENO values for AS_MESSAGE.
Date: Thu, 16 Oct 2008 09:41:43 +0200
User-agent: Thunderbird 2.0.0.17 (Macintosh/20080914)

[snipped totally correct reasoning]

> So, for potential efficiency purposes, should we rewrite this line to use:
> 
> as_lineno_stack=$as_lineno_stack=as_lineno_stack

Actually  as_lineno_stack=${as_lineno_stack}as_lineno_stack=

> or maybe even write AS_APPEND([var],[text]), which expands to a shell 
> function 
> that uses += on bash and traditional appends elsewhere?

That could be added (but AS_VAR_APPEND please, for consistency).

>> +m4_defun([AS_LINENO_POP],
>> +[eval $as_lineno_stack; test "x$as_lineno_stack" = x && AS_UNSET
> ([as_lineno])])
> 
> On the other hand, this efficiency argument is probably moot - even if a 
> shell 
> can recognize an append pattern and make it linear, the eval that shrinks the 
> variable size will probably still exhibit quadratic behavior by copying the 
> entire substring of the old definition back into the new definition on every 
> iteration.  And the quadratic nature of this algorithm is only apparent on 
> heavily nested code; how deep do you anticipate a typical nesting of the 
> as_lineno_stack to reach?

2 :-)  Toplevel will call ac_func_c_check_func, which will call
ac_func_c_try_compile, and that's it.

It could be 3, with sizeof->compute_int->try_compile (but right now I
only added a function for compute_int, so with my pending patches this
also gives 2).

Anyway I don't expect more than 5.

Paolo




reply via email to

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