Bug #7

String expansion/substitution bug

Added by Chris Chapman about 11 years ago. Updated almost 11 years ago.

Status:ClosedStart date:11/30/2008
Priority:NormalDue date:
Assignee:Joshua Jensen% Done:


Target version:0.4


Here's an odd one, found while trying to get some more of my projects to compile. I've attached a .zip containing the structure needed to repro.

1) Unzip to a folder
2) In a shell, navigate to the /software/tool folder
3) Run jam -d9 > output.txt
4) Look in output.txt line 13736 (or search for get INCLUDEPATHS)
5) Observe some bad substitution of any "../.." values in the input list, where ../.. is replaced with characters from the SubDir rule's target
6) Note that running jam from the /software/tool/EventBankBuilder rule does not suffer the same issue.

The /software/tool/EventBankBuilder/Jamfile.jam contains the stuff that's triggering the problem; I added multiple instances of the tinyxml folder with varying numbers of "../.." prefixes so that you can see better the bad substitutions.

I'm running a slightly custom Jambase, but nothing I think related to this - mostly it's extra definitions for Wii and PSP compilers.

test.zip (108 KB) Chris Chapman, 11/30/2008 08:54 AM


#1 Updated by Joshua Jensen about 11 years ago

  • Status changed from New to Assigned
  • Assignee set to Joshua Jensen

I tried this on both the shipping 0.2 build and the latest build. Both get the same results:

get INCLUDEPATHS = ../../software/core/core/include ../../software/core/Audio/include ../../software/tool/tinyxml ../software/tool/tinyxml ../../../software/tool/tinyxml ../../../../software/tool/tinyxml ../../../../../software/tool/tinyxml ../../../../../../software/tool/tinyxml ../../../../../../../software/tool/tinyxml ../../../../../../../../software/tool/tinyxml

I'm not seeing the issue. Can you clarify?



#2 Updated by Chris Chapman about 11 years ago

Sorry, bad guidance. The problem isn't on the get INCLUDEPATHS line, it's immediately below it; the output2.txt file in the zip shows the output I got and the problem - lines 13738 to 13747.

get INCLUDEPATHS = d:\cygwin/usr/local/dxsdk/include ../../software/core/core/include ../../software/core/Audio/include ../../software/tool/tinyxml ../software/tool/tinyxml ../../../software/tool/tinyxml ../../../../software/tool/tinyxml ../../../../../software/tool/tinyxml ../../../../../../software/tool/tinyxml ../../../../../../../software/tool/tinyxml ../../../../../../../../software/tool/tinyxml
list > d:/cygwin/usr/local/dxsdk/include <
list > Evesoftware/core/core/include <
list > Evesoftware/core/Audio/include <
list > Evesoftware/tool/tinyxml <
list > software/tool/tinyxml <
list > EventBsoftware/tool/tinyxml <
list > EventBanksoftware/tool/tinyxml <
list > EventBankBuisoftware/tool/tinyxml <
list > EventBankBuildesoftware/tool/tinyxml <
list > EventBankBuilder/.software/tool/tinyxml <
list > EventBankBuilder/../.software/tool/tinyxml <
expanded to d:/cygwin/usr/local/dxsdk/include Evesoftware/core/core/include Evesoftware/core/Audio/include Evesoftware/tool/tinyxml software/tool/tinyxml EventBsoftware/tool/tinyxml EventBanksoftware/tool/tinyxml EventBankBuisoftware/tool/tinyxml EventBankBuildesoftware/tool/tinyxml EventBankBuilder/.software/tool/tinyxml EventBankBuilder/../.software/tool/tinyxml

The issue is that the INCLUDEPATHS list is being expanded and messed up, and later code which uses the INCLUDEPATHS list is getting the malformed data.

#3 Updated by Joshua Jensen almost 11 years ago

  • Target version changed from 0.2 to 0.3

#4 Updated by Joshua Jensen almost 11 years ago

  • Target version changed from 0.3 to 0.4

#5 Updated by Joshua Jensen almost 11 years ago

  • Status changed from Assigned to Closed

I don't remember specifically fixing this, but it doesn't currently seem to be repro'ing in JamPlus 0.3. If it is, I want to get the fix in for it immediately. Just open the bug back up.

Also available in: Atom PDF