$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-08-10 12:20:51
Author: eric_niebler
Date: 2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
New Revision: 48062
URL: http://svn.boost.org/trac/boost/changeset/48062
Log:
merged from trunk
Added:
   branches/proto/v4/boost/config/no_tr1/cmath.hpp
      - copied unchanged from r48054, /trunk/boost/config/no_tr1/cmath.hpp
   branches/proto/v4/boost/tr1/cmath.hpp
      - copied unchanged from r48054, /trunk/boost/tr1/cmath.hpp
   branches/proto/v4/boost/tr1/tr1/bcc32/unordere.h
      - copied unchanged from r48054, /trunk/boost/tr1/tr1/bcc32/unordere.h
   branches/proto/v4/boost/tr1/tr1/cmath
      - copied unchanged from r48054, /trunk/boost/tr1/tr1/cmath
   branches/proto/v4/boost/tr1/tr1/sun/cmath.SUNWCCh
      - copied unchanged from r48054, /trunk/boost/tr1/tr1/sun/cmath.SUNWCCh
   branches/proto/v4/boost/tr1/tr1/sun/unordered_map.SUNWCCh
      - copied unchanged from r48054, /trunk/boost/tr1/tr1/sun/unordered_map.SUNWCCh
   branches/proto/v4/boost/tr1/tr1/sun/unordered_set.SUNWCCh
      - copied unchanged from r48054, /trunk/boost/tr1/tr1/sun/unordered_set.SUNWCCh
   branches/proto/v4/libs/test/docbook/
      - copied from r48054, /trunk/libs/test/docbook/
   branches/proto/v4/libs/test/docbook/img/
      - copied from r48054, /trunk/libs/test/docbook/img/
   branches/proto/v4/libs/test/docbook/img/boost.test.logo.png
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/boost.test.logo.png
   branches/proto/v4/libs/test/docbook/img/class-hier.jpg
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/class-hier.jpg
   branches/proto/v4/libs/test/docbook/img/level.png
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/level.png
   branches/proto/v4/libs/test/docbook/img/post_build_event.jpg
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/post_build_event.jpg
   branches/proto/v4/libs/test/docbook/img/post_build_out.jpg
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/post_build_out.jpg
   branches/proto/v4/libs/test/docbook/img/run_args.jpg
      - copied unchanged from r48054, /trunk/libs/test/docbook/img/run_args.jpg
   branches/proto/v4/libs/tr1/test/std_headers/test_cmath.cpp
      - copied unchanged from r48054, /trunk/libs/tr1/test/std_headers/test_cmath.cpp
   branches/proto/v4/libs/tr1/test/test_cmath.cpp
      - copied unchanged from r48054, /trunk/libs/tr1/test/test_cmath.cpp
Properties modified: 
   branches/proto/v4/   (props changed)
