On 06/17/2014 10:46 AM, Peter Dimov wrote:
Bjørn Roald wrote:
I you do not mind, could you try in a clone for used testing only, or at least not where you have work you have not committed:
rm boost/filesystem.h
b2 headers
cd libs/filesystem
git reset --hard HEAD
then edit
boost/filesystem.h or libs/filesystem/include/boost/filesystem.h
Then compare them, if they are the same, then I am very interested in understanding why.
The files are different after I edit one of the two hard links.
OK, that is what I would expect. Thank you for testing,
When I edit in boost/ - which I never do - when I run the tests, b2 then sees the file as modified, but does not update the link in boost/ (the link being newer than the source in include/.)
When I edit in include/ - which is what I do - b2 sees the file as modified and updates the link in boost/ to point to it.
Moral of the story: don't edit the files in boost/.
The exceptions are the headers which b2 can't see as dependencies - those included via a macro. They never get their links updated unless one runs "b2 headers". We've fixed some of them, but not all.
Good! but even if all are fixed, it is not good to have these subtle issues where users have to be careful. Part of the problem is that many tools such as IDE's with built-in symbol browsing, debugers etc. will lead users to those headers they should not edit. -- Bjørn