Boost
Releases
arrow_drop_down
Prior Release (1.53.0)
April 13, 2013
Dependencies
There were 5 dependencies added (in 4 libraries) and 1 dependency removed (in 1 library) this release.
Platform File SHA256 Hash
Unix boost_1_53_0.tar.bz2 f88a0....b9196
boost_1_53_0.tar.gz 7c4d1....d4c39
Windows boost_1_53_0.7z 65906....f9d8a
boost_1_53_0.zip f9062....d76c0

Version 1.53.0

February 4th, 2013 18:29 GMT

Documentation

New Libraries

  • Atomic:
    • C++11-style atomic<>, from Helge Bahmann, maintained by Tim Blechmann.
  • Coroutine:
    • library, from Oliver Kowalke.
  • Lockfree:
    • data structures, from Tim Blechmann.
  • Multiprecision:
    • Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos.
  • Odeint:
    • Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky.

News

This release contains a fix for ticket #7743, in Boost.Locale. For more details, see the security notice.

Updated Libraries

  • Algorithm:
    • Fixed non-ASCII char in comment (#7781).
    • Updated the Knuth-Morris-Pratt docs (#7656).
  • Array:
    • Added support for boost::get and std::get (#7652)
  • Asio:
    • Fixed some 64-to-32-bit conversion warnings (#7459).
    • Fixed some small errors in documentation and comments (#7761).
    • Fixed an error in the example embedded in basic_socket::get_option's documentation (#7562).
    • Changed to use long rather than int for SSL_CTX options, to match OpenSSL (#7209).
    • Changed to use _snwprintf to address a compile error due to the changed swprintf signature in recent versions of MinGW (#7373).
    • Fixed a deadlock that can occur on Windows when shutting down a pool of io_service threads due to running out of work (#7552).
    • Enabled the noexcept qualifier for error categories (#7797).
    • Changed UNIX domain socket example to treat errors from accept as non-fatal (#7488).
    • Added a small block recycling optimisation to improve default memory allocation behaviour.
  • Bimap:
    • Refactor map_view_iterator to improve error messages.
    • Fixed replace_(left/right/key/data) bug when using relations with info.
    • Fixed vector_of and list_of views assign(size_type,value_type) bug.
    • Fixed vector_of views operator[](size_type) and at(size_type) functions return value.
  • Chrono:
    • Deprecated:
      • 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 depreceated. 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.
    • Fixes:
      • #7546 time_point<system_clock> output version 2 fails to compile
      • #7547 time_point<system_clock> input version 2 fails to compile
      • #7868 chrono_io parses time incorrectly (1.53 and 1.52)
  • Container:
    • Fixed bug #7650.
    • Improved vector's insertion performance.
    • Changed again experimental multiallocation interface for better performance (still experimental).
    • Added no exception support for those willing to disable exceptions in their compilers.
    • Fixed GCC -Wshadow warnings.
    • Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
  • Context:
    • Support for iOS on ARM and MacOS X on x86 (32bit) added.
    • Support for SEH Overwrite Protection on Win32.
  • Geometry:
    • Bugfixes
      • avoid generating output polygons with interior rings below minimum size (e.g. one or two points)
      • geometry::disjoint for degenerate segments (patched by Karsten Ahnert)
      • problem in geometry::difference for missing handling tangency, reported by H2
      • fixed geometry::for_each for use with Lambda's
      • fixed geometry::comparable_distance point-linestring (and -range, -polygon)
    • Additional functionality
      • combinations for geometry::disjoint: point/ring, point/polygon, point/multi_polygon
      • combinations for geometry::intersects: point/ring, point/polygon, point/multi_polygon
    • Internal changes
      • updates in specializations/not_implemented for various algorithms (as in an earlier version, these changes are still going on; they take care for simplified structs, better error reporting, and automatized documentation)
      • fixes in unit tests
  • GIL:
    • Fixed self-assignment warnings (#4919).
  • Graph:
    • Fixed the following bugs from Trac: #3468, #4386, #5269, #7428, #7457, #7467, #7600, #7648, #7684, #7728, #7741, #7766, #7771, #7773, #7780, #7787, #7801 plus other bugs not in Trac.
    • Added support for reading from GraphML files containing multiple graphs.
    • Added versions of A* search specifically for trees, removing the need for a color map when it is acceptable to visit the same vertex multiple times.
    • Added VF2 subgraph isomorphism algorithm (contributed by Flavio De Lorenzi).
  • Hash:
    • Add support for boost::int128_type and boost::uint128_type where available.
    • On platforms that are known to have standard floating point functions, don't use the automatic detection (#7221, #7470).
  • Interprocess:
    • Fixed GCC -Wshadow warnings.
    • Experimental multiple allocation interface improved and changed again. Still unstable.
    • Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
    • ABI breaking: changed node pool allocators internals for improved efficiency.
    • Fixed bug #7795.
  • Intrusive:
    • Fixed bugs #7174, #7529, #7815.
    • Fixed GCC -Wshadow warnings.
    • Added missing explicit keyword in several intrusive container constructors.
    • Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
    • Small documentation fixes.
  • Lexical cast:
    • New character type detection algorithm for user defined types #6786.
    • Documentation updates (#7582, #7831).
    • Fixed bugs with std::array #7799.
    • Fixed compilation with -ftrapv and numeric to numeric conversions #7814.
  • Locale:
    • Security related bug fix, some invalid UTF-8 sequences where accepted as valid #7743
    • Invalid Windows codepage names used #7386
    • Fixed missing documentation, caused by a error in Doxygen formatting #7734
    • Fixed missing std:: in some places #7701
    • Spelling, grammar, typos fixes #7368, #7762
  • Math:
    • Fixed issues #7325, #7415, #7416, #7183, #7649, #7694, #4445 and #7492.
    • Fixed mistake in calculating pooled standard deviation in two-sample students t example #7402.
    • Improve complex acos/asin/atan, see #7290, #7291.
    • Improve accuracy in some corner cases of cyl_bessel_j and gamma_p/gamma_q thanks to suggestions from Rocco Romeo.
    • Improve accuracy in Bessel J and Y with integer orders thanks to suggestions from Rocco Romeo.
  • MinMax:
    • Fixed a misuse of the comma operator (#7752).
    • Updated the docs to fix broken link (#7751).
  • Move:
    • Better header segregation (bug #6524).
    • Small documentation fixes
    • Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
    • Fixed #7830, #7832.
  • Polygon:
    • Fixes:
      • #6366 Bug in boost::polygon::contains for polygon_90 type.
      • #7678 multiple definitions of bool boost::polygon::belongs(...) by multiple #include.
    • Internal changes:
      • refactored point/segment/interval data/concept/traits.
      • added unit tests for point and interval data/concept/traits.
      • simplified transform.hpp to operate only in 2D.
      • removed point_3d data/concept/traits.
  • Random:
    • Now compiles with exceptions disabled (#5399).
  • Range:
  • Ratio:
    • Fixes:
      • #7616 br_mul::nan - warning C4293: '<<' : shift count negative or too big, undefined behavior`.
  • Regex: Fixed Issues: #7744, #7644.
  • Smart Pointers:
    • New Features:
      • Glen Fernandes provided implementations of make_shared and allocate_shared for arrays. They achieve a single allocation for an array that can be initialized with constructor arguments or initializer lists as well as overloads for default initialization and no value initialization. See the 'make_shared and allocate_shared for arrays' page for more information.
      • shared_ptr can now be used to hold a pointer to a dynamically allocated array. This is accomplished by using an array type (T[] or T[N]) as the template parameter.
      • Smart pointers now use explicit operator bool on C++11 compilers. This can break code that passes a smart pointer to a function taking a bool, or that returns a smart pointer from a function with a bool return type. Please use p != 0 or !!p in such cases.
  • StringAlgo:
    • Fixed a bug where it wouldn't find overlapping patterns (#7784).
    • Disambiguated some calls to insert (#7346).
  • Thread:
    • Deprecated features:
      • Deprecated features since boost 1.53 will be available only until boost 1.58.
      • C++11 compliance: packaged_task<R> is deprecated, use instead packaged_task<R()>.
      • #7537 deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition
    • New Features:
      • #6270 C++11 compliance: Add thread constructor from movable callable and movable arguments
      • #7279 C++11 compliance: Add noexcept in system related functions
      • #7280 C++11 compliance: Add promise::...at_thread_exit functions
      • #7281 C++11 compliance: Add ArgTypes to packaged_task template.
      • #7282 C++11 compliance: Add packaged_task::make_ready_at_thread_exit function
      • #7412 C++11 compliance: Add async from movable callable and movable arguments
      • #7413 C++11 compliance: Add async when the launch policy is deferred.
      • #7414 C++11 compliance: future::get post-condition should be valid()==false.
      • #7422 Provide a condition variable with zero-overhead performance penality.
      • #7444 Async: Add make_future/make_shared_future.
      • #7540 Threads: Add a helper class that join a thread on destruction.
      • #7541 Threads: Add a thread wrapper class that joins on destruction.
      • #7575 C++11 compliance: A future created by async should "join" in the destructor.
      • #7587 Synchro: Add strict_lock and nested_strict_lock.
      • #7588 Synchro: Split the locks.hpp in several files to limit dependencies.
      • #7590 Synchro: Add lockable concept checkers based on Boost.ConceptCheck.
      • #7591 Add lockable traits that can be used with enable_if.
      • #7592 Synchro: Add a null_mutex that is a no-op and that is a model of UpgardeLockable.
      • #7593 Synchro: Add a externally_locked class.
      • #7594 Threads: Allow to disable thread interruptions.
    • Fixed Bugs:
      • #7464 BOOST_TEST(n_alive == 1); fails due to race condition in a regression test tool.
      • #7657 Serious performance and memory consumption hit if condition_variable methods condition notify_one or notify_all is used repeatedly.
      • #7665 this_thread::sleep_for no longer uses steady_clock in thread.
      • #7668 thread_group::join_all() should check whether its threads are joinable.
      • #7669 thread_group::join_all() should catch resource_deadlock_would_occur.
      • #7671 Error including boost/thread.hpp header on iOS.
      • #7672 lockable_traits.hpp syntax error: "defined" token misspelled.
      • #7798 boost::future set_wait_callback thread safety issues.
      • #7808 Incorrect description of effects for this_thread::sleep_for and this_thread::sleep_until.
      • #7812 Returns: cv_status::no_timeout if the call is returning because the time period specified by rel_time has elapsed, cv_status::timeout otherwise.
      • #7874 compile warning: thread.hpp:342: warning: type attributes are honored only at type definition.
      • #7875 BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not be enabled by default.
      • #7882 wrong exception text from condition_variable::wait(unique_lock<mutex>&).
      • #7890 thread::do_try_join_until() is missing a return type.
  • Unordered:
    • Remove support for the old pre-standard variadic pair constructors, and equality implementation. Both have been deprecated since Boost 1.48.
    • More internal implementation changes, including a much simpler implementation of erase, and removed more deprecated config macros.
  • Utility:
    • Added string_ref, a non-owning reference to a contiguous sequence of characters.
  • Variant:
    • Added rvalue constructors and rvalue assignment operators (for C++11 compatible compilers only). Library now can be used with move-only types (#7620, #7718).
  • Wave:
  • xpressive:
    • Accomodate recent smart pointer changes (#7809).

Updated Tools

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2
    • GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.2
    • Intel: 11.1, 12.1
    • LLVM Clang: 2.8
    • LLVM Clang, with libc++: 3.2
  • OS X:
    • GCC: 4.4.7
    • GCC, C++11 mode: 4.4.4
    • Intel: 11.1, 12.0
  • Windows:
    • Visual C++: 9.0, 10.0
  • FreeBSD:
    • GCC: 4.2.1, 32 and 64 bit

Boost's additional test compilers include:

  • Linux:
    • Cray: 4.6.1
    • Clang: from subversion
    • LLVM Clang, with libc++: 3.2
    • GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
    • GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2
    • pgCC: 11.9
    • Intel: 10.1, 11.1, 12.1
    • Intel, C++11 mode: 13.0.1
    • Visual Age:
  • OS X:
    • Clang: from subversion
    • Clang, C++11 mode: from subversion
    • Intel: 11.1, 12.0
    • GCC: 4.4.7
    • GCC, C++11 mode: 4.4.4
  • Windows:
    • Visual C++: 10.0, 11.0
    • Visual C++ with STLport: 9.0
    • Visual C++, Windows Mobile 5, with STLport: 9.0
  • AIX:
    • IBM XL C/C++ Enterprise Edition: V12.1.0.1

Acknowledgements

Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release.

Contributors

Marshall Clow
Marshall Clow
Contributor
Daniel James
Daniel James
Contributor
Lorenzo Caminiti
Lorenzo Caminiti
Contributor
Joachim Faulhaber
Joachim Faulhaber
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Peter Dimov
Peter Dimov
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
John Maddock
John Maddock
Contributor
Glen Fernandes
Glen Fernandes
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Eric Niebler
Eric Niebler
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Nathan Ridge
Nathan Ridge
Contributor
Robert Ramey
Robert Ramey
Contributor
Ralf W. Grosse-Kunstleve
Contributor
Andrii Sydorchuk
Andrii Sydorchuk
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Gennadiy Rozental
Gennadiy Rozental
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor
Artyom Beilis
Artyom Beilis
Contributor
Matias Capeletto
Matias Capeletto
Contributor
Vladimir Prus
Vladimir Prus
Contributor