Commit graph

5 commits

Author SHA1 Message Date
adam
115ac23a4c Changes 1.63.0:
Atomic:
* Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations.
* Improved support of Oracle Studio on x86 targets.

Container:
* Fixed bugs

Context:
* 11687 Xcode (Apple clang) and thread_local
* 12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too)
* 12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too)
* 12551 building boost on arm64 causes error: unknown directive
* reduced signatur for ontop-functions
* unit-test for private fcontext-API
* performance-test for ucontext and fcontext fixed

Fiber:
* unbounded_channel and bounded_channel marked as deprecated
* new classes buffered_channel and unbuffered_channel
* performance improved

Fusion:
* Fixed fusion::vector buggy constructors (Thanks to Lee Clagett).
* BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (6592)
* BOOST_FUSION_DEFINE* allows move constructor and assignment. (10099)
* Adaptor for std::array (Thanks to Mateusz Łoskot). (8241)
* Fixed returning temporary variable warnings on MSVC.

Geometry:
* Intersection: take care that output is valid (work in progres, not yet finished - but more is valid)
* 12289 Avoid warning/compilation error for std::cout
* 12412 Invalid result of covered_by() with geographic Points and Boxes
* 12413 rtree::remove() not working properly with geographic Points

Hash:
* Fixed some warnings.

Interprocess:
* Fixed bugs

Intrusive:
* Fixed bugs

Lexical Cast:
* Fixed issue found by -fsanitize=undefined 21

Log:
* Removed the previously deprecated type_info_wrapper.
* Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method.
* Bug fixes

Metaparse:
* Improved the implementation of BOOST_METAPARSE_STRING

Move:
* Improved experimental adaptive sort algorithm performance
* Activate BOOST_MOVE_FORCEINLINE

Optional:
* Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition.
* Syntax o = {} now correctly un-initializes an optional, just like in std::optional.
* Fixed optional<optional<T>&> initialization. (12203)
* Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (12563)

Phoenix:
* Most of modules now support C++11 variadic templates.
* Fixed type deduction failure with result type.
* Suppress unused warnings.
* Fixed too few arguments error on binary math functions.
* Added workarounds for older compiler.

Python:
* Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
* Incorporated an extension API to wrap NumPy
* Removed obsolete bits and pieces

Test:
* Boost.test v3.4 see the Change log section for more details.
* New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison
* Breaking change: colons that appear in test case names are replaced with underscores
* Bug fixes

TypeIndex:
* Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info.
* Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int.

Units:
* Fix inspection warnings
* updated physico-chemical constants to CODATA 2014 values
* define biot correctly as 10 Ampere

Unordered:
* Fix an exception safety issue in assignment.
* Use std::allocator_traits where available, and support modern style rebind (12459).
* Add some allocator aware constructors.
* Use the hint iterator in emplace_hint.
* Fixed some warnings.
2017-01-01 15:32:47 +00:00
adam
25bc4f496c Changes 1.62.0:
New Libraries
-------------
Fiber:
* Framework for userland-threads/fibers, from Oliver Kowalke.
QVM:
* Boost QVM is a generic library for working with quaternions, vectors and matrices of static size with the emphasis on 2, 3 and 4-dimensional operations needed in graphics, video games and simulation applications, from Emil Dotchevski.

Updated Libraries
-----------------
Atomic:
* Improved support for Oracle Studio and SPARC. The library now provides native atomic operations on SPARCv8+.

Chrono:
* 11330 boost::chrono::duration default constructor doesn't initialize rep_
* 11618 Chrono IO V2 doc ios_state.hpp does not exist
* 11631 boost chrono io v2 does not let you support custom clocks

Circular Buffer:
* Debug implementation is no longer used by default in debug mode. Debug implementation does not have the same thread safety guarantees as the normal (release) implementation or other containers. As a result of this change BOOST_CB_DISABLE_DEBUG macro is no longer used. BOOST_CB_ENABLE_DEBUG=1 should be defined instead to enable debug support.

Container:
* Fixed bugs:
Trac 9481: "Minor comment typo in Boost.Container".
Trac 9689: "Add piecewise_construct to boost::container".
Trac 11170: "Doc slip for index_of".
Trac 11802: "Incorrect ordering after using insert() with ordered_range_t on a flat_multiset with a non-default sort order".
Trac 12117: "flat_set constructor with ordered_unique_range".
Trac 12177: "vector::priv_merge uses unqualified uintptr_t".
Trac 12183: "GCC 6.1 thinks boost::container::string violates strict aliasing".
Trac 12256: "set<std::pair<int,int>>::insert cause compilation error in debug configuration in Visual Studio 2012".
Trac 12273: "static_vector max_size() and capacity() should be constant expressions". Added constant static_vector<>::static_capacity to use the configured capacity in constant expressions.
Trac 12286: "PMR flat_map from Boost Container does not compile".
Trac 12296: "{deque,string} combine for a memory leak".
Trac 12319: "flat_set should be nothrow move constructible".
* Revised noexcept expressions of default and move constructors in all containers.
* Implemented C++17 insert_or_assign/try_emplace for map and flat_map.
* Implemented C++17 extract/insert(node) for map, multimap, set, multiset.

Context:
* 12215 all stack corrupted on Windows using default fixedsize_stack
* 12242 build issue with Intel C++ compiler for MacOS
* fix stack unwinding for execution_context_v1

Coroutine:
* deprecated in favour of Coroutine2

Coroutine2:
* 12221 coroutine<>::push_type function starts without pushing
* do not swallow exceptions thrown at coroutine<>::push_type construction

DLL:
* Mangled symbols and classes loading was implemented by Klemens Morgenstern
* Suppress a 'unused parameter' warning in detail::aggressive_ptr_cast pull-request 9
* Allowed to query non-existant sections pull-request 32
* More tests and docs

Functional/Forward:
* Fix C++11 compile error.

Interprocess:
* Fixed bug GitHub Pull 27 ("Fix undefined behavior").

Intrusive:
* Fixed bugs:
Boost Trac 11476: has_member_function_callable_with.hpp is massively broken with BOOST_NO_CXX11_DECLTYPE
Boost Trac 11994: Support intrusive container key extractors that return the key by value
Boost Trac 12184: clang -Wdocumentation warning
Boost Trac 12190: Intrusive List + Flat Map combination crashes
Boost Trac 12229: intrusive::unordered_set<T>::rehash() broken
Boost Trac 12245: bstree uses a shared static size_traits for constant_time_size<false>

Lexical Cast:
* Fix incorrect static assertion 11759

Log:
* New features:
Added new tools for inter-process logging on a local machine. The implementation includes a resource name wrapper, an inter-process message queue and a sink backend.
Added a new character decorator called max_size_decor. The new decorator allows to limit the output of its adopted formatter up to the specified length.
* Bug fixes:
Fixed that logging streams could retain formatting settings across different log records. (12178)
See changelog for more details.

Math:
* New Features:
Enabled all the special function code to work correctly with types whose precision can change at runtime: for example type mpfr_float from Boost.Multiprecision.
* Patches:
Fix tgamma_delta_ratio for cases where the delta is small compared to the base.
Fix misc GCC-4.4 test failures.

Optional:
* Fixed Trac 12179.

Phoenix:
* Fix compilation for MSVC 10. pull-request 18
* Remove unused preprocessed files. pull-request 28
* Fix erroneous doc for switch_ statement. 8156
* Cleanup config unordered. pull-request 33
* Suppress unused placeholder warnings.
* Fix too few arguments error on binary math functions.

Regex:
* Fix buffer over-run error when parsing certain invalid regexes, see 12222.
* Fix detection of ICU in library build, see 12152.
* Fix bug in case sensitivity change, see 11940.
* Allow types wider than int in \x{} expressions (for char32_t etc), see 11988.

