Просмотр исходного кода

Merge from trunk.

[SVN r42243]
Daniel James 18 лет назад
Родитель
Сommit
9c2c991024

+ 1 - 1
libs/asio

@@ -1 +1 @@
-Subproject commit 8cf596dd58af7b784eec4e919e8c1fe56b8ffee2
+Subproject commit cf9e0d5d293956700b0dd0520eaa6bf401b2033e

+ 1 - 1
libs/bimap

@@ -1 +1 @@
-Subproject commit d7c04131391d103c03ea405025a2a1920f8efc08
+Subproject commit 9c79b4af17860bfe550ee641af9f0b1acd9fb49a

+ 1 - 1
libs/circular_buffer

@@ -1 +1 @@
-Subproject commit 110096854703e78f7e49352b43be36ba7252a833
+Subproject commit a74f2d445b7fe53fedd8d76ceabd6840cc7d440d

+ 1 - 1
libs/concept_check

@@ -1 +1 @@
-Subproject commit 8c7cca55bb453745d006ffe7cc5d9d68e5f57c4a
+Subproject commit 56fbc6a844e135c201e5fb17b6b1e2247c884d49

+ 1 - 1
libs/config

@@ -1 +1 @@
-Subproject commit f35c3d6d4178de0724f5e917abeb25b036f6297a
+Subproject commit 67139210bdacaad7070f5586da0833a34159ac1f

+ 1 - 1
libs/conversion

@@ -1 +1 @@
-Subproject commit 07a4656255d64e6212ca8d54d09cbe90aa8ba90d
+Subproject commit 7b9faca0b476526d64b8f724056d8b65c079203e

+ 1 - 1
libs/format

@@ -1 +1 @@
-Subproject commit 32c8d99076cb7cb4dac3e2cd6f326a6f5aaa3b30
+Subproject commit 9c7494b879474155a5bbe76b8d4141e1ee0d57c3

+ 1 - 1
libs/functional

@@ -1 +1 @@
-Subproject commit 27122781412508717106e6e7a6a5910384ae4df8
+Subproject commit c33483eeba560cea051bddaff2dc116e93ad8f2b

+ 1 - 1
libs/fusion

@@ -1 +1 @@
-Subproject commit 47a48f42942f85ab861cd94f82ea5e7e516218fb
+Subproject commit 87586de9815e09e9b2dec9d7bccd22ed40f965e5

+ 1 - 1
libs/gil

@@ -1 +1 @@
-Subproject commit 8f54e7b05a85bb8c095c39e1ab7cdba30944bc69
+Subproject commit 5460f9643df3867554f6fefff154764cbf1de9db

+ 1 - 1
libs/intrusive

@@ -1 +1 @@
-Subproject commit aea7064e021ed5f06cbd2cbdf60d3997056955e8
+Subproject commit 6973b139374bf0ccdb4fdc1a11e794d4a948527d

+ 1 - 1
libs/io

@@ -1 +1 @@
-Subproject commit f4c0cb9cb15d1037f0846687208a4bb2fee4e00e
+Subproject commit 8e7118b87ac6bd4d15b8b03693a8fa462d1fdf85

+ 1 - 1
libs/iostreams

@@ -1 +1 @@
-Subproject commit 16d64d481368fa91c7dfac93a21ef0226ec9c615
+Subproject commit 0ffb5133898b5a43085197215b4332c18938205d

+ 1 - 1
libs/iterator

@@ -1 +1 @@
-Subproject commit b4ee8ac96dfbc6a081d9963452bbace356db96b9
+Subproject commit c73e4d23a7bdcc02ec60815012c80fbdde6bb83d

+ 13 - 7
libs/maintainers.txt

@@ -1,3 +1,13 @@
+# Copyright (C) 2005, 2007  Douglas Gregor <doug.gregor -at- gmail.com>
+# Distributed under the Boost Software License, Version 1.0. 
+# See www.boost.org/LICENSE_1_0.txt
+#
+# This file lists the names and e-mail addresses of the maintainers
+# of each Boost library, and is used by the regression-reporting 
+# scripts to direct e-mail related to those libraries to the 
+# maintainers. When making changes to this file, please be careful
+# to closely follow the format of the library.
+
 algorithm/minmax      Herve Bronnimann <hbr -at- poly.edu>
 algorithm/minmax      Herve Bronnimann <hbr -at- poly.edu>
 algorithm/string      Pavol Droba <droba -at- topmail.sk>
 algorithm/string      Pavol Droba <droba -at- topmail.sk>
 any                   Alexander Nasonov <alexander.nasonov -at- gmail.com>
 any                   Alexander Nasonov <alexander.nasonov -at- gmail.com>
@@ -20,8 +30,8 @@ format                Samuel Krempp <krempp -at- crans.ens-cachan.fr>
 function              Douglas Gregor <dgregor -at- cs.indiana.edu>
 function              Douglas Gregor <dgregor -at- cs.indiana.edu>
 functional
 functional
 functional/hash       Daniel James <daniel_james -at- fmail.co.uk>
 functional/hash       Daniel James <daniel_james -at- fmail.co.uk>
