Release Notes » History » Version 81
« Previous -
Version 81/99
(diff) -
Next » -
Current version
Kyle Knoepfel, 10/23/2019 01:40 PM
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.
canvas 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
Smart-query objects constructed with an art::ProductToken
now ensure C++ type consistency (resolves issue #20579).
canvas 3.07.04 (2019/05/29)¶
- art suites: 3.02.06
- critic suites: 2.00.06, 2.00.07, 2.00.09, 2.00.10
- gallery suites: 1.12.04, 1.12.06, 1.12.07
The setPtr
and getElementAddresses
customization points for art::Ptr
were unintentionally disabled for art 3. These have been restored with this version of canvas
(resolves issue #22643).
canvas 3.07.03 (2019/03/07)¶
- art suites: 3.02.03, 3.02.04, 3.02.05
- critic suites: 2.00.03, 2.00.04, 2.00.05
- gallery suites: 1.12.03
canvas 3.07.02 (2019/03/05)¶
canvas 3.07.01 (2019/02/07)¶
canvas 3.07.00 (2019/01/30)¶
canvas 3.05.01, 2019/01/29 (art suite 3.01.01, art suite 3.01.02)¶
canvas 3.05.00, 2018/09/25 (art suite 3.01.00)¶
- C++17 only
canvas 3.04.00, 2018/06/05 (art suite 3.00.00)¶
canvas 3.06.01, 2019/06/07 (art suite 2.13.00)¶
canvas 3.06.00, 2019/01/22 (art suite 2.12.00, art suite 2.12.01)¶
canvas 3.03.04, 2018/11/19 (art suite 2.11.05)¶
canvas 3.03.03, 2018/07/16 (art suite 2.11.03, art suite 2.11.04)¶
canvas 3.03.02, 2018/05/04 (art suite 2.11.02)¶
canvas 3.03.01, 2018/04/02 (art suite 2.11.01)¶
canvas 3.03.00, 2018/03/30 (art suite 2.11.00)¶
- This version supports GCC 7.3 with C++17 enabled.
- In past versions of canvas,
RangeSet
representations for a full run, and for a completely empty run have been the same under the assumption that it is not possible to create a completely empty run. Although this assumption is correct for all newly created products/runs in versions of art that support the concept of aRangeSet
, it is incorrect when reading files that do not haveRangeSet
information. To be able to disambiguate between empty range sets and full-run range sets, we have changed the representation of the full-runRangeSet
(resolves bug #18996). - During the dereferencing of an
art::Ptr<T>
, a check is made that theart::Ptr
index is valid. This happens during the first dereference of the product for a given event (or subrun/run). Subsequent dereferences incur no additional run-time overhead. (Resolves issue #18849.)
To support the above changes, two breaking changes were added:
art::Ptr<T>
s can now be made only to elements in collections that have aconst
-qualifiedsize()
member function. This extra restriction is unlikely to affect anyone.- For two identical
art::RangeSet
objectsrs1
andrs2
, callingart::overlapping_ranges(rs1, rs2)
now returnstrue
instead offalse
.
canvas 3.02.03, 2018/03/16 (art suite 2.10.04)¶
canvas 3.02.02, 2018/02/15 (art suite 2.10.02, art suite 2.10.03)¶
- Change the fluffing of the
wrappedName_
transient data member ofBranchDescription
to theBranchDescription
constructor (resolves bug #18925).
canvas 3.02.01, 2018/01/23 (art suite 2.10.01)¶
canvas 3.02.00, 2018/01/22 (art suite 2.10.00)¶
- Add
AssnsAlgorithms.h
, which provides means of groupingAssns
elements based on the "left" element values of anAssns<L,R(,D)>
object. - Support Clang 5.0.1; involves introducing a dependency on ROOT for
c2
builds. - Introduce dependency on the header-only
range
library. - Provide specialization for
std::hash<art::Ptr<T>>
(resolves issue #18655).
canvas 3.01.03, 2017/12/06 (art suite 2.09.03, art suite 2.09.04, art suite 2.09.05, art suite 2.09.06)
canvas 1.05.02, 2017/12/04 (art suite 2.05.01)¶
- Fix empty
RangeSet
handling
canvas 3.01.01, 2017/11/07 (art suite 2.09.02)¶
canvas 3.01.00, 2017/10/17 (art suite 2.09.00, art suite 2.09.01).¶
canvas 3.00.03, 2017/10/20 (art suite 2.08.04).¶
- Fix schema evolution rules implemented in
ProductIDStreamer
(resolves bug #17898).
canvas 3.00.02, 2017/08/30 (art suite 2.08.03).¶
- Fix stale reference error in
IPRHelper
, introduced by usingart::detail::input_tag
(resolves bug #17609).
canvas 3.00.01, 2017/08/04 (art suite 2.08.02).¶
- Upgrade to ROOT 6.10.04d.
canvas 3.00.00, 2017/08/01 (art suite 2.08.00, art suite 2.08.01).¶
art::BranchID
is no longer used in art, except for ensuring backwards compatibility.art::ProductID
schema has changed--we guarantee the ability to read files with the older schema.art::PassID
has been removed--this affects the schema of theProcessConfiguration
class.- Please make the following substitutions where necessary:
- art::BranchDescription::branchID() + art::BranchDescription::productID()
- The
art::Parentage
schema has changed fromstd::vector<art::BranchID>
tostd::vector<art::ProductID>
. - The
TestHelper
facility has been removed--not used by anyone. - The
BranchDescription::MatchMode
enumeration has been removed.
canvas 2.00.02, 2017/05/26 (art suite 2.07.03).¶
canvas 2.00.01, 2017/05/25 (art suite 2.07.01, art suite 2.07.02).¶
- Added the
art::EventIDMatcher
class, which allows for selection ofEventID
s based on a set of patterns. - Added a forward iterator to the
art::Assns<A,B,D>
class template to allow iteration over the collection. art::thread_safe_registry_via_id
container added to support concurrent insertion of elements.- Improved exception message in the case of a failure to merge
RangeSet
. - Significant compile-time improvements to
art::Timestamp
. - C++ changes to accommodate compilation with Clang.
- Breaking changes:
- Removed
art::BranchType
fromart::TypeLabel
class to avoid duplication downstream. - Removed
art::DoNotRecordParents
base class.
- Removed
canvas 1.06.04, 2017/03/22 (art suite 2.06.03).¶
canvas 1.06.03, 2017/02/27 (art suite 2.06.02).¶
- Depends on patched version of ROOT that supports
gPad->WaitForPrimitive
(resolves issue #15665).
canvas 1.06.02, 2017/02/08 (art suite 2.06.01).¶
canvas 1.06.01, 2017/02/07 (art suite 2.06.00).¶
- Merge libraries into one
canvas
library (resolves issue #12995). - Replace ambiguous error code with two more descriptive codes (resolves issue #14664).
- Further develop
art::Level
enumeration infrastructure to support non-state-machineart
(related to issue #15398). - Enhance
art::Assns
functionality (issues #10539). - Improve consistency of
art::Ptr
handling (resolves issue #14763). - Allow for
const
qualification of the `size()` member function during type introspection, whichart::Wrapper
relies on forAssns
products (resolves issue #14378).
canvas 1.05.01, 2016/10/19 (art suite 2.05.00).¶
- Minor bug fixes.
canvas 1.05.00, 2016/09/14 (art suite 2.04.00, art suite 2.04.01).¶
- Substantially improve
RangeSet
merging efficiency (resolves issue #13765). - Move
canvas/Utilities/detail/metaprogramming.h
tocetlib/detail/metaprogramming.h
. - Update to CLHEP 2.3.3.2 and ROOT 6.06.08.
canvas 1.04.06, 2016/08/17 (art suite 2.03.00).¶
- Remove link-time dependency of
aggregate.h
onTH1
.
canvas 1.04.05, 2016/08/08 (art suite 2.02.02).¶
- Remove dependency on
rapidjson
, which is not used incanvas
(resolves issue #12990). - Fix exception message whenever a dictionary is not found (resolves issue #13459).
canvas 1.04.04, 2016/08/02 (art suite 2.02.01).¶
- Upgrade to ROOT 6.06.04b, which includes fixes to some memory leaks.
canvas 1.04.03, 2016/08/02 (art suite 2.02.00).¶
- Remove explicit template instantiations in
classes.h
files.
canvas 1.04.02, 2016/06/08 (art suite 2.01.02).¶
- Fix comparison of unsigned and signed integers in aggregation test suite.
canvas 1.04.01, 2016/06/07 (art suite 2.01.01).¶
canvas 1.04.00, 2016/06/06 (art suite 2.01.00).¶
art::Wrapper<T>
includes an additional datum calledrangeSetID
that corresponds to therowid
of the appropriate SQLite range-set table.- Product aggregation supported for
art::Wrapper<T>
.