Boost logo

Boost :

From: bjorn_at_[hidden]
Date: 2005-09-28 15:32:29


On Monday 26 September 2005 12:14, John Maddock wrote:

> > And then; how do I run test on all of "spoost" and generate test
> > reports that are suitable for evaluation? I guess there is a target
> > in boost.build of some sort I can try.
>
> Yep, use the Jamfile in /status.
>
> Suggest you run everything on the unmodified Boost, and then diff it with
> the result of the run on the modified version,

Did this, get 705 diffs, most comes as file paths and line number differences
when samme warnings or errors are reported in both builds... :-) Thinking
about trimming this before I do diff, and possibly running bcp without adding
headers to files to get rid of line number diffs. But I have not tried that
yet.

There are stuff in the diff that looks like real problems, but I have not dug
in yet.

> or second thoughts just
> check that the number of failures (if any) is the same.

************ build log for unmodified boost code ***************************

cd /dsk1/src/boost_1_33_0/status/
bjam
---------------------------------------------------------------------
*** If you don't need Boost.Python, you can ignore this section ***
*** pass --without-python to suppress this message in the future ***

skipping Boost.Python library build due to missing or incorrect configuration

couldn't find Python.h in "/usr/local/include/python2.2"

You can configure the location of your python installation by setting:
PYTHON_ROOT - currently "/usr/local"
PYTHON_VERSION - The 2-part python Major.Minor version number (e.g.
                 "2.2", NOT "2.2.1") - currently "2.2"

The following are automatically configured from PYTHON_ROOT if not
otherwise set:

    PYTHON_LIB_PATH - path to Python library object; currently
                            "/usr/local/lib/python2.2/config"
    PYTHON_INCLUDES - path to Python #include directories; currently
                            "/usr/local/include/python2.2"
---------------------------------------------------------------------
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(and if you don't know what ICU is then you probably don't need it).
...patience...
...patience...
...patience...
...patience...
...patience...
...found 37791 targets...
...updating 9832 targets...
MkDir1 ../bin
MkDir1 ../bin/boost
MkDir1 ../bin/boost/libs
MkDir1 ../bin/boost/libs/test
MkDir1 ../bin/boost/libs/test/build
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/compiler_log_formatter.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/execution_monitor.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/framework.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/plain_report_formatter.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/progress_monitor.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_collector.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_reporter.o

************* a lot of stuff cut out ****************************

...failed
RmTemps ../bin/boost/libs/test/test/minimal_test.test/gcc/debug/minimal_test.run...
execute-test ../bin/boost/libs/test/test/online_test.test/gcc/debug/online_test.run
**passed** ../bin/boost/libs/test/test/online_test.test/gcc/debug/online_test.test
execute-test ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.run
**passed** ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.test
**passed** ../bin/boost/status/timer_test.test/gcc/debug/timer_test.test
execute-test ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.run
**passed** ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.test
execute-test ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.run
**passed** ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.test
execute-test ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.run
**passed** ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.test
execute-test ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.run
**passed** ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.test
execute-test ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.run
**passed** ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.test
execute-test ../bin/boost/status/examples.test/gcc/debug/examples.run
...on 9800th target...
**passed** ../bin/boost/status/examples.test/gcc/debug/examples.test
execute-test ../bin/boost/status/io_test.test/gcc/debug/io_test.run
**passed** ../bin/boost/status/io_test.test/gcc/debug/io_test.test
execute-test ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.run
**passed** ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.test
...failed updating 19 targets...
...skipped 28 targets...
...updated 9785 targets...

Compilation exited abnormally with code 1 at Wed Sep 28 02:29:57

******************* end build log *************************************'

************ Build log for modified spoost code *********************

cd /tmp/bcp/spoost/status/
bjam
---------------------------------------------------------------------
*** If you don't need Boost.Python, you can ignore this section ***
*** pass --without-python to suppress this message in the future ***

skipping Boost.Python library build due to missing or incorrect configuration

couldn't find Python.h in "/usr/local/include/python2.2"

You can configure the location of your python installation by setting:
PYTHON_ROOT - currently "/usr/local"
PYTHON_VERSION - The 2-part python Major.Minor version number (e.g.
                 "2.2", NOT "2.2.1") - currently "2.2"

The following are automatically configured from PYTHON_ROOT if not
otherwise set:

    PYTHON_LIB_PATH - path to Python library object; currently
                            "/usr/local/lib/python2.2/config"
    PYTHON_INCLUDES - path to Python #include directories; currently
                            "/usr/local/include/python2.2"
