#recursiveontarget fixed by change 2529 on 2002/12/19 by miklos_fazekas@mfazekasgraphisoft (closed)
# Perforce Public Depot Jobs
#
# Job: The job name. 'new' generates a sequenced job number.
# Status: Job status; [open/closed/suspended]. Required
# Project: The project this job is for [none/cdsp4/jam/p4hl] Optional.
# Severity: [A/B/C] (A is highest) Required.
# ReportedBy The user who created the job. Can be changed.
# ReportedDate: The date the job was created. Automatic.
# ModifiedBy: The user who last modified this job. Automatic.
# ModifiedDate: The date this job was last modified. Automatic.
# OwnedBy: The owner, responsible for doing the job. Optional.
# Description: Description of the job. Required.
# DevNotes: Developer's comments. Optional.
Job: new
Status: closed
Project: jam
Severity: C
ReportedBy: miklos_fazekas
ReportedDate: 2002/12/18 07:11:56
ModifiedBy: shawn_hladky
ModifiedDate: 2008/04/13 13:00:54
OwnedBy: miklos_fazekas
Description:
This bug is a generalization of the bug submitted by
http://maillist.perforce.com/pipermail/jamming/2001-December/001481.html
There's a test case in
jam -f //guest/miklos_fazekas/jamfix/testcases/recursiveontarget/Test.jam
There's another more complicated test in:
jam -f //guest/miklos_fazekas/jamfix/testcases/recursiveontarget/Test2.jam
I think that the current behaviour see (http://maillist.perforce.com/pipermail/jamming/2001-December/001481.html) for the worst case,
is not acceptable.
There's a fix in change 2529
This fix will makes the variables bound to t read only as globals when promoted to globals. This makes the following program produce different results with Jam 2.4 (output is 2) and Jam2.5 (output is 1)
rule SetGlobal {
$(<) = $(>) ;
}
P on T = 1 ;
on T SetGlobal P : 2 ;
on T echo $(P) ;
DevNotes:
Fixed by change 2529