Version 1.49.0
Version 1.49.0
February 24th, 2012 21:20 GMT
Platform | File |
---|---|
unix | boost_1_49_0.tar.bz2 |
boost_1_49_0.tar.gz | |
windows | boost_1_49_0.7z |
boost_1_49_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.
New Libraries
-
Heap: Priority queue data structures, from Tim Blechmann.
Updated Libraries
-
Asio:
-
Added a new class template
basic_waitable_timer
based around the C++11 clock type requirements. It may be used with the clocks from the C++11<chrono>
library facility or, if those are not available, Boost.Chrono. The typedefshigh_resolution_timer
,steady_timer
andsystem_timer
may be used to create timer objects for the standard clock types. -
Added a new
windows::object_handle
class for performing waits on Windows kernel objects. Thanks go to Boris Schaeling for contributing substantially to the development of this feature. -
On Linux,
connect()
can return EAGAIN in certain circumstances. Remapped this to another error so that it doesn't look like a non-blocking operation (#6048). -
Fixed a compile error on NetBSD (#6098).
-
Fixed deadlock on Mac OS X (#6275).
-
Fixed a regression in
buffered_write_stream
(#6310). -
Fixed a non-paged pool "leak" on Windows when an
io_service
is repeatedly run without anything to do (#6321). -
Reverted earlier change to allow some speculative operations to be performed without holding the lock, as it introduced a race condition in some multithreaded scenarios.
-
Fixed a bug where the second buffer in an array of two buffers may be ignored if the first buffer is empty.
-
-
Chrono:
-
Bug Fixes:
-
#6092 Input from non integral durations makes the compiler fail.
-
#6093 [1/3]second fails as valid duration input.
-
#6113 duplicate symbol when BOOST_CHRONO_HEADER_ONLY is defined.
-
#6243 Sandia-pgi-11.9: more than one instance of overloaded function "min" matches.
-
#6257 process_cpu_clock::now() on linux gives time_points 1/1000 times.
-
-
-
Filesystem:
-
Fix #3714, Added test cases and fixes for class path errors when assignment or append used self or portion of self as source.
-
Fix #4889, #6320, Locale codecvt_facet not thread safe on Windows. Move Windows, Mac OS X, locale and codecvt facet back to namespace scope. POSIX except OS X uses local static initialization (IE lazy) to ensure exceptions are catchable if environmental variables are misconfigured and to avoid use of locale("") if not actually used.
-
Fix #5652, recursive_directory_iterator fails on cyclic symbolic links. Thanks to Daniel Aarno for the patch.
-
Fix #5653, recursive_directory_iterator(error_code) can still throw filesystem_error.
-
Fix #5900, directory_iterator access violation on Windows if error is thrown. Thanks to Andreas Eckleder for the patch.
-
Fix #5900 comment 2, a bug in director_iterator construction with error_code argument that caused increment to be called without the ec argument being passed.
-
Fix #5989 by cleaning up test suite path_test.cpp code even though the ticket itself was not a defect, and clarifying docs; iteration over a path yields generic format.
-
Fix #5592, Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP.
-
Operations function fixes for PGI compiler, thanks to Noel Belcourt.
-
Relax permissions test to reflect reality, particularly on the Sandia test platforms.
-
-
Geometry:
-
Fixed bugs
-
Distance for multi-geometries ignored specified distance strategy.
-
In difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list).
-
Raise exception for calculation of distances of multi-geometrie(s) where one of them is empty
-
Multi DSV did not correctly use settings.
-
Self-intersections could sometimes be missed (introduced in 1.48).
-
Convex hull crashed on empty range (e.g. empty multi point).
-
-
Additional functionality
-
Support for line/polygon intersections and differences
-
Support for convert of segment/box of different point types
-
Support for append for multi point
-
Scalar functions (distance, area, length, perimeter) now throw an empty_input_exception on empty input
-
-
Documentation
-
Updated support status
-
-
Internal changes
-
Updates in specializations/not_implemented for distance/convert/assign/area
-
Move of wkt/dsv to io folder, making domains redundant
-
Strategy concepts assigned to zero to avoid clang warnings (patched by Vishnu)
-
-
-
Interprocess:
-
Fixed timed functions in mutex implementations to fulfill POSIX requirements: Under no circumstance shall the function fail with a timeout if the mutex can be locked immediately. The validity of the abs_timeout parameter need not be checked if the mutex can be locked immediately.
-
Locale:
-
Fixed incorrect use of
MultiByteToWideChar
in detection of invalid input sequences.
-
-
Spirit:
-
Spirit V2.5.2, see the 'What's New' section for details.
-
-
Thread:
-
Fixed Bugs:
-
#2309 Lack of g++ symbol visibility support in Boost.Thread.
-
#2639 documentation should be extended(defer_lock, try_to_lock, ...).
-
#3639 Boost.Thread doesn't build with Sun-5.9 on Linux.
-
#3762 Thread can't be compiled with winscw (Codewarrior by Nokia).
-
#3885 document about mix usage of boost.thread and native thread api.
-
#3975 Incorrect precondition for promise::set_wait_callback().
-
#4048 thread::id formatting involves locale
-
#4315 gcc 4.4 Warning: inline ... declared as dllimport: attribute ignored.
-
#4480 OpenVMS patches for compiler issues workarounds.
-
#4819 boost.thread's documentation misprints.
-
#5040 future.hpp in boost::thread does not compile with /clr.
-
#5423 thread issues with C++0x.
-
#5502 race condition between shared_mutex timed_lock and lock_shared.
-
#5594 boost::shared_mutex not fully compatible with Windows CE.
-
#5617 boost::thread::id copy ctor.
-
#5739 set-but-not-used warnings with gcc-4.6.
-
#5826 threads.cpp: resource leak on threads creation failure.
-
#5839 thread.cpp: ThreadProxy leaks on exceptions.
-
#5859 win32 shared_mutex constructor leaks on exceptions.
-
#6100 Compute hardware_concurrency() using get_nprocs() on GLIBC systems.
-
#6141 Compilation error when boost.thread and boost.move are used together.
-
#6168 recursive_mutex is using wrong config symbol (possible typo).
-
#6175 Compile error with SunStudio.
-
#6200 patch to have condition_variable and mutex error better handle EINTR.
-
#6207 shared_lock swap compiler error on clang 3.0 c++11.
-
#6208 try_lock_wrapper swap compiler error on clang 3.0 c++11.
-
-
-
xpressive:
-
Eliminate some unused variable warnings on gcc.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Intel: 11.1
-
LLVM Clang 2.8
-
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.2, 4.6.2
-
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
-
-
OS X:
-
Intel: 11.1
-
GCC: 4.2.1, 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 8.0, 9.0, 10.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0
-
-
FreeBSD:
-
GCC 4.2.1, 32 and 64 bit.
-
-
QNX:
-
QCC, C++0x mode: 4.4.2, 4.6.1, 4.6.2
-
Boost's additional test compilers include:
-
Linux:
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.6.2
-
GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0
-
PathScale: 4.0.8
-
Visual Age 10.1
-
-
OS X:
-
Clang from subversion
-
Intel 11.1, 12.0
-
GCC: 4.4.4
-
GCC, C++0x mode: 4.4.4
-
-
Windows:
-
Visual C++ 8.0, 9.0, 10.0
-
Visual C++ with STLport: 9.0
-
Visual C++, Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.4.0, 4.5.2
-
GCC, C++0x mode, mingw: 4.5.2
-
GCC, mingw 64-bit: 4.4.7, 4.5.4, 4.6.1
-
-
AIX:
-
IBM XL C/C++ Enterprise Edition, V11.1.0.0
-
-
FreeBSD:
-
GCC 4.2.1, 32 and 64 bit
-
-
Solaris:
-
Sun 5.10
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release.