BDE 3.80.0: Production Release

Schedule

  • The BDE team announces that the BDE 3.80.0 production release was completed on Monday, April 26, 2021.

BDE 3.80.0 Highlights

Enchancements: Extended implementation of comparison for string_views

The BDE 3.80.0 release extends implementation of comparison operators between string_views. The new implementation follows the Standard in allowing to compare string_views with objects of other types that are implicitly convertible to string_views.

Behavior changes

New comparison operators are implemented with function templates that supplant previously available non-template comparison operators, particularly those in a deprecated component bdeut_stringref. This change might affect comparisons between types that required implicit conversions to match the operator overload. With the updated implementation, such cases will require an explicit cast (e.g., to bsl::string_view) for compilation to succeed.

Changed Behavior: Ball File Rotation Reference Start Time

Starting with BDE release 3.80.0 ball file observers change the interpretation of the file rotation reference start time argument to rotateOnTimeInterval. For users who enable publication in UTC time, the log rotation reference start time is now interpreted as UTC time (as opposed to the current implementation where it is always interpreted as a local time). Users logging in UTC time and configuring a rotation reference start time will see the change in the actual log file rotation time. The users logging in local time are not affected by this change.

Consider following code snippet(see rotateOnTimeInterval documentation):

ball::FileObserver fileObserver;
...
fileObserver.disablePublishInLocalTime();
fileObserver.rotateOnTimeInterval(bdlt::DatetimeInterval(1), DateTime(1,1,1));

User expects log rotation to happen once a day at midnight. Previously, the reference start time was always interpreted as local time and for users logging in UTC effective time of the log rotation was offset from the midnight (by the local timezone offset). Current implementation will guarantee that logs will be rotated at midnight UTC time.

This change will provide expected behavior for users logging in UTC time in the presence of the winter/summer time changes, where previously they might encounter unexpected additional log files (see DRQS 165050888)

Fixed requests: 3.80.0

Summary

Make bdld::Datum::copyString exception-neutral.

Work around XLC16 bugs in bslstl_function.

ball::FileObserver2 creates new files unexpectedly when daylight savings is on.

bsl::string_view pre-C++17: improve comparison operators.