Text files modified: 
   branches/proto/v4/boost/asio/detail/dev_poll_reactor.hpp                      |    15 +-                                      
   branches/proto/v4/boost/asio/detail/epoll_reactor.hpp                         |    15 +-                                      
   branches/proto/v4/boost/asio/detail/reactive_serial_port_service.hpp          |     1                                         
   branches/proto/v4/boost/asio/ip/resolver_query_base.hpp                       |     8                                         
   branches/proto/v4/boost/asio/ssl/detail/openssl_context_service.hpp           |     2                                         
   branches/proto/v4/boost/math/bindings/rr.hpp                                  |     2                                         
   branches/proto/v4/boost/math/complex/details.hpp                              |     2                                         
   branches/proto/v4/boost/math/concepts/real_concept.hpp                        |     2                                         
   branches/proto/v4/boost/math/concepts/std_real_concept.hpp                    |     2                                         
   branches/proto/v4/boost/math/distributions/cauchy.hpp                         |     2                                         
   branches/proto/v4/boost/math/distributions/exponential.hpp                    |     2                                         
   branches/proto/v4/boost/math/distributions/extreme_value.hpp                  |     2                                         
   branches/proto/v4/boost/math/distributions/rayleigh.hpp                       |     2                                         
   branches/proto/v4/boost/math/policies/error_handling.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/acosh.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/asinh.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/atanh.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/beta.hpp                       |     2                                         
   branches/proto/v4/boost/math/special_functions/cos_pi.hpp                     |     2                                         
   branches/proto/v4/boost/math/special_functions/detail/unchecked_factorial.hpp |     2                                         
   branches/proto/v4/boost/math/special_functions/expm1.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/factorials.hpp                 |     2                                         
   branches/proto/v4/boost/math/special_functions/fpclassify.hpp                 |     2                                         
   branches/proto/v4/boost/math/special_functions/gamma.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/hypot.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/log1p.hpp                      |     2                                         
   branches/proto/v4/boost/math/special_functions/sin_pi.hpp                     |     2                                         
   branches/proto/v4/boost/math/special_functions/sinc.hpp                       |     2                                         
   branches/proto/v4/boost/math/special_functions/sinhc.hpp                      |     2                                         
   branches/proto/v4/boost/math/tools/config.hpp                                 |     2                                         
   branches/proto/v4/boost/math/tools/fraction.hpp                               |     2                                         
   branches/proto/v4/boost/math/tools/minima.hpp                                 |     2                                         
   branches/proto/v4/boost/math/tools/roots.hpp                                  |     2                                         
   branches/proto/v4/boost/math/tools/series.hpp                                 |     2                                         
   branches/proto/v4/boost/math/tools/stats.hpp                                  |     2                                         
   branches/proto/v4/libs/thread/doc/changes.qbk                                 |    18 ++                                      
   branches/proto/v4/libs/thread/doc/thread.qbk                                  |     6                                         
   branches/proto/v4/libs/thread/doc/thread_ref.qbk                              |     6                                         
   branches/proto/v4/libs/tr1/doc/tr1.qbk                                        |   269 ++++++++++++++++++++++++++++++++++++++- 
   branches/proto/v4/status/explicit-failures-markup.xml                         |     1                                         
   branches/proto/v4/tools/build/v2/tools/acc.jam                                |     2                                         
   41 files changed, 343 insertions(+), 60 deletions(-)
Modified: branches/proto/v4/boost/asio/detail/dev_poll_reactor.hpp
==============================================================================
--- branches/proto/v4/boost/asio/detail/dev_poll_reactor.hpp	(original)
+++ branches/proto/v4/boost/asio/detail/dev_poll_reactor.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -423,14 +423,15 @@
         else
           more_writes = write_op_queue_.has_operation(descriptor);
 
-        if ((events[i].events == POLLHUP)
-            && !more_except && !more_reads && !more_writes)
+        if ((events[i].events & (POLLERR | POLLHUP)) != 0
+              && (events[i].events & ~(POLLERR | POLLHUP)) == 0
+              && !more_except && !more_reads && !more_writes)
         {
-          // If we have only an POLLHUP event and no operations associated
-          // with the descriptor then we need to delete the descriptor from
-          // /dev/poll. The poll operation might produce POLLHUP events even
-          // if they are not specifically requested, so if we do not remove the
-          // descriptor we can end up in a tight polling loop.
+          // If we have an event and no operations associated with the
+          // descriptor then we need to delete the descriptor from /dev/poll.
+          // The poll operation can produce POLLHUP or POLLERR events when there
+          // is no operation pending, so if we do not remove the descriptor we
+          // can end up in a tight polling loop.
           ::pollfd ev = { 0 };
           ev.fd = descriptor;
           ev.events = POLLREMOVE;
Modified: branches/proto/v4/boost/asio/detail/epoll_reactor.hpp
==============================================================================
--- branches/proto/v4/boost/asio/detail/epoll_reactor.hpp	(original)
+++ branches/proto/v4/boost/asio/detail/epoll_reactor.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -497,14 +497,15 @@
         else
           more_writes = write_op_queue_.has_operation(descriptor);
 
-        if ((events[i].events == EPOLLHUP)
-            && !more_except && !more_reads && !more_writes)
+        if ((events[i].events & (EPOLLERR | EPOLLHUP)) != 0
+              && (events[i].events & ~(EPOLLERR | EPOLLHUP)) == 0
+              && !more_except && !more_reads && !more_writes)
         {
-          // If we have only an EPOLLHUP event and no operations associated
-          // with the descriptor then we need to delete the descriptor from
-          // epoll. The epoll_wait system call will produce EPOLLHUP events
-          // even if they are not specifically requested, so if we do not
-          // remove the descriptor we can end up in a tight loop of repeated
+          // If we have an event and no operations associated with the
+          // descriptor then we need to delete the descriptor from epoll. The
+          // epoll_wait system call can produce EPOLLHUP or EPOLLERR events
+          // when there is no operation pending, so if we do not remove the
+          // descriptor we can end up in a tight loop of repeated
           // calls to epoll_wait.
           epoll_event ev = { 0, { 0 } };
           epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev);
Modified: branches/proto/v4/boost/asio/detail/reactive_serial_port_service.hpp
==============================================================================
--- branches/proto/v4/boost/asio/detail/reactive_serial_port_service.hpp	(original)
+++ branches/proto/v4/boost/asio/detail/reactive_serial_port_service.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -120,6 +120,7 @@
       ios.c_cflag |= CS8;
 #endif
       ios.c_iflag |= IGNPAR;
+      ios.c_cflag |= CREAD | CLOCAL;
       descriptor_ops::clear_error(ec);
       s = descriptor_ops::error_wrapper(::tcsetattr(fd, TCSANOW, &ios), ec);
     }
