Project

General

Profile

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.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)

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)

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 an std::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 inserted
    • cet::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. The push_back function has been replaced with insert, which models the same semantics as std::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 the std::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 of boost::array with std::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 to cetlib/metaprogramming.h; the utilities provided therein have migrated from the cet::detail namespace to cet.

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 signature void(std::size_t, T&) or void(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(...) and std::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 the std::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 into constexpr functions.
  • New cetlib/detail/metaprogramming.h header migrated from canvas/Utilities/detail/.

cetlib 1.19.01, 2016/08/08 (art suite 2.02.02, art suite 2.03.00)

  • Change CRC32Calculator checksum type from boost::uint32_t to std::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 by std::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 and cet::transform_all helpers corresponding to the std::copy_if and std::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 the art team.

cetlib 1.13.01, 2015/08/31.

  • Correct cet::ostream_handle c'tor to accept std::ios_base::openmode argument to be passed to std::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 external std::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 for artmod, which is now deprecated. Functionality and configuration of cetskelgen should be practically identical to that of artmod 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 (see cetskelgen -h for further details). In contrast to artmod, 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 for art::Filter and friends are housed in the art package, and the extension for artdaq::generator in the artdaq-core package of artdaq. The artmod script in cetpkgsupport 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 to cetlib
  • 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() and cet::includer::highlighted_whereis()). Necessary for implementing issue #7788.
  • New feature: cetskel (see description of cetskelgen 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 to cetbuildtools 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 mirror std::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.

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() and cet::cend() to container_algorithms.h.
  • Arbitrary precision, arbitrary base conversion with cet::base_converter in base_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 of std::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 methods front() and back are now const per feature request #2360.

cetlib 1.03.02.

  • New cet::make_exempt_ptr<>() in the style of std::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 and cet::ston functions to convert numbers to/from strings, much like std::to_string, std::stol, etc., but also accommodating types unsigned int, std::intmax_t, and std::uintmax_t.
  • map_vector functions front and back 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 by std::to_string; headers adjusted accordingly.

cetlib 1.02.00.

  • All destructors now marked noexcept.
  • exempt_ptr<T> now converts to T* only by calling get 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 than operator <.
  • New name_of functions to provide strings corresponding to selected native and library types.
  • value_ptr interface now more closely follows that of std::unique_ptr.
  • sha1 implementation updated to polarssl 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 functions demangle_symbol and demangle_message; original demangle now deprecated.

cetlib 1.00.03 (art suite 0.07.10, art suite 0.07.11)

  • sha1 implementation updated to polarssl v0.95.pre5.

cetlib 1.00.00.

  • Add hypot, checked_hypot, and unchecked_hypot functions.
  • map_vector_key now constructed from unsigned 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 and diff_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.

cetlib 0.05.05 (art suite 0.06.00, art suite 0.06.01)