Test:
* Boost.test v3.3 see the Change log section for more details.
* New features
dataset driven test-cases have now a unique name and all sample tests of a dataset live inside the same test suite
Boost.test learned a new command line switch, --logger for setting a test logger as well as its parameter in one command
Boost.test learned to have several loggers at the same time, each of which having their own log level and output stream
Boost.test learned a new logger, JUNIT, that is able to output Junit/xUnit compatible streams
It is now possible to specify several test filters through the environment variable BOOST_TEST_RUN_FILTERS
* Bug fixes
Trac tickets 8707, 8834, 11128, 11845, 11859, 12024,
Trac tickets 12093, 12103, 12224, 12241, 12257, 12378

Thread:
* 12102 condition_variable_fwd.hpp fails to compile when BOOST_THREAD_PROVIDES_INTERRUPTIONS is disabled
* 12120 Performance improvement in thread/barrier.hpp
* 12146 make_exceptional_future is not mentioned in the docs
* 12202 shared_lock should be in shared_mutex header
* 12371 boost thread/future.hpp fails to build
* 88 fix typos in boost::upgrade_lock
* 89 fix a bug in upgrade_to_unique_lock<>::operator=()
* 90 fix a bug in try_lock_wrapper<>::operator=()
* 91 Add shared_lock_guard to the included lock types
* 92 Fixed compilation with MSVC-8.
* 93 Fix variable shadowing warnings (Clang)
* 94 fix bugs in boost::barrier
* 95 fix a mistake in boost::completion_latch
* 96 rename async_func.hpp to invoker.hpp.
* 97 fix a mistake in sync_timed_queue<>::pull_until()

TypeIndex:
* ctti_type_index was made constexpr in C++14. Now it is possible to retrieve actual name of the type as const char* at compile time. So we can do a lot of interesting things at compile time: check namespace of a type, sort types according to their lexical representation, check that type is a template type and so on... A few examples were provided.
* Fixed issue with noexcept on MSVC in type names and issue with space in type name (pulled from klemens-morgenstern/develop)
* Fixed typos pull-request 7
* Improved CI testing

Unordered:
* Remove use of deprecated boost::iterator.
* Fixed an exception safety issue in assignment of unordered_multiset and unordered_multimap.
* See the changelog for more details.

Variant:
* Fixed variant construction from classes derived from variant 7120, 10278, 12155
* Variant constructors and assignment operators now do not participate in overload resolutions if variant can not hold the input type 5871, 11602
* Fixed the issue with implicit conversion operator in C++11 8555
* Fixed comparisons when variant holds non-const reference 11751
* Fixed noexcept for variant's move-assignment 11696
* Fixed double quotes in includes 12057
* Dropped BOOST_VARIANT_NO_REFERENCE_SUPPORT macro and dropped support for compilers without SFINAE 12250
* Suppress implicit instantiation of MPL end iterator
* Multiple minor fixes (typos, missing includes)
2016-10-07 17:51:11 +00:00
adam
ac97e9f722 Changes 1.61.0:
New Libraries:
--------------
Compute:
  Parallel/GPU-computing library
DLL:
  Library for comfortable work with DLL and DSO. Library provides a portable across platforms way to:
* load libraries
* import any native functions and variables
* make alias names for C++ mangled functions and symbols
* query libraries for sections and exported symbols
* self loading and self querying
* getting program and module location by exported symbol
Hana:
  A modern C++ metaprogramming library. It provides high level algorithms to manipulate heterogeneous sequences, allows writing type-level computations with a natural syntax, provides tools to introspect user-defined types and much more.
  Metaparse:
A library for generating compile time parsers parsing embedded DSL code as part of the C++ compilation process. The library is similar to Spirit, however while parsers built with Spirit parse at run-time, parsers built with Metaparse parse at compile-time.
2016-05-13 20:47:32 +00:00
adam
98598742b0 Changes 1.59.0:
New Libraries
Convert:
An extendible and configurable type-conversion framework, from Vladimir Batov.
Coroutine2:
(C++14) Coroutine library, from Oliver Kowalke.

Updated Libraries...
2015-08-14 07:54:04 +00:00
joerg
8866ae7b8c Disable container forward definitions for libc++, it doesn't agree with
the use of inline namespaces.
2014-02-21 20:22:08 +00:00