BDE 3.58.0: Production Release

Schedule

  • BDE team is pleased to announce that the BDE 3.58.0 production release was completed on Friday, Jul 17, 2020.

BDE 3.58.0 Highlights

Using sanitizers

The BDE libraries and test drivers can be built and linked with the compiler sanitizer’s modules (for compilers that support them, currently late-model gcc and clang).

The sanitizer module is specified via a ufid flag:

Ufid Flag

Sanitizer module

asan

Address Sanitizer

tsan

Thread Sanitizer

ubsan

Undefined Behaviour Sanitizer

Configuring the build flavor with sanitizer support:
$ eval `bde_build_env.py -t dbg_exc_mt_64_asan_cpp17`
$ eval `bde_build_env.py --sanitizer=tsan`

Note

Sanitizers can significantly increase the build time of the BDE libraries.

all_of, any_of, and none_of now available in C++03

Implementations of the C++11 algorithms any_of, all_of, and none_of algorithms are now available in the bsl namespace, even in C++03 builds.

Fluent interface for bslmt::ThreadAttributes

bslmt::ThreadAttributes now provides manipulators that return a non-const reference to the object so that setting individual attributes can be “chained” into a single expression statement, or that attributes can be “built” in place as a function argument. For example:

bslmt::ThreadUtil::Handle handle;

int status = bslmt::ThreadUtil::create(
                        &handle,
                        bslmt::ThreadAttributes().setThreadName("myName")
                                                 .setInheritSchedule(true),  // <--- Using fluent interface
                        myThreadFunction,
                        &myThreadArgument);

Fixed requests: 3.58.0

Summary

Implementations of ‘bsl::all_of’, ‘bsl::any_of’, ‘bsl::none_of’

Supply BDE libraries compiled with ThreadSanitizer enabled

Decimal64 and the quantum of zero

bdlmt::FixedThreadPool - ability to set d_threadAttributes after construction

Suspected UB around bsl function

bslstl_queue.t.cpp breaks when you run sim_cpp11_features.pl on it

Review PR for bdlb_bitutil warning

‘bdlma_smallsequentialpool’: Normalize behaviors with ‘bdlma_sequentialpool’

bslma_testallocatormonitor.t.cpp: change of ‘allocate(0)’

bdlb::Variant::createInPlace return reference to new object