Boost logo

Boost-Commit :

From: eric_at_[hidden]
Date: 2008-04-16 01:50:45


Author: eric_niebler
Date: 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
New Revision: 44451
URL: http://svn.boost.org/trac/boost/changeset/44451

Log:
Merged revisions 44427,44431-44439,44441-44446,44448-44450 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r44427 | schoepflin | 2008-04-15 00:58:48 -0700 (Tue, 15 Apr 2008) | 1 line
  
  The thread start routine needs C linkage. This fixes a compilation error on Tru64/cxx.
........
  r44431 | johnmaddock | 2008-04-15 09:32:28 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Fix IBM AIX compiler errors.
........
  r44432 | johnmaddock | 2008-04-15 09:36:21 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Attempt fix for Intel on Darwin failures.
........
  r44433 | johnmaddock | 2008-04-15 10:10:18 -0700 (Tue, 15 Apr 2008) | 2 lines
  
  Fix error rates on Mac OS X.
  Fix long double support for pow_test.cpp.
........
  r44434 | johnmaddock | 2008-04-15 10:30:03 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Add some explicit casts from the FP_* macros to type int, so that comparisons actually work when building with GCC, this is GCC bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20589.
........
  r44435 | johnmaddock | 2008-04-15 10:35:07 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Try and fix one remaining zeta test failure.
........
  r44436 | jurko | 2008-04-15 10:44:31 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Minor stylistic comment changes.
........
  r44437 | johnmaddock | 2008-04-15 10:50:11 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Add explicit type cast to fix GCC-C++0X mode error.
........
  r44438 | emildotchevski | 2008-04-15 11:24:46 -0700 (Tue, 15 Apr 2008) | 1 line
  
  N2179 compliance (pending documentation update)
........
  r44439 | emildotchevski | 2008-04-15 11:47:16 -0700 (Tue, 15 Apr 2008) | 1 line
  
  introduced boost/exception_ptr.hpp, using Boost Exception
........
  r44441 | pdimov | 2008-04-15 12:02:13 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Disabled sync use for hppa.
........
  r44442 | emildotchevski | 2008-04-15 14:13:24 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Boost Exception header compilation tests added.
........
  r44443 | emildotchevski | 2008-04-15 14:14:23 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Boost Exception documentation source
........
  r44444 | emildotchevski | 2008-04-15 14:56:34 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Boost Exception documentation update
........
  r44445 | emildotchevski | 2008-04-15 15:23:19 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Boost Exception documentation fix
........
  r44446 | emildotchevski | 2008-04-15 15:25:11 -0700 (Tue, 15 Apr 2008) | 2 lines
  
  Boost Exception documentation fix
........
  r44448 | fmhess | 2008-04-15 17:06:29 -0700 (Tue, 15 Apr 2008) | 5 lines
  
  Avoid needless overhead of wrapping owner's deleter in deleter_wrapper if
  shared_from_this has not been called yet, as Peter suggested
  earlier.
........
  r44449 | djowel | 2008-04-15 20:07:06 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Andreas patch
........
  r44450 | djowel | 2008-04-15 20:07:11 -0700 (Tue, 15 Apr 2008) | 1 line
  
  Andreas indexing suite patch
........

Added:
   branches/proto/v4/boost/exception/enable_current_exception.hpp
      - copied unchanged from r44450, /trunk/boost/exception/enable_current_exception.hpp
   branches/proto/v4/boost/exception_ptr.hpp
      - copied unchanged from r44450, /trunk/boost/exception_ptr.hpp
   branches/proto/v4/libs/exception/doc/adding_data_at_throw.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/adding_data_at_throw.html
   branches/proto/v4/libs/exception/doc/adding_data_later.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/adding_data_later.html
   branches/proto/v4/libs/exception/doc/cloning_and_rethrowing.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/cloning_and_rethrowing.html
   branches/proto/v4/libs/exception/doc/copy_exception.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/copy_exception.html
   branches/proto/v4/libs/exception/doc/current_exception.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/current_exception.html
   branches/proto/v4/libs/exception/doc/enable_current_exception.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/enable_current_exception.html
   branches/proto/v4/libs/exception/doc/grouping_data.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/grouping_data.html
   branches/proto/v4/libs/exception/doc/source/
      - copied from r44450, /trunk/libs/exception/doc/source/
   branches/proto/v4/libs/exception/doc/source/boost-exception.reno
      - copied unchanged from r44450, /trunk/libs/exception/doc/source/boost-exception.reno
   branches/proto/v4/libs/exception/doc/source/html_prefix.txt
      - copied unchanged from r44450, /trunk/libs/exception/doc/source/html_prefix.txt
   branches/proto/v4/libs/exception/doc/source/html_suffix.txt
      - copied unchanged from r44450, /trunk/libs/exception/doc/source/html_suffix.txt
   branches/proto/v4/libs/exception/doc/using_enable_cloning.html
      - copied unchanged from r44450, /trunk/libs/exception/doc/using_enable_cloning.html
   branches/proto/v4/libs/exception/test/copy_exception_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/copy_exception_test.cpp
   branches/proto/v4/libs/exception/test/enable_current_exception_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/enable_current_exception_hpp_test.cpp
   branches/proto/v4/libs/exception/test/enable_error_info_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/enable_error_info_hpp_test.cpp
   branches/proto/v4/libs/exception/test/error_info_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/error_info_hpp_test.cpp
   branches/proto/v4/libs/exception/test/exception_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/exception_hpp_test.cpp
   branches/proto/v4/libs/exception/test/info_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/info_hpp_test.cpp
   branches/proto/v4/libs/exception/test/info_tuple_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/info_tuple_hpp_test.cpp
   branches/proto/v4/libs/exception/test/to_string_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/to_string_hpp_test.cpp
   branches/proto/v4/libs/exception/test/to_string_stub_hpp_test.cpp
      - copied unchanged from r44450, /trunk/libs/exception/test/to_string_stub_hpp_test.cpp
Removed:
   branches/proto/v4/boost/exception/cloning.hpp
   branches/proto/v4/boost/exception/enable_exception_cloning.hpp
Properties modified:
   branches/proto/v4/ (props changed)
Text files modified:
   branches/proto/v4/boost/detail/sp_counted_base.hpp | 5 --
   branches/proto/v4/boost/enable_shared_from_this.hpp | 22 +++++++----
   branches/proto/v4/boost/exception.hpp | 2
   branches/proto/v4/boost/math/special_functions/fpclassify.hpp | 10 ++--
   branches/proto/v4/boost/math/special_functions/gamma.hpp | 6 +-
   branches/proto/v4/boost/python/suite/indexing/container_utils.hpp | 13 ++++--
   branches/proto/v4/boost/regex/pending/object_cache.hpp | 2
   branches/proto/v4/libs/config/test/boost_has_pthreads.ipp | 2
   branches/proto/v4/libs/exception/doc/boost-exception.html | 74 +++++++++++++++++++++++----------------
   branches/proto/v4/libs/exception/doc/cloning.html | 24 ++++++------
   branches/proto/v4/libs/exception/doc/exception.html | 5 +-
   branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html | 7 ++-
   branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html | 6 +-
   branches/proto/v4/libs/exception/doc/exception_hpp.html | 4 +-
   branches/proto/v4/libs/exception/doc/exception_ptr.html | 12 +++--
   branches/proto/v4/libs/exception/doc/name_idx.html | 9 ++--
   branches/proto/v4/libs/exception/doc/rethrow_exception.html | 2
   branches/proto/v4/libs/exception/doc/throw_exception.html | 4 +-
   branches/proto/v4/libs/exception/doc/transporting_data.html | 2
   branches/proto/v4/libs/exception/doc/unknown_exception.html | 9 ++--
   branches/proto/v4/libs/exception/example/cloning_1.cpp | 5 +-
   branches/proto/v4/libs/exception/example/cloning_2.cpp | 8 ++--
   branches/proto/v4/libs/exception/test/Jamfile.v2 | 11 +++++
   branches/proto/v4/libs/exception/test/cloning_test.cpp | 8 ++--
   branches/proto/v4/libs/exception/test/throw_exception_test.cpp | 11 +----
   branches/proto/v4/libs/exception/test/unknown_exception_test.cpp | 37 +++++++++++++++++--
   branches/proto/v4/libs/math/test/Jamfile.v2 | 3 +
   branches/proto/v4/libs/math/test/pow_test.cpp | 2 +
   branches/proto/v4/libs/math/test/test_expint.cpp | 38 ++++++++++++++++++++
   branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp | 7 +++
   branches/proto/v4/libs/math/test/test_zeta.cpp | 8 +++-
   branches/proto/v4/libs/python/test/vector_indexing_suite.py | 13 +++++++
   branches/proto/v4/tools/build/v2/tools/common.jam | 4 +-
   33 files changed, 247 insertions(+), 128 deletions(-)

Modified: branches/proto/v4/boost/detail/sp_counted_base.hpp
==============================================================================
--- branches/proto/v4/boost/detail/sp_counted_base.hpp (original)
+++ branches/proto/v4/boost/detail/sp_counted_base.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -46,10 +46,7 @@
 #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) )
 # include <boost/detail/sp_counted_base_gcc_ppc.hpp>
 
-#elif defined(__GNUC__) && defined( __arm__ )
-# include <boost/detail/sp_counted_base_spin.hpp>
-
-#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
+#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( __arm__ ) && !defined( __hppa )
 # include <boost/detail/sp_counted_base_sync.hpp>
 
 #elif defined(__GNUC__) && ( defined( __sparcv8 ) || defined( __sparcv9 ) )

Modified: branches/proto/v4/boost/enable_shared_from_this.hpp
==============================================================================
--- branches/proto/v4/boost/enable_shared_from_this.hpp (original)
+++ branches/proto/v4/boost/enable_shared_from_this.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -93,17 +93,21 @@
     template<typename U>
     void _internal_accept_owner(shared_ptr<U> &owner) const
     {
- init_internal_shared_once();
-
         if( !_owned )
         {
- detail::sp_deleter_wrapper * pd = get_deleter<detail::sp_deleter_wrapper>(_internal_shared_this);
- BOOST_ASSERT( pd != 0 );
- pd->set_deleter(owner);
-
- owner.reset( _internal_shared_this, owner.get() );
- _internal_shared_this.reset();
-
+ if( !_internal_shared_this )
+ {
+ T * p = dynamic_cast<T *>(const_cast<enable_shared_from_this*>(this));
+ _internal_weak_this = shared_ptr<T>(owner, p);
+ }else
+ {
+ detail::sp_deleter_wrapper * pd = get_deleter<detail::sp_deleter_wrapper>(_internal_shared_this);
+ BOOST_ASSERT( pd != 0 );
+ pd->set_deleter(owner);
+
+ owner.reset( _internal_shared_this, owner.get() );
+ _internal_shared_this.reset();
+ }
             _owned = true;
         }
     }

Modified: branches/proto/v4/boost/exception.hpp
==============================================================================
--- branches/proto/v4/boost/exception.hpp (original)
+++ branches/proto/v4/boost/exception.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -7,7 +7,7 @@
 #define UUID_1D94A7C6054E11DB9804B622A1EF5492
 
 #include <boost/exception/info_tuple.hpp>
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
 #include <boost/throw_exception.hpp>
 
 #endif

Deleted: branches/proto/v4/boost/exception/cloning.hpp
==============================================================================
--- branches/proto/v4/boost/exception/cloning.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
+++ (empty file)
@@ -1,59 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_FA5836A2CADA11DC8CD47C8555D89593
-#define UUID_FA5836A2CADA11DC8CD47C8555D89593
-
-#include <boost/exception/enable_exception_cloning.hpp>
-#include <boost/exception/exception.hpp>
-#include <boost/exception/detail/cloning_base.hpp>
-#include <exception>
-
-namespace
-boost
- {
- class
- unknown_exception:
- public exception,
- public std::exception
- {
- public:
-
- explicit
- unknown_exception()
- {
- }
-
- explicit
- unknown_exception( boost::exception const & x ):
- boost::exception(x)
- {
- }
- };
-
- typedef intrusive_ptr<exception_detail::clone_base const> exception_ptr;
-
- template <class T>
- exception_ptr
- clone_exception( T const & e )
- {
- if( boost::exception_detail::cloning_base const * cb = dynamic_cast<boost::exception_detail::cloning_base const *>(&e) )
- if( exception_detail::clone_base const * c = cb->clone() )
- return exception_ptr(c);
- if( boost::exception const * be = dynamic_cast<boost::exception const *>(&e) )
- return exception_ptr(exception_detail::make_clone(unknown_exception(*be)));
- else
- return exception_ptr(exception_detail::make_clone(unknown_exception()));
- }
-
- inline
- void
- rethrow_exception( exception_ptr const & p )
- {
- p->rethrow();
- }
- }
-
-#endif

Deleted: branches/proto/v4/boost/exception/enable_exception_cloning.hpp
==============================================================================
--- branches/proto/v4/boost/exception/enable_exception_cloning.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
+++ (empty file)
@@ -1,148 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_78CC85B2914F11DC8F47B48E55D89593
-#define UUID_78CC85B2914F11DC8F47B48E55D89593
-
-#include <boost/exception/detail/counted_base.hpp>
-#include <boost/exception/detail/cloning_base.hpp>
-#include <boost/detail/atomic_count.hpp>
-#include <boost/assert.hpp>
-#include <new>
-
-namespace
-boost
- {
- namespace
- exception_detail
- {
- class
- clone_base:
- public counted_base
- {
- public:
-
- virtual void rethrow() const=0;
- };
-
- struct
- bad_alloc_impl:
- public clone_base,
- public std::bad_alloc
- {
- void
- add_ref() const
- {
- }
-
- void
- release() const
- {
- }
-
- void
- rethrow() const
- {
- throw *this;
- }
- };
-
- template <class T>
- clone_base * make_clone( T const & );
-
- template <class T>
- class
- clone_impl:
- public T,
- public cloning_base
- {
- public:
-
- explicit
- clone_impl( T const & x ):
- T(x)
- {
- }
-
- private:
-
- clone_base const *
- clone() const
- {
- return make_clone<T>(*this);
- }
- };
-
- template <class T>
- class
- exception_clone:
- public T,
- public clone_base
- {
- public:
-
- explicit
- exception_clone( T const & x ):
- T(x),
- count_(0)
- {
- }
-
- private:
-
- detail::atomic_count mutable count_;
-
- void
- add_ref() const
- {
- ++count_;
- }
-
- void
- release() const
- {
- if( !--count_ )
- delete this;
- }
-
- void
- rethrow() const
- {
- throw clone_impl<T>(*this);
- }
- };
-
- template <class T>
- clone_base *
- make_clone( T const & x )
- {
- try
- {
- return new exception_clone<T>(x);
- }
- catch(
- std::bad_alloc & )
- {
- static bad_alloc_impl bad_alloc;
- return &bad_alloc;
- }
- catch(
- ... )
- {
- BOOST_ASSERT(0);
- return 0;
- }
- }
- }
-
- template <class T>
- exception_detail::clone_impl<T>
- enable_exception_cloning( T const & x )
- {
- return exception_detail::clone_impl<T>(x);
- }
- }
-
-#endif

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-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -73,7 +73,7 @@
 #ifdef isnan
    return isnan(t);
 #else // BOOST_HAS_FPCLASSIFY
- return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == FP_NAN);
+ return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
 #endif
 }
 
@@ -200,19 +200,19 @@
 inline bool isfinite BOOST_NO_MACRO_EXPAND(T z)
 {
    int t = (::boost::math::fpclassify)(z);
- return (t != FP_NAN) && (t != FP_INFINITE);
+ return (t != (int)FP_NAN) && (t != (int)FP_INFINITE);
 }
 
 template <class T>
 inline bool isinf BOOST_NO_MACRO_EXPAND(T t)
 {
- return (::boost::math::fpclassify)(t) == FP_INFINITE;
+ return (::boost::math::fpclassify)(t) == (int)FP_INFINITE;
 }
 
 template <class T>
 inline bool isnan BOOST_NO_MACRO_EXPAND(T t)
 {
- return (::boost::math::fpclassify)(t) == FP_NAN;
+ return (::boost::math::fpclassify)(t) == (int)FP_NAN;
 }
 #ifdef isnan
 template <> inline bool isnan BOOST_NO_MACRO_EXPAND<float>(float t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
@@ -232,7 +232,7 @@
 template <class T>
 inline bool isnormal BOOST_NO_MACRO_EXPAND(T t)
 {
- return (::boost::math::fpclassify)(t) == FP_NORMAL;
+ return (::boost::math::fpclassify)(t) == (int)FP_NORMAL;
 }
 
 } // namespace math

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-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -152,7 +152,7 @@
       result = -boost::math::constants::pi<T>() / result;
       if(result == 0)
          return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
- if((boost::math::fpclassify)(result) == FP_SUBNORMAL)
+ if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
          return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
       return result;
    }
@@ -352,7 +352,7 @@
       result = -boost::math::constants::pi<T>() / result;
       if(result == 0)
          return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
- if((boost::math::fpclassify)(result) == FP_SUBNORMAL)
+ if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
          return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
       return result;
    }
@@ -584,7 +584,7 @@
    // This error handling isn't very good: it happens after the fact
    // rather than before it...
    //
- if((boost::math::fpclassify)(prefix) == FP_INFINITE)
+ if((boost::math::fpclassify)(prefix) == (int)FP_INFINITE)
       policies::raise_overflow_error<T>("boost::math::detail::full_igamma_prefix<%1%>(%1%, %1%)", "Result of incomplete gamma function is too large to represent.", pol);
 
    return prefix;

Modified: branches/proto/v4/boost/python/suite/indexing/container_utils.hpp
==============================================================================
--- branches/proto/v4/boost/python/suite/indexing/container_utils.hpp (original)
+++ branches/proto/v4/boost/python/suite/indexing/container_utils.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -7,9 +7,12 @@
 #ifndef PY_CONTAINER_UTILS_JDG20038_HPP
 # define PY_CONTAINER_UTILS_JDG20038_HPP
 
+# include <utility>
+# include <boost/foreach.hpp>
 # include <boost/python/object.hpp>
 # include <boost/python/handle.hpp>
 # include <boost/python/extract.hpp>
+# include <boost/python/stl_iterator.hpp>
 
 namespace boost { namespace python { namespace container_utils {
         
@@ -19,11 +22,13 @@
     {
         typedef typename Container::value_type data_type;
         
- // l must be a list or some container
-
- for (int i = 0; i < l.attr("__len__")(); i++)
+ // l must be iterable
+ BOOST_FOREACH(object elem,
+ std::make_pair(
+ boost::python::stl_input_iterator<object>(l),
+ boost::python::stl_input_iterator<object>()
+ ))
         {
- object elem(l[i]);
             extract<data_type const&> x(elem);
             // try if elem is an exact data_type type
             if (x.check())

Modified: branches/proto/v4/boost/regex/pending/object_cache.hpp
==============================================================================
--- branches/proto/v4/boost/regex/pending/object_cache.hpp (original)
+++ branches/proto/v4/boost/regex/pending/object_cache.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -119,7 +119,7 @@
    //
    // Add it to the list, and index it:
    //
- s_data.cont.push_back(value_type(result, 0));
+ s_data.cont.push_back(value_type(result, static_cast<Key const*>(0)));
    s_data.index.insert(std::make_pair(k, --(s_data.cont.end())));
    s_data.cont.back().second = &(s_data.index.find(k)->first);
    map_size_type s = s_data.index.size();

Modified: branches/proto/v4/libs/config/test/boost_has_pthreads.ipp
==============================================================================
--- branches/proto/v4/libs/config/test/boost_has_pthreads.ipp (original)
+++ branches/proto/v4/libs/config/test/boost_has_pthreads.ipp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -14,7 +14,7 @@
 
 namespace boost_has_pthreads{
 
-void* thread_proc(void* arg)
+extern "C" void* thread_proc(void* arg)
 {
    return arg;
 }

Modified: branches/proto/v4/libs/exception/doc/boost-exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/boost-exception.html (original)
+++ branches/proto/v4/libs/exception/doc/boost-exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -22,7 +22,7 @@
 <p>The ability to add data to exception objects after they have been passed to <tt>throw</tt> is important, because often some of the information needed to handle an exception is unavailable in the context where the failure is detected. </p>
 <p>Boost Exception also supports <span class="RenoLink">cloning</span> of exception objects, implemented non-intrusively and automatically by the <tt>boost::<span class="RenoLink">throw_exception</span>()</tt> function.</p>
 <h4>Note:</h4>
-<p>Boost Exception was accepted as a Boost library on November 7, 2007; however it has not yet been part of an official Boost release.</p>
+<p>Boost Exception was accepted as a Boost library on November 7 2007, however it has not yet been part of an official Boost release. Current version can be downloaded from <span class="RenoLink"> Boost SVN</span>.</p>
 <h2>Contents</h2>
 <div><ol><li>Tutorial<div><ol><li><span class="RenoLink">Tutorial: Transporting of Arbitrary Data to the Catch Site</span></li>
 <li><span class="RenoLink">Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies</span></li>
@@ -39,28 +39,28 @@
 </ol></div>
 </li>
 <li>Transporting of Exceptions between Threads<div><ol><li><tt><span class="RenoLink">exception_ptr</span></tt></li>
-<li><tt><span class="RenoLink">enable_exception_cloning</span>()</tt></li>
-<li><tt><span class="RenoLink">clone_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">enable_current_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">current_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">copy_exception</span>()</tt></li>
 <li><tt><span class="RenoLink">rethrow_exception</span>()</tt></li>
 <li><tt><span class="RenoLink">unknown_exception</span></tt></li>
 </ol></div>
 </li>
 <li><tt><span class="RenoLink">throw_exception</span>()</tt></li>
 <li>Headers<div><ol><li><tt><span class="RenoLink">boost/exception.hpp</span></tt></li>
-<li><tt><span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/exception_ptr.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/throw_exception.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/exception/enable_current_exception.hpp</span></tt></li>
 <li><tt><span class="RenoLink">boost/exception/enable_error_info.hpp</span></tt></li>
 <li><tt><span class="RenoLink">boost/exception/info.hpp</span></tt></li>
 <li><tt><span class="RenoLink">boost/exception/info_tuple.hpp</span></tt></li>
 <li><tt><span class="RenoLink">boost/exception/error_info.hpp</span></tt></li>
 <li><tt><span class="RenoLink">boost/exception/exception.hpp</span></tt></li>
-<li><tt><span class="RenoLink">boost/throw_exception.hpp</span></tt></li>
 </ol></div>
 </li>
 </ol></div>
 </li>
 <li><span class="RenoLink">Index</span></li>
-<li><span class="RenoLink">Download</span></li>
-<li><span class="RenoLink">Browse source code</span></li>
 </ol></div>
 <h2>Synopsis</h2>
 <p><tt>#include &lt;<span class="RenoLink">boost/exception.hpp</span>&gt;</tt></p>
@@ -128,10 +128,11 @@
 <span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
 
 <span class="RenoIncludeSPAN"> template &lt;class T&gt;
- ---unspecified--- <span class="RenoLink">enable_exception_cloning</span>( T const &amp; e );</span>
+ ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span>
 
+<span class="RenoIncludeSPAN"> <span class="RenoLink">exception_ptr</span> <span class="RenoLink">current_exception</span>();</span>
 <span class="RenoIncludeSPAN"> template &lt;class T&gt;
- <span class="RenoLink">exception_ptr</span> <span class="RenoLink">clone_exception</span>( T const &amp; e );</span>
+ <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const &amp; e );</span>
 <span class="RenoIncludeSPAN"> void <span class="RenoLink">rethrow_exception</span>( <span class="RenoLink">exception_ptr</span> const &amp; ep );</span>
 
 <span class="RenoIncludeSPAN"> class
@@ -299,22 +300,24 @@
 </div><p>This macro is designed to be used with <tt><span class="RenoLink">operator<<</span>()</tt> when throwing a <tt>boost::<span class="RenoLink">exception</span></tt>, to store information about the location of the throw statement. It can be chained with other <tt><span class="RenoLink">error_info</span></tt>s in a single throw expression.</p>
 </div><h2>Transporting of Exceptions between Threads</h2>
 <div class="RenoIncludeDIV"><h3>exception_ptr</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
 <span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
     }</pre>
-</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of a <tt>boost::<span class="RenoLink">exception</span></tt> object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
+</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
 <p>Two instances of <tt><span class="RenoLink">exception_ptr</span></tt> are equivalent and compare equal if and only if they refer to the same exception.</p>
 <p>The default constructor of <tt><span class="RenoLink">exception_ptr</span></tt> produces the null value of the type. The null value is equivalent only to itself.</p>
-</div><div class="RenoIncludeDIV"><h3>enable_exception_cloning()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span>&gt;</tt></p>
+<h4>Note:</h4>
+<p><tt><span class="RenoLink">exception_ptr</span></tt> objects are returned by <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">copy_exception</span>()</tt>.</p>
+</div><div class="RenoIncludeDIV"><h3>enable_current_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
 <span class="RenoIncludeSPAN"> template &lt;class T&gt;
- ---unspecified--- <span class="RenoLink">enable_exception_cloning</span>( T const &amp; e );</span>
+ ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span>
     }</pre>
 </div><h4>Requirements:</h4>
 <p><tt>T</tt> must have an accessible no-throw copy constructor</p>
@@ -329,29 +332,39 @@
     };
 
 ....
-throw boost::<span class="RenoLink">enable_exception_cloning</span>(my_exception());</pre>
-<p>Unless <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> is called at the time an exception object is used in a throw-expression, any attempt to copy it using <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+throw boost::<span class="RenoLink">enable_current_exception</span>(my_exception());</pre>
+<p>Unless <tt><span class="RenoLink">enable_current_exception</span>()</tt> is called at the time an exception object is used in a throw-expression, any attempt to copy it using <tt><span class="RenoLink">current_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
 <h4>Note:</h4>
 <p>Instead of using the <tt>throw</tt> keyword directly, it is preferable to call <tt>boost::<span class="RenoLink">throw_exception</span>()</tt>. This is guaranteed to throw an exception that derives from <tt>boost::<span class="RenoLink">exception</span></tt> and supports cloning.</p>
-</div><div class="RenoIncludeDIV"><h3>clone_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+</div><div class="RenoIncludeDIV"><h3>current_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
-<span class="RenoIncludeSPAN"> template &lt;class T&gt;
- <span class="RenoLink">exception_ptr</span> <span class="RenoLink">clone_exception</span>( T const &amp; e );</span>
+<span class="RenoIncludeSPAN"> <span class="RenoLink">exception_ptr</span> <span class="RenoLink">current_exception</span>();</span>
     }</pre>
 </div><h4>Requirements:</h4>
-<p><tt>T</tt> must be polymorphic.</p>
+<p>The <tt><span class="RenoLink">current_exception</span>()</tt> function must not be called outside of a <tt>catch</tt> block.</p>
 <h4>Returns:</h4>
-<div><ul><li> If <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> was not used at the time the exception object was passed to <tt>throw</tt>, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>. In this case, if the original exception object derives from <tt>boost::<span class="RenoLink">exception</span></tt>, then the <tt>boost::<span class="RenoLink">exception</span></tt> sub-object of the <tt><span class="RenoLink">unknown_exception</span></tt> object is initialized by the <tt>boost::<span class="RenoLink">exception</span></tt> copy constructor;</li>
-<li> Otherwise, if the attempt to clone the exception results in a <tt>std::bad_alloc</tt> exception, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to an instance of <tt>std::bad_alloc</tt>;</li>
-<li> Otherwise, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to a copy of <tt>e</tt>.</li>
+<div><ul><li> An <tt><span class="RenoLink">exception_ptr</span></tt> that refers to the currently handled exception or a copy of the currently handled exception.</li>
+<li> If the function needs to allocate memory and the attempt fails, it returns an <tt><span class="RenoLink">exception_ptr</span></tt> that refers to an instance of <tt>std::bad_alloc</tt>.</li>
 </ul></div>
-<h4>Note:</h4>
-<p>It is unspecified whether the return values of two successive calls to <tt><span class="RenoLink">clone_exception</span>()</tt> refer to the same exception object.</p>
+<h4>Notes:</h4>
+<div><ul><li> It is unspecified whether the return values of two successive calls to <tt><span class="RenoLink">current_exception</span>()</tt> refer to the same exception object.</li>
+<li> Correct implementation of <tt><span class="RenoLink">current_exception</span>()</tt> may require compiler support, unless <tt><span class="RenoLink">enable_current_exception</span>()</tt> is used at the time the currently handled exception object was passed to <tt>throw</tt>. If <tt><span class="RenoLink">enable_current_exception</span>()</tt> is not used, and if the compiler does not provide the necessary support, then <tt><span class="RenoLink">current_exception</span>()</tt> may return an <tt><span class="RenoLink">exception_ptr</span></tt> that refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>. In this case, if the original exception object derives from <tt>boost::<span class="RenoLink">exception</span></tt>, t
hen the <tt>boost::<span class="RenoLink">exception</span></tt> sub-object of the <tt><span class="RenoLink">unknown_exception</span></tt> object is initialized by the <tt>boost::<span class="RenoLink">exception</span></tt> copy constructor.</li>
+</ul></div>
+</div><div class="RenoIncludeDIV"><h3>copy_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
+<pre>namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> template &lt;class T&gt;
+ <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const &amp; e );</span>
+ }</pre>
+</div><h4>Effects:</h4>
+<p>As if <tt>try { throw e; } catch( ... ) { return <span class="RenoLink">current_exception</span>(); }</tt></p>
 </div><div class="RenoIncludeDIV"><h3>rethrow_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
@@ -362,7 +375,7 @@
 <h4>Throws:</h4>
 <p>The exception to which <tt>ep</tt> refers.</p>
 </div><div class="RenoIncludeDIV"><h3>unknown_exception</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
@@ -374,8 +387,7 @@
         ---unspecified---
         };</span>
     }</pre>
-</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception.</p>
-<p>To allow an exception to be cloned, <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> must be used at the time the exception object is passed to <tt>throw</tt>. Otherwise, calling <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception. Please see <tt><span class="RenoLink">current_exception</span>()</tt>.</p>
 </div><h2>Throwing Exceptions</h2>
 <div class="RenoIncludeDIV"><h3>throw_exception()</h3>
 <div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/throw_exception.hpp</span>&gt;</tt></p>
@@ -390,7 +402,7 @@
 #endif</span>
     }</pre>
 </div><h4>Effects:</h4>
-<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_exception_cloning</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
+<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_current_exception</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
 <li> If <tt>BOOST_NO_EXCEPTIONS</tt> is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <tt>throw_exception</tt> are allowed to assume that the function never returns; therefore, if the user-defined <tt>throw_exception</tt> returns, the behavior is undefined.</li>
 </ul></div>
 </div><div id="footer">

Modified: branches/proto/v4/libs/exception/doc/cloning.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/cloning.html (original)
+++ branches/proto/v4/libs/exception/doc/cloning.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,12 +17,12 @@
 <h1>Boost Exception</h1>
 </div>
 <div class="RenoIncludeDIV"><h2>Transporting of Exceptions between Threads</h2>
-<p>Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to <span class="RenoLink">N2179</span>, but because Boost Exception can not rely on language support, the use of <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> at the time of the throw is required in order to use cloning.</p>
+<p>Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to <span class="RenoLink">N2179</span>, but because Boost Exception can not rely on language support, the use of <tt><span class="RenoLink">enable_current_exception</span>()</tt> at the time of the throw is required in order to use cloning.</p>
 <h4>Note:</h4>
 <p>All exceptions emitted by the familiar function <tt>boost::<span class="RenoLink">throw_exception</span>()</tt> are guaranteed to derive from <tt>boost::<span class="RenoLink">exception</span></tt> and to support cloning.</p>
-<div class="RenoIncludeDIV"><h3>Using enable_exception_cloning() at the Time of the Throw</h3>
+<div class="RenoIncludeDIV"><h3>Using enable_current_exception() at the Time of the Throw</h3>
 <p>Here is how cloning can be enabled in a throw-expression (15.1):</p>
-<pre>#include &lt;<span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span>&gt;
+<pre>#include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;
 #include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;
 #include &lt;stdio.h&gt;
 #include &lt;errno.h&gt;
@@ -35,12 +35,12 @@
 file_read( FILE * f, void * buffer, size_t size )
     {
     if( size!=fread(buffer,1,size,f) )
- throw boost::<span class="RenoLink">enable_exception_cloning</span>(file_read_error()) &lt;&lt;
+ throw boost::<span class="RenoLink">enable_current_exception</span>(file_read_error()) &lt;&lt;
             errno_info(errno);
     }</pre>
 </div><div class="RenoIncludeDIV"><h3>Cloning and Re-throwing an Exception</h3>
-<p>When you catch a <tt>boost::<span class="RenoLink">exception</span></tt>, you can call <tt><span class="RenoLink">clone_exception</span>()</tt> to get an <tt><span class="RenoLink">exception_ptr</span></tt> object:</p>
-<pre>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;
+<p>When you catch a <tt>boost::<span class="RenoLink">exception</span></tt>, you can call <tt><span class="RenoLink">current_exception</span>()</tt> to get an <tt><span class="RenoLink">exception_ptr</span></tt> object:</p>
+<pre>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;
 #include &lt;boost/thread.hpp&gt;
 #include &lt;boost/bind.hpp&gt;
 
@@ -55,12 +55,12 @@
         error = boost::<span class="RenoLink">exception_ptr</span>();
         }
     catch(
- boost::<span class="RenoLink">exception</span> &amp; e )
+ ... )
         {
- error = boost::<span class="RenoLink">clone_exception</span>(e);
+ error = boost::<span class="RenoLink">current_exception</span>();
         }
     }</pre>
-<p>In the above example, note that <tt><span class="RenoLink">clone_exception</span>()</tt> captures the original type of the exception object, even though <tt>e</tt> refers to the base type <tt>boost::<span class="RenoLink">exception</span></tt>. This original type can be thrown again using the <tt><span class="RenoLink">rethrow_exception</span>()</tt> function:</p>
+<p>In the above example, note that <tt><span class="RenoLink">current_exception</span>()</tt> captures the original type of the exception object. The exception can be thrown again using the <tt><span class="RenoLink">rethrow_exception</span>()</tt> function:</p>
 <pre>// ...continued
 
 void
@@ -72,11 +72,11 @@
     if( error )
         boost::<span class="RenoLink">rethrow_exception</span>(error);
     }</pre>
-<p><tt><span class="RenoLink">Clone_exception</span>()</tt> could fail to copy the original exception object in the following cases:</p>
+<p><tt><span class="RenoLink">current_exception</span>()</tt> could fail to copy the original exception object in the following cases:</p>
 <div><ul><li> if there is not enough memory, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt>std::bad_alloc</tt>, or</li>
-<li> if <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> was not used in the throw-expression passed to the original <tt>throw</tt> statement, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</li>
+<li> if <tt><span class="RenoLink">enable_current_exception</span>()</tt> was not used in the throw-expression passed to the original <tt>throw</tt> statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</li>
 </ul></div>
-<p>Regardless, the use of <tt><span class="RenoLink">clone_exception</span>()</tt> and <tt><span class="RenoLink">rethrow_exception</span>()</tt> in the above examples is well-formed.</p>
+<p>Regardless, the use of <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">rethrow_exception</span>()</tt> in the above examples is well-formed.</p>
 </div></div><h3>See also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="unknown_exception.html">unknown_exception<br/>

Modified: branches/proto/v4/libs/exception/doc/exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception.html (original)
+++ branches/proto/v4/libs/exception/doc/exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -68,11 +68,10 @@
 </div></div></div><h3>See also:</h3>
 <div class="RenoPageList"><a href="BOOST_ERROR_INFO.html">BOOST_ERROR_INFO<br/>
 </a><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="clone_exception.html">clone_exception<br/>
+</a><a href="current_exception.html">current_exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a><a href="enable_error_info.html">enable_error_info<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
 </a><a href="error_info.html">error_info<br/>
-</a><a href="exception_ptr.html">exception_ptr<br/>
 </a><a href="get_error_info.html">get_error_info<br/>
 </a><a href="operator_shl_exception.html">operator&lt;&lt;/exception<br/>
 </a><a href="using_enable_error_info.html">Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies<br/>

Modified: branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
 <head>
         <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>boost/exception/cloning.hpp</title>
+ <title>boost/exception_ptr.hpp</title>
         <link href='reno.css' type='text/css' rel='stylesheet'/>
 </head>
 <body>
@@ -16,9 +16,10 @@
 </div>
 <h1>Boost Exception</h1>
 </div>
-<h3>boost/exception/cloning.hpp</h3>
+<h3>boost/exception_ptr.hpp</h3>
 <p>This header file contains the following definitions/declarations:</p>
-<div class="RenoPageList"><a href="clone_exception.html">clone_exception<br/>
+<div class="RenoPageList"><a href="copy_exception.html">copy_exception<br/>
+</a><a href="current_exception.html">current_exception<br/>
 </a><a href="exception_ptr.html">exception_ptr<br/>
 </a><a href="rethrow_exception.html">rethrow_exception<br/>
 </a><a href="unknown_exception.html">unknown_exception<br/>

Modified: branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
 <head>
         <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>boost/exception/enable_exception_cloning.hpp</title>
+ <title>boost/exception/enable_current_exception.hpp</title>
         <link href='reno.css' type='text/css' rel='stylesheet'/>
 </head>
 <body>
@@ -16,9 +16,9 @@
 </div>
 <h1>Boost Exception</h1>
 </div>
-<h3>boost/exception/enable_exception_cloning.hpp</h3>
+<h3>boost/exception/enable_current_exception.hpp</h3>
 <p>This header file contains the following definitions/declarations:</p>
-<div class="RenoPageList"><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+<div class="RenoPageList"><a href="enable_current_exception.html">enable_current_exception<br/>
 </a></div>
 <div id="footer">
 <p>&nbsp;</p>

Modified: branches/proto/v4/libs/exception/doc/exception_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -19,13 +19,13 @@
 <h3>boost/exception.hpp</h3>
 <p>This header file includes all other header files of Boost Exception:</p>
 <div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="exception_cloning_hpp.html">boost/exception/cloning.hpp<br/>
+</a><a href="exception_enable_exception_cloning_hpp.html">boost/exception/enable_current_exception.hpp<br/>
 </a><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
-</a><a href="exception_enable_exception_cloning_hpp.html">boost/exception/enable_exception_cloning.hpp<br/>
 </a><a href="exception_error_info_value_hpp.html">boost/exception/error_info.hpp<br/>
 </a><a href="exception_exception_hpp.html">boost/exception/exception.hpp<br/>
 </a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
 </a><a href="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp<br/>
+</a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/>
 </a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
 </a></div>
 <div id="footer">

Modified: branches/proto/v4/libs/exception/doc/exception_ptr.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_ptr.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_ptr.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,21 +17,23 @@
 <h1>Boost Exception</h1>
 </div>
 <div class="RenoIncludeDIV"><h3>exception_ptr</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
 <span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
     }</pre>
-</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of a <tt>boost::<span class="RenoLink">exception</span></tt> object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
+</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
 <p>Two instances of <tt><span class="RenoLink">exception_ptr</span></tt> are equivalent and compare equal if and only if they refer to the same exception.</p>
 <p>The default constructor of <tt><span class="RenoLink">exception_ptr</span></tt> produces the null value of the type. The null value is equivalent only to itself.</p>
+<h4>Note:</h4>
+<p><tt><span class="RenoLink">exception_ptr</span></tt> objects are returned by <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">copy_exception</span>()</tt>.</p>
 </div><h3>See also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="clone_exception.html">clone_exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="copy_exception.html">copy_exception<br/>
+</a><a href="current_exception.html">current_exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a><a href="rethrow_exception.html">rethrow_exception<br/>
-</a><a href="unknown_exception.html">unknown_exception<br/>
 </a></div>
 <div id="footer">
 <p>&nbsp;</p>

Modified: branches/proto/v4/libs/exception/doc/name_idx.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/name_idx.html (original)
+++ branches/proto/v4/libs/exception/doc/name_idx.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -21,19 +21,20 @@
 <p>BOOST_ERROR_INFO</p>
 <h3>b</h3>
 <p>boost/exception.hpp</p>
-<p>boost/exception/cloning.hpp</p>
+<p>boost/exception/enable_current_exception.hpp</p>
 <p>boost/exception/enable_error_info.hpp</p>
-<p>boost/exception/enable_exception_cloning.hpp</p>
 <p>boost/exception/error_info.hpp</p>
 <p>boost/exception/exception.hpp</p>
 <p>boost/exception/info.hpp</p>
 <p>boost/exception/info_tuple.hpp</p>
+<p>boost/exception_ptr.hpp</p>
 <p>boost/throw_exception.hpp</p>
 <h3>c</h3>
-<p>clone_exception</p>
+<p>copy_exception</p>
+<p>current_exception</p>
 <h3>e</h3>
+<p>enable_current_exception</p>
 <p>enable_error_info</p>
-<p>enable_exception_cloning</p>
 <p>error_info</p>
 <p>exception</p>
 <p>exception::exception</p>

Modified: branches/proto/v4/libs/exception/doc/rethrow_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/rethrow_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/rethrow_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,7 +17,7 @@
 <h1>Boost Exception</h1>
 </div>
 <div class="RenoIncludeDIV"><h3>rethrow_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {

Modified: branches/proto/v4/libs/exception/doc/throw_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/throw_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/throw_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -29,12 +29,12 @@
 #endif</span>
     }</pre>
 </div><h4>Effects:</h4>
-<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_exception_cloning</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
+<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_current_exception</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
 <li> If <tt>BOOST_NO_EXCEPTIONS</tt> is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <tt>throw_exception</tt> are allowed to assume that the function never returns; therefore, if the user-defined <tt>throw_exception</tt> returns, the behavior is undefined.</li>
 </ul></div>
 </div><h3>See also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a><a href="cloning.html">Tutorial: Transporting of Exceptions between Threads<br/>
 </a></div>
 <div id="footer">

Modified: branches/proto/v4/libs/exception/doc/transporting_data.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/transporting_data.html (original)
+++ branches/proto/v4/libs/exception/doc/transporting_data.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -141,7 +141,7 @@
 #include &lt;boost/shared_ptr.hpp&gt;
 #include &lt;stdio.h&gt;
 #include &lt;string&gt;
-#include &lt;errno&gt;
+#include &lt;errno.h&gt;
 
 typedef boost::<span class="RenoLink">error_info</span>&lt;struct tag_file_name,std::string&gt; file_name_info;
 typedef boost::<span class="RenoLink">error_info</span>&lt;struct tag_function,char const *&gt; function_info;

Modified: branches/proto/v4/libs/exception/doc/unknown_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/unknown_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/unknown_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,7 +17,7 @@
 <h1>Boost Exception</h1>
 </div>
 <div class="RenoIncludeDIV"><h3>unknown_exception</h3>
-<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception/cloning.hpp</span>&gt;</tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</tt></p>
 <pre>namespace
 boost
     {
@@ -29,12 +29,11 @@
         ---unspecified---
         };</span>
     }</pre>
-</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception.</p>
-<p>To allow an exception to be cloned, <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> must be used at the time the exception object is passed to <tt>throw</tt>. Otherwise, calling <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception. Please see <tt><span class="RenoLink">current_exception</span>()</tt>.</p>
 </div><h3>See also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="clone_exception.html">clone_exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="current_exception.html">current_exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a></div>
 <div id="footer">
 <p>&nbsp;</p>

Modified: branches/proto/v4/libs/exception/example/cloning_1.cpp
==============================================================================
--- branches/proto/v4/libs/exception/example/cloning_1.cpp (original)
+++ branches/proto/v4/libs/exception/example/cloning_1.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
 
 //This example shows how to enable cloning when throwing a boost::exception.
 
-#include <boost/exception/enable_exception_cloning.hpp>
+#include <boost/exception/enable_current_exception.hpp>
 #include <boost/exception/info.hpp>
 #include <stdio.h>
 #include <errno.h>
@@ -18,5 +18,6 @@
 file_read( FILE * f, void * buffer, size_t size )
     {
     if( size!=fread(buffer,1,size,f) )
- throw boost::enable_exception_cloning(file_read_error()) << errno_info(errno);
+ throw boost::enable_current_exception(file_read_error()) <<
+ errno_info(errno);
     }

Modified: branches/proto/v4/libs/exception/example/cloning_2.cpp
==============================================================================
--- branches/proto/v4/libs/exception/example/cloning_2.cpp (original)
+++ branches/proto/v4/libs/exception/example/cloning_2.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
 
 //This example shows how to transport cloning-enabled boost::exceptions between threads.
 
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
 #include <boost/thread.hpp>
 #include <boost/bind.hpp>
 
@@ -20,13 +20,13 @@
         error = boost::exception_ptr();
         }
     catch(
- boost::exception & e )
+ ... )
         {
- error = boost::clone_exception(e);
+ error = boost::current_exception();
         }
     }
 
-//
+// ...continued
 
 void
 work()

Modified: branches/proto/v4/libs/exception/test/Jamfile.v2
==============================================================================
--- branches/proto/v4/libs/exception/test/Jamfile.v2 (original)
+++ branches/proto/v4/libs/exception/test/Jamfile.v2 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -16,6 +16,7 @@
 
 #exception
 run cloning_test.cpp ;
+run copy_exception_test.cpp ;
 run unknown_exception_test.cpp ;
 run exception_test.cpp ;
 run boost_error_info_test.cpp ;
@@ -25,3 +26,13 @@
 run error_info_test.cpp ;
 run what_test.cpp ;
 compile-fail exception_fail.cpp ;
+
+#headers
+compile enable_current_exception_hpp_test.cpp ;
+compile enable_error_info_hpp_test.cpp ;
+compile error_info_hpp_test.cpp ;
+compile exception_hpp_test.cpp ;
+compile info_hpp_test.cpp ;
+compile info_tuple_hpp_test.cpp ;
+compile to_string_hpp_test.cpp ;
+compile to_string_stub_hpp_test.cpp ;

Modified: branches/proto/v4/libs/exception/test/cloning_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/cloning_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/cloning_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
 //Distributed under the Boost Software License, Version 1.0. (See accompanying
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
 struct
@@ -17,12 +17,12 @@
     {
     try
         {
- throw boost::enable_exception_cloning(test_exception());
+ throw boost::enable_current_exception(test_exception());
         }
     catch(
- std::exception & x )
+ ... )
         {
- boost::exception_ptr p = boost::clone_exception(x);
+ boost::exception_ptr p = boost::current_exception();
         try
             {
             rethrow_exception(p);

Modified: branches/proto/v4/libs/exception/test/throw_exception_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/throw_exception_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/throw_exception_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
 
 #include "helper2.hpp"
 #include <boost/exception/info.hpp>
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
 typedef boost::error_info<struct tag_test_int,int> test_int;
@@ -35,9 +35,9 @@
         BOOST_ASSERT(false);
         }
     catch(
- std::exception & x )
+ ... )
         {
- boost::exception_ptr p = boost::clone_exception(x);
+ boost::exception_ptr p = boost::current_exception();
         try
             {
             rethrow_exception(p);
@@ -55,11 +55,6 @@
             BOOST_TEST(false);
             }
         }
- catch(
- ... )
- {
- BOOST_TEST(false);
- }
     }
 
 int

Modified: branches/proto/v4/libs/exception/test/unknown_exception_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/unknown_exception_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/unknown_exception_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
 //Distributed under the Boost Software License, Version 1.0. (See accompanying
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
@@ -40,9 +40,9 @@
         throw_boost_exception();
         }
     catch(
- boost::exception & x )
+ ... )
         {
- boost::exception_ptr ep=boost::clone_exception(x);
+ boost::exception_ptr ep=boost::current_exception();
         try
             {
             rethrow_exception(ep);
@@ -57,15 +57,29 @@
             {
             BOOST_TEST(false);
             }
+ try
+ {
+ rethrow_exception(ep);
+ }
+ catch(
+ boost::exception & x )
+ {
+ BOOST_TEST( 42==*boost::get_error_info<test>(x) );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
         }
     try
         {
         throw_unknown_exception();
         }
     catch(
- std::exception & x )
+ ... )
         {
- boost::exception_ptr ep=boost::clone_exception(x);
+ boost::exception_ptr ep=boost::current_exception();
         try
             {
             rethrow_exception(ep);
@@ -79,6 +93,19 @@
             {
             BOOST_TEST(false);
             }
+ try
+ {
+ rethrow_exception(ep);
+ }
+ catch(
+ boost::exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
         }
     return boost::report_errors();
     }

Modified: branches/proto/v4/libs/math/test/Jamfile.v2
==============================================================================
--- branches/proto/v4/libs/math/test/Jamfile.v2 (original)
+++ branches/proto/v4/libs/math/test/Jamfile.v2 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -13,7 +13,8 @@
       <toolset>gcc:<cxxflags>-Wno-missing-braces
       <toolset>darwin:<cxxflags>-Wno-missing-braces
       <toolset>acc:<cxxflags>+W2068,2461,2236,4070,4069
- <toolset>intel:<cxxflags>-Qwd264,239
+ <toolset>intel:<cxxflags>-Qwd264
+ <toolset>intel:<cxxflags>-Qwd239
       <toolset>intel:<cxxflags>/nologo
       <toolset>intel-linux:<cxxflags>-wd239
       <toolset>intel:<linkflags>/nologo

Modified: branches/proto/v4/libs/math/test/pow_test.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/pow_test.cpp (original)
+++ branches/proto/v4/libs/math/test/pow_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -106,7 +106,9 @@
     BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(5ul)), double>::value));
     BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(6.0f)), float>::value));
     BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(7.0)), double>::value));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
     BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(7.0l)), long double>::value));
+#endif
 };
 
 

Modified: branches/proto/v4/libs/math/test/test_expint.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_expint.cpp (original)
+++ branches/proto/v4/libs/math/test/test_expint.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -60,6 +60,36 @@
    largest_type = "(long\\s+)?double";
 #endif
 
+ //
+ // On MacOS X erfc has much higher error levels than
+ // expected: given that the implementation is basically
+ // just a rational function evaluation combined with
+ // exponentiation, we conclude that exp and pow are less
+ // accurate on this platform, especially when the result
+ // is outside the range of a double.
+ //
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ "float|double|long double", // test type(s)
+ ".*E1.*", // test data group
+ ".*", 30, 10); // test function
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ "float|double|long double", // test type(s)
+ ".*Ei.*", // test data group
+ ".*", 300, 200); // test function
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ ".*", // test type(s)
+ ".*", // test data group
+ ".*", 40, 15); // test function
+
    add_expected_result(
       ".*", // compiler
       ".*", // stdlib
@@ -131,7 +161,11 @@
    std::cout << test_name << " with type " << type_name << std::endl;
 
    typedef value_type (*pg)(value_type, value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = expint_wrapper<value_type>;
+#else
    pg funcp = expint_wrapper;
+#endif
 
    boost::math::tools::test_result<value_type> result;
    //
@@ -172,7 +206,11 @@
    std::cout << test_name << " with type " << type_name << std::endl;
 
    typedef value_type (*pg)(value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = boost::math::expint<value_type>;
+#else
    pg funcp = boost::math::expint;
+#endif
 
    boost::math::tools::test_result<value_type> result;
    //

Modified: branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp (original)
+++ branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -80,6 +80,13 @@
    largest_type = "(long\\s+)?double|real_concept";
 #endif
 
+ add_expected_result(
+ "[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Mac OS", // platform
+ largest_type, // test type(s)
+ "[^|]*medium[^|]*", // test data group
+ "[^|]*", 550, 100); // test function
    //
    // Catch all cases come last:
    //

Modified: branches/proto/v4/libs/math/test/test_zeta.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_zeta.cpp (original)
+++ branches/proto/v4/libs/math/test/test_zeta.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -105,7 +105,11 @@
    std::cout << test_name << " with type " << type_name << std::endl;
 
    typedef value_type (*pg)(value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = boost::math::zeta<value_type>;
+#else
    pg funcp = boost::math::zeta;
+#endif
 
    boost::math::tools::test_result<value_type> result;
    //
@@ -153,11 +157,11 @@
 {
    std::cout << "Testing basic sanity checks for type " << t << std::endl;
    //
- // Basic sanity checks, tolerance is either 2 or 10 epsilon
+ // Basic sanity checks, tolerance is either 5 or 10 epsilon
    // expressed as a percentage:
    //
    T tolerance = boost::math::tools::epsilon<T>() * 100 *
- (boost::is_floating_point<T>::value ? 2 : 10);
+ (boost::is_floating_point<T>::value ? 5 : 10);
    BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(0.125)), static_cast<T>(-0.63277562349869525529352526763564627152686379131122L), tolerance);
    BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(1023) / static_cast<T>(1024)), static_cast<T>(-1023.4228554489429786541032870895167448906103303056L), tolerance);
    BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(1025) / static_cast<T>(1024)), static_cast<T>(1024.5772867695045940578681624248887776501597556226L), tolerance);

Modified: branches/proto/v4/libs/python/test/vector_indexing_suite.py
==============================================================================
--- branches/proto/v4/libs/python/test/vector_indexing_suite.py (original)
+++ branches/proto/v4/libs/python/test/vector_indexing_suite.py 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -322,6 +322,19 @@
 [ a b c d e f g h i j ]
 
 #####################################################################
+# extend using a generator expression
+#####################################################################
+>>> v[:] = ['a','b','c','d','e'] # reset again
+>>> def generator():
+... addlist = ['f','g','h','i','j']
+... for i in addlist:
+... if i != 'g':
+... yield i
+>>> v.extend(generator())
+>>> print_xvec(v)
+[ a b c d e f h i j ]
+
+#####################################################################
 # vector of strings
 #####################################################################
>>> sv = StringVec()

Modified: branches/proto/v4/tools/build/v2/tools/common.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/common.jam (original)
+++ branches/proto/v4/tools/build/v2/tools/common.jam 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,8 +5,8 @@
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# Provides actions common to all toolsets, for as making directoies and
-# removing files.
+# Provides actions common to all toolsets, such as creating directories and
+# removing files.
 
 import os ;
 import modules ;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk