BDE 3.16.0: Production Release¶
Schedule¶
The BDE team is pleased to announce that the BDE 3.16.0 production release was completed on Thursday, November 1, 2018
BDE 3.16.0 Highlights¶
Recategorization of Defensive Checks¶
Background¶
BDE is starting a campaign to recategorize many of the existing
BSLS_ASSERT_SAFE
defensive programming checks toBSLS_ASSERT
. Since many client builds enableBSLS_ASSERT
but disableBSLS_ASSERT_SAFE
the end result will be additional checks enabled in production code.The impetus for this change is that the guidelines for deciding on which assert macro to use have evolved, and now it is clear that only tests which will have very large performance impacts on a function should use
BSLS_ASSERT_SAFE
.To facilitate this migration, we will be using
BSLS_REVIEW
to safely migrate the level of assertions within the BDE codebase. The first stage of migration for each check will be to make it aBSLS_REVIEW
, which will begin to check the condition when enabled but will only log the failure instead of aborting.BSLS_REVIEW
was added in BDE Release 3.14.0, see the release notes for that version and the documentation of bsls_review for a more complete description of this feature.
What Does This Mean To You?¶
As checks migrate they will begin to log if they are being violated. If you see these log messages containing the phrase
BSLS_REVIEW failure
appearing onstderr
(standard error) then a BDE function is being called out of its checked contract. This indicates a bug in either the calling code or the check itself. Please investigate the problem and escalate to the BDE team if there seems to be an issue in the newly enabled check.After a check has been deployed (and not been violated) for a significant enough amount of time, we will be turning it into a
BSLS_ASSERT
. Notifications about this happening should be in future BDE Release notes.