Modified: branches/proto/v4/boost/asio/ip/resolver_query_base.hpp
==============================================================================
--- branches/proto/v4/boost/asio/ip/resolver_query_base.hpp	(original)
+++ branches/proto/v4/boost/asio/ip/resolver_query_base.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -70,17 +70,19 @@
 # else
   BOOST_STATIC_CONSTANT(int, numeric_service = 0);
 # endif
-# if defined(AI_V4MAPPED)
+  // Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but
+  // does not implement them. Therefore they are specifically excluded here.
+# if defined(AI_V4MAPPED) && !defined(__QNXNTO__)
   BOOST_STATIC_CONSTANT(int, v4_mapped = AI_V4MAPPED);
 # else
   BOOST_STATIC_CONSTANT(int, v4_mapped = 0);
 # endif
-# if defined(AI_ALL)
+# if defined(AI_ALL) && !defined(__QNXNTO__)
   BOOST_STATIC_CONSTANT(int, all_matching = AI_ALL);
 # else
   BOOST_STATIC_CONSTANT(int, all_matching = 0);
 # endif
-# if defined(AI_ADDRCONFIG)
+# if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__)
   BOOST_STATIC_CONSTANT(int, address_configured = AI_ADDRCONFIG);
 # else
   BOOST_STATIC_CONSTANT(int, address_configured = 0);
Modified: branches/proto/v4/boost/asio/ssl/detail/openssl_context_service.hpp
==============================================================================
--- branches/proto/v4/boost/asio/ssl/detail/openssl_context_service.hpp	(original)
+++ branches/proto/v4/boost/asio/ssl/detail/openssl_context_service.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -309,9 +309,9 @@
 
     ::BIO_free(bio);
     int result = ::SSL_CTX_set_tmp_dh(impl, dh);
+    ::DH_free(dh);
     if (result != 1)
     {
-      ::DH_free(dh);
       ec = boost::asio::error::invalid_argument;
       return ec;
     }
Modified: branches/proto/v4/boost/math/bindings/rr.hpp
==============================================================================
--- branches/proto/v4/boost/math/bindings/rr.hpp	(original)
+++ branches/proto/v4/boost/math/bindings/rr.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -14,7 +14,7 @@
 
 #include <ostream>
 #include <istream>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <NTL/RR.h>
 
 #ifndef BOOST_MATH_NTL_RR_HPP
Modified: branches/proto/v4/boost/math/complex/details.hpp
==============================================================================
--- branches/proto/v4/boost/math/complex/details.hpp	(original)
+++ branches/proto/v4/boost/math/complex/details.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -15,7 +15,7 @@
 #include <boost/config/no_tr1/complex.hpp>
 #include <boost/limits.hpp>
 #include <math.h> // isnan where available
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 #ifdef BOOST_NO_STDC_NAMESPACE
 namespace std{ using ::sqrt; }
Modified: branches/proto/v4/boost/math/concepts/real_concept.hpp
==============================================================================
--- branches/proto/v4/boost/math/concepts/real_concept.hpp	(original)
+++ branches/proto/v4/boost/math/concepts/real_concept.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -32,7 +32,7 @@
 #endif
 #include <ostream>
 #include <istream>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <math.h> // fmodl
 
 #ifndef BOOST_MATH_REAL_CONCEPT_HPP
