Subject: CVS commit: basesrc
To: None <source-changes@netbsd.org>
From: Charles M. Hannum <mycroft@netbsd.org>
List: source-changes
Date: 06/11/2000 00:39:54
Module Name:	basesrc
Committed By:	mycroft
Date:		Sun Jun 11 07:39:54 UTC 2000

Modified Files:
	basesrc/usr.bin/make: make.c make.h parse.c suff.c

Log Message:
Readd optimization last night.  Problems earlier were partially due to the
arguments names on one function being swapped (by a previous author).

Do not do any duplicate suppression when a source list is created.  Instead:
* OP_MADE protects against trying to make the source multiple times.
* A new OP_MARK flag is introduced to suppress duplicates while expanding
  the .ALLSRC variable and .USE targets.
This turns the O(n^2) insertion into O(n) in most cases.

This is tested with a `make build' and some special test cases.


To generate a diff of this commit:
cvs rdiff -r1.30 -r1.31 basesrc/usr.bin/make/make.c \
    basesrc/usr.bin/make/suff.c
cvs rdiff -r1.28 -r1.29 basesrc/usr.bin/make/make.h
cvs rdiff -r1.51 -r1.52 basesrc/usr.bin/make/parse.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.