| The Gaudi Framework v32r1 (f65d50dc)

GaudiCommonSvc

    ################################################################################
    # Package: GaudiCommonSvc
    # Maintainer: Marco Clemencic
    # Description: standard and commonly used components
    # Commit Id: $Format:%H$
    ################################################################################

    ================================ Gaudi v28r3 =================================

    ================================ Gaudi v28r2 =================================

    ! 2017-03-17 - Roel Aaij (commit 0b0a2d2)

     - Refactor HistogramSvc to allow it to be a base class.

       See merge request !299

    ================================ Gaudi v28r1 =================================

    ! 2016-12-14 - Attila Krasznahorkay (commit a42ff2a)

     - CMake configuration changes to build Gaudi with optional externals missing

       In the last days I experimented a bit with teaching Gaudi how to build when
       only ROOT, Boost and TBB are available to it. This is the result. As far as I
       can tell the code builds in the same way as the current master branch when
       all possible externals are available. (All the ones available in a full ATLAS
       offline build at least.) And I'm also able to build the project in these
       modes:
         * On Ubuntu 16.04 with the system provided Boost and TBB versions, against
       a privately built ROOT 6 version.
         * On macOS Sierra against privately built Boost, ROOT and TBB versions.
       Both when building the project completely on its own, and when building it
       against an ATLAS externals project.
        Some notes:
         * The code uses C++14 expressions in quite a few places by now. So I raised
       the default C++ standard to C++14. This is the default in ATLAS builds since
       a while, I only saw this as an issue when building Gaudi "on its own" with a
       very minimal configuration command.
         * While the code advertises that it still has support for ROOT 5, it's not
       able to build against it since a wile. Since the updates I put in for TLS
       variables on macOS. (The macros used there are ROOT 6 only.) And this update
       makes things even worse. As the code now relies on not providing the
       definition of some classes to the dictionary generator in GaudiPython that
       are not available. (Because AIDA or XercesC is missing.) While ROOT 6 handles
       this with just a build warning, ROOT 5's genreflex treats this with an ERROR
       message. That I was unable to get rid of.
        So, extended testing is clearly necessary, the configuration code could
       definitely be fine tuned as I probably turned off the build of more source
       files than absolutely necessary, but I think we should move ahead with such a
       configuration organisation.
        See merge request !241

    ================================ Gaudi v28r0 =================================

    ! 2016-10-27 - Gerhard Raven, Marco Clemencic (commit b111898)

     - modernization of Property

       This is a major rewrite of the system of `Property` classes. Started as  the
       implementation of GAUDI-1214, it continued as a review of
       `IProperty` and `PropertyMgr`, to end up in a complete rewrite
       (and optimization) of `PropertyWithValue`.

       * Fixes GAUDI-1214
        - added missing `declareProperty` signature
        - added `PropertyHolder` (an updated `PropertyMgr`)
        - adapted all properties in Gaudi
       * improved use of `PropertyHolder`
        - use inheritance instead of composition
        - removed ~200 (duplicated) lines of code in GaudiKernel
       * optimization of Property (fixes GAUDI-1229)
        - use templates and automatic code generation to handle efficiently
          both value and reference properties
          - avoid creation of values on the heap (see GAUDI-1229)
          - removed the *owned* boolean flag
          - improved usability of properties (e.g. begin/end wrappers for
            C++11 loops, increment/decrement operators...)
          - deprecated use of C arrays as properties
        - merged features of `PropertyWithVerifier`, `SimpleProperty` and
          `SimplePropertyRef` into `PropertyWithValue`
        - deduplication of name and doc strings via

       [`boost::string_ref`](http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html)

          and a static storage  (see GAUDI-1229)
       * Fixes GAUDI-1205
       * add deprecation warnings in service accessors of `Algorithm` (@graven)
       * renamed `Property` base class to `Gaudi::Details::PropertyBase` and
       `PropertyWithValue` to `Gaudi::Property`
        - added backward compatibility type aliases (but not compatible with
          forward declarations of `class Property`, which should be replaced
          by `#include "GaudiKernel/PropertyFwd.h"`)
       * added macro `GAUDI_PROPERTY_v2` to allow easy implementation of
        backward compatible changes in derived projects (e.g. when user code
        relied on `DoubleProperty` having a verifier)
       * Fixes GAUDI-1268
        The changes are as backward compatible as much as possible (except if you
       explicitly inherit from `SimpleProperty`, or you forward declared
       `class Property`, which now are typedefs), but must be validated in the
       experiment frameworks.
        See merge request !182

    ! 2016-10-24 - Attila Krasznahorkay (commit ac4dbc7)

     - Changes to build on MacOS X 10.11

       See merge request !200

    ! 2016-10-24 - Marco Clemencic (commit a8d6605)

     - hidden/fixed "missing override" warnings exposed after !192

       - warnings from external headers are hidden declaring the include directories
       as `-system`
       - warnings from a couple of new files have been fixed
       - warnings in `HistogramSvc` are hidden because unavoidable (see f83c3d8e)
       - warnings related to CLHEP-136 have been hidden with a special trick (see
       0a238135)
        See merge request !205

    ! 2016-10-19 - Marco Clemencic (commit e2c1f4a)

     - fixes and improvements for ROOT 6.08 and gcc 6.1

       * added option to use or not GCC old C++11 ABI (off by default)
       * added some missing #include for the usual headers clean up in gcc
       * fixed a few places where old GCC behaviour was assumed
       * fixed default C++ standard version for clang >= 3.7
       * fixed GAUDI-1242

        See merge request !187

    ! 2016-10-12 - Marco Clemencic (commit b5e05a1)

     - improved handling of package version in CMake configuration

       use project version if a package version is not provided
        See GAUDI-1215.
        See merge request !175

    ! 2016-10-01 - Marco Clemencic (commit 99b1001)

     - enable missing override warnings (gcc >= 5.1)

       Fixes GAUDI-1241
        See merge request !192

    ! 2016-08-31 - Marco Clemencic (commit dc32190)

     - ignore unchecked StatusCodes coming from libCore.so

       Fixes GAUDI-1236
        See merge request !188

    ! 2016-08-19 - Marco Clemencic (commit f3050c3)

     - Fix compile time warnings

       fixed/hidden all warnings in GCC builds
        See merge request !189

    ! 2016-07-25 - Marco Clemencic (commit e3d4b07)

     - remove CMT configuration and related files

       * removed CMT configuration files
       * adapted scripts not to use CMT
        Fixes GAUDI-1216 Fixes GAUDI-979
        See merge request !186

    ============================ GaudiCommonSvc v4r1 =============================

    ! 2016-03-10 - commit 4a18175

     - removed uses of templates implements[1-4], extends[1-4] and
       extend_interfaces[1-4]

       Since merge request !22 they are unnecessary.
        See merge request !133

    ! 2016-02-11 - commit b0618f7

     - Improve CommonMessaging

       Implementation of GAUDI-1146: Improve CommonMessaging and use it in more
       places.

       See merge request !76

       Conflicts:
       GaudiExamples/tests/qmtest/refs/AlgTools2.ref
       GaudiExamples/tests/qmtest/refs/MultiInput/Read.ref
       GaudiExamples/tests/qmtest/refs/conditional_output/write.ref
       GaudiKernel/GaudiKernel/AlgTool.h
       GaudiKernel/GaudiKernel/Algorithm.h
       GaudiKernel/GaudiKernel/Service.h
       GaudiKernel/src/Lib/AlgTool.cpp
       GaudiKernel/src/Lib/Algorithm.cpp

    ============================ GaudiCommonSvc v4r0 =============================

    ! 2016-01-12 - commit 4dbdc8e

     - fixed clang 3.7 compilation warnings

       Fixes GAUDI-1083.
     See merge request !89

    ! 2016-01-07 - commit fabc739

     - fixed compilation with clang 3.7 (after hive merge)

       * fixed compilation problems related to `operator<<` (gcc is more
        permissive than clang).
       * fixed also some clang warnings.
        Fixes GAUDI-1157.
        See merge request !84

    ! 2015-11-02 - commit 57f356c

     - Merge branch 'hive' into 'master'

       Fixes GAUDI-978.

       See merge request !65

    ! 2015-10-26 - commit de80db5

     - More modernization changes

       Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
       modernize the code.

       Fixes GAUDI-1118.

       See merge request !49

    ============================ GaudiCommonSvc v3r6 =============================

    ! 2015-10-08 - commit c50c176

     - improvements to documentation and release tools

       See merge request !43

    ! 2015-09-25 - commit 35dd00c

     - Merge branch 'dev-smartif-use' into 'master'

       Provide (and use) C++11 smart pointer 'look and feel' for SmartIF

       The aim of this branch is to confine, for everything that inherits from
       IInterface, the calls to addRef(), release() and queryInterface() to the
       SmartIF implementation. Exceptions are a few places where interfaces
       (currently) return bare pointers (instead of SmartIF...) and where one thus
       has to addRef() explicitly to avoid returning a dangling pointer. This can be
       avoided by changing the relevant interface to return a SmartIF instead of a
       bare pointer.

       In addition, make SmartIF 'look and feel' like a smart pointer.

       - use explict bool conversion instead of .isValid()
       - add SmartIF::as<IFace>(), to return a SmartIF<IFace> to an alternate
          interface -- which (together with move) encourages the use of auto
       - add ISvcLocator::as<IFace>(), to return a SmartIF<IFace> to the current
       ISvcLocator.
       - add ServiceManager::service<IFace>() which return SmartIF<IFace> which
       encourages
          the use of auto

       And add a few other C++11 modernizations (eg. prefer STL over raw loop)

       Fixes GAUDI-1094

       See merge request !24

    ! 2015-09-11 - commit c062cbe

     - C++11 modernization changes

       Some trivial - and some not so trivial! - changes which take advantage of
       C++11...

       See merge request !7

    ! 2014-07-18 - Illya Shapoval
     - Catching-up with the previous fix: algorithms list is a thread_specific_ptr.

    ! 2014-07-18 - Marco Clemencic
     - Fixed segmentation fault in genconf step in LHCb.

    ============================ GaudiCommonSvc v3r5 =============================
    ! 2015-05-21 - Marco Clemencic
     - Fixed compilation with CMT.

    ! 2015-05-18 - Marco Clemencic
     - Fixed GAUDI-1036: Unchecked StatusCodes

    ! 2015-03-14 - Marco Clemencic
     - GAUDI-1024: Replaced GaudiKernel/Tokenizer with the new AttribStringParser.

    ! 2015-03-04 - Marco Clemencic
     - Fixed GAUDI-1014: Unchecked StatusCode with gcc 4.9
       A spurious unchecked StatusCode seems to come from libCling.so.

    ============================ GaudiCommonSvc v3r4 =============================
    ! 2015-01-07 - Marco Clemencic
     - Added _PyObject_GC_Malloc to the whitelist of StatusCodeSvc (visible only
       with gcc4.9).

    ============================ GaudiCommonSvc v3r3 =============================
    ! 2015-01-07 - Marco Clemencic
     - Modified StatusCodeSvc to report that there is no "unchecked" StatusCode, to
       simplify the testing (DEBUG).

    ============================ GaudiCommonSvc v3r2 =============================
    ! 2014-07-02 - Marco Clemencic
     - Fixed logic of OutputStream::decodeAlgorithms.

    ! 2014-07-01 - Chris Jones
     - GAUDI-974: Add a new property to OutputStream, 'AlgDependentItemList' that
       allows for data locations to be conditionally added, only if a given
       algorithm fired in a given event. Structure of the new option is

           std::map< std::string, std::vector<std::string> >

       where the first item is the algorithm name, and the second the list of
       data locations to include in the output stream, when that algorithm fired.

    ============================ GaudiCommonSvc v3r1 =============================
    ! 2014-03-18 - Ben Couturier
     - Fixed bug #104127: remove hwaf configuration.

    ============================ GaudiCommonSvc v3r0 =============================
    ! 2013-12-11 - Sebastien Binet
     - Added hwaf configuration files.

    ! 2013-07-19 - Marco Clemencic
     - Clean up in the use of the new PluginService.

    ! 2013-07-18 - Marco Clemencic
     - Removed use of obsolete AlgFactory.h, SvcFactory.h, ToolFactory.h,
       AudFactory.h and CnvFactory.h.

    ! 2013-07-17 - Marco Clemencic
     - Use the new ROOT-free Plugin Service.

    ! 2013-07-17 - Marco Clemencic
     - Removed factories forward declarations.

    ! 2013-07-03 - Marco Clemencic
     - Clean up in the cmt/requirements.
     - Replaced references to ROOT::Reflex::PluginService with Gaudi::PluginService.

    ============================ GaudiCommonSvc v2r2 =============================
    ! 2013-11-28 - Marco Clemencic
     - Fixes to ChronoStatSvc new feature.

    ============================ GaudiCommonSvc-02-01-02 =========================

    ! 2013-11-27 - Charles Leggett
     - ChronoStatSvc: make compatible on gcc46

    M       src/ChronoStatSvc.cpp

    ============================ GaudiCommonSvc-02-01-01 =========================

    ! 2013-11-27 - Charles Leggett
     - ChronoStatSvc: add output for per-event timing of execute(). controlled by
       jobOpt "PerEventFile". default is empty string (do nothing).

    M       src/ChronoStatSvc.cpp
    M       src/ChronoStatSvc.h

    ============================ GaudiCommonSvc v2r1 =============================
    ============================ GaudiCommonSvc-02-00-00 =========================
    ! 2013-08-30 - Charles Leggett
     - retag for Atlas merge

    ============================ GaudiCommonSvc v1r6 =============================
    ! 2013-07-08 - Chris Jones
     - Patch #5649 :Improvements to exception handling debug information in
                    OutputStream

    ============================ GaudiCommonSvc v1r5 =============================
    ! 2013-04-16 - Marco Clemencic
     - Fixed Clang warnings.

    ============================ GaudiCommonSvc v1r4 =============================
    ! 2012-11-14 - Marco Clemencic
     - Updated CMakeLists.txt.

    ============================ GaudiCommonSvc v1r3 =============================
    ! 2012-07-27 - Marco Clemencic
     - Rationalized the permissions of files in the repository.

    ============================ GaudiCommonSvc v1r2 =============================
    ! 2012-06-08 - Marco Clemencic
     - Added CMake configuration files.

    ! 2012-06-07 - Marco Clemencic
     - Fixed Clang warnings.

    ! 2012-05-29 - Marco Cattaneo
     - Patch #5390: fix unprotected VERBOSE and DEBUG messages
       Add missing protection to VERBOSE and DEBUG messages in OutputStream.cpp and
       RecordStream.cpp

    ! 2012-04-19 - Marco Clemencic
     - Added new signatures to HistogramSvc::Helper::act to absorb the change in the
       return type of TH1::Add, TH1::Divide and TH1::Multiply.
       See http://root.cern.ch/viewvc/trunk/hist/hist/inc/TH1D.h?r1=43732&r2=43802

    ============================ GaudiCommonSvc v1r1 =============================
    ! 2012-02-14 - Chris Jones
     - Add a "TESVetoList" property to InputCopyStream, to allow certain locations
       in the TES to be excluded from being copied to the OutputStream.
       Default is empty.
       (see task #25591)

    ! 2012-01-26 - Marco Clemencic
     - Added protection to debug messages (reported by Marco Cattaneo).

    ============================ GaudiCommonSvc v1r0 =============================
    ! 2012-01-20 - Marco Clemencic
     - Moved ToolSvc to GaudiCoreSvc because it's used by some other core services.

    ! 2011-12-06 - Marco Clemencic
     - Moved AlgContextSvc from GaudiMonitor to GaudiCommonSvc.
     - Removed unnecessary grouping in src directory.

    ! 2011-11-01 - Marco Clemencic
     - Moved core services out of GaudiSvc and into the new packages GaudiCoreSvc
       and GaudiCommonSvc. (patch #1816)