Modified: branches/proto/v4/boost/math/concepts/std_real_concept.hpp
==============================================================================
--- branches/proto/v4/boost/math/concepts/std_real_concept.hpp	(original)
+++ branches/proto/v4/boost/math/concepts/std_real_concept.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -24,7 +24,7 @@
 
 #include <ostream>
 #include <istream>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <math.h> // fmodl
 
 #ifndef BOOST_MATH_STD_REAL_CONCEPT_HPP
Modified: branches/proto/v4/boost/math/distributions/cauchy.hpp
==============================================================================
--- branches/proto/v4/boost/math/distributions/cauchy.hpp	(original)
+++ branches/proto/v4/boost/math/distributions/cauchy.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -17,7 +17,7 @@
 #include <boost/math/constants/constants.hpp>
 #include <boost/math/distributions/complement.hpp>
 #include <boost/math/distributions/detail/common_error_handling.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 #include <utility>
 
Modified: branches/proto/v4/boost/math/distributions/exponential.hpp
==============================================================================
--- branches/proto/v4/boost/math/distributions/exponential.hpp	(original)
+++ branches/proto/v4/boost/math/distributions/exponential.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -12,7 +12,7 @@
 #include <boost/math/special_functions/expm1.hpp>
 #include <boost/math/distributions/complement.hpp>
 #include <boost/math/distributions/detail/common_error_handling.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 #ifdef BOOST_MSVC
 # pragma warning(push)
Modified: branches/proto/v4/boost/math/distributions/extreme_value.hpp
==============================================================================
--- branches/proto/v4/boost/math/distributions/extreme_value.hpp	(original)
+++ branches/proto/v4/boost/math/distributions/extreme_value.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -12,7 +12,7 @@
 #include <boost/math/special_functions/expm1.hpp>
 #include <boost/math/distributions/complement.hpp>
 #include <boost/math/distributions/detail/common_error_handling.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 //
 // This is the maximum extreme value distribution, see
Modified: branches/proto/v4/boost/math/distributions/rayleigh.hpp
==============================================================================
--- branches/proto/v4/boost/math/distributions/rayleigh.hpp	(original)
+++ branches/proto/v4/boost/math/distributions/rayleigh.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -12,7 +12,7 @@
 #include <boost/math/special_functions/expm1.hpp>
 #include <boost/math/distributions/complement.hpp>
 #include <boost/math/distributions/detail/common_error_handling.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 #ifdef BOOST_MSVC
 # pragma warning(push)
Modified: branches/proto/v4/boost/math/policies/error_handling.hpp
==============================================================================
--- branches/proto/v4/boost/math/policies/error_handling.hpp	(original)
+++ branches/proto/v4/boost/math/policies/error_handling.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -12,7 +12,7 @@
 #include <iomanip>
 #include <string>
 #include <cerrno>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <stdexcept>
 #include <boost/math/tools/config.hpp>
 #include <boost/math/policies/policy.hpp>
Modified: branches/proto/v4/boost/math/special_functions/acosh.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/acosh.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/acosh.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -14,7 +14,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/config.hpp>
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/policies/error_handling.hpp>
Modified: branches/proto/v4/boost/math/special_functions/asinh.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/asinh.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/asinh.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -15,7 +15,7 @@
 #endif
 
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/config.hpp>
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
Modified: branches/proto/v4/boost/math/special_functions/atanh.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/atanh.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/atanh.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -15,7 +15,7 @@
 #endif
 
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/config.hpp>
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/policies/error_handling.hpp>
Modified: branches/proto/v4/boost/math/special_functions/beta.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/beta.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/beta.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -20,7 +20,7 @@
 #include <boost/math/special_functions/trunc.hpp>
 #include <boost/math/tools/roots.hpp>
 #include <boost/static_assert.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 namespace boost{ namespace math{
 
Modified: branches/proto/v4/boost/math/special_functions/cos_pi.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/cos_pi.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/cos_pi.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/math/tools/config.hpp>
 #include <boost/math/special_functions/trunc.hpp>
 #include <boost/math/tools/promotion.hpp>