-fusion                Joel de Guzman <joel -at- boost-consulting.com>, Dan Marsden <danmarsden -at- yahoo.co.uk>
-function_types        Tobias Schwinger tschwinger -at- isonews2.com
+fusion                Joel de Guzman <joel -at- boost-consulting.com>, Dan Marsden <danmarsden -at- yahoo.co.uk>, Tobias Schwinger <tschwinger -at- isonews2.com>
+function_types        Tobias Schwinger <tschwinger -at- isonews2.com>
 gil                   Lubomir Bourdev <lbourdev -at- adobe.com>, Hailin Jin <hljin -at- adobe.com>
 gil                   Lubomir Bourdev <lbourdev -at- adobe.com>, Hailin Jin <hljin -at- adobe.com>
 graph                 Douglas Gregor <dgregor -at- cs.indiana.edu>
 graph                 Douglas Gregor <dgregor -at- cs.indiana.edu>
 integer               Daryle Walker <darylew -at- hotmail.com>
 integer               Daryle Walker <darylew -at- hotmail.com>
@@ -54,7 +64,7 @@ regex                 John Maddock <john -at- johnmaddock.co.uk>
 serialization         Robert Ramey <ramey -at- rrsd.com>
 serialization         Robert Ramey <ramey -at- rrsd.com>
 signals               Douglas Gregor <dgregor -at- cs.indiana.edu>
 signals               Douglas Gregor <dgregor -at- cs.indiana.edu>
 smart_ptr             Beman Dawes <bdawes -at- acm.org>, Peter Dimov <pdimov -at- mmltd.net>
 smart_ptr             Beman Dawes <bdawes -at- acm.org>, Peter Dimov <pdimov -at- mmltd.net>
-spirit                Spirit Development <spirit-devel -at- lists.sourceforge.net>
+spirit                Joel de Guzman <joel -at- boost-consulting.com>, Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
 statechart            Andreas Huber <ahd6974-boostorg -at- yahoo.com>
 statechart            Andreas Huber <ahd6974-boostorg -at- yahoo.com>
 static_assert         John Maddock <john -at- johnmaddock.co.uk>
 static_assert         John Maddock <john -at- johnmaddock.co.uk>
 test                  Gennadiy Rozental <gennadiy.rozental -at- thomson.com>
 test                  Gennadiy Rozental <gennadiy.rozental -at- thomson.com>
@@ -71,7 +81,3 @@ variant               Eric Friedman <ericbrandon -at- gmail.com>
 wave                  Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
 wave                  Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
 xpressive             Eric Niebler <eric -at- boost-consulting.com>
 xpressive             Eric Niebler <eric -at- boost-consulting.com>
 
 
-© Copyright Douglas Gregor 2005
-Distributed under the Boost Software License, Version 1.0. See www.boost.org/LICENSE_1_0.txt
-
-

+ 1 - 1
libs/math

@@ -1 +1 @@
-Subproject commit e301c168d3f1a1c1d2731dd4636052ad6b519aca
+Subproject commit 588678cf49368e08a01dcc33898884d2c885996a

+ 1 - 1
libs/numeric/interval

@@ -1 +1 @@
-Subproject commit f7091080f20472cdadb55d460c6f451db59e86f3
+Subproject commit 6d52ad91234c2b3f005ef65a5aa9e05475157bef

+ 37 - 5
libs/platform_maintainers.txt

@@ -1,6 +1,38 @@
-gcc-3_3-darwin	Noel Belcourt <kbelco -at- sandia.gov>
-cw-9_5-darwin	Noel Belcourt <kbelco -at- sandia.gov>
-hp_cxx-*_tru64  Markus Schöpflin <markus.schoepflin -at- comsoft.de>
+# Copyright (C) 2005, 2007  Douglas Gregor <doug.gregor -at- gmail.com>
+# Distributed under the Boost Software License, Version 1.0. 
+# See www.boost.org/LICENSE_1_0.txt
+#
+# This file lists the names and e-mail addresses of the maintainers
+# of each Boost testing platform , and is used by the regression-
+# reporting scripts to direct e-mail related to those platforms to the 
+# maintainers. When making changes to this file, please be careful
+# to closely follow the format of the library.
+#
+# The format of each line is:
+#
+# Runner      Platform      Email addresses
 
 
-© Copyright Douglas Gregor 2005
-Distributed under the Boost Software License, Version 1.0. See www.boost.org/LICENSE_1_0.txt
+Sandia-darwin-intel    darwin-4.0.1	       Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-darwin-ppc      darwin-4.0.1	       Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-intel           intel-linux-8.1         Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-intel           intel-linux-9.0         Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-intel           intel-linux-9.1         Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-gcc             gcc-4.2.1               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-gcc             gcc-3.4.3               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-gcc             gcc-4.0.1               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-gcc-64          gcc-4.2.1               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-gcc-64          gcc-4.1.1               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-sun             gcc-3.4.6               Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-sun             sun-5.7                 Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-sun             sun-5.8                 Noel Belcourt <kbelco -at- sandia.gov>
+Sandia-sun             sun-5.9                 Noel Belcourt <kbelco -at- sandia.gov>
+"Martin Wille x86_64"  gcc-4.2.1_linux_x86_64  Martin Wille <mw8329 -at- yahoo.com.au>
+"Martin Wille x86_64"  gcc-3.4.6_linux_x86_64  Martin Wille <mw8329 -at- yahoo.com.au>
+Huang-WinXP-x86_32     intel-vc8-win-10.0      Sean Huang <huangsean -at- hotmail.com>
+Huang-WinXP-x86_32     msvc-8.0                Sean Huang <huangsean -at- hotmail.com>
+Huang-Vista-x64        msvc-8.0_64             Sean Huang <huangsean -at- hotmail.com>
+Huang-Vista-x64        intel-vc8-win-10.0_x86_64  Sean Huang <huangsean -at- hotmail.com>
+Huang-Vista-x64        msvc-8.0_x86_64         Sean Huang <huangsean -at- hotmail.com>
+IBM_Canada_Ltd         vacpp                   Chris Cambly <ccambly -at- ca.ibm.com>
+RW_WinXP_VC            msvc-7.1                Richard Webb <richard.webb -at- boldonjames.com>
+RW_WinXP_VC            msvc-9.0                Richard Webb <richard.webb -at- boldonjames.com>

