Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
We tried to get some efficiency by avoiding a parse_file_seq() for simple
pattern prerequisites, but this also means no wildcard expansion was
happening, so add it back. Add regression tests for wildcards in target and
prerequisite lists.
|
|
This global variable could be modified during recursion so keep our
own local copy to compare against.
|
|
In various places we were passing flags and characters to compare, then
using complex conditionals to see where to stop in string searches.
Performance numbers reveal that we were spending as much as 23% of our
processing time in these functions, most of it in the comparison lines.
Instead create a character map and use a single bitwise comparison to
determine if this is any one of the stop characters.
|
|
|
|
|
|
|
|
|
|
The new GNU Maintainer's Manual allows the use of year ranges in certain
situations; take advantage of this simplification.
|
|
Fixes Savannah bug #34530.
|
|
Fixes Savannah bug #35525
|
|
|
|
|
|
|
|
|
|
|
|
being sorted indeterminately.
|
|
|
|
|
|
variables and pattern rules.
|
|
|
|
|
|
of implicit rules.
- Fix leaked memory when dealing with implicit rule chains that
have file variables or pattern variables.
|
|
it might be needed: for most situations we parse prereqs immediately as
we used to. Reduces memory usage.
- Fixes Savannah bug #18622.
|
|
- Fix memory errors found by valgrind
- Remove multi_glob() and empower parse_file_seq() to do its job:
the goal here is to remove the confusing reverse/re-reverse we do on
the file lists: needed for future fixes.
- Add a prefix arg to parse_file_seq()
- Make concat() variadic so it can take arbitrary #'s of strings
|
|
- Fix Savannah bug 21231
|
|
- Fix Savannah bug #17752
- Test suite:
* When tests fail keep a "run" file containing the command invoked.
* Support for the Valgrind "memcheck" and "massif" tools.
|
|
- Fix Savannah bug #24655.
- Fix Savannah bug #24588.
- Fix Savannah bug #24277.
- Fix Savannah bug #25697.
- Fix Savannah bug #25694.
- Fix Savannah bug #25460.
- Fix Savannah bug #26207.
- Fix Savannah bug #25712.
- Fix Savannah bug #26593.
- Fix various doc issues.
|
|
* Update copyright to 2007
* Fix download URL for translation files (thanks to Thiemo Seufer)
|
|
string into the strcache. As a side-effect, many more structure members and
function arguments can/should be declared const.
As mentioned in the changelog, unfortunately measurement shows that this
change does not yet reduce memory. The problem is with secondary expansion:
because of this we store all the prerequisites in the string cache twice.
First we store the prerequisite string after initial expansion but before
secondary expansion, then we store each individual file after secondary
expansion and expand_deps(). I plan to change expand_deps() to be callable
in either context (eval or snap_deps) then have non-second-expansion
targets call expand_deps() during eval, so that we only need to store that
dependency list once.
|
|
- Add more warnings.
- Rename variables that mask out-scope vars with the same name.
- Remove all casts of return values from xmalloc, xrealloc, and alloca.
- Remove casts of the first argument to xrealloc.
- Convert all bcopy/bzero/bcmp invocations to use memcp/memmove/memset/memcmp.
|
|
|
|
Update NEWS docs.
Enhance the manual to use automake version.texi, and use the canonical
FSF copyright features and statement.
Some $(realpath ...) tests won't work on Windows; leave them out
The jobserver filedescriptor test might fail if some FDs are reserved,
so for now comment out that check.
|
|
|
|
|
|
Revert a fix for $? including non-existent files as it shows a bug
in the Linux kernel build. Give them a release to fix this.
Add some changes from Eli Z. for Windows changes.
|
|
Revert intermediate file free code.
Suppress some warnings in VMS builds.
|
|
- Fix handling of special targets like .SUFFIX for VMS insensitive targets.
- Don't make temporary batch files for -n. Make sure batch files are created
in text mode.
|
|
|
|
|
|
|
|
Added new file strcache.c to various non-UNIX makefiles and build scripts.
|
|
|
|
pattern rule also makes.
|
|
Try to avoid extraneous rebuilds of template files.
|
|
I decided this feature was too impacting to make the permanent default
behavior. This set of changes makes the default behavior of make the
old behavior (no second expansion). If you want second expansion, you
must define the .SECONDEXPANSION: special target before the first target
that needs it.
This set of changes ONLY fixes explicit and static pattern rules to work
like this. Implicit rules still have second expansion enabled all the
time: I'll work on that next.
Note that there is still a backward-incompatibility: now to get the old
SysV behavior using $$@ etc. in the prerequisites list you need to set
.SECONDEXPANSION: as well.
|
|
|
|
I did this by adding intelligence into the algorithm such that the
second expansion was only actually performed when the prerequisite list
contained at least one "$", so we knew it is actually needed.
Without this we were using up a LOT more memory, since every single
target (even ones never used by make) had their file variables
initialized. This also used a lot more CPU, since we needed to create
and populate a new variable hash table for every target.
There is one issue remaining with this feature: it leaks memory. In
pattern_search() we now initialize the file variables for every pattern
target, which allocates a hash table, etc. However, sometimes we
recursively invoke pattern_search() (for intermediate files) with an
automatic variable (alloca() I believe) as the file. When that function
returns, obviously, the file variable hash memory is lost.
|
|
|
|
|