BDE 4.37.0 Release

Schedule

  • The BDE team announces that the BDE 4.37.0 production release was completed on Monday, April 6, 2026.

BDE 4.37.0 Release Highlights

bdlt Types Now Support bsl::format

The bdlt date and time vocabulary types now support formatting via bsl::format, enabling modern C++ formatting for bdlt::Date, bdlt::Time, bdlt::Datetime, and related types.

For more details, see the bsl::format for bdlt value types.

bsl::stringstream C++26 Constructors Taking bsl::string_view

bsl::stringstream and related stream types now support C++26 constructors that accept bsl::string_view, improving interoperability and avoiding unnecessary string copies when initializing streams.

bdlmt::EventScheduler Next Scheduled Time Query

A new method has been added to bdlmt::EventScheduler to retrieve the next scheduled time for a specific job, enabling more precise scheduling introspection.

bdld::Datum Small String Optimization Increased

The small string optimization buffer in bdld::Datum has been increased from 13 to 14 bytes, allowing more short strings to be stored inline without heap allocation.

Fixed Tickets

Summary

Parent Ticket: JSON Enhancements

Provide method to get next scheduled time for specific job in bdlmt::EventScheduler

bdlt: support bsl::format

Increase bdld::Datum small string optimization from 13 to 14

bsl::stringstream support for C++26 constructors taking bsl::string_view

BDEX version 1 serialization for bdlt::PackedCalendar silently loses weekend-days transition data when the transition date is not (1, 1, 1)

Use BSLS_ASSERT*_UNREACHABLE in place of unconditional BSLS_ASSERTs

BSLS_LIBRARYFEATURES_HAS_CPP23_FORMAT macro

Alphasort the macro documentation in bsls_libraryfeatures.h

Audit the printFlags reporting function in the compiler features test driver

bslfmt with BSLSTL_STRING_VIEW_AND_STD_STRING_VIEW_COEXIST

Reduce Darwin machine load nightly build failures

Reduce spew from bslfmt_formatterstring.t.cpp case 4

bsl::string_view(ITER, SENTINEL) constructor in C++20 mode

Remove dependency on language features deprecated in C++17

Correct for-testing-only includes in bslmt, add TimedCompletionGuard usage

bslmf_usesallocator: doc typo

bdlt::CurrentTime::currentTimeDefault – fix doc

Reduce execution time of bslfmt_testspecificationgenerator.t.cpp on Darwin

Reduce introduced TimedCompletionGuard issues on Darwin

Explicitly warn about multithreaded performance in BDE example

Fix typo in balcl_typeinfo.t.cpp

Reduce bsls_atomic.t cases 7 and 8 runtime on Darwin

Reduce bsls_atomic.t cases 7, 8, and 9 runtime on Darwin

Remove use of ident strings in test drivers

Fix bslfmt_formatterstring test failure on clang prior to 20.1.0

Create a RadixTree for ball::CategoryManager

Add BSLS_ANNOTATION_ANALYZER_NORETURN to bsls_assert

ball scheme-based PR broke BDE_FORCE_OMIT_INTERNAL_DEPRECATED

Correct bdlmt_eventscheduler.t.cpp warning

operator std::string_view for bsl::string_view

Minor nightly build fixes

bsls::Review::failByThrow is not marked as [[noreturn]]

Nightly Darwin bslmt timing issues improvements

Tidy up bsl_type_traits.h

Added class allocator to long-lived object

bdlt: bsl::format – explore separating format from bdlt value type includes

Make BSLS_REVIEW* locally const correct

Update BALL Record Formatter Plugins article with respect to arbitrary text in [q]json

f