+ 1 - 1
libs/ptr_container

@@ -1 +1 @@
-Subproject commit 7abbe5b0679783196ba384ceb33c31595b18300e
+Subproject commit fd147019d0e77631287ce3f80ec3d9505909cb81

+ 1 - 1
libs/python

@@ -1 +1 @@
-Subproject commit cb1b967c3958a8d33ae48d12ab3354c1163344bd
+Subproject commit 2b1967c72d4ecca0014cd5ff43d9fd5e43473a20

+ 1 - 1
libs/random

@@ -1 +1 @@
-Subproject commit 0bf8a490b9c19f0b571061cb232e96a5c2a48bfa
+Subproject commit 5fe2eee51b3831de81ea8dc9e8ca72c53471d205

+ 1 - 1
libs/regex

@@ -1 +1 @@
-Subproject commit 3eda3d3108aefeccb2923a4c335e4d354286517e
+Subproject commit e0cf2f4358bbfc7a3f18faf5e6cb3e58b7739661

+ 1 - 1
libs/test

@@ -1 +1 @@
-Subproject commit 352d02cc9ec398942f03728373345e1c9f9bc457
+Subproject commit b42028d82e79c8986d317444e0e18860373b51d8

+ 1 - 1
libs/thread

@@ -1 +1 @@
-Subproject commit 1b56fe63d1873fc477fde19f5831d06075cdf183
+Subproject commit 5af025cdceb803990432f37b44b811c7056f215c

+ 1 - 1
libs/tr1

@@ -1 +1 @@
-Subproject commit dbbf7db700c10ff25d8659130893ded7903ab745
+Subproject commit f7ca2ff6e85fc38db2c94178f6ced016b80bcc87

+ 1 - 1
libs/type_traits

@@ -1 +1 @@
-Subproject commit d50176adc63b491a3654c4ed6e43b1c2e8ccd6e3
+Subproject commit d328f6f0c04a72eeaa3064cf1eca603ea081c300

+ 1 - 1
libs/utility

@@ -1 +1 @@
-Subproject commit 1a4aa43cad551ad3dd36da6014ba5210e0bcae77
+Subproject commit e76c779b8c5032503e7d8e12167018491d99bb10

+ 66 - 63
status/explicit-failures-markup.xml

@@ -15,11 +15,10 @@
         - http://syseng.nist.gov/b2bTestbed/projects/xmlvalidation/instance_validation.html
         - http://syseng.nist.gov/b2bTestbed/projects/xmlvalidation/instance_validation.html
         - http://xmlvalidation.com/
         - http://xmlvalidation.com/
 
 
-     With both tools you need to provide both the explicit-failures-markup.xml
-     file as the XML document and the explicit-failures.xsd as the schema
-     document. Use the browse buttons to select them from your local hard
-     drive.
-
+    With both tools you need to provide both the explicit-failures-markup.xml
+    file as the XML document and the explicit-failures.xsd as the schema
+    document. Use the browse buttons to select them from your local hard
+    drive.
     -->
     -->
 
 
     <!-- /////////////// Toolsets /////////////// -->
     <!-- /////////////// Toolsets /////////////// -->
@@ -31,6 +30,7 @@
     <mark-toolset name="gcc-4.2.1_linux_x86_64" status="required"/>
     <mark-toolset name="gcc-4.2.1_linux_x86_64" status="required"/>
     <mark-toolset name="intel-linux-9.0" status="required"/>
     <mark-toolset name="intel-linux-9.0" status="required"/>
     <mark-toolset name="intel-vc8-win-10.0" status="required"/>
     <mark-toolset name="intel-vc8-win-10.0" status="required"/>
+    <mark-toolset name="intel-win-10.0" status="required"/>
     <mark-toolset name="msvc-7.1" status="required"/>
     <mark-toolset name="msvc-7.1" status="required"/>
     <mark-toolset name="msvc-8.0" status="required"/>
     <mark-toolset name="msvc-8.0" status="required"/>
     <mark-toolset name="msvc-8.0_64" status="required"/>
     <mark-toolset name="msvc-8.0_64" status="required"/>
@@ -336,9 +336,14 @@
             <note refid="39" author="Boris Gubenko"/>
             <note refid="39" author="Boris Gubenko"/>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures>
         <mark-expected-failures>
-                <test name="test_bimap_serialization"/>
-                <toolset name="gcc-mingw-3.4.5"/>
-                <note author="Matias Capeletto">Compiler bug.</note>
+            <test name="test_bimap_serialization"/>
+            <toolset name="gcc-mingw-3.4.5"/>
+            <note author="Matias Capeletto">Compiler bug.</note>
+        </mark-expected-failures>
+        <mark-expected-failures>
+            <test name="test_bimap_property_map"/>
+            <toolset name="gcc-3.4.6_linux_x86_64"/>
+            <note author="Matias Capeletto">Time out.</note>
         </mark-expected-failures>
         </mark-expected-failures>
     </library>
     </library>
 
 
@@ -443,6 +448,16 @@
                 <note author="Jeremy Siek" refid="1"/>
                 <note author="Jeremy Siek" refid="1"/>
             </mark-failure>
             </mark-failure>
         </test>
         </test>
