BDE 3.38.0: Production Release

Schedule

  • The BDE team is pleased to announce that the BDE 3.38.0 production release was completed on Monday, Sep 9, 2019

BDE 3.38.0 Highlights

C++17 Searcher Classes

This release makes available two of the “searcher” classes defined in the C++17 Standard Library: bsl::default_searcher and bsl::boyer_moore_horspool_seacher (BMH). The BMH class provides significantly better performance than the “default” (naive) algorithm in many situations. These classes are available on all production platforms, even in non-C++17 builds.

In addition to these strictly C++17 Standard compliant classes, an allocator aware, BDE-style class, bslstl::BoyerMooreHorspoolSearcher, is provided for scenarios where applications wish to cache searcher objects in containers.

New Component: bslmt_readerwriterlockassert

The new component, bslmt_readerwriterlockassert, provides a suite of macros (e.g., BSLMT_READERWRITERLOCKASSERT_IS_LOCKED_READ) for defensive checks (i.e., precondition checks) that reader-writer locks are in their expected states. These macros accept instances of bslmt::ReaderWriterLock, bslmt::ReaderWriterMutex, or other classes that follow the same paradigm.

Note that these macros are similar to those already provided by bslmt_lockassert for simple mutexes (that are either locked or not).

Fixed requests: 3.38.0

Summary

Add BSLMT_READERWRITERLOCKASSERT* macros

Possible race condition in ObjectPool

Delete unused bslfwd components

bdlmt::MultiQueueThreadPool does not return error if it cannot create a thred

Create bslstl_defaultsearcher and bslstl_boyermoorehorspoolsearch

bdlmt::MultiqueueThreadPool returning negative values

Remove dependency of bde-classic from deprecated btl.

bdlcc_multipriorityqueue: add move semantics

bdls/bdesu_filesystemutil.t nightly build on Windows.

earliestDayOfWeekInMonth is missing from bdlt_dateutil

BDE coding standards: Syntax for specifying internal links

BDE fails to compile in c++03 mode

baexml_element.t assertion failure in SAFE mode

bslma::ManagePtr ctor that takes single pointer is broken