Updated Libraries
Any:
RTTI is not required any more (TypeIndex library is used for RTTI emulation)
Fixed 8958
Asio:
Fixed the kqueue reactor so that it works on FreeBSD.
Fixed an issue in the kqueue reactor which resulted in spinning when using serial ports on Mac OS.
Fixed kqueue reactor support for read-only file descriptors.
Fixed a compile error when using the /dev/poll reactor.
Changed the Windows backend to use WSASocketW, as WSASocketA has been deprecated.
Fixed some warnings reported by Visual C++ 2013.
Fixed integer type used in the WinRT version of the byte-order conversion functions.
Changed documentation to indicate that use_future and spawn() are not made available when including the asio.hpp convenience header.
Explicitly marked asio::strand as deprecated. Use asio::io_service::strand instead.
Circular Buffer:
Fixed some warnings and move_if_noexcept from Boost.Move is used
Config:
BOOST_HAS_PRAGMA_DETECT_MISMATCH macro was added
Container:
Added support for initializer_list.
Fixed double destruction bugs in vector and backward expansion capable allocators.
Coroutine:
optionally register stacks with valgrind
10386 MSVC link error in asymmetric_coroutine.hpp: symbol already defined
10536 call to 'begin(...pull_coroutine< R > & c)' is ambiguous
Flyweight:
Added serialization support via Boost Serialization.
flyweight default constructor was made explicit in Boost 1.56, which introduces a regression in some initialization scenarios. The former non-explicit default constructor has been restored
More...
Modularization
Boost version control has migrated to a system using git submodules. This shouldn't make too much of a difference to users, although the directory structure is now a bit different.
Parts of some libraries have been moved into different modules, and several new modules have been extracted from existing code. All header paths should remain the same. The new modules are:
Assert:
Customizable assert macros. Maintained by Peter Dimov.
Core:
Core utilities used by other libraries, with minimal dependencies. Maintained by Peter Dimov, Glen Fernandes and Andrey Semashev.
Lexical_Cast:
General literal text conversions, such as an int represented a string, or vice-versa, from Kevlin Henney.
Throw_Exception:
A common infrastructure for throwing exceptions from Boost libraries, from Emil Dotchevski.
Winapi:
Windows API declarations without <windows.h>, for internal Boost use.
New Libraries
Align:
Memory alignment functions, allocators, and adaptors, from Glen Fernandes.
Type_Index:
Runtime/Compile time copyable type info, from Antony Polukhin.
Support was removed from Config for some very old versions of compilers. The new minimum requirements are:
Digitial Mars 8.41
GCC 3.3
Intel 6.0
Visual C++ 7.1
Other compilers are currently unchanged, but we are considering removing support for some other old compilers. Candidates for removal are:
Metroworks C++ (i.e. codewarrior)
SunPro 5.7 and earlier
Borland C++ Builder 2006 (5.82) and earlier
If you're using any of these, please let us know on the mailing lists. We will take into account any feedback received before making a decision.
New Libraries:
Atomic:
C++11-style atomic<>, from Helge Bahmann, maintained by Tim Blechmann.
Coroutine:
Coroutine library, from Oliver Kowalke.
Lockfree:
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.
More info http://www.boost.org/users/history/version_1_53_0.html
which is considered a security problem
bump PKGREV for the affected header, didn't check yet where this
header is compiled into
(boost-1.53 is out, just added the patch for a possible pullup)
New Libraries
* Context: Context switching library, from Oliver Kowalke.
Updated Libraries
* Algorithm:
- Fixed is_sorted_until ; now matches the c++11 standard behavior on ranges with
duplicate values.
- Added range support for the rest of the search algorithms.
- unhex now uses Boost.Exception to signal bad input.
* Asio:
- Fixed an incompatibility between ip::tcp::iostream and C++11.
- Decorated GCC attribute names with underscores to prevent interaction with
user-defined macros.
- Added missing #include <cctype>, needed for some versions of MinGW.
- Changed to use gcc's atomic builtins on ARM CPUs, when available.
- Changed strand destruction to be a no-op, to allow strand objects to be
destroyed after their associated io_service has been destroyed.
- Added support for some newer versions of glibc which provide the
epoll_create1() function but always fail with ENOSYS.
- Changed the SSL implementation to throw an exception if SSL engine
initialisation fails.
- Fixed another regression in buffered_write_stream.
- Implemented various minor performance improvements, primarily targeted at
Linux x86 and x86-64 platforms.
* Config:
- Deprecated a whole bunch of macros that were c++11 specific, but not named to
show that they were c++11 specific. Made new macros with better names, and
paired the old macros with the new ones. Updated the documentation to list
the deprecated macros.
[more..]
New Libraries
* Algorithm: A collection of useful generic algorithms, from Marshall Clow.
This includes several different searching algorithms, as well as most of the
new algorithms from the C++11 standard library
* Functional/OverloadedFunction: Overload different functions into a single
function object, from Lorenzo Caminiti.
* LocalFunction: Program functions locally, within other functions, directly
within the scope where they are needed, from Lorenzo Caminiti.
* Utility/IdentityType: Wrap types within round parenthesis so they can always
be passed as macro parameters, from Lorenzo Caminiti.
More http://www.boost.org/users/history/version_1_50_0.html
New Libraries
* Container: Standard library containers and extensions
* Locale: Provide localization and Unicode handling tools for C++
Beilis.
* Move: Portable move semantics for C++03 and C++11 compilers
Details: http://www.boost.org/users/history/version_1_48_0.html
New Libraries
* Chrono: Useful time utilities
* Geometry: Geometry Library
* Phoenix: Define small unnamed function objects at the actual call site, and
more
* Ratio: Compile time rational arithmetic
More: http://www.boost.org/users/history/version_1_47_0.html
New Libraries
* Icl: Interval Container Library, interval sets and maps and aggregation of
associated values, from Joachim Faulhaber.
Updated Libraries
* Array:
- Added support for cbegin/cend
- Fixed a problem with the Sun compiler
* Asio:
- Fixed a problem on older Linux kernels (where epoll is used without timerfd
support) that prevents timely delivery of deadline_timer handlers, after
the program has been running for some time
* Bind:
- make_adaptable now documented
* Concept Check:
- fixed warnings with self-assignment
* Filesystem:
- Version 3 of the library is now the default.
- IBM vacpp: Workaround for compiler bug affecting iterator_facade
- Verify, clarify, document that <boost/config/user.hpp> can be used to
specify BOOST_FILESYSTEM_VERSIO
- Replaced C-style assert with BOOST_ASSERT.
- Undeprecated unique_path(). Instead, add a note mentioning the workaround
for lack of thread safety and possible change to cwd. unique_path() is just
too convenient to deprecate!
- Cleared several GCC warnings.
- Changed V2 code to use BOOST_THROW_EXCEPTION.
- Windows: Fix status() to report non-symlink reparse point correctly.
- Add symlink_option to recursive_directory_iterator, allowing control over
recursion into directory symlinks. Note that the default is changed to not
recurse into directory symlinks.
- Reference documentation cleanup, including fixing missing and broken links,
and adding missing functions.
- Miscellaneous implementation code cleanup.
* Fusion:
- vector copy constructor now copies sequence members in the same order on different platforms
* Graph:
- Fixed Graphviz output to work on Visual C++ 7.1.
- Replaced assert with BOOST_ASSERT.
- Changed to Boost.Filesystem v3.
More...
* Fixed a problem on kqueue-based platforms where a deadline_timer
may never fire if the io_service is running in a background thread
* Fixed a const-correctness issue that prevented valid uses of
has_service<> from compiling
* Fixed MinGW cross-compilation
* Removed dependency on deprecated Boost.System functions
* Ensured close()/closesocket() failures are correctly propagated
* Added a check for errors returned by
InitializeCriticalSectionAndSpinCount
* Added support for hardware flow control on QNX
* Always use pselect() on HP-UX, if it is available.
* Ensured handler arguments are passed as lvalues
* Fixed Windows build when thread support is disabled
* Fixed a Windows-specific problem where deadline_timer objects with
expiry times set more than 5 minutes in the future may never expire
* Fixed the resolver backend on BSD platforms so that an empty service
name resolves to port number 0, as per the documentation
* Fixed read operations so that they do not accept buffer sequences of
type const_buffers_1
* Redefined Protocol and id to avoid clashing with Objective-C++ keywords
* Fixed a vector reallocation performance issue that can occur when
there are many active deadline_timer objects
* Fixed the kqueue backend so that it compiles on NetBSD
* Fixed the socket io_control() implementation on 64-bit Mac OS X and
BSD platforms
* Fixed a Windows-specific problem where failures from accept() are
incorrectly treated as successes
* Deprecated the separate compilation header <boost/asio/impl/src.cpp>
in favour of <boost/asio/impl/src.hpp>
Lots of changes to list here. As usual, some new libraries have been
added and there have been improvements all around. Of special interest
is that we can now erase most of our local patches because they have
been imported upstream.