+        <test name="stl_concept_check">
+          <mark-failure>
+            <toolset name="hp_cxx*"/>
+            <note author="Markus Schoepflin" date="09 Dec 2007">
+              This version of the Rogue Wave library fails to provide all
+              needed addition operators for the iterator type and the
+              difference type of std::deque.
+            </note>
+          </mark-failure>
+        </test>
     </library>
     </library>
 
 
     <!-- config -->
     <!-- config -->
@@ -1520,8 +1535,8 @@
             </note>
             </note>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures>
         <mark-expected-failures>
-            <test name="interfaces_example"/>
-            <toolset name="msvc-7.1"/>
+            <test name="interface_example"/>
+            <toolset name="msvc-7.1*"/>
             <note author="Tobias Schwinger">
             <note author="Tobias Schwinger">
               Overload selection does not work in some assignment contexts with this compiler.
               Overload selection does not work in some assignment contexts with this compiler.
             </note>
             </note>
@@ -1778,6 +1793,8 @@
             <toolset name="vacpp*"/>
             <toolset name="vacpp*"/>
             <toolset name="pathscale*"/>
             <toolset name="pathscale*"/>
             <toolset name="intel-linux-8.*"/>
             <toolset name="intel-linux-8.*"/>
+            <toolset name="gcc-3.4.2_hpux_pa_risc"/>
+            <toolset name="gcc-3.4.6_linux_ia64"/>
             <note author="Ion Gazta&#241;aga">
             <note author="Ion Gazta&#241;aga">
                 The compiler does not support features that are essential for the library.
                 The compiler does not support features that are essential for the library.
             </note>
             </note>
@@ -1807,6 +1824,8 @@
         <mark-expected-failures>
         <mark-expected-failures>
             <test name="doc_offset_ptr" />
             <test name="doc_offset_ptr" />
             <toolset name="acc"/>
             <toolset name="acc"/>
+            <toolset name="gcc-3.4.2_hpux_pa_risc"/>
+            <toolset name="gcc-3.4.6_linux_ia64"/>
             <note author="Ion Gazta&#241;aga">
             <note author="Ion Gazta&#241;aga">
                 The compiler is not supported by Interprocess.
                 The compiler is not supported by Interprocess.
             </note>
             </note>
@@ -2320,6 +2339,8 @@ for more information.
             <test name="optional_test_ref"/>
             <test name="optional_test_ref"/>
             <toolset name="darwin-4.0.1"/>
             <toolset name="darwin-4.0.1"/>
             <toolset name="gcc-mingw-3.4.5"/>
             <toolset name="gcc-mingw-3.4.5"/>
+            <toolset name="gcc-3.4.2_hpux_pa_risc"/>
+            <toolset name="gcc-3.4.6_linux_ia64"/>
             <toolset name="gcc-4.2.1*"/>
             <toolset name="gcc-4.2.1*"/>
             <toolset name="gcc-4.1.2_sunos_i86pc"/>
             <toolset name="gcc-4.1.2_sunos_i86pc"/>
         		<note author="Fernando Cacciola" refid="2"/>
         		<note author="Fernando Cacciola" refid="2"/>
@@ -4397,26 +4418,26 @@ for more information.
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
         <mark-expected-failures reason="?">
             <test name="TransitionTest*"/>
             <test name="TransitionTest*"/>
-            <toolset name="intel-linux*"/>
-            <toolset name="pathscale*"/>
+            <toolset name="intel-linux-9.1"/>
             <note author="Andreas Huber" refid="29"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
         <mark-expected-failures reason="?">
-          <test name="TransitionTest*"/>
-          <test name="InvalidTransitionTest1Relaxed"/>
-          <test name="StopWatchExample"/>
-          <toolset name="vacpp-8.0"/>
-          <note author="Andreas Huber" refid="29"/>
+            <test name="TransitionTestBoth"/>
+            <test name="TransitionTestNative"/>
+            <toolset name="pathscale-3.1"/>
+            <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
         <mark-expected-failures reason="?">
-            <test name="CustomReactionTest*"/>
-            <toolset name="acc*"/>
+            <test name="TransitionTest*"/>
+            <test name="InvalidTransitionTest1Relaxed"/>
+            <test name="StopWatchExample"/>
+            <toolset name="vacpp-8.0"/>
             <note author="Andreas Huber" refid="29"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
         <mark-expected-failures reason="?">
-          <test name="HistoryTestRelaxed"/>
-          <toolset name="intel-linux-9.1"/>
-          <note author="Andreas Huber" refid="29"/>
+            <test name="CustomReactionTest*"/>
+            <toolset name="acc*"/>
+            <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         </mark-expected-failures>
         <mark-expected-failures>
         <mark-expected-failures>
             <test name="StopWatch*"/>
             <test name="StopWatch*"/>
@@ -4541,11 +4562,13 @@ for more information.
         <mark-expected-failures>
         <mark-expected-failures>
             <test name="prg_exec_fail2"/>
             <test name="prg_exec_fail2"/>
             <toolset name="darwin-4.0.1"/>
             <toolset name="darwin-4.0.1"/>
+            <toolset name="gcc-3.4.2_hpux_pa_risc"/>
+            <toolset name="gcc-3.4.6_linux_ia64"/>
             <note author="Vladimir Prus">
             <note author="Vladimir Prus">
               The test verifies that Boost.Test detects division by
               The test verifies that Boost.Test detects division by
-              zero. Division by zero has an undefined result
-              on PowerPC processors. The compiler has to emit extra
-              code to assert that the divisor isn't zero.
+              zero. It fails on PowerPC, PA-RISC and Linux ia64. On PowerPC
+              processors, division has an undefined result. The compiler
+              has to emit extra code to assert that the divisor isn't zero.
 
 
               Compiler options -fno-trapping-math and -fnon-call-exceptions
               Compiler options -fno-trapping-math and -fnon-call-exceptions
               might affect this. However, in default configuration
               might affect this. However, in default configuration
