13 messages in com.perforce.jamming[jamming] compile.c: compile_on(): Wh...| From | Sent On | Attachments |
|---|---|---|
| Ingo Weinhold | 18 Nov 2002 07:18 | |
| Christopher Seiwald | 18 Nov 2002 12:28 | |
| Matt Armstrong | 18 Nov 2002 13:04 | |
| Craig McPheeters | 18 Nov 2002 13:09 | |
| Matt Armstrong | 18 Nov 2002 13:44 | |
| Ingo Weinhold | 18 Nov 2002 16:40 | |
| Christopher Seiwald | 20 Nov 2002 14:48 | |
| Arnt Gulbrandsen | 21 Nov 2002 01:27 | |
| Jacob Gorm Hansen | 21 Nov 2002 01:52 | |
| Ingo Weinhold | 21 Nov 2002 02:14 | |
| Christopher Seiwald | 21 Nov 2002 22:30 | |
| Robert Cowham | 22 Nov 2002 07:27 | |
| Matt Armstrong | 23 Nov 2002 20:44 |
| Subject: | [jamming] compile.c: compile_on(): Why search()?![]() |
|---|---|
| From: | Matt Armstrong (ma...@lickey.com) |
| Date: | 11/23/2002 08:44:06 PM |
| List: | com.perforce.jamming |
"Christopher Seiwald" <seiw...@perforce.com> writes:
Looks like I'm getting hammered by y'all on the header scan caching. I'll take a closer look.
Christopher
It is worth mentioning that the header scan patches that both Craig and I have advertised do not introduce any risk of a "bad" header cache entry causing Jam to behave differently.
- The value of the target's HDRSCAN variable is stored in the cache, so if it changes for a target the cache entry is invalidated and the file rescanned.
- The cache entry is not used if the modification time of the file is different from when last scanned.
- The cache entries are aged, so unused cache entries eventually disappear (happens when files are moved or removed from a project).
- The cache is not used at all unless the HCACHEFILE is set (a jam variable). Small projects that don't need it don't get it.
These all combine to make it painless. The header cache file need never be deleted to "correct" a build problem or remove stale entries, and the project's Jamrules can stick the file someplace where it won't bother anybody (the build output dir, etc.).
P.S. I officially defer to Craig's McPheeters' version of the patch, as he has incorporated all the improvements I made to his code (most of them dealt with the issues described above, but I forget the exact details).




