# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 4371 | Chris Comparini | No longer needed in this branch. | ||
#1 | 4331 | Chris Comparini |
Branch of what I hope is _everyone's_ jam branches, if that makes sense. |
||
//guest/matt_armstrong/jam/fix/2/rules.c | |||||
#3 | 3968 | Matt Armstrong |
Fix //guest/matt_armstrong/jam/bug/1/... and //guest/matt_armstrong/jam/bug/2/... in one go. jam2.5rc3 attempts to turn INCLUDES into DEPENDS by turning every INCLUDES into an implicit node in the dependency graph. The problem with this approach is that make.c and make1.c algorithms work only with acyclic graphs, and INCLUDES relationships are often cyclic. This branch backs out //public/jam/src/... changes 2614 and 3057 and merges in //guest/matt_armstrong/jam/fix/includes/... changes 2573, 2574 and 2575. The end result is that make.c now copies a target's INCLUDES to its DEPENDS list as it walks through the graph. The end result is that at the end of make.c, every target's DEPENDS list includes all its direct dependencies *and* all of the implicit dependencies that INCLUDES creates. This creates more nodes, but is immune to cycles in the INCLUDES chain. An alternative approach would be to change every use of t->depends to use a smart iterator. The iterator would generate a temporary list containing all of t->depends and all of associated INCLUDES. This list would be iterated over and disposed. I didn't take this approach because it was more complex, and I rather like the -dd debug output my patch generates (i.e. the "implicit" lines for DEPENDS and INCLUDES relationships that are implicitly created via INCLUDES). |
||
#2 | 3964 | Matt Armstrong | Integrate change 2614 from //public/jam/src/..., but ignore it. | ||
#1 | 3963 | Matt Armstrong |
Branch from //public/jam/src/... up to change 2613. |
||
//guest/perforce_software/jam/src/rules.c | |||||
#8 | 2559 | rmg |
Fix 'var on target ?= value' so that var is only set if it did not have a target-specific value. Previously, it would just overwrite the var's value. Bug fix documented in RELNOTES. === computer:1666: Change 39566 by seiwald@play-seiwald on 2002/12/27 14:44:01 |
||
#7 | 2529 | rmg |
Fix "on target" variables during header scan, from Matt Armstrong. Setting target-specific variables while under the influence of the target's target-specific variables caused the _global_ values to be modified. This happened both during header file scanning and with the "on target statement" syntax. The manifestation of this was if a file #included itself, HdrRule would accidentally set HDRRULE/HDRSCAN globally, and then all files (executables, etc) would get scanned for includes. While this borrows from Matt's fix, it is a slightly different implementation. User visible fix documented in RELNOTES. === computer:1666: Change 39095 by seiwald@play-seiwald on 2002/12/17 14:00:58 |
||
#6 | 2499 | rmg |
Fix 'includes' support so that included files aren't treated as direct dependencies during the command execution phase. If an included file failed to build, make1() would bypass the including file. Now make0() appends each child's 'includes' onto its own 'depends' list, eliminating 'includes'-specific code in make0() and make1(). This not only fixes the bug, but removes some complexity as well. Bug fix documented in RELNOTES. === computer:1666: Change 38399 by seiwald@play-seiwald on 2002/12/03 16:00:40 |
||
#5 | 2493 | rmg |
Rewrite the past: update all jam's source with comments to reflect changes since about 2.3, very early 2001. Whitespace only change. === computer:1666: Change 37660 by seiwald@play-seiwald on 2002/11/06 22:41:35 Note: I regenerated jamgram.c on my linux 7.3 system prior to the submit, since patch was so unhappy trying to lay down the changes from Christopher's change. Presumably this is just due to different yacc/bison/whatever particulars on the system where Christopher made the changes originally. - rmg |
||
#4 | 2491 | rmg |
Some consting in jam to make it more compilable by C++ compilers. No functional change. === computer:1666: Change 37433 by perforce@perforce on 2002/10/30 16:08:51 Recreational const-ing of jam, for compilers that don't allow "string" to be passed as a non-const char *. This included a few places where we were modifying what could possibly have been read-only storage, oddly enough. No functional change. === computer:1666: Change 37602 by seiwald@play-seiwald on 2002/11/04 17:25:40 |
||
#3 | 2482 | rmg |
Jam.html partial rewrite and the support for named parameters to rules. === computer:1666: Change 34516 by seiwald@play-seiwald on 2002/06/21 23:59:12 |
||
#2 | 486 | Perforce staff |
Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source file was touched when jam got ANSI-fied. |
||
#1 | 2 | laura | Add Jam/MR 2.2 source |