@@ -4556,6 +4579,7 @@ for more information.
         <mark-expected-failures>
         <mark-expected-failures>
             <test name="prg_exec_fail3"/>
             <test name="prg_exec_fail3"/>
             <toolset name="cw-9.4"/>
             <toolset name="cw-9.4"/>
+            <toolset name="gcc-3.4.6_linux_ia64"/>
             <note author="Vladimir Prus">
             <note author="Vladimir Prus">
               The test appears to test that failed assertion result
               The test appears to test that failed assertion result
               in non-zero exit status.  That seems to be not the
               in non-zero exit status.  That seems to be not the
@@ -4616,7 +4640,6 @@ for more information.
             <test name="test_tss_lib"/>
             <test name="test_tss_lib"/>
             <toolset name="borland-*"/>
             <toolset name="borland-*"/>
             <toolset name="cw-9.4"/>
             <toolset name="cw-9.4"/>
-            <toolset name="gcc-mingw*"/>
             <note author="Roland Schwarz" date="2006-12-14">
             <note author="Roland Schwarz" date="2006-12-14">
                 When a thread ends, tss data needs to be cleaned up. This process
                 When a thread ends, tss data needs to be cleaned up. This process
                 is mostly automatic. When threads are launched by the Boost.Thread API
                 is mostly automatic. When threads are launched by the Boost.Thread API
@@ -4631,6 +4654,23 @@ for more information.
                 finalization.
                 finalization.
             </note>
             </note>
         </mark-expected-failures>
         </mark-expected-failures>
+        <mark-expected-failures>
+            <test name="test_thread_move"/>
+            <test name="test_thread_move_lib"/>
+            <toolset name="borland-*"/>
+            <note author="Anthony Williams" date="2007-12-14">
+The Borland compiler fails to bind rvalues to the thread move constructor,
+choosing instead to bind them to the private (and unimplemented) copy constructor.
+            </note>
+        </mark-expected-failures>
+        <mark-expected-failures>
+            <test name="test_hardware_concurrency"/>
+            <test name="test_hardware_concurrency_lib"/>
+            <toolset name="*tru64"/>
+            <note author="Anthony Williams" date="2007-12-21">
+boost::thread::hardware_concurrency is not implemented and always returns 0 on this platform.
+            </note>
+        </mark-expected-failures>
     </library>
     </library>
 
 
     <!-- tuple -->
     <!-- tuple -->
@@ -5457,43 +5497,6 @@ for more information.
                 versions of the compiler (VC 7.1 and greater).
                 versions of the compiler (VC 7.1 and greater).
             </note>
             </note>
         </mark-expected-failures>
         </mark-expected-failures>
-        <mark-expected-failures>
-            <test name="value_init_test"/>
-            <toolset name="borland-5.6*"/>
-            <toolset name="borland-5.8*"/>
-            <toolset name="borland-5.9*"/>
-            <note author="Niels Dekker">
-                This test typically fails on Borland C++, because of an issue described by
-                <a href="http://svn.boost.org/trac/boost/ticket/1459">
-                ticket #1459, "value_initialized leaves data uninitialized,
-                when using Borland"</a>. The issue is caused by a 
-                compiler bug, reported at the website of Codegear/Borland:
-                <a href="http://qc.codegear.com/wc/qcmain.aspx?d=51854">
-                Report #51854, "Value-initialization: POD struct
-                should be zero-initialized"</a>.
-            </note>
-        </mark-expected-failures>
-        <mark-expected-failures>
-            <test name="value_init_test"/>
-            <toolset name="gcc-3.3*"/>
-            <toolset name="gcc-3.4*"/>
-            <toolset name="gcc-4.0*"/>
-            <toolset name="gcc-4.1*"/>
-            <toolset name="gcc-4.2*"/>
-            <toolset name="gcc-mingw-3.4*"/>
-            <note author="Niels Dekker">
-                This test typically fails on GCC, because of an issue described by
-                <a href="http://svn.boost.org/trac/boost/ticket/1491">
-                ticket #1491, "value_initialized leaves data uninitialized,
-                when using GCC"</a>. The issue is caused by some GCC compiler bugs:  
-                <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111">
-                Value-initialization of POD base class doesn't initialize members</a>,
-                reported by Jonathan Wakely, and
-                <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916">
-                Default constructor fails to initialize array members</a>,
-                reported by Michael Elizabeth Chastain. 
-            </note>
-        </mark-expected-failures>
         <mark-expected-failures>
         <mark-expected-failures>
             <test name="operators_test"/>
             <test name="operators_test"/>
             <toolset name="gcc-3.4.5_linux_x86_64"/>
             <toolset name="gcc-3.4.5_linux_x86_64"/>

+ 1 - 1
tools/boostbook

@@ -1 +1 @@
-Subproject commit 35f265d826b630bbba08b8955cd52c512ed028ba
+Subproject commit 077a5af15f047efe144b18605fc996aa70aa5a8a

+ 1 - 1
tools/build

@@ -1 +1 @@
-Subproject commit c5ca6c051fc5768731d9bf48738c040a2f778aa6
+Subproject commit ce154631960b3e8852fb22173e8b47c324cd728c

+ 240 - 31
tools/regression/xsl_reports/email_maintainers.py

