Boost logo

Boost-Build :

Subject: Re: [Boost-build] [Boost-commit] svn:boost r75765 - trunk/tools/build/v2/engine
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-12-01 23:48:10


AMDG

On 12/01/2011 01:45 PM, Vladimir Prus wrote:
> On 01/12/11 23:34, steven_at_[hidden] wrote:
>>
>> OBJECT * short_path_to_long_path( OBJECT * short_path )
>> {
>> <snip>
>
> Should we even be calling this on gristed paths?
>

After some thought I've concluded that bindtarget
should not call short_path_to_long_path ever.

Rationale:

a) Removing the call doesn't affect building Boost.
b) short_path_to_long path only works for files
   that exist. Thus, if a target is generated,
   short_path_to_long_path causes inconsistent
   behavior depending on whether the file already
   exists or not. In the worst case we can have
   a bizarre situation like:

# file.jam
var = global ;
var on target = target ;
ECHO [ on Target return $(var) ] ;
actions build
{
    echo string > $(<)
}
build target ;
UPDATE target ;

$ b2 -d0 -f file.jam
global
$ b2 -d0 -f file.jam
target

c) short_path_to_long_path only works for targets
   that are bound relative to the current working
   directory or use an absolute path. If SEARCH
   or LOCATE is set, it makes no sense.

If we're going to call short_path_to_long_path
at all, it should probably be in search, since
that's where targets are bound to physical
file system locations.

In Christ,
Steven Watanabe


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk