Version 1.52.0
Version 1.52.0
November 5th, 2012 16:05 GMT
Platform | File |
---|---|
unix | boost_1_52_0.tar.bz2 |
boost_1_52_0.tar.gz | |
windows | boost_1_52_0.7z |
boost_1_52_0.zip |
Patches
-
Locale Patch - Fixes a bug which causes
boost::locale::utf::utf_traits
to accept some invalid UTF-8 sequences, which is a possible security flaw.
Updated Libraries
-
Accumulators:
-
Fix long-standing dependency tracking bug, #7409
-
-
Config:
-
Define
BOOST_NO_SFINAE_EXPR
for gcc-4.4, since the support was found to be too buggy.
-
-
Chrono:
-
Deprecated features:
-
The chrono i/o version included in Boost.Chrono 1.2.x has been completly refactored in version 2.0.0
-
chrono I/O: The manipulators
__duration_short
,__duration_long
are depreceated. You should use the parameterized form__duration_fmt
or the renamed manipulators__duration_symbol
and__duration_prefix
instead. -
chrono I/O: The
__duration_punct<>
facet is deprecated. You should use the__get_duration_style
free function to get the informations and use the__duration_units
facet for localization purposes. -
When
BOOST_CHRONO_VERSION==2
the preceding deprecated functions are not available.
-
-
Would not fix:
-
#6871 chrono_io.hpp:
operator<<(ostream& os, ...)
modifies the state of os. The neww io interface provided in version 2 solves this issue. You should move to the new version.
-
-
Container:
-
Improved
stable_vector
's template code bloat and type safety. -
Changed typedefs and reordered functions of sequence containers to improve doxygen documentation.
-
Implemented LWG Issue #149 (range insertion now returns an iterator) & cleaned up insertion code in most containers
-
Corrected aliasing errors.
-
-
Foreach:
-
Fix alignment warning on gcc.
-
-
Interprocess:
-
Added
shrink_by
andadvise
functions inmapped_region
. -
ABI breaking: Reimplemented
message_queue
with a circular buffer index (the old behavior used an ordered array, leading to excessive copies). This should greatly increase performance but breaks ABI. Old behaviour/ABI can be used undefining macroBOOST_INTERPROCESS_MSG_QUEUE_CIRCULAR_INDEX
inboost/interprocess/detail/workaround.hpp
-
Improved
message_queue
insertion time avoiding priority search for common cases (both array and circular buffer configurations). -
Implemented
interproces_sharable_mutex
andinterproces_condition_any
. -
Improved
offset_ptr
performance. -
Added integer overflow checks.
-
-
Iterator:
-
Breaking changes:
-
Due to the fix for #5825, a function_input_iterator will no longer make unnecessary invokations to the wrapped nullary function. For example, constructing an end iterator will now not trigger an invokation; and dereferencing-and-incrementing an iterator N times will trigger N invokations, not N+1 as before. User code that relied on the old behavior will need to be adjusted.
-
-
Math:
-
Added Airy functions and Jacobi Elliptic functions.
-
In several distributions (particulary the Students T) corrected moments for small degrees of freedom #7177 (reported by Thomas Mang).
-
Corrected failure to detect bad parameters in many distributions #6934 (reported by Florian Schoppmann) by adding a function
check_out_of_range
to test many possible bad parameters. This test revealed several distributions where the checks for bad parameters were ineffective, and these have been rectified. -
Fixed issue in Hankel functions that causes incorrect values to be returned for x < 0 and ν odd, see #7135.
-
In non-central T permitted infinite degrees of freedom #7259 implemented using the normal distribution (requested by Thomas Mang). Also much enhanced accuracy for large degrees of freedom and/or large non-centrality parameters by switching to use the Students t distribution (or Normal distribution for infinite degrees of freedom) centered at delta, when delta / (4 * v) < epsilon for the floating-point type in use. See #7259. It was also found that the incomplete beta was suffering from serious cancellation errors when degrees of freedom was very large. (That has now been fixed in our code, but any code based on Didonato and Morris's original papers (probably every implementation out there actually) will have the same issue).
-
-
Phoenix:
-
Make Phoenix work with
decltype
-basedboost::result_of
.
-
-
Polygon:
-
Included Voronoi diagram extensions.
-
Introduced new Segment concept.
-
Fixed compilation issues.
-
-
Proto:
-
The data parameter to primitive transforms can now optionally have slots indexed by key.
-
Primitive transforms can now operatate on temporary expressions that are non-const qualified.
-
Add callable function object types for the free functions in
<iterator>
and also for some Boost.Range functions. -
Boost.MPL algorithms work on Proto expression nodes.
-
proto::pass_through
primitive transform now accepts an optionalDomain
template parameter for specifying the target domain of the resulting expression.
-
-
Ratio:
-
Features:
-
Replace the
short_name
andlong_name
functions by symbol and prefix functions respectively.
-
-
Deprecated:
-
The
ratio_string<>::short_name
andratio_string<>::long_name
are deprecated. Useratio_string<>::symbol
andratio_string<>::prefix
respectively. These functions be removed in 1.55.
-
-
Fixes:
-
#7478 Compiles fails with compilers supporting char16_t and char32_t fails if the library doesn't provides std::u16string and std::u32string.
-
-
-
Thread:
-
Deprecated Features: Deprecated features since boost 1.50 available only until boost 1.55. These deprecated features will be provided by default up to boost 1.52. If you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. Since 1.53 these features will not be included any more by default. Since this version, if you want to include the deprecated features yet you could define BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features will be only available until boost 1.55, that is you have yet 1 year to move to the new features.
-
Time related functions don't using the Boost.Chrono library, use the chrono overloads instead.
-
-
Breaking changes when
BOOST_THREAD_VERSION==3
(Default value since Boost 1.53): There are some new features which share the same interface but with different behavior. These breaking features are provided by default when BOOST_THREAD_VERSION is 3, but the user can however choose the version 2 behavior by defining the corresponding macro. As for the deprecated features, these broken features will be only available until boost 1.55. -
Fixed Bugs:
-
#2361
thread_specific_ptr
: document nature of the key, complexity and rationale. -
#2797 Two problems with
thread_specific_ptr
. -
#5274 failed to compile
future.hpp
with stlport 5.1.5 under msvc8.1, because of undefined class. -
#5431 compile error in Windows CE 6.0(interlocked).
-
#5752
boost::call_once()
is unreliable on some platforms. -
#7045 Thread library does not automatically compile date_time.
-
#7173 wrong function name
interrupt_point()
. -
#7200 Unable to build boost.thread modularized.
-
#7220 gcc 4.6.2 warns about inline+dllimport functions.
-
#7238
this_thread::sleep_for()
does not respond to interrupt(). -
#7245 Minor typos on documentation related to version 3.
-
#7272
win32/thread_primitives.hpp
: (Unneccessary) Warning. -
#7284 Clarify that there is no access priority between lock and shared_lock on shared mutex.
-
#7329
boost/thread/future.hpp
does not compile on HPUX. -
#7336
BOOST_THREAD_DONT_USE_SYSTEM
doesn't work. -
#7349
packaged_task
holds reference to temporary. -
#7350
allocator_destructor
does not destroy object
-
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7.2
-
GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
Intel: 11.1, 12.0, 12.1
-
LLVM Clang: 2.8
-
-
OS X:
-
GCC: 4.4.4
-
GCC, C++11 mode: 4.4.4
-
Intel: 11.1, 12.0
-
-
Windows:
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
Visual C++: 8.0, 9.0, 10.0
-
-
FreeBSD:
-
GCC: 4.2.1, 32 and 64 bit
-
Boost's additional test compilers include:
-
Linux:
-
Cray: 8.0
-
Clang: from subversion
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1, 4.7.2
-
GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0, 12.1
-
Visual Age: 10.1
-
-
OS X:
-
Clang: from subversion
-
Clang, C++11 mode: from subversion
-
Intel: 11.1, 12.0
-
GCC: 4.4.4
-
GCC, C++11 mode: 4.4.4
-
-
Windows:
-
Visual C++: 8.0, 9.0, 10.0, 11.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition: V12.1.0.0
-
-
FreeBSD:
-
GCC: 4.2.1, 64 bit
-
-
Solaris:
-
Sun: 5.10
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.