@@ -16,6 +16,7 @@ import sys
 
 
 report_author = "Douglas Gregor <dgregor@osl.iu.edu>"
 report_author = "Douglas Gregor <dgregor@osl.iu.edu>"
 boost_dev_list = "Boost Developer List <boost@lists.boost.org>"
 boost_dev_list = "Boost Developer List <boost@lists.boost.org>"
+boost_testing_list = "Boost Testing List <boost-testing@lists.boost.org>"
 
 
 def sorted_keys( dict ):
 def sorted_keys( dict ):
     result = dict.keys()
     result = dict.keys()
@@ -30,6 +31,7 @@ class Platform:
     def __init__(self, name):
     def __init__(self, name):
         self.name = name
         self.name = name
         self.failures = list()
         self.failures = list()
+        self.maintainers = list()
         return
         return
 
 
     def addFailure(self, failure):
     def addFailure(self, failure):
@@ -39,6 +41,13 @@ class Platform:
     def isBroken(self):
     def isBroken(self):
         return len(self.failures) > 300
         return len(self.failures) > 300
 
 
+    def addMaintainer(self, maintainer):
+        """
+        Add a new maintainer for this platform.
+        """
+        self.maintainers.append(maintainer)
+        return
+
 class Failure:
 class Failure:
     """
     """
     A single test case failure in the report.
     A single test case failure in the report.
@@ -200,6 +209,67 @@ There are failures in these libraries you maintain:
 
 
         return message
         return message
 
 
+class PlatformMaintainer:
+    """
+    Information about the platform maintainer of a library
+    """
+    def __init__(self, name, email):
+        self.name = name
+        self.email = email
+        self.platforms = list()
+        return
+
+    def addPlatform(self, runner, platform):
+        self.platforms.append(platform)
+        return
+
+    def composeEmail(self, report):
+        """
+        Composes an e-mail to this platform maintainer if one or more of
+        the platforms s/he maintains has a large number of failures.
+        Returns the e-mail text if a message needs to be sent, or None
+        otherwise.
+        """
+
+        # Determine if we need to send a message to this developer.
+        requires_message = False
+        for platform in self.platforms:
+            if platform.isBroken():
+                requires_message = True
+                break
+
+        if not requires_message:
+            return None
+
+        # Build the message header
+        message = """From: Douglas Gregor <dgregor@osl.iu.edu>
+To: """
+        message += self.name + ' <' + self.email + '>'
+        message += """
+Reply-To: boost@lists.boost.org
+Subject: Large number of Boost failures on a platform you maintain as of """
+        message += str(datetime.date.today()) + " [" + report.branch + "]"
+        message += """
+
+You are receiving this report because one or more of the testing
+platforms that you maintain has a large number of Boost failures that
+are not accounted for. A full version of the report is sent to the
+Boost developer's mailing list.
+
+Detailed report:
+"""
+        message += '  ' + report.url + """
+
+The following platforms have a large number of failures:
+"""
+
+        for platform in self.platforms:
+            if platform.isBroken():
+                message += ('  ' + platform.name + ' ('
+                            + str(len(platform.failures))  + ' failures)\n')
+
+        return message
+    
 class Report:
 class Report:
     """
     """
     The complete report of all failing test cases.
     The complete report of all failing test cases.
@@ -211,6 +281,7 @@ class Report:
         self.libraries = dict()
         self.libraries = dict()
         self.platforms = dict()
         self.platforms = dict()
         self.maintainers = dict()
         self.maintainers = dict()
+        self.platform_maintainers = dict()
         return
         return
 
 
     def getPlatform(self, name):
     def getPlatform(self, name):
@@ -233,6 +304,17 @@ class Report:
             self.maintainers[name] = Maintainer(name, email)
             self.maintainers[name] = Maintainer(name, email)
             return self.maintainers[name]
             return self.maintainers[name]
 
 
+    def getPlatformMaintainer(self, name, email):
+        """
+        Retrieve the platform maintainer with the given name and
+        e-mail address.
+        """
+        if self.platform_maintainers.has_key(name):
+            return self.platform_maintainers[name]
+        else:
+            self.platform_maintainers[name] = PlatformMaintainer(name, email)
+            return self.platform_maintainers[name]
+
     def parseIssuesEmail(self):
     def parseIssuesEmail(self):
         """
         """
         Try to parse the issues e-mail file. Returns True if everything was
         Try to parse the issues e-mail file. Returns True if everything was
@@ -317,7 +399,7 @@ class Report:
             time.sleep (30)
             time.sleep (30)
 
 
         return False
         return False
-        
+
     # Parses the file $BOOST_ROOT/libs/maintainers.txt to create a hash
     # Parses the file $BOOST_ROOT/libs/maintainers.txt to create a hash
     # mapping from the library name to the list of maintainers.
     # mapping from the library name to the list of maintainers.
     def parseLibraryMaintainersFile(self):
     def parseLibraryMaintainersFile(self):
@@ -329,6 +411,8 @@ class Report:
         name_email_regex = re.compile('\s*(\w*(\s*\w+)+)\s*<\s*(\S*(\s*\S+)+)\S*>')
         name_email_regex = re.compile('\s*(\w*(\s*\w+)+)\s*<\s*(\S*(\s*\S+)+)\S*>')
         at_regex = re.compile('\s*-\s*at\s*-\s*')
         at_regex = re.compile('\s*-\s*at\s*-\s*')
         for line in file('../../../libs/maintainers.txt', 'r'):
         for line in file('../../../libs/maintainers.txt', 'r'):
+            if line.startswith('#'):
+                continue
             m = lib_maintainer_regex.match (line)
             m = lib_maintainer_regex.match (line)
             if m:
             if m:
                 libname = m.group(1)
                 libname = m.group(1)
@@ -350,6 +434,41 @@ class Report:
             pass
             pass
         pass
         pass
 
 
+    # Parses the file $BOOST_ROOT/libs/platform_maintainers.txt to
+    # create a hash mapping from the platform name to the list of
+    # maintainers.
+    def parsePlatformMaintainersFile(self):
+        """
+        Parse the platform maintainers file in
+        ../../../libs/platform_maintainers.txt to collect information
+        about the maintainers of the various platforms.
+        """
+        platform_maintainer_regex = re.compile('([A-Za-z0-9_.-]*|"[^"]*")\s+(\S+)\s+(.*)')
+        name_email_regex = re.compile('\s*(\w*(\s*\w+)+)\s*<\s*(\S*(\s*\S+)+)\S*>')
+        at_regex = re.compile('\s*-\s*at\s*-\s*')
+        for line in file('../../../libs/platform_maintainers.txt', 'r'):
+            if line.startswith('#'):
+                continue
+            m = platform_maintainer_regex.match (line)
+            if m:
+                platformname = m.group(2)
+                if self.platforms.has_key(platformname):
+                    platform = self.platforms[platformname]
+                    for person in re.split('\s*,\s*', m.group(3)):
+                        nmm = name_email_regex.match(person)
+                        if nmm:
+                            name = nmm.group(1)
+                            email = nmm.group(3)
+                            email = at_regex.sub('@', email)
+                            maintainer = self.getPlatformMaintainer(name, email)
+                            maintainer.addPlatform(m.group(1), platform)
+                            platform.addMaintainer(maintainer)
+                            pass
+                        pass
+                    pass
+                pass
+        pass
+
     def numFailures(self):
     def numFailures(self):
         count = 0
         count = 0
         for library in self.libraries:
         for library in self.libraries:
@@ -374,6 +493,8 @@ To: boost@lists.boost.org
 Reply-To: boost@lists.boost.org
 Reply-To: boost@lists.boost.org
 Subject: [Report] """
 Subject: [Report] """
         message += str(self.numFailures()) + " failures on " + branch
         message += str(self.numFailures()) + " failures on " + branch
+        if branch != 'trunk':
+            message += ' branch'
         message += " (" + str(datetime.date.today()) + ")"
         message += " (" + str(datetime.date.today()) + ")"
         message += """
         message += """
 
 
@@ -381,7 +502,7 @@ Boost regression test failures
 """
 """
         message += "Report time: " + self.date + """
         message += "Report time: " + self.date + """
 
 
-This report lists all regression test failures on release platforms.
+This report lists all regression test failures on high-priority platforms.
 
 
 Detailed report:
 Detailed report:
 """
 """
@@ -399,54 +520,107 @@ Detailed report:
 """
 """
             for platform in sorted_keys( self.platforms ):
             for platform in sorted_keys( self.platforms ):
                 if self.platforms[platform].isBroken():
                 if self.platforms[platform].isBroken():
-                    message += '  ' + platform + '\n'
+                    message += ('  ' + platform + ' ('
+                                + str(len(self.platforms[platform].failures))
+                                + ' failures)\n')
 
 
-            message += '\n'
+            message += """
+Failures on these "broken" platforms will be omitted from the results below.
+Please see the full report for information about these failures.
+
+"""
    
    
         # Display the number of failures
         # Display the number of failures
-        message += (str(self.numFailures()) + ' failures in ' + 
+        message += (str(self.numReportableFailures()) + ' failures in ' + 
                     str(len(self.libraries)) + ' libraries')
                     str(len(self.libraries)) + ' libraries')
         if any_broken_platforms:
         if any_broken_platforms:
-            message += ' (' + str(self.numReportableFailures()) + ' are from non-broken platforms)'
+            message += (' (plus ' + str(self.numFailures() - self.numReportableFailures())
+                        + ' from broken platforms)')
+                        
         message += '\n'
         message += '\n'
 
 
         # Display the number of failures per library
         # Display the number of failures per library
         for k in sorted_keys( self.libraries ):
         for k in sorted_keys( self.libraries ):
             library = self.libraries[k]
             library = self.libraries[k]
             num_failures = library.numFailures()
             num_failures = library.numFailures()
-            message += ('  ' + library.name + ' (' 
-                        + str(library.numReportableFailures()))
+            message += '  ' + library.name + ' ('
+                
+            if library.numReportableFailures() > 0:
+                message += (str(library.numReportableFailures())
+                            + " failures")
+                
             if library.numReportableFailures() < num_failures:
             if library.numReportableFailures() < num_failures:
-                message += (' of ' + str(num_failures) 
-                            + ' failures are from non-broken platforms')
+                if library.numReportableFailures() > 0:
+                    message += ', plus '
+                                
+                message += (str(num_failures-library.numReportableFailures()) 
+                            + ' failures on broken platforms')
             message += ')\n'
             message += ')\n'
             pass
             pass
 
 
-        # If we have any broken platforms, tell the user how we're
-        # displaying them.
-        if any_broken_platforms:
-            message += """
-Test failures marked with a (*) represent tests that failed on
-platforms that are considered broken. They are likely caused by
-misconfiguration by the regression tester or a failure in a core
-library such as Test or Config."""
         message += '\n'
         message += '\n'
 
 
         # Provide the details for the failures in each library.
         # Provide the details for the failures in each library.
         for k in sorted_keys( self.libraries ):
         for k in sorted_keys( self.libraries ):
             library = self.libraries[k]
             library = self.libraries[k]
