Stakeholder meeting notes – 2017/05/11

by Paul Russo

Attendees: Tom Junk, Kyle Knoepfel, Rob Kutschke, Brian Rebel, Paul Russo

Recent issues

  • It was possible to accidentally put an Assns<B,A> product into an event when the produces named Assns<A,B>.  An error is now thrown.
  • It was not possible to do a SelectEvents using a filter result from the previous process.  This is supposed to work and has been fixed.

Preview of art 2.07

  • EventID comparator, function object to match EventIDs against a pattern
  • ServiceHandle<SomeService const> is now allowed (the const part is new)
  • DatabaseConnection added to allow thread-safe interactions with SQLlite databases
  • Improvements to TimeTracker reporting
  • PythonDictionary creation tool
  • cet::SimultaneousFunctionSpawner, for testing
  • CET_ASSERT_ONLY_ONE_THREAD – works just like assert(), aborts if another thread enters the marked code
  • MemoryTracker database schema evolution
  • registries and services are thread-safe
  • message logging is thread-safe
  • graceful shutdown of art on throw and Ctrl-C is working again

Breaking changes:

  • Module and service reconfiguration has been removed
  • Art provided services member functions that are intended only from private use are now private.
  • ServiceRegistry::instance() is now private.  Services can now only be accessed through a ServiceHandle.
  • The floating_point_control per-module configuration removed.
  • MemoryTracker database schema has changed.

    Feedback requested from experiments:

  • Module and service reconfiguration has been removed
  • Potential change in behavior of services during an exception throw, some destructors may now be called in a different order
  • art::DoNotRecordParents base class appears to not be used, data products that inherit from this base class have no parentage recorded.  We would like to remove this.

GCC 7.1 has been released, feature complete for C++17.  This is a heads-up that we will move to this compiler in the future.