From 3e88b35d0dc2c29ca218b0376ea40ad3cf6c14e3 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Tue, 22 Jul 2025 02:16:22 +0300 Subject: [PATCH] Add release notes for Atomic, Core, Detail, Filesystem, Iterator, Log. --- feed/history/boost_1_89_0.qbk | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/feed/history/boost_1_89_0.qbk b/feed/history/boost_1_89_0.qbk index 0ca0fb73..18837fb3 100644 --- a/feed/history/boost_1_89_0.qbk +++ b/feed/history/boost_1_89_0.qbk @@ -44,6 +44,16 @@ Please keep the list of libraries sorted in lexicographical order. * [phrase library..[@/libs/any/ Any]:] * [*Initial support for C++20 Modules]. See the docs for more info. +* [phrase library..[@/libs/atomic/ Atomic]:] + * Added TSAN instrumentation in asm-based x86, AArch32, AArch64 and PPC backends. This silences TSAN false errors for code using Boost.Atomic for thread synchronization. + * Following the announcement in Boost 1.84, removed support for Windows versions older than Windows 10. + * A note to MinGW-w64 users. Since Windows SDK headers on MinGW-w64 define `_WIN32_WINNT` to an older Windows version by default, you may need to define `_WIN32_WINNT=0x0A00` or `BOOST_USE_WINAPI_VERSION=0x0A00` when compiling Boost.Atomic and the code that uses Boost.Atomic. + * Support for Windows CE is deprecated and will be removed in a future release. + * Added support for timed waiting operations. + * Exposed `thread_pause` operation, which can be used as a backoff measure in spin loops. Added support for PowerPC and improved support for AArch64 in `thread_pause`. + * Removed `BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT` macro definition. Since the library now requires C++11, `BOOST_ATOMIC_FLAG_INIT` is always supported. + * Enabled bitwise operations for atomic enumerations. This can be useful when enumerations are used to implement bit masks. + * [phrase library..[@/libs/beast/ Beast]:] * Fixes * Conditionally defined `immediate_executor_type` in `async_base`. @@ -68,6 +78,14 @@ Please keep the list of libraries sorted in lexicographical order. * [phrase library..[@/libs/conversion/ Conversion]:] * Added an ability to use `polymorphic_downcast` and `polymorphic_cast` in constexpr (requires C++20). +* [phrase library..[@/libs/core/ Core]:] + * Fixed `bit_ceil` to return 1 for input 0 as per specification. ([github_pr core 199]) + * Added support for `std::format` to `boost::core::string_view`. ([github core 190]) + +* [phrase library..[@/libs/detail/ Detail]:] + * Operators generated by `BOOST_BITMASK` now use underlying type of the enum to implement bitwise operators. The operators are marked `noexcept` and `constexpr`, when possible. + * The function `bitmask_set` generated by `BOOST_BITMASK` is marked deprecated. In a future release, `BOOST_BITMASK` will stop producing this function. Users are recommended to use double negation (`!!mask`) to test if the value is zero. This affects e.g. enums defined in Boost.Filesystem. + * [phrase library..[@/libs/dll/ DLL]:] * Fixed compiling and exporting on Cygwin. Many thanks to [@https://github.com/Luohaothu Luohao Wang] for the PR! @@ -75,10 +93,25 @@ Please keep the list of libraries sorted in lexicographical order. * Added `BOOST_DLL_USE_STD_FS` CMake option to match the preprocessor option. Thanks to [@https://github.com/yurybura Yury Bura] for the PR! +* [phrase library..[@/libs/filesystem/ Filesystem]:] + * Corrected ASAN warnings about comparing pointers to potentially unrelated objects in `path::append`. ([github filesystem 335]) + * [phrase library..[@/libs/hash2/ Hash2]:] * Added Blake2 algorithm (`blake2s_256`, `blake2b_512`). * Added XXH3 algorithm (`xxh3_128`). +* [phrase library..[@/libs/iterator/ Iterator]:] + * Fixed `filter_iterator` copy/converting constructor, which could previously produce an invalid iterator. ([github iterator 92]) + * Removed usage of `is_trivial` in `iterator_facade` as it is deprecated in C++26. ([github iterator 93]) + * `iterator_facade::operator[]` now always returns a proxy rather than conditionally returning a value or a proxy. This allows users to bind a reference to the result of the operator, regardless of whether the value type is trivially-copyable. ([github iterator 61]) + * The proxy returned by `iterator_facade::operator[]` now supports forwarding dereferencing operators to the referenced value. This allows `it[n]->foo()` and `(*it[n]).foo()` expressions to compile. + * The proxy returned by `iterator_facade::operator[]` now implementes perfect forwarding in its assignment operator. + +* [phrase library..[@/libs/log/ Log]:] + * Added support for `BOOST_LOG_WITHOUT_ASIO` configuration macro, which can be used to remove the dependency on Boost.Asio and disable the related functionality. + * Use locale-independent formatting of the file counter in `text_file_backend` when composing log file names. This fixes failures in the subsequent parsing of the file names in `file_collector::scan_for_files`. ([github_pr log 246]) + * Added a new `wrap_filter` utility that simplifies injecting user-defined function objects in filtering expressions. ([github log 195]) + * [phrase library..[@/libs/mysql/ MySQL]:] * The `caching_sha2_password` authentication plugin can now be used without TLS. This is the default in MySQL 8 and above. Plaintext connections that attempt to