Version 1.60.0
Version 1.60.0
December 17th, 2015 15:52 GMT
Platform | File |
---|---|
unix | boost_1_60_0.tar.bz2 |
boost_1_60_0.tar.gz | |
windows | boost_1_60_0.7z |
boost_1_60_0.zip |
New Libraries
-
VMD: Variadic Macro Data library, from Edward Diener.
Updated Libraries
-
Atomic:
-
Enforced proper alignment of
atomic<>
storage. This should fix possible issues on platforms that support atomic operations on data units larger than the native word size. This may also change binary layout of user's data structures that haveatomic<>
members. -
Fixed compilation for PowerPC with IBM XL C++ compiler. Corrected memory barriers in PowerPC assembler.
-
Fixed compilation with MSVC-8 for ARM.
-
Fixed compilation with gcc 4.4 for x86-64, when 128-bit atomic operations were used. (#10994)
-
Optimized some gcc assembler blocks for x86/x86-64 to reduce the number of used registers. This may require binutils 2.10 or later.
-
-
Chrono - 2.0.5:
-
Fixes:
-
#10778 VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable
-
#10840 Missing std:: qualifier for puts call in test_7868.cpp
-
#10851 Missing std:: qualifier for puts call in time_point_output.cpp
-
#10893 Minor doc typo in Boost.Chrono
-
#10992 Chrono IO state savers inconsistent with Boost.IO state savers
-
#10995 duration_put::put_value truncates fractional part
-
#11006 Impossible to instantiate time_fmt_io_saver due to several errors.
-
#11012 chrono_io v2 fail to compile with boost::chrono::duration< boost::rational<int> >
-
-
-
Container:
-
Implemented Polymorphic Memory Resources.
-
Add more BOOST_ASSERT checks to test preconditions in some operations (like
pop_back
,pop_front
,back
,front
, etc.) -
Added C++11
back
/front
operations tobasic_string
. -
Fixed bugs:
-
-
Core:
-
In symbol demangling tools, added support for gabi++ ABI implementation used in Android NDK.
-
Added a new
enable_if_has_type
tool for performing SFINAE checks for presence of a nested type.
-
-
Filesystem:
-
New Features:
-
Added functions
lexically_normal
,lexically_relative
,relative
, andweakly_canonical
. Many thanks to Jamie Allsop for his help and perseverance. Resolves tickets #1976, #5897, #6249. -
Class
path
added typesreverse_iterator
andconst_reverse_iterator
, and added functionsrbegin()
, andrend()
. -
C++11
noexcept
supplied as specified in the Filesystem TS if supported by the compiler. -
C++11 move constructors and move assignments supplied as specified in the Filesystem TS if supported by the compiler. Resolves #10291.
-
Existing functions whose names changed in the Filesystem TS are now supported under both the old and new names.
-
-
Tickets:
-
Fix #11733, Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp, by apply a patch from Idar Tollefsen.
-
Fix #5706, unique_path Fails on Windows for Temporary User Profiles, by applying pull request #15 from Sebastian Redl to fix a race condition in
unique_path
. -
Fix #10591, boost::filesystem does not build on iOS 8, by applying a patch submitted by Daniel Seither.
-
Fix #9454, Boost Filesystem [library build] not compiling when BOOST_FILESYSTEM_NO_DEPRECATED is defined, by applying a patch submitted by Makesim.
-
Fix #11447,
__OpenBSD__
macro name misspelled, by applying a patch submitted by Jasper Lievisse Adriaanse. -
Fix #11288, A patch to avoid redundant string allocations, by applying a patch submitted by Yevhen Ivannikov.
-
Resolve #11175, out-of-date documentation causing users to incorrectly expect that the library could be used with exceptions disabled.
-
Resolve #11166, by mitigating (i.e. reducing the likelihood of) a possible external file system race in
remove()
. -
Fix #7258,
create_directories
returns false if the path ends with a slash. Also fix related issues if path contains dot or dot-dot elements, and added test cases to the test suite. -
Resolve #10766,
parent_path()
with redundant separator returns wrong value, by adding examples and notes to the reference documentation to show why the returned value is in fact correct, and to provide rationale for that behavior. See path.itr, and path.decomposeparent_path()
andfilename()
sections of the reference docs.
-
-
Other fixes:
-
Clear several spurious GCC warnings.
-
Fix bug in
file_status
andrecursive_directory_iterator
: C++ turns an explicit constructor with all arguments except first defaulted into non-explicit single argument constructor. -
Apply Reference docs editorial cleanups: Use same style sheet as the rest of the documentation. Tweak tab font size. Fix excessively long lines in tables, synopsis.
-
Minor fixes, including pull requests from Jonathan Wakely and Marcel Raad.
-
-
-
Flyweight:
-
Maintenance fixes.
-
-
Fusion:
-
All of fusion containers and generators now support C++11 variadic templates. (pull-request 89, pull-request 97, pull-request 100)
-
Special notice for
fusion::vector
-
Due to implementation limitation, numbered form (i.e.
fusion::vectorN
) is provided via C++11 aliasing templates and deprecated in C++11 or later. In this case, you should checkBOOST_FUSION_HAS_VARIADIC_VECTOR
macro and switch usage because some partial specialization would become compile error (e.g. pull-request for Spirit).
-
-
-
fusion::nview
now support C++11 variadic templates. (pull-request 90) -
fusion::fold
is now SFINAE-friendly. (pull-request 102)
-
-
Geometry:
-
Solved tickets:
-
#10803 Union algorithm returning invalid geometry
-
#11522 Namespace clash in buffer for traits::detail
-
#11533 Assert failure in rtree caused by a bug in remove() if min elements number is 1
-
#11607 Private geometry::exception::what()
-
#11709 is_simple segfault
-
#11710 is_simple - empty geometry logic
-
#11711 is_simple and is_valid - Points that are NaN or Infinity
-
-
Bugfixes:
-
Fix colocations of touching interior ring / exterior ring, where it also touches another polygon
-
Fix removing values from an empty rtree - no effect and 0 returned instead of assertion failure
-
Fix segfault in centroid for multi geometries containing empty single geometries (thanks to Jiri Drbalek)
-
Fix liang_barsky strategy for integral coordinates (thanks to Dane Springmeyer)
-
-
-
Interprocess:
-
Improved
offset_ptr
performance and removed any undefined behaviour. No special cases needed for different compilers.
-
-
Intrusive:
-
Advanced lookup and insertions in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as
key_compare
, the container must be partitioned in regards to the passed comparison object.
-
-
Locale:
-
Implemented generic codecvt facet and add general purpose utf8_codecvt facet
-
Added posix locale support for FreeBSD 10.0 and above
-
Some warning cleanup
-
Fixed tests for latest ICU versions
-
Added workaround for
libc++
issues -
Added new defines
BOOST_LOCALE_ENABLE_CHAR16_T
andBOOST_LOCALE_ENABLE_CHAR32_T
to enable C++11char16_t
andchar32_t
instead of deprecated ones
-
-
Log:
-
General changes:
-
On Windows, the configuration macro
BOOST_LOG_USE_WINNT6_API
is no longer used by the library. The target Windows version should be configured by defining macroBOOST_USE_WINAPI_VERSION
.
-
-
Bug fixes:
-
Fixed compilation for Android using Google NDK. (#11559)
-
Fixed compilation of some logging statements, where the first object to be put into stream is not directly supported by
formatting_ostream
. (#11549) -
Added a workaround for Solaris Studio 12.4, which should fix the compilation of
formatting_ostream
. (#11545) -
Fixed compilation when native
wchar_t
type is disabled. (#11541) -
Fixed exporting symbols from the
boost_log_setup
library on POSIX-like systems. -
Fixed compilation of character decorators.
-
Added a workaround for incorrect file name generation in text file sink backend, when the file name contains date/time placeholders. (#11691)
-
-
See changelog for more details.
-
-
Multi-index Containers:
-
Fixed an interoperability problem with Qt due to the optional definition of a macro with name
foreach
in this framework. -
Maintenance fixes.
-
-
odeint:
-
New features:
-
Added functionality to throw an exception if too many ODE steps are performed.
-
Added possibility to limit maximal step size in adaptive methods.
-
-
several Bug fixes, see https://github.com/headmyshoulder/odeint-v2/issues
-
-
Thread - 4.6.0: New Experimental Features:
-
#11231 Allow to set continuation future's destructor behavior to non-blocking
-
#11424 Provide shared_timed_mutex as an alternative name for shared_mutex and deprecate the use of shared_mutex as a timed mutex
-
#11734 future::then(Cont) should be able to execute the contination on undetermined thread
-
#11736 Allow to use launch::executor on future::then(launch::executor, cont)
-
#11737 Add a launch::inherit policy that can be used on ::then() to use the policy of the parent future Fixed Bugs:
-
#3926 thread_specific_ptr + dlopen library causes a SIGSEGV.
-
#6377 Condition variable blocks when changing time
-
#6787 boost::thread::sleep() hangs if system time is rolled back
-
#7665 this_thread::sleep_for no longer uses steady_clock in thread
-
#7720 exception lock_error while intensive locking/unlocking of mutex
-
#9309 test_latch fails often on clang-darwin-tot11
-
#10788 GetLogicalProcessor isn't available for Windows platform less or equals to 0x0502
-
#11090 ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock)
-
#11158 Pthread thread deadlock when faketime used
-
#11174 boost::condition_variable::timed_wait with predicate unexpectedly wakes up while should wait infinite
-
#11185 Incorrect URL redirection
-
#11192 boost::future<>::then() with an executor doesn't compile when the callback returns a future
-
#11250 future made from make_exceptional fails on assertion in destructor
-
#11256 future<>::is_ready() == false in continuation function
-
#11261 bad use of scoped threads in basic_thread_pool
-
#11262 bad use of direct pointer in shared_state_nullary_task
-
#11263 lock already locked lock
-
#11266 boost::packaged_task has invalid variadic signature
-
#11302 boost thread doesn't build with BOOST_THREAD_PATCH.
-
#11322 sleep_for() nanoseconds overload will always return too early on windows
-
#11329 using declarative for GetProcessHeap, .... fails
-
#11368 boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh)
-
#11377 Boost condition variable always waits for system clock deadline
-
#11435 gcc compiler warning in future.hpp
-
#11555 devector.hpp assumes allocator_traits_type is always present
-
#11562 Timer (using steady_clock) expires after computer time is set forward on Ubuntu 64-bit
-
#11672 Thread: Should use unique_ptr, not auto_ptr
-
#11688 thread::try_join_until: Avoid busy wait if system clock changes
-
#11716 ::then(f) should inherit the parent Executor
-
-
UUID:
-
Added a workaround for MSVC codegen bug that could cause crashes when comparing UUIDs.
-
Added detection of AVX being enabled with MSVC compiler switches.
-
News
Notes for Windows users
This release of Boost will by default compile for Windows Vista/Windows Server 2008, if the compiler supports a recent enough Windows SDK, and for Windows XP otherwise. Binaries compiled with default options may not run on the older Windows versions.
It is still possible to explicitly specify target Windows version by defining
BOOST_USE_WINAPI_VERSION
to a numeric version of Windows API. For example, building Boost for Windows
XP can be done with the following command:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501
The list of Windows API version numbers can be seen on this page.
This change only concerns libraries that use the common Windows API abstraction layer. Currently, these libraries are: Boost.Chrono, Boost.Dll, Boost.Log, Boost.UUID. This will also affect all dependent libraries.
Release of Hana postponed
Due to time constraints, the release of Hana will be postponed to a later release of Boost. This will also allow some known issues to be addressed properly before releasing the library officially as a part of Boost. More information can be found on the mailing list.
Release of Boost.DLL library postponed
In order to provide superior support of uncommon toolsets and platforms,
the release of Boost.DLL was postponed to a later release of Boost. This
also allows to test better a recently added ability to copy construct and
copy assign instances of boost::dll::shared_library
and provide examples on
importing functions with non default calling conventions. Latest version
and developer documentation of the library could be found at GitHub
repo.
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Clang: 3.4, 3.6
-
Clang, C++14: 3.7
-
GCC: 4.4.7, 4.8.4, 4.9.3, 5.1.0, 5.2.1
-
GCC, C++11: 4.4.7
-
GCC, C++14: 4.9.3
-
-
Windows:
-
GCC, C++03, mingw: 3.4.5
-
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
-
GCC, C++14, mingw: 4.9.3, 5.1.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
-
-
Android:
-
Clang: 3.6, 3.7
-
GCC: 4.9.0, 5.2.0
-
-
QNX:
-
QCC: 4.4.2
-
-
SunOS:
-
Oracle Solaris Studio: 12.4, 12.5
-
Boost's additional test compilers include:
-
Linux:
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4.2, 3.6.0, 3.8.0
-
Clang, C++14: 3.7.0
-
GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.9.3, 5.1.0, 6.0.0
-
GCC, C++11: 4.4.7
-
GCC, C++14: 4.9.3, 5.2.1
-
IBM XL C++: 13.1.2.0
-
Intel: 16.0
-
-
OS X:
-
Clang: 7.0.0
-
GCC: 5.2.0
-
-
Windows:
-
GCC, C++03, mingw: 3.4.5
-
GCC, C++11, mingw: 4.7.3, 4.8.1
-
GCC, C++14, mingw: 4.9.3, 5.1.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
-
-
Android:
-
Clang: 3.6, 3.7
-
GCC: 4.9.0, 5.2.0
-
-
FreeBSD:
-
Clang, C++11: 3.4.1, 3.7.0
-
GCC, C++11: 4.8.5, 5.2.0, 6.0.0
-
-
QNX:
-
QCC: 4.4.2
-
-
SunOS:
-
Oracle Solaris Studio: 12.4, 12.5
-
Acknowledgements
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.