BDE 3.48.1: Production Release¶
Schedule¶
BDE team is pleased to announce that the BDE 3.48.1 production release was completed on Monday, February 3, 2020.
BDE 3.48.1 Highlights¶
balcl_commandline
: Open-Source Command-Line Parsing¶
The new component,
balcl_commandline
, is an open-source version ofbaea_commandline
, a component widely used at Bloomberg to parse command-line arguments.The major difference is that the new code has no dependency on
bdem
. In lieu ofbdem
, several new classes are introduced:balcl::OptionType
,balcl::OptionValue
, andbalcl::CommandLineOptionsHandle
.As part of this refactoring, the (very large)
baea_commandline
component is replaced by eight new components having their own package group,balcl
. The oldbaea_commandline
component is DEPRECATED.
Conversion¶
The syntax and semantics of
baea_commandline
are almost entirely preserved, making conversion a largely mechanical process. Known differences are detailed below.Obviously, the new classes are in a new package, and follow the modern two-level-namespace naming convention. For example:
BAEA: BloombergLP::baea_CommandLine ^^^^^ BALCL: BloombergLP::balcl::CommandLine ^^^^^^^Supported option types no longer include
short
andfloat
. Useint
anddouble
instead.Command-line arguments for data, time, and datetime values now use the ISO 8601 format, not the
bdepu
format. Notably, the fields of date values are separated by dashes (-
), not slashes (/
) and, in the datetime values, the separator between date and time fields is aT
, not an underscore (_
). For example:BAEA: 2018/07/22_04:06:08 | | | BALCL: 2018-07-22T04:06:08Users of the
bdem_ConstRowBinding
objects returned by thedata
andspecifiedData
methods ofbaea_CommandLine
must now accept abalcl::CommandLineOptionHandle
object instead. (Users must also call those methods by their new names – see below.)Several classes and methods have been renamed:
BAEA
BALCL
baea_CommandLine::isInvalid
balcl::CommandLine::isValid
baea_CommandLine::data
balcl::CommandLine::options
baea_CommandLine::specifiedData
balcl::CommandLine::specifiedOptions
baea_CommandLine_Constraint
balcl::TypeInfoConstraint
baea_CommandLineTypeInfo::resetLinkedVariable
balcl::TypeInfo::resetLinkedVariableAndConstraint
baea_CommandLineTypeInfo::checkConstraint
balcl::TypeInfoUtil::satisifiesConstraint
,balcl::TypeInfoUtil::parseAndValidate
(new method)Note that the semantics of
resetLinkedVariable
have not changed, just its name. That method has always reset linked variables and constraints.
Change to scientific output format for bdldfp::Decimal
¶
This release updates the streaming behavior for
bdldfp::Decimal
types when scientific formatting is used (e.g.,operator<<
in conjunction with<< bsl::scientific
) to output two digits for the exponent. This change matches the output rendering fordouble
andfloat
(and the behavior ofprintf
). Currently, a single digit is output if the exponent fits in one digit.
Before
After
3.0
3.00
The behavior for the default “Natural” output (where neither fixed nor scientific formatting is specified) is unchanged, and will continue to use a single digit where possible (as the decimal foundational document describes). So this change should not impact most users, but might cause issues if people have tests that expect the previous output form.
Fixed requests: 3.48.1¶
Summary |
---|
Decimal(64) does not obey bsl::showpoint |
Create an open-source version of the baea_CommandLine |
bdlcc_objectcatalog: add move semantics |
Support for INT_MAP in Datum |
bdldfp::DecimalNumPut: Missing Ctor |
Remove balb_assertiontracker* |
bsls::ProtocolTest: Error With bsls::ObjectBuffer<AbstractType> |
bcem_Aggregate: clang-tidy (part of RSAT) complains of null dereference |
bdlcc::BoundedQueue race condition |
bslim_testutil gcc 9 failure on Linux |
gcc c++03 null pointer literal test failure |
BDE headers using symbols in #ifndef without #include’s |
DRQS 153876375 P1: Please add behavioral tests to BER codec before refactor |
Fix bslim_bslstandardheaderstest.t.cpp case 7 for MSVC |
Add test cases for ‘typedef struct {‘ traits issue on AIX. |
Prepare to alias bsl::string_view to std::string_view on C++17+ platforms |
Release BDE 3.48.1 |
please investigate and correct MQTP case 12 intermittent failure |
‘balcl_commandline.t.cpp’: platform-dependent failure in TC3. |
please correct formatting error in balxml_typesprintutil.t.cpp CASE 7 |
test driver failure in nightly build for hslc_testparsetreegenerator |
bdldfp_decimalimputil.cpp assert fails output large values in scientific mode |
a_iconv ASSERT causing service crash |