BDE 3.116.0 Release

Schedule

  • The BDE team announces that the BDE 3.116.0 production release was completed on Wednesday, April 12, 2023.

BDE 3.116.0 Highlights

New Component: balb_pipetaskmanager

This release introduces balb::PipeTaskManager, a class that supports the control of running processes based on messages received via a named pipe.

Notable features of balb::PipeTaskManager include:

  1. One can construct a balb::PipeTaskManager from a bsl::shared_ptr to a (shared) balb::ControlManager object (the object that maps a user message to the appropriate callback function). Thus one can assemble a single “messaging handling” configuration and share it with several “task managers”, each listening for messages from different named pipes.

  2. A handler for “HELP” messages is not installed by default. However, a handler can be easily installed by invocation of registerUsageHandler method of balb::ControlManager. See {‘balb_pipetaskmanager’|Example 1}.

bdlpcre::RegEx - better support for duplicate named groups

bdlpcre::Regex now supports duplicate named groups using the (?J) specifier or k_FLAG_DUPNAMES option.

If RegEx::k_FLAG_DUPNAMES is included in the flags supplied to prepare, or the pattern contains a (?J) option setting (see PCRE syntax) the subpatternIndex(name) method will fail if ‘name’ is used for more than one capture group. The namedSubpatterns() method should be used to get a set of (name, index) pairs used in the pattern.

C++20 Features

This release adds assorted C++20 features and aliases.

Fixed requests

Summary

C++20 work: Please add bsl::defaultfloat

Create balb_pipetaskmanager from bassvc_defaulttaskmanager

balst_stacktraceresoverimpl_windows.h: Windows compilation issue.

github: Fix ball_asyncfileobserver test failure

bdljsn: Fix problematic string_view construction from iterators

bdlde::CharConvertUtf16 support string with fixed size character type

bdlpcre::RegEx - better support for duplicate named groups

C++20 work: Add aliases for thread-coordination classes

C++20 work: Add <bsl_compare.h> header and alias standard entities

C++20 work: Add <bsl_numbers.h> header and alias standard entity

C++20 work: Add <bsl_bit.h> header and alias standard entities

C++20 work: Add <bsl_source_location.h> header and alias standard entity

C++20 work: Add BDE implementation of ‘bsl::to_array’

C++20 work: Add aliases to <bsl_atomic.h>

C++20 work: Add aliases to <bslstl_chrono.h>

C++20 work: Add aliases for the new entities

C++20 work: Add the ‘contains’ method to the ‘bsl::set’ and to the ‘bsl::multiset’

C++20 work: Add the ‘contains’ method to the ‘bsl::unordered_map’ and to the ‘bsl::unordered_multimap’

C++20 work: Add the ‘starts_with’ and the ‘ends_with’ methods to the ‘bslstl::basic_string’

C++20 work: Add the ‘operator<=>’ to the ‘bslstl::array’

C++20 work: Add the ‘operator<=>’ to the ‘bslstl::deque’

C++20 work: Add the ‘operator<=>’ to the ‘bslstl::list’

C++20 work: Add the ‘operator<=>’ to the ‘bslstl::vector’

bsl::optional fails to compile with C++17 and libc++

C++20 work: Add the ‘operator<=>’ to the ‘bslstl::type_index’

bslmt_threadattributes docs does not list Solaris as supporting thread names

bslmt::Semaphore - sem_init should not silently fail

bdlb::NullableAllocatedValue - add <, >, <=, >= operators (already has ==, !=)

C++20 work: new libraryfeatures macros for bit_cast and make_unique_for_overwrite

C++20 work: evaluate compiler feature support and suggest next steps

bdljsn_jsonnumber.h - sample code not correct

Please use value initialization in bsls::SpinLock constructors

bdljsn_json.h - correct descriptions of classes

bdljsn_json.h - unused header bsl_deque.h included

Make ‘bsl::StringRefImpl’ trivially copyable

correct test driver build warnings for bdlb on AIX

Fix bsls_compilerfeatures test error & clean-up

bdljsn_numberutil: fix warning

Clarify whether log records are published atomically

Fix hexfloat-literal compilerfeatures test build failures in gcc cpp03 ufids