Warning, /DD4hep/GaudiPluginService/doc/release.notes is written in an unsupported language. File is not indexed.
0001 !-----------------------------------------------------------------------------
0002 ! Package : GaudiPluginService
0003 ! Responsible : Marco Clemencic
0004 ! Purpose : Provide a generic plugin service.
0005 ! Commit Id : f65d50dc9934d137aa95036285677d9fa8576b7d
0006 !-----------------------------------------------------------------------------
0007
0008 ================================ Gaudi v28r3 =================================
0009
0010
0011 ================================ Gaudi v28r2 =================================
0012
0013
0014 ================================ Gaudi v28r1 =================================
0015
0016
0017 ================================ Gaudi v28r0 =================================
0018
0019 ! 2016-10-19 - Marco Clemencic (commit e2c1f4a)
0020
0021 - fixes and improvements for ROOT 6.08 and gcc 6.1
0022
0023 * added option to use or not GCC old C++11 ABI (off by default)
0024 * added some missing #include for the usual headers clean up in gcc
0025 * fixed a few places where old GCC behaviour was assumed
0026 * fixed default C++ standard version for clang >= 3.7
0027 * fixed GAUDI-1242
0028
0029 See merge request !187
0030
0031 ! 2016-10-12 - Marco Clemencic (commit b5e05a1)
0032
0033 - improved handling of package version in CMake configuration
0034
0035 use project version if a package version is not provided
0036 See GAUDI-1215.
0037 See merge request !175
0038
0039 ! 2016-10-01 - Marco Clemencic (commit 99b1001)
0040
0041 - enable missing override warnings (gcc >= 5.1)
0042
0043 Fixes GAUDI-1241
0044 See merge request !192
0045
0046 ! 2016-08-19 - Marco Clemencic (commit f3050c3)
0047
0048 - Fix compile time warnings
0049
0050 fixed/hidden all warnings in GCC builds
0051 See merge request !189
0052
0053 ! 2016-07-25 - Marco Clemencic (commit e3d4b07)
0054
0055 - remove CMT configuration and related files
0056
0057 * removed CMT configuration files
0058 * adapted scripts not to use CMT
0059 Fixes GAUDI-1216 Fixes GAUDI-979
0060 See merge request !186
0061
0062 ! 2016-05-18 - Charles Leggett (commit 3f2b55e)
0063
0064 - Report underlying error when dlopen fails in listcomponents
0065
0066 When dlopen files in listcomponents.exe, listcomponents prints only that the
0067 library didn't load, but doesn't include information on the underlying
0068 error. This change adds the result of dlerror to the error message.
0069 See merge request !159
0070
0071 ========================== GaudiPluginService v3r1 ===========================
0072
0073 ! 2015-10-26 - commit de80db5
0074
0075 - More modernization changes
0076
0077 Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
0078 modernize the code.
0079
0080 Fixes GAUDI-1118.
0081
0082 See merge request !49
0083
0084
0085 ! 2015-10-16 - commit bf01805
0086
0087 - Merge branch 'GAUDI-1111' into 'master'
0088
0089 remove dependency on Boost from GaudiPluginService
0090
0091 Reverted the part of commit dddeca32 that introduce the dependency on Boost.
0092
0093 Fixes GAUDI-1111.
0094
0095 See merge request !53
0096
0097 ========================== GaudiPluginService v3r0 ===========================
0098
0099 ! 2015-09-11 - commit c062cbe
0100
0101 - C++11 modernization changes
0102
0103 Some trivial - and some not so trivial! - changes which take advantage of
0104 C++11...
0105
0106 See merge request !7
0107
0108 ========================== GaudiPluginService v2r2 ===========================
0109 ! 2014-07-04 - Marco Clemencic
0110 - Improved Doxygen documentation.
0111
0112 ========================== GaudiPluginService v2r1 ===========================
0113 ! 2014-10-28 - Marco Clemencic
0114 - Demangle factory types in warning messages.
0115
0116 ========================== GaudiPluginService v2r0 ===========================
0117 ! 2014-09-30 - David Quarrie
0118 - do not hide C++11 constructs from Reflex for ATLAS (different version of
0119 GCCXML)
0120
0121 ! 2014-05-07 - Sebastien Binet
0122 - leverage C++11 variadic templates for the factories.
0123 - internally, also use r-value references and std::forward
0124 - hide the C++11 constructs from Reflex as GCC-XML parser predates C++11
0125
0126 ========================== GaudiPluginService v1r2 ===========================
0127 ! 2014-05-12 - Marco Clemencic
0128 - Fixed listcomponents command lines tests (CMake only).
0129
0130 ========================== GaudiPluginService v1r1 ===========================
0131
0132 ! 2014-05-19 - Charles Leggett
0133 - add HAVE_GAUDI_PLUGINSVC tag for cmt requirements
0134
0135 ! 2014-05-09 - Charles Leggett
0136 - add macro HAVE_GAUDI_PLUGINSVC so external packages can see if it's available
0137
0138 ! 2014-05-09 - Marco Clemencic
0139 - Improved command line of listcomponents: now it accepts --output and --help.
0140 - Modified the listcomponents CMT document to use --output instead of output
0141 redirection. Fixes bug #104455
0142
0143 ========================== GaudiPluginService v1r0 ===========================
0144 ! 2014-02-03 - Marco Clemencic
0145 - Added support for Reflex names for components, enabled with the compile flag
0146 -DGAUDI_REFLEX_COMPONENT_ALIASES.
0147
0148 ! 2014-01-10 - Marco Clemencic
0149 - Fixed error handling in listcomponents.cpp: exit with a failure status code
0150 if there is an error loading a library.
0151
0152 ! 2013-12-19 - Marco Clemencic
0153 - Minor fix to CMake configuration.
0154
0155 ! 2013-08-28 - Sebastien Binet
0156 - Added (C++) tests for optional metadata (properties).
0157 - Added docstrings to the python interface.
0158
0159 ! 2013-08-27 - Marco Clemencic
0160 - Fixed symbol visibility.
0161
0162 ! 2013-08-23 - Marco Clemencic
0163 - Updated the CMT configuration.
0164
0165 ! 2013-08-23 - Sebastien Binet
0166 - Added optional metadata (properties) to the factories.
0167 - Added a Python module to query the list of factories (based on ctypes).
0168
0169 ! 2013-07-26 - Marco Clemencic
0170 - Ported new GaudiPluginService to CMT.
0171
0172 ! 2013-07-25 - Marco Clemencic
0173 - Removed the extra level of indirection and simplified the support for
0174 private/protected constructors.
0175
0176 ! 2013-07-25 - Marco Clemencic
0177 - Added an extra level of indirection (a creator class) to allow components
0178 with protected/private constructors.
0179
0180 ! 2013-07-24 - Marco Clemencic
0181 - Do not use the type name in the helper local class created by the DECLARE_*
0182 macros: it's not really needed and it allows the use of namespaces and
0183 templates in the parameter passed to DECLARE_*.
0184
0185 ! 2013-07-24 - Marco Clemencic
0186 - Added some tests.
0187
0188 ! 2013-07-23 - Marco Clemencic
0189 - Added thread safety (with locks) if compiled with C++11.
0190
0191 ! 2013-07-23 - Marco Clemencic
0192 - Changes the dlopen flags from (RTLD_LAZY | RTLD_LOCAL) to
0193 (RTLD_LAZY | RTLD_GLOBAL) to avoid problems with Python binary modules
0194 imported through the Python C/C++ API.
0195 The Python binary modules may not be linked to the Python library, so they
0196 need that the Python symbols are visible globally.
0197
0198 ! 2013-07-19 - Marco Clemencic
0199 - Added instructions for the Plugin Service in a README.md file.
0200
0201 ! 2013-07-18 - Marco Clemencic
0202 - Modified the symbol resolution policy when loading a component library,
0203 using RTLD_LAZY instead of RTLD_NOW.
0204 It allows loading of component libraries with unresolved symbols, but it is
0205 consistent with the old behavior.
0206
0207 ! 2013-07-18 - Marco Clemencic
0208 - Added the macros DECLARE_COMPONENT and DECLARE_COMPONENT_WITH_ID to simplify
0209 the declaration of component classes when the factory is declared as the
0210 typedef Factory in a base class.
0211 In the example below the declaration becomes:
0212
0213 #include "MyDerivedComponent.h"
0214 DECLARE_COMPONENT(MyDerivedComponent)
0215
0216 ! 2013-07-18 - Marco Clemencic
0217 - Fixed a problem when the DECLARE_* macros are called from within a namespace.
0218
0219 ! 2013-07-17 - Marco Clemencic
0220 - First complete implementation of a ROOT/Reflex-free Plugin Service for
0221 Gaudi. The typical use is:
0222
0223 - headers
0224
0225 #include <Gaudi/PluginService.h>
0226
0227 class IMyInterface { ... };
0228
0229 class MyBaseComponent: virtual public IMyInterface {
0230 public:
0231 typedef Gaudi::PluginService::Factory1<IMyInterface*,
0232 const std::string&>
0233 Factory;
0234 MyBaseComponent(const std::string&);
0235 ...
0236 };
0237
0238 class MyDerivedComponent: public MyBaseComponent {
0239 ...
0240 };
0241
0242 - sources
0243
0244 #include "MyDerivedComponent.h"
0245 DECLARE_FACTORY(MyDerivedComponent, MyBaseComponent::Factory)
0246
0247 - to instantiate
0248
0249 #include "MyBaseComponent.h"
0250 IMyInterface* ptr =
0251 MyBaseComponent::Factory::create("MyDerivedComponent", "argument");