Modified: branches/proto/v4/boost/math/special_functions/detail/unchecked_factorial.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/detail/unchecked_factorial.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/detail/unchecked_factorial.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -19,7 +19,7 @@
 #ifdef BOOST_MSVC
 #pragma warning(pop)
 #endif
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
 
 namespace boost { namespace math
Modified: branches/proto/v4/boost/math/special_functions/expm1.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/expm1.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/expm1.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <math.h> // platform's ::expm1
 #include <boost/limits.hpp>
 #include <boost/math/tools/config.hpp>
Modified: branches/proto/v4/boost/math/special_functions/factorials.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/factorials.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/factorials.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -22,7 +22,7 @@
 #ifdef BOOST_MSVC
 #pragma warning(pop)
 #endif
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 
 namespace boost { namespace math
 {
Modified: branches/proto/v4/boost/math/special_functions/fpclassify.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/fpclassify.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/fpclassify.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -11,7 +11,7 @@
 #endif
 
 #include <math.h>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/limits.hpp>
 #include <boost/math/tools/real_cast.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
Modified: branches/proto/v4/boost/math/special_functions/gamma.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/gamma.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/gamma.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -45,7 +45,7 @@
 #include <boost/mpl/greater.hpp>
 #include <boost/mpl/equal_to.hpp>
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <algorithm>
 
 #ifdef BOOST_MATH_INSTRUMENT
Modified: branches/proto/v4/boost/math/special_functions/hypot.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/hypot.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/hypot.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -14,7 +14,7 @@
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/policies/error_handling.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <algorithm> // for swap
 
 #ifdef BOOST_NO_STDC_NAMESPACE
Modified: branches/proto/v4/boost/math/special_functions/log1p.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/log1p.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/log1p.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <math.h> // platform's ::log1p
 #include <boost/limits.hpp>
 #include <boost/math/tools/config.hpp>
Modified: branches/proto/v4/boost/math/special_functions/sin_pi.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/sin_pi.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/sin_pi.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/math/tools/config.hpp>
 #include <boost/math/special_functions/trunc.hpp>
 #include <boost/math/tools/promotion.hpp>
Modified: branches/proto/v4/boost/math/special_functions/sinc.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/sinc.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/sinc.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -19,7 +19,7 @@
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/policies/policy.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/limits.hpp>
 #include <string>
 #include <stdexcept>
Modified: branches/proto/v4/boost/math/special_functions/sinhc.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/sinhc.hpp	(original)
+++ branches/proto/v4/boost/math/special_functions/sinhc.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -18,7 +18,7 @@
 #include <boost/math/tools/config.hpp>
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/limits.hpp>
 #include <string>
 #include <stdexcept>
Modified: branches/proto/v4/boost/math/tools/config.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/config.hpp	(original)
+++ branches/proto/v4/boost/math/tools/config.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -14,7 +14,7 @@
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 #include <algorithm>  // for min and max
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <climits>
 #if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
 #  include <math.h>
Modified: branches/proto/v4/boost/math/tools/fraction.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/fraction.hpp	(original)
+++ branches/proto/v4/boost/math/tools/fraction.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/type_traits/integral_constant.hpp>
 #include <boost/mpl/if.hpp>
Modified: branches/proto/v4/boost/math/tools/minima.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/minima.hpp	(original)
+++ branches/proto/v4/boost/math/tools/minima.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -12,7 +12,7 @@
 #endif
 
 #include <utility>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/math/tools/precision.hpp>
 #include <boost/math/policies/policy.hpp>
 #include <boost/cstdint.hpp>
Modified: branches/proto/v4/boost/math/tools/roots.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/roots.hpp	(original)
+++ branches/proto/v4/boost/math/tools/roots.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -11,7 +11,7 @@
 #endif
 
 #include <utility>
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <stdexcept>
 
 #include <boost/tr1/tuple.hpp>
Modified: branches/proto/v4/boost/math/tools/series.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/series.hpp	(original)
+++ branches/proto/v4/boost/math/tools/series.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/math/tools/config.hpp>
 
Modified: branches/proto/v4/boost/math/tools/stats.hpp
==============================================================================
--- branches/proto/v4/boost/math/tools/stats.hpp	(original)
+++ branches/proto/v4/boost/math/tools/stats.hpp	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -10,7 +10,7 @@
 #pragma once
 #endif
 
-#include <cmath>
+#include <boost/config/no_tr1/cmath.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/math/tools/precision.hpp>
 
Modified: branches/proto/v4/libs/thread/doc/changes.qbk
==============================================================================
--- branches/proto/v4/libs/thread/doc/changes.qbk	(original)
+++ branches/proto/v4/libs/thread/doc/changes.qbk	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -5,7 +5,23 @@
   http://www.boost.org/LICENSE_1_0.txt).
 ]
 
-[section:changes Changes since boost 1.34]
+[section:changes Changes since boost 1.35]
+
+The 1.36.0 release of Boost includes a few new features in the thread library:
+
+* New generic __lock_multiple_ref__ and __try_lock_multiple_ref__ functions for locking multiple mutexes at once.
+
+* Rvalue reference support for move semantics where the compilers supports it.
+
+* A few bugs fixed and missing functions added (including the serious win32 condition variable bug).
+
+* `scoped_try_lock` types are now backwards-compatible with Boost 1.34.0 and previous releases.
+
+* Support for passing function arguments to the thread function by supplying additional arguments to the __thread__ constructor.
+
+* Backwards-compatibility overloads added for `timed_lock` and `timed_wait` functions to allow use of `xtime` for timeouts.
+
+[heading Changes since boost 1.34]
 
 Almost every line of code in __boost_thread__ has been changed since the 1.34 release of boost. However, most of the interface
 changes have been extensions, so the new code is largely backwards-compatible with the old code. The new features and breaking
Modified: branches/proto/v4/libs/thread/doc/thread.qbk
==============================================================================
--- branches/proto/v4/libs/thread/doc/thread.qbk	(original)
+++ branches/proto/v4/libs/thread/doc/thread.qbk	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -38,6 +38,12 @@
 [template lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.lockable.lock [link_text]]]
 [def __lock_ref__ [lock_ref_link `lock()`]]
 
+[template lock_multiple_ref_link[link_text] [link thread.synchronization.lock_functions.lock_multiple [link_text]]]
+[def __lock_multiple_ref__ [lock_multiple_ref_link `lock()`]]
+
+[template try_lock_multiple_ref_link[link_text] [link thread.synchronization.lock_functions.try_lock_multiple [link_text]]]
+[def __try_lock_multiple_ref__ [try_lock_multiple_ref_link `try_lock()`]]
+
 [template unlock_ref_link[link_text] [link thread.synchronization.mutex_concepts.lockable.unlock [link_text]]]
 [def __unlock_ref__ [unlock_ref_link `unlock()`]]
 
Modified: branches/proto/v4/libs/thread/doc/thread_ref.qbk
==============================================================================
--- branches/proto/v4/libs/thread/doc/thread_ref.qbk	(original)
+++ branches/proto/v4/libs/thread/doc/thread_ref.qbk	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -933,7 +933,8 @@
         thread_group();
         ~thread_group();
 
-        thread* create_thread(const function0<void>& threadfunc);
+        template<typename F>
+        thread* create_thread(F threadfunc);
         void add_thread(thread* thrd);
         void remove_thread(thread* thrd);
         void join_all();
@@ -970,7 +971,8 @@
 
 [section:create_thread Member function `create_thread()`]
 
-    thread* create_thread(const function0<void>& threadfunc);
+    template<typename F>
+    thread* create_thread(F threadfunc);
 
 [variablelist
 
Modified: branches/proto/v4/libs/tr1/doc/tr1.qbk
==============================================================================
--- branches/proto/v4/libs/tr1/doc/tr1.qbk	(original)
+++ branches/proto/v4/libs/tr1/doc/tr1.qbk	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -1464,16 +1464,15 @@
 
 [endsect]
 
-[endsect]
-
-[section:unsupported TR By Subject: Unsupported Features]
-
 [section:special Mathematical Special Functions.]
 
 The TR adds 23 special functions (plus float and long double overloads)
-to header <cmath>.  However, at present there is no Boost License
-compatible implementation of these functions, so these are [*unsupported
-by this implementation] unless your standard library supports them itself.
+to header <cmath>.
+
+Refer to the 
+[@../../libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html Math Library docs] 
+for more information.  
+
    
    namespace std {
    namespace tr1 {
@@ -1600,10 +1599,264 @@
 
 
 [*Standard Conformity:]
-['[*Not Supported.]]
+The following functions are not supported in the Boost version of this component:
+
+   // [5.2.1.7] confluent hypergeometric functions:
+   double conf_hyperg(double a, double c, double x);
+   float conf_hypergf(float a, float c, float x);
+   long double conf_hypergl(long double a, long double c, long double x);
+
+   // [5.2.1.17] hypergeometric functions:
+   double hyperg(double a, double b, double c, double x);
+   float hypergf(float a, float b, float c, float x);
+   long double hypergl(long double a, long double b, long double c, long double x);
 
 [endsect]
 
+[section:c99_special C99 Mathematical Special Functions.]
+
+The TR adds a number of special functions which were first introduced in the C99 standard
+to header <cmath>.
+
+Refer to the 
+[@../../libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html Math Library docs] 
+for more information.  
+
+   
+   namespace std {
+   namespace tr1 {
+   
+      // types
+      typedef floating-type double_t;
+      typedef floating-type float_t;
+
+      // functions
+      double acosh(double x);
+      float acoshf(float x);
+      long double acoshl(long double x);
+
+      double asinh(double x);
+      float asinhf(float x);
+      long double asinhl(long double x);
+
+      double atanh(double x);
+      float atanhf(float x);
+      long double atanhl(long double x);
+
+      double cbrt(double x);
+      float cbrtf(float x);
+      long double cbrtl(long double x);
+
+      double copysign(double x, double y);
+      float copysignf(float x, float y);
+      long double copysignl(long double x, long double y);
+
+      double erf(double x);
+      float erff(float x);
+      long double erfl(long double x);
+
+      double erfc(double x);
+      float erfcf(float x);
+      long double erfcl(long double x);
+
+      double exp2(double x);
+      float exp2f(float x);
+      long double exp2l(long double x);
+
+      double expm1(double x);
+      float expm1f(float x);
+      long double expm1l(long double x);
+
+      double fdim(double x, double y);
+      float fdimf(float x, float y);
+      long double fdiml(long double x, long double y);
+
+      double fma(double x, double y, double z);
+      float fmaf(float x, float y, float z);
+      long double fmal(long double x, long double y, long double z);
+
+      double fmax(double x, double y);
+      float fmaxf(float x, float y);
+      long double fmaxl(long double x, long double y);
+
+      double fmin(double x, double y);
+      float fminf(float x, float y);
+      long double fminl(long double x, long double y);
+
+      double hypot(double x, double y);
+      float hypotf(float x, float y);
+      long double hypotl(long double x, long double y);
+
+      int ilogb(double x);
+      int ilogbf(float x);
+      int ilogbl(long double x);
+
+      double lgamma(double x);
+      float lgammaf(float x);
+      long double lgammal(long double x);
+
+      long long llrint(double x);
+      long long llrintf(float x);
+      long long llrintl(long double x);
+
+      long long llround(double x);
+      long long llroundf(float x);
+      long long llroundl(long double x);
+
+      double log1p(double x);
+      float log1pf(float x);
+      long double log1pl(long double x);
+
+      double log2(double x);
+      float log2f(float x);
+      long double log2l(long double x);
+
+      double logb(double x);
+      float logbf(float x);
+      long double logbl(long double x);
+
+      long lrint(double x);
+      long lrintf(float x);
+      long lrintl(long double x);
+
+      long lround(double x);
+      long lroundf(float x);
+      long lroundl(long double x);
+
+      double nan(const char *str);
+      float nanf(const char *str);
+      long double nanl(const char *str);
+
+      double nearbyint(double x);
+      float nearbyintf(float x);
+      long double nearbyintl(long double x);
+
+      double nextafter(double x, double y);
+      float nextafterf(float x, float y);
+      long double nextafterl(long double x, long double y);
+
+      double nexttoward(double x, long double y);
+      float nexttowardf(float x, long double y);
+      long double nexttowardl(long double x, long double y);
+
+      double remainder(double x, double y);
+      float remainderf(float x, float y);
+      long double remainderl(long double x, long double y);
+
+      double remquo(double x, double y, int *pquo);
+      float remquof(float x, float y, int *pquo);
+      long double remquol(long double x, long double y, int *pquo);
+
+      double rint(double x);
+      float rintf(float x);
+      long double rintl(long double x);
+
+      double round(double x);
+      float roundf(float x);
+      long double roundl(long double x);
+
+      double scalbln(double x, long ex);
+      float scalblnf(float x, long ex);
+      long double scalblnl(long double x, long ex);
+      double scalbn(double x, int ex);
+      float scalbnf(float x, int ex);
+      long double scalbnl(long double x, int ex);
+
+      double tgamma(double x);
+      float tgammaf(float x);
+      long double tgammal(long double x);
+
+      double trunc(double x);
+      float truncf(float x);
+      long double truncl(long double x);
+
+      // C99 macros defined as C++ templates
+      template<class T> bool signbit(T x);
+      template<class T> int fpclassify(T x);
+      template<class T> bool isfinite(T x);
+      template<class T> bool isinf(T x);
+      template<class T> bool isnan(T x);
+      template<class T> bool isnormal(T x);
+      template<class T> bool isgreater(T x, T y);
+      template<class T> bool isgreaterequal(T x, T y);
+      template<class T> bool isless(T x, T y);
+      template<class T> bool islessequal(T x, T y);
+      template<class T> bool islessgreater(T x, T y);
+      template<class T> bool isunordered(T x, T y);
+
+   }} // namespaces
+
+[*Standard Conformity:]
+The following functions are not supported in the Boost version of this component:
+
+      double exp2(double x);
+      float exp2f(float x);
+      long double exp2l(long double x);
+
+      double fdim(double x, double y);
+      float fdimf(float x, float y);
+      long double fdiml(long double x, long double y);
+
+      double fma(double x, double y, double z);
+      float fmaf(float x, float y, float z);
+      long double fmal(long double x, long double y, long double z);
+
+      int ilogb(double x);
+      int ilogbf(float x);
+      int ilogbl(long double x);
+
+      long long llrint(double x);
+      long long llrintf(float x);
+      long long llrintl(long double x);
+
+      double log2(double x);
+      float log2f(float x);
+      long double log2l(long double x);
+
+      double logb(double x);
+      float logbf(float x);
+      long double logbl(long double x);
+
+      long lrint(double x);
+      long lrintf(float x);
+      long lrintl(long double x);
+
+      double nan(const char *str);
+      float nanf(const char *str);
+      long double nanl(const char *str);
+
+      double nearbyint(double x);
+      float nearbyintf(float x);
+      long double nearbyintl(long double x);
+
+      double remainder(double x, double y);
+      float remainderf(float x, float y);
+      long double remainderl(long double x, long double y);
+
+      double remquo(double x, double y, int *pquo);
+      float remquof(float x, float y, int *pquo);
+      long double remquol(long double x, long double y, int *pquo);
+
+      double rint(double x);
+      float rintf(float x);
+      long double rintl(long double x);
+
+      double scalbln(double x, long ex);
+      float scalblnf(float x, long ex);
+      long double scalblnl(long double x, long ex);
+      double scalbn(double x, int ex);
+      float scalbnf(float x, int ex);
+      long double scalbnl(long double x, int ex);
+
+      // C99 macros defined as C++ templates
+      template<class T> bool isgreater(T x, T y);
+      template<class T> bool isgreaterequal(T x, T y);
+      template<class T> bool isless(T x, T y);
+      template<class T> bool islessequal(T x, T y);
+      template<class T> bool islessgreater(T x, T y);
+      template<class T> bool isunordered(T x, T y);
+
+[endsect]
 [endsect]
 
 [section:header_list TR1 By Header]
Modified: branches/proto/v4/status/explicit-failures-markup.xml
==============================================================================
--- branches/proto/v4/status/explicit-failures-markup.xml	(original)
+++ branches/proto/v4/status/explicit-failures-markup.xml	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -1875,6 +1875,7 @@
             <toolset name="gcc-3.1*"/>
             <toolset name="gcc-3.2*"/>
             <toolset name="gcc-3.3*"/>
+            <toolset name="gcc-4.2.1_hpux_ia64"/>
             <toolset name="mipspro"/>
             <toolset name="acc*"/>
             <toolset name="msvc-8.0~wm5*"/>
Modified: branches/proto/v4/tools/build/v2/tools/acc.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/acc.jam	(original)
+++ branches/proto/v4/tools/build/v2/tools/acc.jam	2008-08-10 12:20:47 EDT (Sun, 10 Aug 2008)
@@ -97,7 +97,7 @@
 
 actions acc.compile.c
 {
-    $(CONFIG_COMMAND) -Ae -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" $(OPTIONS)
+    cc -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" $(OPTIONS)
 }
 
 actions acc.compile.c++