BDE 4.27.0 Release
Schedule
The BDE team announces that the BDE 4.27.0 production release was completed on Friday, August 1, 2025.
BDE 4.27.0 Release Highlights
PCRE2 library version update from 10.39 to 10.45
This BDE release updates the version of PCRE2 third-party library used by the implementation of the ‘bdlpcre_regex’ component. PCRE version 10.45 contains various improvements, bug fixes, and security fixes.
Unfortunately, the upstream PCRE2 library has dropped support for the JIT (just-in-time) compiler for the Sparc architecture (note that previously JIT was supported only for 32-bit on Sparc). This change effectively forces the ‘bdlpcre_regex’ component implementation to ignore all JIT related flags and APIs on Sparc.
Utility for Adapting bsl Map Types for the Standard Ranges Library
This BDE release adds the utility bdlb::PairUtil::adaptForRanges, which
converts a given range whose value type is a bsl::pair into a range whose
value type is a std::pair of references to the elements of the
bsl::pair. Because certain standard range adaptors work only with standard
types such as std::pair, adaptForRanges must be used to make ranges of
bsl::pair’s compatible with such standard range adaptors. For example:
bsl::map<int, int> M = {{1, 2}, {3, 4}};
const bsl::vector<int> expectedValues = {2, 4};
assert(bsl::ranges::equal(expectedValues, M | bsl::views::values)); // error
assert(bsl::ranges::equal(expectedValues, bdlb::PairUtil::adaptForRanges(M) | bsl::views::values)); // OK
ball_fmt: new component providing formatting macros for ball logging
BDE has added a new component,
ball_fmt,
that provides for reporting log messages using a bsl::format-style format
specification and argument substitution. For example:
BALL_FMT_ERROR("Endpoint '{}' is not in the allowed list", endPoint);
The new <ball_fmt.h> provides logger macros for each log level as well as a
macro to be used inside logging-blocks. Each macro is variadic, with the first
argument being the format string and the rest the formatted arguments. Note
that to bridge the gap between stream and bsl::format based logging we also
provide the bslfmt::streamed wrapper, also provided in this release.
For more information, see Introducing BALL_FMT: BALL Logger Support for std::format-style Text Formatting and Enabling bsl::format for Types with an ostream Insert operator<<
Fixed Tickets
Summary |
|---|
Missing ‘required’ bas request elements have default values |
Update pcre2 to version 10.45 |
bsl::views::values with bsl::map |
bsl::format Bring ‘bslfmt_formatterstring’ to gold quality |
Update documentation to describe TOCTTOU issues on windows FilesystemUtil::remove |
Please provide bdljsn::Json -> bdlat-compatible type conversion |
Provide Safe API for Creating Date/Time Objects in BDE Libraries |
Evaluate bdlcc_deque case 6 for threat start checks and watchdog |
Implement quick and easy stream-operator-based-formatter enabling for classes and templates |
Please correct recently introduced issues in bslstl_optional |
Please reduce gcc-13 bde-core nightly build issues reported 6/4/2025 |
Remove Obsolete Usage Restriction Comment |
Fix TSAN issue in bdlmt_timereventscheduler.t.cpp |
Create bslmt::TimedCompletionGuard, to replace current watchdog code |
Make bdlat::FuzzUtil UTF-8-compatible |
StackAddressUtil: increase k_IGNORE_FRAMES when xSAN backtrace interceptor is expected |
bslfmt_formaterror.h includes the wrong header for std::format_error |
Please correct gcc-13 bslfmt issues |
bdlb_variantprinter.t.cpp: correct warning |
Please fix bslmft_testspecificationgenerator test case 1 |
bdlde::base64decoder deprecation docs are (potentially) incorrect |
Please support checking for required elements in baljsn_decoder |
Please correct bslfmt_formatterstring.t.cpp gcc-13 compile errors |
Use TimedCompletionGuard in bdlcc |
Round-trip error serializing baljsn::DecoderOptions. |