Boost
Releases
arrow_drop_down
Prior Release (1.49.0)
April 13, 2013
Dependencies
There were 7 dependencies added (in 6 libraries) and 3 dependencies removed (in 3 libraries) this release.
Platform File SHA256 Hash
Unix boost_1_49_0.tar.bz2 dd748....80d3c
boost_1_49_0.tar.gz a3ec4....39bf3
Windows boost_1_49_0.7z 663b9....89a7f
boost_1_49_0.zip 69af4....be0ad

Version 1.49.0

February 24th, 2012 21:20 GMT

Documentation

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 typedefs high_resolution_timer, steady_timer and system_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.
  • Container:
    • Fixed bugs #6499, #6336, #6335, #6287, #6205, #4383.
    • Added allocator_traits support for both C++11 and C++03 compilers through an internal allocator_traits clone.
  • 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.
  • Foreach:
  • 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).
    • Solved tickets
      • #6028 Documentation: closure.
      • #6178 Missing headerfile.
      • #6021 convex hull of multipoint.
    • 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)
  • Graph:
  • Icl:
    • Fixed tickets #6095 and #6210.
    • Added move semantics for constructors, assignment operators and binary operators.
  • Interprocess:
  • Intrusive:
  • Lexical cast:
  • Locale:
    • Fixed incorrect use of MultiByteToWideChar in detection of invalid input sequences.
  • Move:
  • PropertyTree:
  • Proto:
    • Force some functions to be inline, fixes #5735.
    • Add user documentation for per-domain as_expr and as_child; other doc tweaks.
    • Fix some buggy and over-complicated example programs.
    • Add some missing copyright notices.
  • 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.
  • Unordered:
    • On compilers without rvalue references, the containers are no longer movable by default, as move emulation was causing some odd quirks (#6167, #6311). Define BOOST_UNORDERED_USE_MOVE to make them movable - Boost.Move is still used for elements regardless.
    • Fix sequence point warning (#6370).
    • Better support for C++11 compilers using older standard libraries.
  • Uuid:
    • fixed #6258
    • fixed #5325 (sha1 implementation handles messages as long as the specification)
    • progress on #6118 (there are fewer warnings)
  • 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.

Contributors

Barend Gehrels
Barend Gehrels
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Beman Dawes
Beman Dawes
Contributor
Bruno Lalande
Bruno Lalande
Contributor
Daniel James
Daniel James
Contributor
Mateusz Łoskot
Mateusz Łoskot
Contributor
John Maddock
John Maddock
Contributor
Peter Dimov
Peter Dimov
Contributor
Marshall Clow
Marshall Clow
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
Daniel Walker
Contributor
Paul Mensonides
Paul Mensonides
Contributor
Eric Niebler
Eric Niebler
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Joachim Faulhaber
Joachim Faulhaber
Contributor
Rene Rivera
Rene Rivera
Contributor
Andy Tompkins
Andy Tompkins
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Steven Watanabe
Steven Watanabe
Contributor
Troy D. Straszheim
Troy D. Straszheim
Contributor
Douglas Gregor
Douglas Gregor
Contributor
Michael A. Jackson
Michael A. Jackson
Contributor
Bryce Adelstein-Lelbach
Bryce Adelstein-Lelbach
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Brandon Kohn
Brandon Kohn
Contributor
Ralf W. Grosse-Kunstleve
Contributor
Christophe Henry
Christophe Henry
Contributor
Tim Blechmann
Tim Blechmann
Contributor
K. Noel Belcourt
K. Noel Belcourt
Contributor
Artyom Beilis
Artyom Beilis
Contributor
Sebastian Redl
Sebastian Redl
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor