Release Notes¶
These notes are intended to serve as a guide to the user-visible features in a particular art suite release. As such, only versions included in art suite releases, or those with substantive changes, are included.
cetlib 3.11.01 (2020/08/28)¶
- art suites: 3.06.03
- critic suites: 2.04.03, 2.05.00, 2.05.01, 2.05.02
- gallery suites: 1.15.02, 1.16.00, 1.16.01, 1.16.02
This version corrects an error related to interpreting a user-specified file-lookup policy (see issue #24659).
cetlib 3.11.00 (2020/07/08)¶
- art suites: 3.06.00, 3.06.01, 3.06.02
- critic suites: 2.04.00, 2.04.01, 2.04.02
- gallery suites: 1.15.00, 1.15.01
This version only supports SLF7. The e20
qualifier (GCC 9.3 with C++17 enabled) has been added.
cetlib 3.10.01 (2020/11/13)¶
This release includes the cet::map_vector::append
interface, which will add entries onto the end of the container.
cetlib 3.10.00 (2020/03/02)¶
- art suites: 3.05.00, 3.05.01
- critic suites: 2.03.00, 2.03.01, 2.03.02
- gallery suites: 1.14.02, 1.14.03
This release includes the cet::bold_fontify
utility (moved from art), which decorates a string with the necessary escape characters so that it can be rendered on the terminal in bold-face.
cetlib 3.09.00 (2019/11/12)¶
This release only supports the qualifiers e19
and c7
. In addition, the enable_if_type_exists_t
metaprogramming utility has been deprecated in favor of std::void_t
.
cetlib 3.08.00 (2019/06/21)¶
- art suites: 3.03.00, 3.03.01
- critic suites: 2.01.00, 2.01.02, 2.01.03, 2.01.04
- gallery suites: 1.13.00, 1.13.01
This version replaces the use of readdir_r
with readdir
in the cet::search_path
implementation (resolves issue #22594), anticipating changes required for Ubuntu LTS 18 and CentOS 8.
cetlib 3.07.02 (2019/03/05)¶
- art suites: 3.02.02, 3.02.03, 3.02.04, 3.02.05, 3.02.06
- critic suites: 2.00.02, 2.00.03, 2.00.04, 2.00.05, 2.00.06, 2.00.07, 2.00.09, 2.00.10
- gallery suites: 1.12.02, 1.12.03, 1.12.04, 1.12.06, 1.12.07
cetlib 3.07.01 (2019/02/07)¶
cetlib 3.07.00 (2019/01/30)¶
cetlib 3.05.01, 2019/01/29 (art suite 3.01.01, art suite 3.01.02)¶
cetlib 3.05.00, 2018/09/25 (art suite 3.01.00)¶
- C++17 only
cetlib 3.04.00, 2018/06/05 (art suite 3.00.00)¶
- Dependency on the hep_concurrency package has been added for handling thread-safety issues with the SQLite facilities.
- A
cet::getenv("VarName", std::nothrow)
function has been added, which returns an empty string if the environment variable does not exist. - Additional
cet::search_path
functions have been added that allow explicit specification regarding whether an environment variable or a path has been provided as anstd::string
argument to the function. - A
cet::exception_category_matcher
utility has been added that can be used within Catch unit tests.
cetlib 3.06.01, 2019/06/07 (art suite 2.13.00)¶
- C++17 only
cetlib 3.06.00, 2019/01/22 (art suite 2.12.00, art suite 2.12.01)¶
cetlib 3.03.01, 2018/05/04 (art suite 2.11.02, art suite 2.11.03, art suite 2.11.04, art suite 2.11.05)¶
cetlib 3.03.00, 2018/03/30 (art suite 2.11.00, art suite 2.11.01)¶
cet::zero_init<T>
, a facility for zero-initializing non-static, fundamental types, has been removed. This behavior is now provided by C++11’s uniform initialization syntax.- The
cet::map_vector<T>
functionality has changed substantially:cet::map_vector<T>
no longer adjusts the keys of any elements that are to be insertedcet::map_vector<T>::push_back
has been removed due to dangerous behavior, and also because it did not reflect a well-defined abstraction of the class. Thepush_back
function has been replaced withinsert
, which models the same semantics asstd::map<K, V>::insert
.- The
cet::map_vector<T>::insert
function that takes an iterator range has been changed to has been changed to match thestd::map<K, V>::insert(b, e)
behavior. - The
cet::map_vector<T>::operator[]
function is still usable.
- Exception-related headers that forwarded to
cetlib_except
no longer provide forwarding. Please make the following header-dependency changes:From To cetlib/coded_exception.h
cetlib_except/coded_exception.h
cetlib/exception.h
cetlib_except/exception.h
cetlib/exception_collector.h
cetlib_except/exception_collector.h
- This version supports GCC 7.3 with C++17 enabled.
cetlib 3.02.01, 2018/03/16 (art suite 2.10.04)¶
cetlib 3.02.00, 2018/01/22 (art suite 2.10.00, art suite 2.10.01, art suite 2.10.02, art suite 2.10.03)¶
- Replace
cet::sha1::digest_t
representation ofboost::array
withstd::array
. - Add
cet::filepath_first_absolute_or_lookup_with_dot
file-lookup policy (resolves issue #18513); this policy was moved from art. - Adjustments to support Clang 5.0.1.
cetlib 3.01.03, 2017/11/07 (art suite 2.09.02, art suite 2.09.03, art suite 2.09.04, art suite 2.09.05, art suite 2.09.06)¶
cetlib 3.01.02, 2017/10/17 (art suite 2.09.00, art suite 2.09.01)¶
cetlib 3.01.01, 2017/08/30 (art suite 2.08.03, art suite 2.08.04)¶
- Implement more robust white-space handling when comparing SQLite schemas (resolves issue #17376).
cetlib 3.01.00, 2017/08/01 (art suite 2.08.00, art suite 2.08.01, art suite 2.08.02)¶
- The utilities provided in
cetlib/detail/metaprogramming.h
have been moved tocetlib/metaprogramming.h
; the utilities provided therein have migrated from thecet::detail
namespace tocet
.
cetlib 3.00.01, 2017/05/23 (art suite 2.07.01, art suite 2.07.02, art suite 2.07.03)¶
cetlib 2.03.00, 2017/02/14 (art suite 2.06.03)¶
- Provide
cet::for_all_with_index
, which takes a functor object with whose call operator has the signaturevoid(std::size_t, T&)
orvoid(std::size_t, T const&)
.
cetlib 2.02.00, 2017/02/08 (art suite 2.06.01, art suite 2.06.02)¶
- Adjust method for determining if
std::cbegin(...)
andstd::cend(...)
are provided by the compiler. - See note in the above-linked
art
release notes regarding installed header file locations.
cetlib 2.01.00, 2017/02/07 (art suite 2.06.00)¶
- Exception handling facilities and demangling facilities moved to cetlib_except (resolves issue #14293)
- Direct linking to OpenSSL libraries removed for macOS builds (resolves issue #12938)
- Adjustments to some implementations to accommodate Clang compiler restrictions (resolves issues #13990 and #13991)
cet::ostream_handle
interface adjusted to be more user-friendly. See documentation at top of header: source:cetlib/ostream_handle.h.
cetlib 1.21.00, 2016/10/19 (art suite 2.05.00, art suite 2.05.01)¶
- The SQLite
Ntuple
facilities have been moved from art to cetlib. - Removed deprecated
cet::make_unique
utility--users should call thestd::make_unique
function template instead.
cetlib 1.20.00, 2016/09/14 (art suite 2.04.00, art suite 2.04.01)¶
- Change
cet::pow
templates intoconstexpr
functions. - New
cetlib/detail/metaprogramming.h
header migrated fromcanvas/Utilities/detail/
.
cetlib 1.19.01, 2016/08/08 (art suite 2.02.02, art suite 2.03.00)¶
- Change
CRC32Calculator
checksum type fromboost::uint32_t
tostd::uint32_t
.
cetlib 1.19.00, 2016/08/02 (art suite 2.02.00, art suite 2.02.01)¶
- Dependency on
polarssl
for checksum implementations has been replaced with native facilities (resolves bug #11648).
cetlib 1.18.02, 2016/06/07 (art suite 2.01.01, art suite 2.01.02)¶
cetlib 1.18.01, 2016/06/06 (art suite 2.01.00)¶
- Appropriately disable copy semantics for
cet::cpu_timer
.
cetlib 1.18.00, 2016/05/16 (art suite 2.00.01)¶
cetlib 1.17.02, 2016/01/27 (art suite 1.18.05)¶
- Remove inlining of
std::regex
calls (resolves issue #11485)
cetlib 1.17.01, 2015/12/03 (art suite 1.18.03, art suite 1.18.04)¶
- Corrects typographical error in diagnostic message.
- Deprecates
cet::make_unique
, which should be replaced bystd::make_unique
(completes implementation of issue #10098).
cetlib 1.16.00, 2015/10/21 (art suite 1.18.00, art suite 1.18.01, art suite 1.18.02)¶
- Remove use of
cpp0x
. - Implement issue #10098: Provide
cet::copy_if_all
andcet::transform_all
helpers corresponding to thestd::copy_if
andstd::transform
algorithms.
cetlib 1.15.04, 2016/01/26 (art suite 1.17.07)¶
- Remove inlining of
std::regex
calls (resolves issue #11485)
cetlib 1.15.03, 2015/10/21 (art suite 1.17.00, art suite 1.17.01, art suite 1.17.02, art suite 1.17.03, art suite 1.17.04, art suite 1.17.05, art suite 1.17.06)¶
cetlib 1.15.01, 2015/10/05 (art suite 1.16.02)¶
cetlib 1.15.00, 2015/09/29 (art suite 1.16.00, art suite 1.16.01)¶
cetlib 1.14.00, 2015/09/03.¶
- New
cet::no_delete
policy, to be used with guidance from theart
team.
cetlib 1.13.01, 2015/08/31.¶
- Correct
cet::ostream_handle
c'tor to acceptstd::ios_base::openmode
argument to be passed tostd::ofstream
.
cetlib 1.13.00, 2015/08/31.¶
- Fix for issue #9882: Under some circumstances, LibraryManager misbehaves and cannot find libraries.
- New
cet::ostream_handle
, which properly handles ownership for externalstd::ostream
objects (e.g.std::cout
) or for owned objects (e.g.std::ofstream
).
cetlib 1.12.02, 2015/06/30 (art suite 1.15.00, art suite 1.15.01, art suite 1.15.02)¶
- Fix for issue #9309: exception category history limited to two items.
- Fix for issue #8529: Cross-platform end-of-line format.
cetlib 1.12.01, 2015/05/05 (art suite 1.14.01, art suite 1.14.02, art suite 1.14.03)¶
- New feature: modular plugin skeleton generator, used for implementing issue #3776.
cetskelgen
is a drop-in replacement forartmod
, which is now deprecated. Functionality and configuration ofcetskelgen
should be practically identical to that ofartmod
for those skeletons the latter knew how to generate. Additionally however,cetskelgen
has extenensions that can generate skeletons for messagefacility destination (ELdestination
) plugins, and art services, including service interfaces and interface implementations (seecetskelgen -h
for further details). In contrast toartmod
,cetskelgen
is modular, allowing anyone to provide an extension to enable it to generate skeletons for other C++ plugins, such as those experiments might produce using the generic plugin interface provided by cetlib. This enables the skeleton generator for a particular plugin to be sited and maintained in the package which providees the plugin and therefore evolve as the plugin might evolve without version shear and incompatibility problems. For example,cetskelgen
extensions forart::Filter
and friends are housed in the art package, and the extension forartdaq::generator
in theartdaq-core
package of artdaq. Theartmod
script incetpkgsupport
may be considered deprecated and should not be used to generate skeletons for use with art suite versions >= 1.14.00. Documentation on the production of new skeleton generator extensions will be provided as a separate Wiki page.
cetlib 1.12.00, 2015/05/01 (art suite 1.14.00)¶
- Implement issue #6339: move duplicated MD5, CRC32, and CPU timing facilities from
art/Utilities
tocetlib
- Implement issue #6490: ensure range-for support for
cet::map_vector
- New function
cet::LibraryManager::getSpecsByPath()
to return the short and full specifications for a given plugin. Necessary for implementing issue #7889. - New function
cet::includer::src_whereis()
to show filename and line number (delimited by':'
) where FHiCL parameter was defined or overridden (c.f.cet::includer::whereis()
andcet::includer::highlighted_whereis()
). Necessary for implementing issue #7788. - New feature:
cetskel
(see description ofcetskelgen
above, to which it was renamed to resolve filesystem case sensitivity issueson OS X).
cetlib version:"1.11.00", 2015/04/10.¶
cetlib version:"1.10.00", 2015/04/03.¶
cetlib 1.09.00, 2015/02/13 (art suite 1.13.00, art suite 1.13.01, art suite 1.13.02)¶
- Support for e7 qualifier.
- Fix issue #7560 (
<CR><LF>
line termination causes problems) and related error not originally reported. - New function
cet::includer::highlighted_whereis()
to show selected position with respect to actual line of text (c.f.cet::includer::whereis()
).
cetlib 1.08.01, 2014/12/17.¶
- Fix issue #6624: working around module name collisions.
cetlib 1.08.00, 2014/11/06 (art suite 1.12.04, art suite 1.12.05)¶
- New functions in
canonical_string.h
:bool is_single_quoted_string(std::string const & str)
bool is_double_quoted_string(std::string const & str)
bool is_quoted_string(std::string const & str)
(true for either '' or "").std::string canonical_string(std::string const & str)
Returns the result; c.f.bool canonical_string(std::string const & str, std::string & result)
.
cetlib 1.07.03, 2014/09/15 (art suite 1.12.00, art suite 1.12.01, art suite 1.12.02, art suite 1.12.03)¶
- Bug #6951: Clang support for value_ptr_test_2.
cetlib 1.07.02, 2014/08/28 (art suite 1.11.02, art suite 1.11.03)¶
- Hide C++11 features of
registry_via_id
from GCCXML.
cetlib 1.07.01, 2014/08/25 (art suite 1.11.00, art suite 1.11.01)¶
cetlib 1.07.00, 2014/08/15.¶
- Minor improvements to
registry_via_id
. e6
, C++1y support, migrate tocetbuildtools
4.
cetlib 1.06.02, 2014/07/16 (art suite 1.10.00b)¶
cetlib 1.06.01, 2014/06/10 (art suite 1.10.00, art suite 1.10.00a)¶
- Fix to test for clang compilation error due to C++2011 standard violation not caught by GCC.
cetlib 1.06.00, 2014/05/23.¶
- Improvements to generic plugin interface.
cetlib 1.05.00, 2014/05/22.¶
- Import
LibraryManager
and associated utility classes and tests from art. - New, generic plugin mechanism.
- Remove vestigial code that was a holdover from the fork from CMSSW framework.
cetlib 1.04.05, 2014/07/18 (art suite 1.09.04)¶
- No default FHiCL file path, since no FHiCL files for installation.
cetlib 1.04.04, 2014/05/06 (art suite 1.09.03)¶
cetlib 1.04.03, 2014/03/21 (art suite 1.09.02)¶
cetlib 1.04.02, 2014/03/14 (art suite 1.09.00, art suite 1.09.01)¶
cetlib 1.04.01, 2014/03/11.¶
- Support for ICC 14.0.2.
cetlib 1.04.00, 2014/02/19.¶
- Support for GCC 4.8.2.
- New function
make_unique
to mirrorstd::make_shared
(std::make_unique
is coming for C++1y).
cetlib 1.03.25, 2013/10/15 (art suite 1.08.09, art suite 1.08.10)¶
cetlib 1.03.24 (art suite 1.08.06, art suite 1.08.07)¶
cetlib 1.03.23 (art suite 1.08.04, art suite 1.08.05)¶
cetlib 1.03.22 (art suite 1.08.03)¶
cetlib 1.03.21.¶
- Fix for issue #4509.
cetlib 1.03.20.¶
- Add facilities for getting shared library prefix and suffix in
cetlib/shlib_utils.h
.
cetlib 1.03.19 (art suite 1.08.01, art suite 1.08.02)¶
cetlib 1.03.18.¶
cetlib 1.03.17.¶
cetlib 1.03.16.¶
cetlib 1.03.15 (art suite 1.03.06, art suite 1.03.07, art suite 1.03.08, art suite 1.04.00, art suite 1.05.00, art suite 1.06.00, art suite 1.07.00, art suite 1.07.01)¶
cetlib 1.03.14 (art suite 1.02.01, art suite 1.02.02, art suite 1.02.03, art suite 1.02.04, art suite 1.02.05, art suite 1.02.06, art suite 1.02.07, art suite 1.03.00, art suite 1.03.01, art suite 1.03.02, art suite 1.03.03, art suite 1.03.04, art suite 1.03.05)¶
cetlib 1.03.13 (art suite 1.02.00)¶
- Add
cet::cbegin()
andcet::cend()
tocontainer_algorithms.h
.
- Arbitrary precision, arbitrary base conversion with
cet::base_converter
inbase_converter.h
.
- Add canonical form conversion for arbitrary binary and hex numbers to
cet::canonical_number()
.
cetlib 1.03.12 (art suite 1.01.00, art suite 1.01.01)¶
- Excise deprecated
std::auto_ptr
in favor ofstd::unique_ptr
.
cetlib 1.03.09.¶
- First C++2011-only release.
cetlib 1.03.08 (art suite 1.00.12)¶
cetlib 1.03.07 (art suite 1.00.10, art suite 1.00.11)¶
cetlib 1.03.06.¶
- Make
exception_collector
behave correctly under C++2011.
cetlib 1.03.03 (art suite 1.00.07, art suite 1.00.08)¶
- New
cet::simple_stats
component (per feature request #2298) that yields simple statistics from individually-presented data. - Safety and robustness improvements to
cet::value_ptr
. cet::map_vector
methodsfront()
andback
are nowconst
per feature request #2360.
cetlib 1.03.02.¶
- New
cet::make_exempt_ptr<>()
in the style ofstd::make_shared_ptr<>()
.
cetlib 1.03.01 (art suite 1.00.06)¶
cetlib 1.02.04 (art suite 1.00.04, art suite 1.00.05)¶
cetlib 1.02.03 (art suite 1.00.00, art suite 1.00.01, art suite 1.00.02)¶
cetlib 1.02.02.¶
- New
cet::ntos
andcet::ston
functions to convert numbers to/from strings, much likestd::to_string
,std::stol
, etc., but also accommodating typesunsigned int
,std::intmax_t
, andstd::uintmax_t
. map_vector
functionsfront
andback
now throw an exception when the container is empty (art
feature #1928).
cetlib 1.02.01 (art suite 0.07.16)¶
- Internally replaced several uses of
boost::lexical_cast
bystd::to_string
; headers adjusted accordingly.
cetlib 1.02.00.¶
- All destructors now marked
noexcept
. exempt_ptr<T>
now converts toT*
only by callingget
member.includer
now diagnoses recursive#include
requests, better diagnoses malformed#include
requests, and provides additional context in many diagnostics.map_vector
now relies on named function rather thanoperator <
.- New
name_of
functions to provide strings corresponding to selected native and library types. value_ptr
interface now more closely follows that ofstd::unique_ptr
.sha1
implementation updated topolarssl
v1.0.0.- Library now depends on
cpp0x
v1.02.00.
cetlib 1.01.00 (art suite 0.07.12, art suite 0.07.13, art suite 0.07.14, art suite 0.07.15)¶
demangle
now copes with multiple words via new functionsdemangle_symbol
anddemangle_message
; originaldemangle
now deprecated.
cetlib 1.00.03 (art suite 0.07.10, art suite 0.07.11)¶
sha1
implementation updated topolarssl
v0.95.pre5.
cetlib 1.00.00.¶
- Add
hypot
,checked_hypot
, andunchecked_hypot
functions. map_vector_key
now constructed fromunsigned long
.
cetlib 0.06.08 (art suite 0.07.06, art suite 0.07.07, art suite 0.07.08, art suite 0.07.09)¶
map_vector
: fix post-insertion keys.
cetlib 0.06.07.¶
- Fix namespace oversight.
cetlib 0.06.06 (art suite 0.07.03, art suite 0.07.04, art suite 0.07.05)¶
cetlib 0.06.05.¶
sum_of_squares
: add 3-argument overload.
cetlib 0.06.04.¶
- New
sum_of_squares
anddiff_of_squares
functions.
cetlib 0.06.03 (art suite 0.07.00, art suite 0.07.02)¶
- Rename
sqr
->square
for backwards compatibility. - New string-trimming functions
ltrim
, etc.
cetlib 0.06.02.¶
- New
map_vector
container. - New
md5
. - New
crc32
.
cetlib 0.06.00 (art suite 0.06.02, art suite 0.06.03)¶
- New
pow
function and friends.