Boost logo

Boost-Build :

Subject: Re: [Boost-build] BUMPITTY BUMP: [git] genrating forward headers
From: Bjørn Roald (bjorn_at_[hidden])
Date: 2013-08-25 19:41:41


On 08/24/2013 11:40 PM, Bjørn Roald wrote:
> On 08/23/2013 07:27 PM, Bjørn Roald wrote:
>
>>> I'm happy to help you with the b2 core language, but I've been out of
>>> the loop on b2 for so long that even there I probably shouldn't be
>>> considered an authority. Volodya is really the guy who knows, and since
>>> he has offered to help I suggest you ask questions generously ;-)
>>
>> Thanks a lot, both you and Volodya has offered to help, so I am hopeful
>> we are in good shape. I will look at the TODOs today and start some
>> testing in both layouts, maybe posting a new patch tomorrow and
>> questions as needed.
>
> I have applied my patch + changes to SVN trunk and git repo.
>
> My tests running in SVN trunk:
> ./b2
> ...
> ...found 11726 targets...
> ok
>
> cd status
> ../b2 -j 4
> ...
> ...failed updating 81 targets...
> ...skipped 142 targets...
> ...updated 47720 targets...
>
> git layout are now giving similar results,
> ./b2
> ...
> ...found 16365 targets...
> ok
>
> cd status
> ../b2 -j 4
> ...
> ...failed updating 83 targets...
> ...skipped 154 targets...
> ...updated 47445 targets...

With a clean SVN trunk checkout, I get 83 failed and 143 skipped targets
running tests in status. This test run did not complete before I killed
a qi_match_manip1 process which seemed to be spinning forever. There are
some differences in the failed tests, but I assume that is due to
changes sources between the trunk versions I have tested. See attached
failure_diffs.txt comparing two log files with sorted lines starting
with ...failure.

diff modular-boost-status-test-201308240800.log.failed
201308252000-boost-trunk-clean.log.failed > failure_diffs.txt

I checked my failures against
http://www.boost.org/development/tests/trunk/developer/summary.html
and all the failures I get are more or less consistent with other
testers and the state of trunk right now, so I conclude building with
the patched Jamfiles works in both layouts and does not cause additional
test failures in SVN layout.

I have not tested any of the stuff in the tools folder built by b2.
Which of them need testing in SVN layout before we commit the patch?

examples in libs are not tested, the following relevant jamfiles have
changes:

libs/spirit/example/qi/json/build/Jamfile
libs/python/example/tutorial/Jamroot
libs/python/example/quickstart/Jamroot
libs/python/example/Jamroot
libs/geometry/index/example/Jamfile.v2
libs/numeric/odeint/examples/vexcl/Jamfile.v2
libs/signals2/example/Jamfile.v2

has changes, has these are not tested. In particular, python/example
has its own Jamroot. Dave, maybe you could take a look if that still
works as expected.

Two known issues remain:

1. Fix independence of status test build:
cd $BOOST_ROOT/status
b2
should works without doing
cd $BOOST_ROOT
b2 headers
first.

2. Fix independence of header install:
cd $BOOST_ROOT
b2 install
should works without doing
cd $BOOST_ROOT
b2 headers
first.
This can according to Steven be fixed by making the install glob point
to correct headers. I need someone to point me to where this need to be
fixed, as this is not clear to me.

These two issues are only a minor problem as all of the following works
in modular layout. The headers target is implicit at $BOOST_ROOT
folder, thus it is built at the first invocation of b2 below:
cd $BOOST_ROOT
b2
b2 install
cd libs/filesystem/test
b2
cd $BOOST_ROOT/status
b2

If you don't care about building all the libraries, you can do:
cd $BOOST_ROOT
b2 headers
cd libs/filesystem/test
b2

which is quicker.

I have just started testing some cleanup in patches as it seems to me
the use of BOOST_MODULARLAYOUT as a condition test in Jamroot may not be
needed. The all-headers and numeric-headers local variables are empty
in SVN layout, so I assume the first parameter list in

alias headers : $(all-headers)-headers
numeric-$(numeric-headers)-headers : : : <include>. ;

will collapse to empty list in SVN layout, resulting in the same alias
target as used to be hard-coded with empty first parameter. I am
testing that out now, patch is attached. Be warned that this patch is
pretty much as Steven did not want to commit it, so use with care.

I will re-run the tests with GCC 4.6 on 64 bit ubuntu 12.04 by tomorrow
with this latest patch.

--
Bjørn





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