BDE 4.30.0 Release

Schedule

  • The BDE team announces that the BDE 4.30.0 production release was completed on Monday, October 20, 2025.

BDE 4.30.0 Release Highlights

bslma::ManagedPtr: Add nullptr_t Constructor

Added a constructor overload to bslma::ManagedPtr that takes bsl::nullptr_t, creating an empty ManagedPtr. Our thanks to Daryl Haresign for the contribution.

bslma::ManagedPtr<MyType> ptr(nullptr);  // Now supported

bdlb::String: One-Pass String Trim Optimization

The bdlb::String component now implements a more efficient one-pass algorithm for string trimming operations, improving performance for string manipulation tasks. Our thanks to Sandeep Vedavyasa Raveendra for the contribution.

balxml::Encoder: Fix Nil Array Element Handling

Fixed an issue where balxml::Encoder with default options would incorrectly elide nil array elements, ensuring proper XML serialization of arrays containing null values.

Documentation Improvements

This release includes several documentation enhancements:

  • Documented that bdlmt::ThreadMultiplexor pending job queue is not FIFO

  • Documented differences between bdlt::Iso8601Util::parse and the ISO 8601 standard

  • Fixed documentation for BSLS_LIBRARYFEATURES_HAS_CPP20_CALENDAR and BSLS_LIBRARYFEATURES_HAS_CPP20_TIMEZONE

  • Added BALL_FMT macros to the ball.txt macro list

  • Fixed copy-paste typo in bslma::Allocator contract

Additional Fixes and Improvements

  • Fixed an issue with balb::PerformanceMonitor::Statistics where d_minData[e_CPU_UTIL_*] was always 0.0

  • Passed allocator to bdlmt::EventSchedulerTestTimeSource for proper memory management

  • Corrected incrementUntil logic issues in three components (thanks to user jilinzhou on github for reporting the issue)

  • Added verbose output to BDE debhelper for better diagnostics

  • Fixed test build issues and addressed oversized main functions in multiple test drivers

  • Fixed GCC-13 compatibility issues in various components

Fixed Tickets

Summary

Add a constructor overload taking bsl::nullptr_t to ManagedPtr

balxml_Encoder with default options elides nil array elements

Document that bdlmt::ThreadMultiplexor pending job queue is not FIFO

Document differences of bdlt::Iso8601Util::parse from ISO 8601

Pass allocator to bdlmt::EventSchedulerTestTimeSource

correct balm_metrics.t case 11 and 14 tsan issues

Fix documentation for BSLS_LIBRARYFEATURES_HAS_CPP20_CALENDAR and BSLS_LIBRARYFEATURES_HAS_CPP20_TIMEZONE

make balm_categoryholder values atomic to reduce TSAN issues

Fix tsan test drivers that replace operator new

PerformanceMonitor::Statistics::d_minData[e_CPU_UTIL_*] is always 0.0

Request for Review - TSAN Race Fix in bsls_atomic.t

Address test drivers where the main function has grown too large

Add BALL_FMT macros to the ball.txt macro list

Fix a memory leak in bsltf::TemplateTestFacility::create reported by asan

Fix resource leaks in test drivers not destroying objects stored in bsls::ObjectBuffer

Fix copy-paste typo in bslma::Allocator contract

bdlb::String: One pass string trim

Memeory leak in bdlcc_timequeue usage example

incrementUntil logic in three components looks wrong

Add verbose output to BDE debhelper

please correct clang warnings in bslstl introduced with PR 5585

please address bslma_managedptr test error for gcc-13 dbg_64_cpp03

asan reports a leak in balcl_typeinfo test driver

asan reports memory corruption in balcl_commandline test driver

please investigate TBB issue for gcc-13 in nightlies

Fix release test build issue

asan: Disable test cases of BDE test machinery that deliberately abuse memory in asan builds

asan: fix buffer orverruns in bdlde_utf8util test driver