BDE 3.102.0 Release

Schedule

  • The BDE team announces that the BDE 3.102.0 production release was completed on Monday, June 6, 2022.

BDE 3.102.0 Highlights

Improved Guid Generation

This release fixes and improves Guid generation, particularly for bdlb::GuidUtil::generateNonSecure (for creating unique, but not cryptographically secure, Guid values)

  • The Guid type is now 32-bit aligned to facilitate the removal of unnecessary copy operations in the implementation of generateNonSecure.

  • The random number generator used in the implementation of bdlb::GuidUtil::generateNonSecure reseeds in the child of a forked process, thereby ensuring that parent and child processes do not generate the same Guid sequence.

  • bdlb::GuidUtil::generateNonSecure previously used a PCG generator with 64 bits of state, which would result in a 50% likelihood of collision after the creation of 2^32 Guids. generateNonSecure now uses a random number generator with 256 bits of state (although the output Guids are still limited to a maximum of 122 bits), thereby reducing the probability of collision.

  • In order to support the previous changes, the bdlb::GuidUtil::generateNonSecure overloads taking an unsigned char array has been removed and the generate method taking an unsigned char array has been deprecated – The equivalent methods taking a Guid array should be used instead.

FilesystemUtil changes

This release improves the bdls::FilesystemUtil utility, particularly for the bdls::FilesystemUtil::getLastModificationTime functions. File modification times are now retrieved to microsecond precision on all platforms (previously the aforementioned functions retrieved timestamps to millisecond precision on Windows and to second precision on Unix). However, microsecond timestamp precision is not guaranteed, as the accuracy and precision of any retrieved timestamps will be limited by the accuracy and precision of the underlying file system.

Fixed requests:

Summary

Improve quality of GUIDs from bdlb::GuidUtil::generateNonSecure()

bdls::FilesystemUtil::getLastModificationTime to return sub-second information

Please update BAL to check /opt/bbinfra/share/zoneinfo first

GCC11: several ‘bsl’ test drivers fail due to non-exception build.

GCC11: several ‘bdl’ test drivers fail due to non-exception build

Tests are not running on Windows

limitallocators should use rebind_traits not rebind_alloc

bsls_deprecatefeature.h add second usage example

Release BDE 3.102.0

Investigate windows test failures in bslim_bslstandardheadertest.t.cpp

On windows BSLS_DEPRECATE_FEATURE can fail to compile