-            message += '\n|' + library.name + '|\n'
-            for test in library.tests:
-                message += '  ' + test.name + ':'
-                for failure in test.failures:
-                    platform = failure.platform
-                    message += '  ' + platform.name
-                    if platform.isBroken():
-                        message += '*'
-                    pass
-                message += '\n'
-                pass
-            pass
+            if library.numReportableFailures() > 0:
+                message += '\n|' + library.name + '|\n'
+                for test in library.tests:
+                    if test.numReportableFailures() > 0:
+                        message += '  ' + test.name + ':'
+                        for failure in test.failures:
+                            platform = failure.platform
+                            if not platform.isBroken():
+                                message += '  ' + platform.name
+                        message += '\n'
+
+        return message
+
+    def composeTestingSummaryEmail(self):
+        """
+        Compose a message to send to the Boost Testing list. Returns
+        the message text if a message is needed, returns None
+        otherwise.
+        """
+        brokenPlatforms = 0
+        for platform in sorted_keys( self.platforms ):
+            if self.platforms[platform].isBroken():
+                brokenPlatforms = brokenPlatforms + 1
+
+        if brokenPlatforms == 0:
+            return None;
+        
+        message = """From: Douglas Gregor <dgregor@osl.iu.edu>
+To: boost-testing@lists.boost.org
+Reply-To: boost-testing@lists.boost.org
+Subject: [Report] """
+        message += str(brokenPlatforms) + " potentially broken platforms on " + branch
+        if branch != 'trunk':
+            message += ' branch'
+        message += " (" + str(datetime.date.today()) + ")"
+        message += """
+
+Potentially broken platforms for Boost regression testing
+"""
+        message += "Report time: " + self.date + """
+
+This report lists the high-priority platforms that are exhibiting a
+large number of regresson test failures, which might indicate a problem
+with the test machines or testing harness.
+
+Detailed report:
+"""
+
+        message += '  ' + self.url + '\n'
+
+        message += """
+Platforms with a large number of failures:
+"""
+        for platform in sorted_keys( self.platforms ):
+            if self.platforms[platform].isBroken():
+                message += ('  ' + platform + ' ('
+                            + str(len(self.platforms[platform].failures))
+                            + ' failures)\n')
 
 
         return message
         return message
 
 
@@ -594,7 +768,9 @@ if not okay:
 
 
 # Try to parse maintainers information
 # Try to parse maintainers information
 report.parseLibraryMaintainersFile()
 report.parseLibraryMaintainersFile()
+report.parsePlatformMaintainersFile()
 
 
+# Generate individualized e-mail for library maintainers
 for maintainer_name in report.maintainers:
 for maintainer_name in report.maintainers:
     maintainer = report.maintainers[maintainer_name]
     maintainer = report.maintainers[maintainer_name]
 
 
@@ -613,7 +789,27 @@ for maintainer_name in report.maintainers:
         if '--debug' in sys.argv:
         if '--debug' in sys.argv:
             print ('Message text for ' + maintainer.name + ':\n')
             print ('Message text for ' + maintainer.name + ':\n')
             print email
             print email
-            
+
+# Generate individualized e-mail for platform maintainers
+for maintainer_name in report.platform_maintainers:
+    maintainer = report.platform_maintainers[maintainer_name]
+
+    email = maintainer.composeEmail(report)
+    if email:
+        if '--send' in sys.argv:
+            print ('Sending notification email to ' + maintainer.name + '...')
+            smtp = smtplib.SMTP('milliways.osl.iu.edu')
+            smtp.sendmail(from_addr = report_author, 
+                          to_addrs = maintainer.email,
+                          msg = email)
+            print 'done.\n'
+        else:
+            print 'Would send a notification e-mail to',maintainer.name
+
+        if '--debug' in sys.argv:
+            print ('Message text for ' + maintainer.name + ':\n')
+            print email
+
 email = report.composeSummaryEmail()
 email = report.composeSummaryEmail()
 if '--send' in sys.argv:
 if '--send' in sys.argv:
     print 'Sending summary email to Boost developer list...'
     print 'Sending summary email to Boost developer list...'
@@ -626,6 +822,19 @@ if '--debug' in sys.argv:
     print 'Message text for summary:\n'
     print 'Message text for summary:\n'
     print email
     print email
 
 
+email = report.composeTestingSummaryEmail()
+if email:
+    if '--send' in sys.argv:
+        print 'Sending summary email to Boost testing list...'
+        smtp = smtplib.SMTP('milliways.osl.iu.edu')
+        smtp.sendmail(from_addr = report_author, 
+                      to_addrs = boost_testing_list,
+                      msg = email)
+        print 'done.\n'
+    if '--debug' in sys.argv:
+        print 'Message text for testing summary:\n'
+        print email
+
 if not ('--send' in sys.argv):
 if not ('--send' in sys.argv):
     print 'Chickening out and not sending any e-mail.'
     print 'Chickening out and not sending any e-mail.'
     print 'Use --send to actually send e-mail, --debug to see e-mails.'
     print 'Use --send to actually send e-mail, --debug to see e-mails.'

+ 1 - 1
tools/regression/xsl_reports/xsl/v2/issues_page.xsl

@@ -226,7 +226,7 @@ Report time: </xsl:text>
 This report lists all regression test failures on release platforms.
 This report lists all regression test failures on release platforms.
 
 
 Detailed report: 
 Detailed report: 
-  http://boost.org/regression/</xsl:text>
+        http://beta.boost.org/development/tests/</xsl:text>
         <xsl:value-of select="$source"/>
         <xsl:value-of select="$source"/>
         <xsl:text>/developer/issues.html
         <xsl:text>/developer/issues.html
 
 

粤ICP备19079148号