---------------------------------------------------------------------
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(and if you don't know what ICU is then you probably don't need it).
...patience...
...patience...
...patience...
...patience...
...patience...
...found 37780 targets...
...updating 9832 targets...
MkDir1 ../bin
MkDir1 ../bin/boost
MkDir1 ../bin/boost/libs
MkDir1 ../bin/boost/libs/test
MkDir1 ../bin/boost/libs/test/build
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc
MkDir1 ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/compiler_log_formatter.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/execution_monitor.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/framework.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/plain_report_formatter.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/progress_monitor.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_collector.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/results_reporter.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/test_main.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/test_tools.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_log.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_main.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_monitor.o
gcc-C++-action ../bin/boost/libs/test/build/libboost_test_exec_monitor.a/gcc/debug/unit_test_parameters.o

************* a lot of stuff cut out ****************************

    if test $verbose -eq 0 ; then
        echo ====== BEGIN OUTPUT ======
        
cat ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.output
        echo ====== END OUTPUT ======
    fi
    exit $status

...failed
execute-test ../bin/boost/libs/test/test/errors_handling_test.test/gcc/debug/errors_handling_test.run...
**passed** ../bin/boost/status/timer_test.test/gcc/debug/timer_test.test
execute-test ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.run
**passed** ../bin/boost/status/simple_example_5.test/gcc/debug/simple_example_5.test
execute-test ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.run
**passed** ../bin/boost/status/simple_example_4.test/gcc/debug/simple_example_4.test
execute-test ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.run
**passed** ../bin/boost/status/simple_example_3.test/gcc/debug/simple_example_3.test
execute-test ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.run
**passed** ../bin/boost/status/simple_example_2.test/gcc/debug/simple_example_2.test
execute-test ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.run
**passed** ../bin/boost/status/simple_example_1.test/gcc/debug/simple_example_1.test
execute-test ../bin/boost/status/examples.test/gcc/debug/examples.run
**passed** ../bin/boost/status/examples.test/gcc/debug/examples.test
execute-test ../bin/boost/status/io_test.test/gcc/debug/io_test.run
**passed** ../bin/boost/status/io_test.test/gcc/debug/io_test.test
execute-test ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.run
**passed** ../bin/boost/status/tuple_test_bench.test/gcc/debug/tuple_test_bench.test
...failed updating 33 targets...
...skipped 49 targets...
...updated 9750 targets...

Compilation exited abnormally with code 1 at Wed Sep 28 11:50:50

...failed updating 19 targets...
...skipped 28 targets...
...updated 9785 targets...

******************* end build log *************************************'

note that the boost build had 37791 targets while spoost had 37780
37791-37780=11

Any idea why?

Be aware that I used bcp without the --cvs switch since I downloaded a clean
1.33.0 tar.gz package for the test - no CVS info in that download.

              RESULT SUMMARY:

                     targets failed skipped updated
boost 37791 19 28 9785
spoost 37780 33 49 9750

diff 11 14 21 35

I have the log files if you are interested in details, but they are
large so I don't want to post them in the list.

  -rw-rw-r-- 1 bjorn bjorn 3513039 Sep 28 08:53 bcp.log
  -rw-rw-r-- 1 bjorn bjorn 1375140 Sep 28 08:27 boost_build.log
  -rw-rw-r-- 1 bjorn bjorn 2113028 Sep 28 20:57 spoost_build.log

Note how much bigger the spoost_build.log is. There are definently some
long error listings in there ;-\

Maybe I should compile a list of the targets that failed, boost and spoost
side-by-side. If I post that on the list it may be that somebody see a
pattern that may be helpful.

Next step anyways is for me to dig in and find the problems.

One thought, would it be an idea if bcp was modified so it only replaces
files if it actually detect a difference from the file which is going to be
replaced on the disk? I have done that with some other code generators, and
it is helpfull in combination with incremental build capabilities to avoid
rebuilding too much too often. It could be turned on by a command line
switch. This may be important if it is not going to be tempting to start
modifying the generated source, to save build time.

> I'm a bit caught up with the tr1 review at present, so if I become a little
> unresponce this week you know why :-/

No problem, this is very much a spare time activity for me. No real rush :-)

I really appreciate your help John, thanks.

Bjørn


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk