![]() |
The Gaudi Framework
v29r3 (fa547fc2)
|
!-----------------------------------------------------------------------------
! Package : GaudiProfiling
! Responsible : Chris Jones, Karol Kruzelecki
! Purpose : Profiling and performance monitoring of Gaudi/LHCb software
! Commit Id : $Format:%H$
!-----------------------------------------------------------------------------
================================ Gaudi v28r3 =================================
! 2017-05-19 - Sebastien Ponce (commit 16c558b1)
- Merge branch 'IntelProfiler' into 'master'
Introduced new Algorithm to help profiling Gaudi with Intel tools
See merge request !329
================================ Gaudi v28r2 =================================
================================ 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-11-08 - Marco Clemencic (commit ec96c27)
- cleaning up last minute glitches
- fixed warnings from clang
- fixed issues with ROOT 6.08
- minor polishing
- minor fixes to tests
- fixed GAUDI-1221
See merge request !230
! 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 - 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-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-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
! 2016-05-18 - Sami Kama (commit 9eeef96)
- allow build of Gaudi without LCG and fix ThreadPoolSvc
Allow building of Gaudi with local externals.
It also contains a fix to an issue introduced with merge request !160
(GAUDI-1212).
Fixes GAUDI-1211, GAUDI-1212.
See merge request !166
! 2016-03-22 - Marco Clemencic (commit d0ae829)
- updates to Doxygen documentation
- added release instructions
- updated Jemalloc instructions
- fixed issue with duplicated entries
- enable automatic Doxygen generation via GitLab-CI
See merge request !140
============================ GaudiProfiling v2r9 =============================
! 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
! 2016-02-08 - commit 9454bdf
- Gaudi service for Jemalloc profiling (JemallocProfileSvc)
Jemalloc profiler implemented as a GaudiService instead of an algorithm. This
allows profiling without modifying the algorithm sequence.
See merge request !93
See LBCORE-1012.
============================ GaudiProfiling v2r8 =============================
! 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
============================ GaudiProfiling v2r7 =============================
! 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
============================ GaudiProfiling v2r6 =============================
! 2015-06-19 - Ben Couturier
- Added Jemalloc profiling feature to gaudirun.py
! 2015-06-18 - Marco Clemencic
- Added test for GAUDI-1045 (segfault with LD_PRELOAD=libjemalloc.so).
! 2015-06-16 - Ben Couturier
- Added JemallocProfile algorithm to dump heap with Jemalloc at regular
intervals.
============================ GaudiProfiling v2r5 =============================
! 2015-05-12 - Marco Clemencic
- Modified GoogleAuditor.cpp to support new gperftools headers path.
============================ GaudiProfiling v2r4 =============================
! 2014-07-06 - Marco Clemencic
- Modified interlprofiler.md to use Doxygen flavour of markdown.
============================ GaudiProfiling v2r3 =============================
! 2014-11-11 - Chris Jones
- Fix implementation of Google profilers to properly support auditing during
different processing phases.
============================ GaudiProfiling v2r2 =============================
! 2014-08-27 - Ben Couturier
- LBCORE-587: CallgrindProfile algorithm to enable/disable Callgrind profile
============================ GaudiProfiling v2r1 =============================
! 2014-03-18 - Ben Couturier
- Fixed bug #104127: remove hwaf configuration.
============================ GaudiProfiling v2r0 =============================
! 2013-12-11 - Sebastien Binet
- Added hwaf configuration files.
! 2013-07-26 - Marco Clemencic
- Ported new GaudiPluginService to CMT.
! 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.
============================ GaudiProfiling v1r8 =============================
! 2013-03-05 - Hubert Degaudenzi
- Fixed compilation on Fedora Core 17 when VTune is missing.
============================ GaudiProfiling v1r7 =============================
! 2012-10-21 - Marco Clemencic
- Simplified the work-around for compilation with -std=c++0x.
============================ GaudiProfiling v1r6 =============================
! 2012-07-27 - Marco Clemencic
- Rationalized the permissions of files in the repository.
! 2012-07-26 - Benedikt Hegner
- Fixed compilation with -std=c++0x.
============================ GaudiProfiling v1r5 =============================
! 2012-06-08 - Marco Clemencic
- Added CMake configuration files.
! 2012-06-06 - Marco Clemencic
- Disable on MacOSX.
! 2012-05-03 - Marco Clemencic
- Fixed some "pedantic" warnings.
============================ GaudiProfiling v1r4 =============================
! 2012-03-13 - Marco Clemencic
- Modified to compile IntelProfiler only on x86_64 and if the VTune library is
available (from AFS).
- Minor clean up and hidden a warning in IntelProfiler.
! 2012-02-24 - Sasha Mazurov
- Patch #5209: add IntelProfiler component
(see doc/intelprofiler.md)
============================ GaudiProfiling v1r3 =============================
! 2012-02-25 - Chris Jones
- Fix a bug in the Google auditors that prevented consecutive events from
being audited.
! 2012-02-22 - Chris Jones
- Patch #4852: Auditors based on the Google Perf Tools
Note: Google auditors can be instantiated only if the libraries tcmalloc or
profiler are preloaded (e.g. with gaudirun.py --preload).
============================ GaudiProfiling v1r2 =============================
! 2011-10-12 - Hubert Degaudenzi
- added cstddef include for the size_t type definition which apparently has been
moved in Gcc 4.6.
============================ GaudiProfiling v1r1 =============================
! 2011-06-23 - Hubert Degaudenzi
- fixed warnings from the eclipse code analysis engine.
! 2011-05-05 - Marco Clemencic
- Disabled on i386, for 32 bits MacOSX.
============================== GaudiProfiling v1r0 ===========================
! 2011-01-19 - Marco Clemencic
- Fixed ICC warnings.
! 2011-01-16 - Karol Kruzelecki
- new package