automake-patches
[Top][All Lists]
Advanced

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

Re: rb5: remove combinatorial explosion patch


From: Richard Boulton
Subject: Re: rb5: remove combinatorial explosion patch
Date: Thu, 9 Aug 2001 19:49:10 +0100
User-agent: Mutt/1.2.5i

This is the big patch I've been working on for a while.  It's all
interrelated stuff, and as a result I can't see any reasonable ways to
split the patch up.  It also largely consists of new functions (which
parallel some of the existing ones: in future, it should be possible to
entirely deprecate the existing equivalents, but currently they're still
used in other places).

Instead, I've just tried to make sure it's as well documented as possible.

The patch removes the combinatorial explosion (in terms of memory footprint
and Makefile.in size) which currently exists when a _SOURCES variable is
defined in terms of several conditionally defined variables.  It does this
by defining the _OBJECTS variable in terms of a parallel set of conditional
variables.

ie: for

  if A
  foo=a.c
  else
  foo=b.c
  endif
  x_SOURCES=$(foo)

we used to get:
  @address@hidden
  @address@hidden

we now get:
  @address@hidden
  @address@hidden
  x_OBJECTS=$(am_OBJECTS_1)

(the above example isn't quite what you actually get generated, but the
principle is as above.)

I'm not sure whether the name "am_OBJECTS_*" is a good one.  Its easy to
change if people can see a problem with it or think of a better one.

This is quite a big change, and thus a bit worrying to do just before 1.5.
However, it passes all the tests, including a few regression tests I added
specially, and I'm pretty confident that there are no (big) issues with it.
The combinatorial explosion is a bit painful in at least one project I've
been playing with, too.  In other words, I don't think its too big a risk.
:)

-- 
Richard

Attachment: patch2
Description: Text document


reply via email to

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