Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  Links to LXR source navigation pages for stable releases [ 12.*.* ]   [ 13.*.* ]   [ 14.*.* ] 

001 Package : GaudiKernel
002 Package manager : Pere Mato
003 
004 ================ GaudiKernel v25r2 ====================================
005 ! 2008-07-17 - Marco Clemencic
006  - Added the interface IEventTimeDecoder (from LHCb detector description), and
007    the Reflex dictionary for it.
008 
009 ! 2008-07-15 - Marco Clemencic
010  - Fixed bug #38868. MinimalEventLoopMgr does not restart algorithms
011    Implemented restart so that it calls the restart of all the algorithms. 
012    Fixed the implementation of reinitialize too.
013 
014 ! 2008-07-15 - Gerhard Raven
015  - Fixed bug #38855. Inconsistent check in Service::sysRestart.
016    Fixed a the result of a bad cut & paste.
017 
018 ! 2008-07-15 - Vanya Belyaev
019  - Patch #1756. Decrease the probability for FPE in StatEntity::addFlag
020    Added a check in StatEntity::addFlag to avoid floating point exceptions
021    (underflows).
022 
023 ! 2008-07-11 - Charles Leggett
024  - requirements: tweak genconfig_cmd macro to work with GAUDI_ATLAS tag
025 
026 ! 2008-06-30 - Marco Clemencic
027  - Cleaned up Boost link options plus a fix for Boost 1.35.
028 
029 ================ GaudiKernel v25r1 ====================================
030 ! 2008-06-25 - Marco Clemencic
031  - Fixed bug #38206: gaudirun.py fails to set a list property from a property
032                      reference.
033  - Fixed bug #38194: gaudirun.py expands too many environment variables
034    Avoid to expand the environment variables in the strings.
035 
036 ================ GaudiKernel v25r0 ====================================
037 ! 2008-06-12 - Marco Clemencic
038  - Modified the logic behind IFileAccess: the implementation must be able to
039    tell which protocols it can handle.
040 
041 ! 2008-06-10 - Charles Leggett, Marco Clemencic
042  - Fixed bug #37690. message svc release() in Auditor destructor
043    - Moved the call the message service release to the finalize method, where it
044      should be.
045 
046 ! 2008-06-10 - Marco Clemencic
047  - Added platform-independent sleep functions:
048    - Gaudi::Sleep(int)
049    - Gaudi::NanoSleep(long long)
050  
051 ! 2008-06-06 - Marco Clemencic
052  - Fixed Windows compilation warning (caused by patch #1756).
053 
054 ! 2008-06-05 - Marco Clemencic
055  - Fixed bug #36742. Cannot pickle options using "PropertyReference"
056  - Fixed a problem on osx105 (Undefined symbols: _environ).
057  - Fixed bug #37479. gaudirun.py fails parsing old option lines with comments
058                      and quotes.
059  - Fixed bug #37488. importOptions does not expand environment variables.
060  - Fixed bug #35347. Cannot import 2 Python option files with the same name.
061    - Used execfile instead of __import__ for Python modules, following Paolo's
062      suggestion).
063  - Fixed bug #35913. Configurables type checking fails on Gaudi::Histo1DDef.
064    - Fixed avoiding that tuples and lists are treated the same way.
065  - Fixed bug #34769. Assigning a configurable to a list property does not fail.
066    - Values for properties expecting lists, tuples and dictionaries must match
067      the type (before it was possible to set a list from an iterable object).
068  - Fixed handling of files starting with '#!' in gaudirun.py 
069 
070 ! 2008-06-04 - Marco Clemencic
071  - Fixed the last place where dylib was used on OSX (DsoUtils.h).
072 
073 ! 2008-06-04 - Charles Leggett
074  - Patch #1865. Better printouts for HistorySvc.
075    - Prints out more information about the various History objects to the output
076      file.
077 
078 ! 2008-06-02 - Marco Clemencic
079  - Task #5809. Extension to Gaudi Application state machine.
080    First implementation of the proposed extension.
081    A new interface (IStateful) has been added to provide a common way of
082    interacting with the state machine.
083    The interfaces IService, IAlgorithm and IAlgTool have been extended with the
084    methods from IStateful, and ISvcManager and IAlgManager have been extended to
085    support the new states.
086    The states and the transition have been defined in enums
087    (Gaud::StateMachine::State, Gaudi::StateMachine::Transition), and the
088    constraints on the possible changes are enforced by the function
089    Gaudi::StateMachine::ChangeState, which throws an exception if the transition
090    is not allowed.
091    Since algorithms and tools do not support all the states, the state
092    Gaudi::StateMachine::CONFIGURED is reached after the constructor. Services
093    are constructed in the state Gaudi::StateMachine::OFFLINE and become
094    Gaudi::StateMachine::CONFIGURED in the base class initialize method (as
095    defined in patch #1757).
096    The methods Algorithm::setInitialized and Algorithm::setFinalized has been
097    removed.
098    IAuditor has been extended to support auditing of the new transitions (start
099    and stop).
100    The Reflex dictionary has been updated to include the new classes/enums. 
101 
102 ! 2008-05-29 - Charles Leggett
103  - Changed the name of the extension for libraries on OSX from ".dylib" to ".so".
104 
105 ! 2008-05-13 - Vanya Belyaev
106  - Patch #1756. Improvements for Chrono/ChronoStat&IChronoSvc
107    - Removal of many (ugly) obsolete lines, overall cleanup, improved flexible
108      print-out and other improvements.
109    - GaudiKernel/IChronoSvc.h
110      - The basic type from IChronoSvc now is "double" instead of "longlong".
111      - Change the return type from void to "(const)StatEntity*" for the methods
112        chronoStart/Stop.
113    - GaudiKernel/ChronoEntity.h, src/Lib/ChronoEntity.cpp
114      - The class is essentially rewritten (keeping the same public interface) in
115        terms of the generic counter StatEntity. And internally it is just a set
116        of three generic counters (for user/kernel&elapsed time correspondingly).
117        New features includes the better control over the printout through new
118        methods: outputUserTime, outputSystemTime, outputElapsedTime, outputTime.
119    - GaudiKernel/Chrono.h
120      - Make this tiny helper class simpler and more efficient:
121        - for the usage with IChronoSvc, avoid one virtual call
122        - allow the usage with ChronoEntity class
123 
124 ! 2008-05-09 - Marco Clemencic
125  - Added small interface (IFileAccess) for services/tools that allow read-only
126    file access agnostic of the storage backend (filesystem, web, CondDB, ...).
127  - Fixed a minor problem in ProcessJobOptions.py strip away spaces in component
128    and property names ("MyAlg . MyProp" -> "MyAlg.MyProp"). 
129 
130 ================ GaudiKernel v24r0 ====================================
131 ! 2008-04-04 - Vanya BELYAEV
132  - Patch #1751. Fixed a typo in Stat::operator-=.
133 
134 ! 2008-04-04 - Marco Clemencic
135  - Bug #35201. Python options parser '//' interpreted as comment in strings.
136    Fixed by adding an extra check in ProcessJobOptions.py to allow '//' in
137    strings (like URLs). The fix is not perfect because requires that the string
138    is on a single line, but at least allows it.
139  - Fixed Bug #34680. Bad implementation of Service::messageSvc.
140    The obsolete methods now forward the call to the correct ones.
141    (anyway they should be removed at some point)
142  - Fixed a problem introduced with patch #1757.
143    Modified DataStreamTool to call sysInitialize instead of initialize for
144    conversion services.
145  
146 ! 2008-04-04 - Charles Leggett
147  - Patch #1757. detect creation/initialization loops for services.
148    Modified the way the state of the service is set:
149     - the base class initialize sets the state to CONFIGURED
150     - the service becomes INITIALIZED in the sysInitialized, after the
151       specialized service completed (successfully) the initialization.
152  
153 ! 2008-04-03 - Sebastien Binet / Martin Woudstra
154  - Bug #34752/Patch #1747. GaudiHandleArray.__getstate__ prevents pickling.
155    Fixed.
156 
157 ! 2008-04-03 - Vanya BELYAEV
158  - Patch #1751.
159    Change the signature of declareProperty/declareRemoteProperty methods
160     - for PropertyMgr form "void" to "Property*"
161     - for Algorithm/Service/AlgTool/Auditor base classes from StatusCode to
162       "Property*"
163 
164    The previous return value was completely useless: 
165     - either "void" or (always) StatusCode::SUCCESS
166 
167    With the pointer to the actual property returned, one can easily use it, e.g.
168    to declare handlers as in:
169    //----------------------------------------------------------------------
170    class MyAlg : public Algorithm
171    {
172    
173    public: 
174 
175      // constructor 
176 
177      MyAlg ( ... ): Algorithm ( ... ) 
178                   , m_property( .... ) 
179      {
180        declareProperty ("Property" , m_property , "some documentation") 
181          -> declareUpdateHandler ( &MyAlg::handler ) ;
182      }      
183 
184    private:
185 
186      SOMETYPE m_property;
187 
188    };
189    //----------------------------------------------------------------------
190 
191 ! 2008-04-03 - Marco Clemencic
192  - Patch #1725. New IAuditor interface.
193    - The Auditor member functions are now only 8, for all the combinations of:
194      * before or after
195      * standard event or custom event
196      * INamedInterface* or string
197    - All the after methods accept a StatusCode (if not specified, a SUCCESS with
198      the checked flag set is used).
199    - The obsolete member functions are kept for backward compatibility.
200    - The default implementations of "before" and "after" are using the obsolete
201      methods to make legacy Auditors to work.
202    - IAuditorSvc is now an extension of IAuditor.
203    - AuditorGuard has been adapted to the new interface and the audit with a
204      status code check is simpler.
205    - The standard event types defined in the enum IAuditor::StandardEventType
206      can be printed and converted to strings with operator<<. 
207 
208 ! 2008-04-02 - Marco Clemencic
209  - Python job options:
210    - Removed the possibility of assigning a tool to an attribute of a
211      configurable if that attribute/property does not exists. It was intended to
212      allow simple declaration of private tools, but it is dangerous because it
213      avoids the checking of the spelling of properties. 
214    - Modified Configurable.addTool() to accept a subclass of ConfigurableAlgTool
215      as first argument (as well as an instance) to avoid the instantiation of an
216      unneeded instance of the public tool configurable. 
217 
218 ! 2008-03-11 - Hubert Degaudenzi
219  - added 2 patterns to create and use helper library for genconf. Some libraries
220    need to have other preloaded libraries in order to perform the genconf 
221    procedure correctly. While this can be fixed on linux with the 
222    LD_PRELOAD environment variable, this is not possible on windows. Thus
223    the genconf executable takes an extra argument "--load-library" to which
224    the full path of the helper library is passed.
225 
226 ! 2008-03-07 - Marco Clemencic
227  - Added a work around for ROOT bug #34282 in dict/dictionary.xml (excluded few
228    data members of Gaudi::Time).
229  - Fixed Bug #34046. False warning when mixing Python options and old options.
230    The check on the case of old options have been improved.
231 
232 ================ GaudiKernel v23r4 ====================================
233 ! 2008-02-28 - Marco Clemencic
234  - Minor change to fix a regression. The line
235 
236      #include"file.opts"
237 
238    is understood by the JobOptsSvc, but it was not by the Python parser.
239 
240 ! 2008-02-27 - Charles Leggett
241  - Patch #1711. Get all instances of a tool type.
242    Function used in the Atlas event display.
243 
244 ! 2008-02-27 - Marco Clemencic
245  - Hack to avoid a conflict in the way Configurables are used in Athena and
246    Gaudi.  In GaudiPython they are used in the AppMgr constructor, while in
247    Athena they are used in a different moment (and not even all of them are
248    needed).
249    The conflict is resolved by using a function to return the needed
250    configurables, implemented to return the keys of allConfigurables for Gaudi
251    and and empty list for Athena. 
252 
253 ! 2008-02-27 - Wim Lavrijsen
254  - Patch #1710. Convenience method for removing entries from GaudiHandleArray
255    Add a simple convenience method for deleting tools from a ToolHandleArray by
256    name, rather than having to locate them first.
257 
258 ! 2008-02-21 - Marco Clemencic
259  - Moved the release of m_messageSvc and m_pAuditorSvc from Service::~Service to
260    Service::sysFinalize.
261 
262 ! 2008-02-21 - Yushu Yao
263  - Patch #1687. Adding getPropertyMgr() in AlgTool
264    This is needed to develop double use tools (tools that can be used in Gaudi
265    as well as in ROOT) in Athena.
266 
267 ! 2008-02-20 - Hubert Degaudenzi
268  - added static function to Message.{h,cpp} in order to be able to access 
269    Message::DEFAULT_FORMAT and Message::DEFAULT_TIME_FORMAT.
270 
271 ! 2008-02-04 - Charles Leggett
272  - Patch #1668.
273    In Python 2.5, the method __str__ of ServiceHandles gets called causing some
274    problems. The reason has to be investigated, but the patch allows to work.
275    
276 ! 2008-02-04 - Yushu Yao
277  - Patch #1666: Add AlgTool::declareRemoteProperty
278    Added the member function declareRemoteProperty to AlgTool (present in
279    Algorithm and Service).
280 
281 ! 2008-02-04 - Marco Clemencic
282  - Fixed bug #33209: Deprecated raising a string with Python 2.5
283    Added a class for errors occurring during the parsing (ParserError).
284 
285 ! 2008-01-29 - Marco Clemencic
286  - Python options:
287    Modified added a flag to the Configurable base class to block assignments.
288    The flag is set in GaudiPython.AppMgr after the application manager has been
289    configured, to prevent that people try to manipulate the configuration when
290    it is too late.
291    The lock does not (and cannot) work for in-place changes (like += on a list).  
292 
293 ! 2008-01-29 - Vanya BELYAEV
294  - Modified IInterface::hash32 to use and return "unsigned int" instead of
295    "unsigned long" for portability.
296 
297 ================ GaudiKernel v23r3 ====================================
298 ! 2008-01-18 - Marco Clemencic
299  - Fixed bug #32549.
300    Changed the level of the message about the AbortEvent incident from ERROR to
301    DEBUG. 
302  - Fixed a compilation warning in genconf.cpp with Boost 1.34.1 on Win32.  
303 
304 ! 2008-01-14 - Vanya BELYAEV
305  - Patch #1581.
306    - GaudiKernel/Parsers.h, src/Lib/ParseMaps.cpp
307       add the parser functions for parsion of following types:
308       1) std::map<int,std::string>
309       2) std::map<unsigned int, std::string>
310     These types play important roles for LHCb-HLT and are requested 
311       by Gerhard Raven 
312 
313 ! 2008-01-11 - Gerhard Raven
314  - patch #1621 (bug #32466).
315    Add to IToolSvc/ToolSvc the possibility of using observers to monitor the
316    creation of and retrieval of tools.
317 
318 ! 2008-01-11 - Marco Clemencic
319  - Python options:
320    - Modified Configurable.addTool to set the property with the same name of the
321      tool (if it exists), so that it not hides the tool reference.
322    - Modified PropertyProxy.__get__ to allow direct access to the default for
323      dictionaries as well as for lists.
324    - Added the helper class Configurable.PropertyReference to allow the late
325      binding of properties as it was possible in old options (mainly needed for
326      backward compatibility).
327      The option:
328      
329         MyAlg.MyProp = @AnotherAlg.AProp;
330         
331      translates to:
332      
333         MyAlg().MyProp = Configurable.PropertyReference("AnotherAlg.AProp")
334      
335    - Modified the parser of old job options to correctly translate references.
336    - Modified ConfigurableAlgTool.getFullName to return only the instance name
337      (instead of the fully qualified name).
338    - Allow the wrong case for properties in old option files, but issue warnings.
339    - Modified the default logger to print "GaudiKernel" instead of "Athena" and
340      prepend a '#' to the message to allow evaluation of the standard output in
341      Python (needed in Ganga).
342 
343 ! 2008-01-10 - Marco Clemencic
344  - Fixed a problem in ProcessJobOptions.py occurring when option values have '\'
345    inside (filenames on Windows).
346 
347 ! 2008-01-09 - Marco Clemencic
348  - Python options:
349    - Take the values for VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL always from
350      GaudiKernel.Constants.
351    - Made "Configurable" equivalent to "str", so that it is possible to set a
352      string property from a configurable instance.  It allows something like:
353      
354        mySvc = AService("theService",...)
355        myAlg = AnAlgorithm("theAlgorithm")
356        myAlg.ServiceToUse = mySvc
357 
358 ! 2008-01-08 - Marco Clemencic
359  - Fixed a problem in ProcessJoboptions.py: allow have white spaces before the
360    '#' sign of directives.
361 
362 ! 2007-12-20 - Marco Clemencic
363  - Improved the message of DataSvc when re-throwing a std::exception. Now the
364    message contains the type of the exception.
365  - Added a constructor for GaudiException accepting a std::exception. The type
366    of the passed exception and its message are appended to the message of the
367    GaudiException.
368  - Fixed a problem in ProcessJoboptions.py when DOS new-lines were found on
369    Unix. 
370  
371 ! 2007-12-19 - Marco Clemencic
372  - Fixed a couple of typos in Map.h (preventing the generation of dictionary).
373  - Check if a value is in the list before trying to delete it when interpreting
374    "-=" in old job options.
375  - Restored the original logic for parsing list in old job options (replace all
376    "{}" with "[]", unless there is a ':').
377     
378 ! 2007-12-12 - Marco Clemencic
379  - patch #1585.
380    - Added the templated function pp_cast<DEST>(SRC**) to replace the common casts
381        (void**)&pointer
382      and
383        (IInterface *&)m_mySvc
384      to avoid the warning
385        "dereferencing type-punned pointer will break strict-aliasing rules"
386    - Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
387 
388 ! 2007-12-03 - Markus Frank & Marco Clemencic
389  - Implemented the Win32 version of the code in DsoUtils.h, with some
390    simplification.
391 
392 ! 2007-11-30 - Marco Clemencic
393  - Fixed DsoUtils.h to work on OSX too.
394  - Fix for bug #31677.
395    Move GaudiHandles.py from GaudiPython to GaudiKernel.
396 
397 ! 2007-11-28 - Sebastien Binet
398  - patch #1560.
399    Minor change to avoid possible injection of GaudiKernel.Configurable through
400    importOptions.
401 
402 ! 2007-11-26 - Marco Clemencic
403  - Fixed a problem with the dictionary and ROOT >= 5.16.
404 
405 ! 2007-11-21 - Marco Clemencic
406  - Fixed few compilation warnings on osx in the dictionary.
407 
408 ! 2007-11-20 - Marco Clemencic
409  - Fixed few compilation warnings on win32 in the dictionary.
410 
411 ================ GaudiKernel v23r2 ====================================
412 ! 2007-11-16 - Marco Clemencic
413  - Added a new incident type (AbortEvent) that force the (Minimal)EventLoopMgr
414    to skips all the top algorithms still to be executed for the current event.
415    It can be used when a reconstruction step fails so it does not make sense to
416    process the event, but we do not want to stop the application.   
417  - Fixed a bug in the old job option interpretation if mixed with python
418    options.
419    The sequence:
420      MessageSvc.OutputLevel = 1
421      #include "SetMsgSvcOutLvlTo2.py"
422      MessageSvc.OutputLevel = 1
423    was not correctly setting the output level (if SetMsgSvcOutLvlTo2.py sets the
424    output level).
425 
426 ! 2007-11-15 - Vanya Belyaev
427  - patch #1523.
428    Add possibility to have properties of the types std::map<int,int> and
429    std::vector<std::pair<int,int> > (the second case is perfectly suited
430    for Helder Lopez' request of the list of event/run numbers)
431    modified files:
432     - GaudiKernel/Parsers.h
433       add two functions "parse" for parsing of new types
434     - src/Lib/Parse*.cpp
435       add the implementation of parsing functions
436 
437 ! 2007-11-14 - Marco Clemencic
438  - Added the function GaudiKernel.Configurable.purge to clean up all the
439    configurables and the list of already imported files from the memory.
440    After a call to "purge" one is able to restart the configuration from scratch
441    without having to leave the python session.
442     
443 ! 2007-11-13 - Marco Clemencic
444  - Instead of generating *Conf.py files trying to import AthenaCommon and fail
445    back on GaudiKernel, use the module GaudiKernel.Proxy, which internally does
446    the same kind of trick but only once.
447  
448 ! 2007-11-13 - Sebastien Binet
449  - patch #1520 (bug #31097)
450    Removed a duplicated data member in ServiceHandle (same information already
451    available in the base class).
452  - patch #1158
453    Modified genconf.exe to generate modules (*_confDb.py) with a smaller memory
454    footprint. The code to fill the DB is encapsulated in a function that is then
455    deleted after being called. 
456 
457 ! 2007-11-12 - Marco Clemencic
458  - Moved the *.qmt files to the implicit suite (directory) "gaudikernel.qms".
459 
460 ! 2007-11-08 - Marco Clemencic
461  - task #5807.
462    Added the header GaudiKernel/SerializeSTL.h to provide implementations of
463    operator<< for some common STL containers and GaudiUtils::*Map.
464    The implementations live in the namespace GaudiUtils. To use them, one have
465    to add "using namespace GaudiUtils" (in the relevant scope).
466    Tests have been added too.
467 
468 ! 2007-11-02 - Marco Clemencic
469  - Added a temporary work-around for OSX in ProcessDescriptor.cpp.
470    To get timing information, it tries to open /proc/$PID/stats, which does not
471    exist in OSX. The alternative is to use some other mechanism, but the one
472    implemented in ProcessDescriptor seems to cause a segmentation fault.
473    (to be investigated) 
474 
475 ! 2007-10-31 - Marco Clemencic
476  - Rewritten ProcessJobOptions.py. Major changes:
477    - honor the #pragma print on/off in old options
478    - print a warning if a file is included twice (the second time it is ignored)
479    - allow inclusion of ".py" and ".pkl" files from ".opts" files (this is the
480      main reason fror the rewrite)
481    - moved importOptions from Gaudi.Configaration to ProcessJobOptions to allow
482      better recursion
483 
484 ! 2007-10-31 - Marco Clemencic
485  - Minor change to the IUpdateManagerSvc interface (added the function :purge")
486 
487 ! 2007-10-29 - Pere Mato
488  - KeyedObjectManager.cpp: changed order of specialization and instantiation
489    to please gcc 4.0
490 
491 ! 2007-10-22 - Marco Clemencic
492  - Use the pattern QMTest and add a .qmt file (QMTest test description) to run
493    the DirSearchPath test.
494  - Modified DirSearchPath_test to work on Windows too.
495 
496 ! 2007-10-16 - Paolo Calafiura
497  - patch #1416. new DirSearchPath method and test
498    - Added DirSearchPath::find_all
499    - Moved the test from GaudiSvc to GaudiKernel
500 
501 ================ GaudiKernel v23r1 ====================================
502 ! 2007-10-10 - Pere Mato
503  - Corrected bug of ProcessJobOptions.py detected by Marco C. when using filenames with
504    environments.
505 
506 ! 2007-10-09 - Marco Clemencic
507  - Moved DirSearchPath from GaudiSvc/src/JobOptionsSvc to GaudiKernel
508    (requested by Paolo Calafiura).
509    Note: the 2 tests using DirSearchpath are still in GaudiSvc.
510 
511 ! 2007-10-02 - Pere Mato
512  - Patch #1400.
513    Support for pickle files in python configurations.
514    Fixed various bugs in parsing old joboptions files
515 
516 ! 2007-09-28 - Vanya Belyaev
517  - Patch #1345.
518    minor modifications to improve Tuples::TupleObj (GaudiAlg package)
519    - GaudiKernel/NTuple.h
520        1) substitute the explicit specialization for NTuple::Range with 
521           the regular calls of std::numeric_limits<T>::min()/max()
522        2) disable "#ifndef ALLOW_ALL_TYPES"
523 
524 ! 2007-09-26 - Vanya Belyaev
525  - patch #1375. Allow configuration of Histogram1D from job options.
526    - New class Gaudi::Histo1DDef for histogram description/definition.
527    - Implementation of parsing for new histogram properties.
528      (Sascha Mazurov)
529 
530 ! 2007-09-25 - Vanya Belyaev
531  - Patch #1357.
532    Minor improvements to Gaudi::Utils::setProperty():
533     - allow to set the documentation of a property
534     - allow to set a property from a PopertyType
535 
536 ! 2007-09-24 - Sebastien Binet (& Marco Clemencic)
537  - patch #1247. (partial)
538    - avoid duplication of symbols in files generated by genconf.
539      (Warning: Win32 implementation missing)
540    Note: the patch was providing a patched version of genmap which cannot be
541          included in Gaudi, but should be proposed to ROOT.
542 
543 ! 2007-09-24 - Hubert Degaudenzi
544  - changed back Configurables.py into Configurable.py (it was
545    a mistake).
546 
547 ! 2007-09-24 - Marco Clemencic
548  - modified the way to pass  fallback module to genconf: comma-separated list
549    instead of a dedicated option.
550 
551 ! 2007-09-24 - Markus Frank
552  - fixed bug #29806. Wrong call to setDataProvider.
553 
554 ! 2007-09-21 - Hubert Degaudenzi & Marco Clemencic
555  - factored out the main application part to the Gaudi package.
556  - added the GaudiKernel prefix when importing python modules in order
557    to avoid local imports.
558  - changed the name of Configurable.py into Configurables.py for
559    compatibility with the Athena module.
560  - added an option to genconf that adds a fallback module for the
561    location of Configurables and ConfigurableDb
562  - modified the genconfig CMT pattern for the previous change to have
563    AthenaCommon by default and if it doesn't exist fall back to
564    GaudiKernel. This is a temporary fix until both approaches are merged.
565 
566 ! 2007-08-31 - Hubert Degaudenzi & Paolo Calafiura
567  - Patch #1260.moved the MinimalEventLoopMgr from GaudiSvc to GaudiKernel. The factory 
568    for this service is still in GaudiSvc
569 
570 ! 2007-08-06 - Vanya Belyaev
571  - patch #1231.
572    - Splitted IChronoStatSvc.h into IChronoSvc and IStatSvc.
573    - Remove ICounterSvc::CountObject and replaced it with Stat.
574    - Added few free functions to format StatEntity objects as table rows.
575 
576 ! 2007-07-27 - Marco Clemencic
577  - Added the file cbrt.h, which provides an implementation of cbrt (cubic
578    root) to all the platforms (it is a built-in function of gcc).
579 
580 ! 2007-07-24 - Vanya Belyaev
581  - patch #1246.
582    Introduced 2 new classes:
583      * Gaudi::Guards::ExceptionGuard
584        executes a functor in a "standard" try-catch block.
585      * Gaudi::Guards::AuditorGuard
586        executes a function of an object when the instance is created and
587        a second one when destroied, allowing automatic "clean-up" (in case
588        of early exit).
589    See GaudiKernel/Gaurds.h (doxygen) for more details.
590 
591 ! 2007-07-24 - Charles Leggett
592  - patch #1253.
593    This patch fixes Algorithm.cpp, AlgTool.cpp and Service.cpp such that
594    there is a consistent use of the auditorSvc-after[whatever] in the catch
595    loops when an exception is thrown. It also gets rid of some needlessly
596    verbose comments.
597 
598 ! 2007-07-24 - Pere Mato
599  - patch #1250.
600    Removed the default constructor of Service because it is causing a memory
601    leak in Reflex.
602 
603 ! 2007-07-24 - Vanya Belyaev
604  - patch #1227.
605    Added the functions "Gaudi::Utils::setProperty(IInterface*,...)", simpler
606    counterparts of "Gaudi::Utils::setProperty(IProperty*,...)".
607 
608 ! 2007-07-23 - Vanya Belyaev
609  - patch #1226.
610    * SmartIFBase<TYPE>:
611      + explicitely disable copy constructor and assignement
612      + add "checking operator", operator!()
613    * SmartIF<TYPE> and SmartIF<IInterface>
614      + add "const" into copy constructor
615      + add the constructor from underlying pointer
616      + add "const" into standard assignement
617      + add "const" into template assignemet
618      + remove line duplicates between standard assignement and assignement
619        from the regular pointer
620      + fix typo in return type of assignement from the base
621      + add "checking operator", operator!()
622 
623 ! 2007-07-17 - Sebastien Binet
624  - patch #1182.
625    Improved precision for timing measurements in ProcessDescriptor
626    (on linux).  The patch allow to use the function getrusage when
627    possible to get a us precision instead of ms. When getrusage cannot
628    be used, the timing is measured in the old way.
629 
630 ! 2007-07-16 - Marco Clemencic
631  - changed the syntax for specialization of templated function in namespace 
632    for gcc 4.1 future use
633    
634 ! 2007-07-16 - Hubert Degaudenzi
635  - added the possibility to use the universal time for the messages.
636    there is a new "%u" format for this. It replaces the usual "%t" in 
637    the MessageSvc.Format.
638 
639 ! 2007-06-18 - Vanya Belyaev
640  - patch #1178. 
641     * The patch substitute the internal counters, used for
642       (I)CounterSvc by generic counters of type StatEntity.
643     * This allow to reuse the useful functionality of StatEntity class.
644     * In addition it will allow an easy publishing and integration of
645       counters with monitoring tasks.
646     * Also it adds more functionality for grouping of counters, in
647       particular the extraction of the whole group of counters
648       (required by Matt Needham)
649     * The printout of counters is now coherent with printout of
650       generic counters through GuadiCommon<T>.
651 
652 ================ GaudiKernel v23r0 ====================================
653 ! 2007-06-11 - Sebastien Binet
654  - Fix to bug #26919. Explicit implementation of the copy constructor
655    and assignment operator for the PropertyWithValue class.
656 
657 ! 2007-05-24 - Pere Mato
658  - Added specialization of ROOT::Reflex::TypeDistiller for strings in
659    AudFactory.h (was missing).
660 
661 ! 2007-05-24 - Marco Clemencic
662  - Extended the IIncidentSvc interface to make it possible to register
663    a listener for only one occurrence of the requested event
664    (see bug #25552).
665 
666 ! 2007-05-24 - Vanya Belyaev
667  - patch #1171. The enhancement of existing Algorithm Context Service
668    is the primary goal of the proposed patch. The existing
669    AlgContextSvc is not safe with respect to e.g. Data-On-Demand
670    service or to operations with subalgorithms. The patched service
671    essentially implements the queue of executing algorithms, thus the
672    problems are eliminiated. In addition the enriched interface
673    provides the access to the whole queue of executing algorithms.
674 
675 ! 2007-05-24 - Vanya Belyaev
676  - patch #1163. Patch to allow the following syntax:
677          setProperty ( "OutputLevel" , "4" ) ;
678          setProperty ( "OutputLevel" , 4 ) ;  //new
679          setProperty ( "Enable" , "False" ) ;
680          setProperty ( "Enable" , false ) ; //new
681          setProperty ( "ErrorMax" , "10" ) ;
682          setProperty ( "ErrorMax" , 10 ) ; //new
683          std::vector<double> data = ... ; //new
684          setProperty( "Data" , data ) ; //new
685          std::map<std::string,double> cuts = ... ; //new
686          setProperty( "Cuts" , cuts ) ; //new
687          std::map<std::string,std::string> dict = ... ; //new
688          setProperty( "Dictionary" , dict ) ; //new
689    The setting of properties through strings is still possible.
690    
691 ! 2007-05-23 - Marco Clemencic
692  - patch #1168. Added specialization for void* to GaudiUtils::Hash.
693 
694 ! 2007-05-23 - Charles Leggett
695  - patch #1176. Added few missing functions in ITHistSvc
696    (already present in THistSvc)
697  
698 ! 2007-05-23 - Vanya Belyaev
699  - patch #1161. Improvements and clean-up in StatEntity:
700     - Removed "weight"-related functions and methods (unused)
701     - Added binomial error calculation for efficiency-like counters
702     - Improved print-out format
703     - Added methods to make StatEntity mode DIM friendly
704     - Some clean up in comments
705  
706 ! 2007-05-23 - Marco Clemencic
707  - patch #1160. Changed the returned value of
708     - Algorithm::setExecuted()
709     - Algorithm::resetExecuted()
710     - Algorithm::setFilterPassed()
711    from StatusCode to void.
712 
713 ! 2007-05-22 - Marco Clemencic
714  - patch #1166. Splitted ParseVectors.cpp in 6 pieces:
715     * ParseVectorsBool.cpp
716     * ParseVectorsChar.cpp
717     * ParseVectorsInteger.cpp
718     * ParseVectorsReal.cpp
719     * ParseVectorsString.cpp
720     * ParseVectorsVector.cpp
721    to reduce memory usage at compile time (with a modest increase of
722    disk space and compilation time).
723 
724 ! 2007-05-15 - Sebastien Binet
725  - patch #1157. Here is a simple patch to harmonize the interaction
726    with the underlying m_outputLevel data member of each of these main
727    Gaudi components. It makes sure that the 3 of them have:
728         int outputLevel () const;
729         void initOutputLevel(Property&); //update handler
730    also added this method to MsgStream:
731         void setMsgSvc( IMessageSvc* svc ) {
732              m_service = svc;
733         } 
734 
735 ! 2007-05-15 - Chris Jones
736  - patch #1136: Updates to Algorithm and AlgTool required for
737    changes in GaudiAlg for automatic registration of data to the
738    monitoring service
739   + Addition of the same declareInfo(...) methods in AlgTool as in
740     Algorithm
741   + Replace hardcoded monitor service name with new job option
742   + New method to provide 'easy' direct access to monitor service
743     via pointer
744 
745 ! 2007-05-15 - Sebastien Binet
746  - patch #1129: Add the method outputLevel() to Auditor.
747 
748 ! 2007-05-14 - Marco Clemencic
749  - fix to bug #25852 bis
750    Fixed compilation problem on windows by adding the definitions for
751    the missing functions localtime_r and gmtime_r
752    (header GaudiKernel/time_r.h).
753    Removed also a couple of compilation warnings.
754 
755 ! 2007-05-10 - Ivan Belyaev 
756  Patch #1126: 
757  - GaudiKernel/StatEntity.h, src/Lib/StatEntity.cpp
758    1) Add the assignment operator from the scalar value according to
759       the request by Ulrich Kerzel (LHCb/RICH)
760    2) Add two new methods "efficiency" and "efficiencyErr" for
761       evaluation of binomial estimate of the efficiency, associated
762       with the counter. If the counter could be interpreted as
763       efficiency, these methods produce right results. Method
764       "efficiency" returns either "flagMean" or -1, if the
765       interpretation of counter as efficiency is not possible. In a
766       similar way "efficiencyErr" returns the binomial estimate of the
767       uncertainty or -1, if the interpretation of counter as
768       efficiency is not possible. Note that there could be sizable
769       difference between RMS estimate "flagMeanRMS" and the binomial
770       estimate "efficiencyErr", however for large statistics and for
771       non-extremal (close to ~0 or, especially ~100%) efficiencies,
772       these estimates should be very similar.
773  - GaudiKernel/ToStream.h
774    1) Add the printout for std::list
775    2) Add the template parameters for std::vector, std::set, std:map,
776       GaudiUtils::Map, GaudiUtils::VectorMap, GaudiUtils::HashMap. It
777       allows to use all these function for containers with non-default
778       optional template arguments, e.g. allocators, comparison
779       criteria, hash functions or underlying containers,
780    3) Remove the unused local variable "delim".
781  - GaudiKernel/VectorMap.h, GaudiKernel/Map.h. Improve doxygen
782    comments according to the request by Marco Cattaneo)
783 
784 ! 2007-05-10 - Hubert Degaudenzi
785  - fixed warning for gcc 4 (on MacOSX) about non-existing virtual
786    destructors in NTuple.h for NTuple::Array, NTuple::Matrix,
787    NTuple::Item etc.
788 
789 ! 2007-05-09 - Sebastien Binet
790  - patch #1141. Fix return statement of GaudiHandleArray::operator=.
791 
792 ! 2007-05-02 - Hubert Degaudenzi
793  - fix to bug #25460. The return value of getLastError is now an
794    unsigned long. A static_cast was added.
795 
796 ! 2007-04-30 - Andy Salnikov
797  - fix to bug #25852. The patch is quite small and touches only two
798    classes - Message and MessageSvc. Messages now have one more format
799    flag '%t' which is replaced with the formatted timestamp on
800    output. Default format string has not changed so default output
801    will look identical to what it was before. The format of the
802    timestamp can be changed through the additional format string
803    similarly to the message format string. Time format can contain
804    anything that is accepted by strftime plus additional '%f' code for
805    milliseconds.
806 
807 ! 2007-04-27 - Sebastien Binet 
808  - patch #25888. Fixed uninitialized variable in Algorithm.cpp.
809 
810 ! 2007-04-09 - Marco Clemencic
811  - patch #1125. Fixed INamedInterface in order to provide the right 
812    IInterfaceID. An empty virtual destructor has been added.
813 
814 ! 2007-04-05 - Martin Woudstra
815  - Patch #1103. The attached 2 patches (one for GaudiPython and one
816    for GaudiKernel) contain the changes needed to support
817    ToolHandleArray's (a 'vector' of ToolHandles). This is a new
818    feature, and is already in use in ATLAS. In addition to the
819    ToolHandleArray and its associated base classes, there is the
820    GaudiHandleArrayProperty, and an update to genconf to support it
821 
822 ! 2007-03-25 - Chris Jones
823  - Patch #1099. Add Specialization stream operator for
824    std::vector<T,A> to MsgStream.h Allows print out of vector created
825    with custom allocators e.g. std::vector< RichSmartID,
826    boost::pool_allocator< RichSmartID > >
827 
828 ! 2007-04-04 - Chris Jones
829  - Patch #1092. There is a bug in the current implementation of the
830    format(..) method in MsgStream.(cpp,h) which means if a user uses
831    the format method twice in one message request, wrong information
832    is printed. The attached patch fixes this by returning instead a
833    std::string.  However, if somewere a user is explicitly using the
834    returned char * pointer (They really shouldn't be...) a small
835    change to their code would be required. i.e.
836       char * c = format("XXX,x);
837       to
838       std::string s = format("XXX,x);
839       c = s.c_str(); 
840 
841 ================ GaudiKernel v22r2 ====================================
842 ! 2007-03-14 - Sebastien Binet
843  - Patch #1081 (fix to bug #24704): fix the crash that happens when
844    the destinatin file of genconf has a "+" in its path.
845 
846 ! 2007-03-13 - Sebastien Binet
847  Patch #1080: fixes to GaudiKernel/src/Util/genconf.cpp:
848  - fix handling of templated components
849  - fix handling of (default value of) BooleanProperties
850  - fix handling of NaN DoubleProperties (follows the good old Garbage
851    In, Garbage Out pattern, even though a warning is issued during
852    genconf processing...)
853 
854 
855 ! 2007-03-12 - Vanya Belyaev
856  - Patch #1073. Simple modification of IExceptionSvc interface (and
857    the implementation ExceptionSvc) to avoid the explicit appearence
858    of class Algorithm in the interface. The interface is modified to
859    substitute Algorithms with INamedInterface. It allows to use the
860    service in much wider context, in particular with tools, services
861    and auditors.
862 
863 ! 2007-03-9 - Sebastien Binet
864  - Patch #1058 (partially). Makes sure a DoubleProperty is understood
865    as a double on the python side (and not converted into an int as it
866    was the cast)
867  - added merge_genconfDb.py scripts to merge configurables.
868 
869 ! 2007-03-9 - Hubert Degaudenzi
870  - Clean up genconf pattern left over.
871 
872 ! 2007-03-08 - Martin Woudstra
873  - patch #1070. The python configurables generated with the current
874    genconf.cpp return the python (mangled) class name from the
875    function getType(). This should be the C++ class name, otherwise
876    the ToolSvc will not find tools from classes in namespaces and/or
877    templated classes. This is critical as many classes in ATLAS as of
878    these categories and all those are broken now.
879  - patch #1071. The GaudiHandle version used in ATLAS has since some
880    time an 'empty()' member function to indicate that no component is
881    supposed to be retrieved nor used. For some reason this member
882    function did not make it into Gaudi 19, so now the ATLAS code is
883    broken. patch adds this member function to the GaudiHandleBase
884    class, and allows the users to specify an 'empty' handle in the
885    constructor (i.e. "" is kept is-as and does not trigger the setting
886    to the default type).
887 
888 ! 2007-02-26 - Sebastien Binet
889  patch #1041
890  - removes some warnings wrt hidden methods
891 
892 ! 2007-02-26 - Paolo Calafiura
893  - patch #1049: do a full include of SmartDataPtr.h instead of a
894    forward declaration.
895 
896 ================ GaudiKernel v22r1 ====================================
897 ! 2007-02-23 - Hubert Degaudenzi
898  - moved the factory declaration of DataStreamTool to GaudiSvc
899 
900 ! 2007-02-16 - Hubert Degaudenzi
901  - fixed genconf for the Auditors.
902 
903 ! 2007-02-16 Charles Leggett
904  - patch #1019: refactor of the library into a component library.
905 
906 ! 2007-02-16 - Sebastien Binet
907  Patch #1033
908  - patch to genconf which prevents it to segfault when no property
909    could be dyn-casted.
910 
911 ! 2007-02-15 - Marco Clemencic
912  Patch 1032:
913  - Added a helper class to allow the usage of IUpdateManagerSvc from
914    python.  The helper class is IUpdateManagerSvc::PythonHelper,
915    declared as friend of IUpdateManagerSvc. The implementation
916    consists of 2 static functions implemented in dictionary.h.
917 
918 ! 2007-02-14 - Pere Mato
919  - Fixed bug #23811: patch #1001 is breaking Configurables generation
920  
921 ! 2007-02-14 - Vanya BELYAEV
922  Patch #1001
923  - a) couple of fixes, which allows to retrieve the private tools not
924       only from Algorithm, Services and AlgTools, but also from
925       Auditors.
926    b) Update the queryInteface method for AlgTool,Algorithm,Auditor
927       and Servicebase classes to allow query for INamedInterface, in
928       addition "C-cast" is substituted with "static_cast"
929    The modified files: 
930        src/Lib/AlgTool.cpp
931        src/Lib/Algorithm.cpp
932        src/Lib/Auditor.cpp 
933        src/Lib/Service.cpp
934 
935 ! 2007-02-13 - Pere Mato
936  - Reverted change in Booststrap.cpp. This fixes "bug #23684: BootSvcLocator is breaking athena.py"
937  - genconf.cpp: applied "patch #1016: configurable genconf"
938                 fixed "bug #23649: ICounterSvc inheritance tree and Reflex::PluginSvc"
939  
940 ! 2007-02-08 - Pere Mato (David Quarrie)
941  - Bootstrap.cpp:
942    Introduced a dual-stage boostrap mechanism to ensure an orderly startup
943    of the ApplicationMgr. If the Gaudi::svcLocator() function is called before the singleton
944    ApplicationMgr instance exists, a BootSvcLocator singleton instance is
945    created. This responds to any subsequent requests for services by
946    returning StatusCode::FAILURE, unless the ApplicationMgr singleton 
947    instance has been created in the interim. In this case, the BootSvcLocator
948    forwards the request to the ApplicationMgr instance. The motiviation for
949    this is to handle static object instances where the constructor attempts
950    to locate services and would otherwise instantiate the ApplicationMgr
951    instance in an unorderly manner. This logic requires that the 
952    ApplicationMgr instance is created explicitly.
953 
954 
955 ! 2007-02-07 - Martin Woudstra
956  - fix to patch #1009. Avoid infinite recursion.
957 
958 ! 2007-02-05 - Pere mato (Sebastien Binet)
959  - Applied patch #1009: patches to fix XyzHandle parsing from python
960    jobOptions
961 
962 ! 2007-02-05 - Paolo Calafiura
963  Patch #1007
964  - turned the templated member functions operator << (T&) and its
965    partial spec operator << (vector<T>&) into open functions. This
966    appears to remove ambiguities a user defined MsgStream operator <<
967    template (typically in a data object header file). The compiler
968    sees the user defined template as a better specialization and
969    matches that with no ambiguity.
970  - removed the MsgStream& operator(std::ostream&) recently proposed as
971    a patch since it does not serve any useful purpose
972 
973 ! 2007-01-31 - Pere Mato
974  - Applied patch #1000: improvement in ConfigurableDb output for genconf
975 
976 ! 2007-01-30 - Pere Mato (
977  - Applied [partially] patch #997: genconf.cpp patch       
978  - It adds to genconf.cpp:
979       - a "double loading" libraries to shield against dual_use
980         libraries (which could bring lots of external
981        libraries into the generated  Configurable)
982       - the generation of an ASCII file (a-la-rootmap) to describe
983         Configurables for the benefit of the (athena)
984         PropertyProxy.py.
985 
986 ! 2007-01-27 - Pere Mato (Paolo Calafiura)
987  - Variation of the templated streamer that should provide the same
988    functionality and address the ambiguous overload problems ATLAS saw
989    with the template
990 
991 ! 2007-01-18 - Charles Leggett
992  - patch #977 on MsgStream.
993 
994 ! 2007-01-18 - Charles Leggett
995  patch #972. 
996  - add messageCount to IMessageSvc
997  - extend Auditor::(sys)afterExecute to pass a const StatusCode&,
998    which is the return code of the algorithm
999  - new auditor to monitor algorithms, issue message if algorithm
1000    writes out an ERROR or FATAL, but returns SUCCESS
1001 
1002 ! 2007-01-17 - Marco Cattaneo
1003  - removed GCCXML_CXXFLAGS definition following fix in reflex.
1004 
1005 ! 2007-01-17 - Charles Leggett
1006  - patch #971: added ServiceHandle and GaudiHandle.
1007 
1008 ================ GaudiKernel v22r0 ====================================
1009 ! 2007-01-23 - Pere Mato
1010  - AlgFactory.h, SvcFactory.h, ToolFactory.h: added template specialization for Reflex::TypeDistiller to
1011    overcome a problem with Reflex and the name given to std::string. The change can be removed when Reflex
1012    will be modified.
1013  - MsgStream.h: Corrected compilation error.
1014    
1015 ! 2007-01-12 - Marco Clemencic
1016  - fix to patch #954. Modification of the interface of IDataStreamTool
1017    to avoid explicit reference to std::vector.
1018  - added the method addStream, in parallel to addStreams.
1019 
1020 ! 2007-01-12 - Hubert Degaudenzi
1021  - bug #22799. changed the return value of chronoStart, chronoStop,
1022    chronoPrint, stat and statPrint method of the IChronoStatSvc from
1023    StatusCode to void.
1024 
1025 ! 2007-01-10 - Eric van Herwijnen
1026  - Patch #943 & #946. Update of the IMonitorSvc interface. To be
1027    compatible with the DIM format. Added declareInfo for the special
1028    case of general structure monitoring to Algorithm.h.
1029 
1030 ! 2006-12-22 - Andres Osorio & Marco Clemencic
1031  Patch #954
1032  - Moved EventSelectorDataStream from GaudiSvc to GaudiKernel
1033  - Added IDataStreamTool and the basic implementation DataStreamTool
1034    (to be used by EventSelector to loop over the files)
1035  - fixed a few StatusCode checks.
1036 
1037 ! 2006-12-21 - Pere Mato
1038  - ConversionSvc.cpp(.h): added method
1039    ConversionSvc::loadConverter(DataObject*) to load anything
1040    necessary (typically a dictionary) for finding/initializing a
1041    converter. Dummy at the base class level.
1042 
1043 ! 2006-12-18 - Pere Mato
1044  - ServiceLocatorHelper.cpp: added the code that declares the service
1045    pair type/name. It was removed by mistake ( I guess) after the
1046    merge with all the changes from ATLAS.
1047 
1048 ! 2006-12-15 - Pere Mato
1049  - VectorMap.h: removed protected find() method to avoid compilation error in
1050                 Event/HtlEvent package 
1051 
1052 ! 2006-12-14 - Hubert Degaudenzi
1053  - removed duplicated dictionary entry for InterfaceID (it is located in the
1054    GaudiPython dictionary)
1055 
1056 ! 2006-12-14 - Charles Leggett & Hubert Degaudenzi
1057  - fixed the SimpleProperty constructors for ATLAS usage (with Ivan
1058    Belyaev's help).
1059  - a few StatusCode checks fixing.
1060  - removed unused static function PR_indent in PathResolver.cpp
1061 
1062 ! 2006-12-10 - Charles Leggett
1063  - requirements: added "-pedantic" to Linux compilation in private
1064  - extra ";": AllocatorPool.h/.cpp, ChronoEntit, Debugger.h, Environment.h
1065               KeyedObject.cpp, KeyedObjectManager.h/.cpp, KeyedTraits.h
1066               Memory.h,  NTupleImplementation, NTupleItems.h, ProcessDescriptor
1067               Property.cpp, PropertyMgr.cpp, Selector.h, Stat.cpp, 
1068               StatEntity.cpp, TimePoint.h
1069  - auditors: Algorithm.h/cpp, AlgTool.h, Auditor.h/cpp, IAuditorSvc,
1070              Service.h/cpp
1071  - doc string for props: Algorithm.h, AlgTool.h, Auditor.h/cpp, Property.h/.cpp
1072  - service creation on demand: ServiceLocatorHelper.cpp, ISvcLocator
1073  - setPriority of services: ISvcManager
1074  - fire ModuleIncident when module loaded: IClassManager, 
1075         ModuleIncident.h (new)
1076  - IIncidentSvc.h: rethrow incident if requested with extra param to
1077                    addListener()
1078  - ToolHandle: GaudiHandle, ToolHandle, AlgTool::refCount, dictionary.h/.xml
1079 
1080 ! 2006-12-08 - Pere Mato
1081  - added Transform3DTypes.h, Transform4DTypes.h, Vector3DTypes.h,
1082    Vector4DTypes.h, Plane3DTypes.h, Point3DTypes.h, Point4DTypes.h,
1083    SymmetricMatrixTypes.h, Coord3DTypes.h, GenericMatrixTypes.h,
1084    GenericVectorTypes.h. These are typdefs to ROOT types.
1085 
1086 ! 2006-11-30 - Pere Mato
1087   Adpated package to the new PluginSvc
1088   - Removed protected from constructor/destructors and fiendship of
1089     Factory class
1090   - Removed files: FactoryTable.h, IAlgFactory.h, IAuditorFactory.h,
1091     ICnvFactory.h, IObjManager.h, IObjectFactory.h, IRndmGenFactory.h,
1092     ISvcFactory.h, IToolFactory.h, FactoryTable.h, ICnvManager.h
1093   - Deep changes in the XXXFactory.h files to take into account the
1094     new plugin service
1095 
1096 ! 2006-11-29 - Hubert Degaudenzi
1097  - this is the beginning of the release notes for the merge with the
1098    v20r13 release (v20r9b branch).
1099 
1100 ! 2006-11-26 - Vanya BELYAEV - patch #922
1101  - GaudiKernel/VectorMap.h
1102     1) On the request form ATLAS (Savannah reports  #21395 and #21394)
1103        add the method "update" to class GaudiUtils::VectorMap.
1104        NOTE: It is nor STL-compliant! 
1105        It behaves like "insert", but it OVERRIDES the mapped value 
1106     2) Also  "const-look-up" is added through the methods 
1107        "operator()" and "operator[]" 
1108        Again it is nto STL-complient signature: 
1109        the methdod are "const" , and there are no 
1110        "non-const" analogues 
1111 
1112      *  For typical usage of this class in LHCb context 
1113      *  as "ExtraInfo" field I would like to recommend 
1114      *  to AVOID this method 
1115  
1116     3) Add also the checked access in STL-spirit: 
1117         GaudiUtils::VectorMap::at   
1118        throw std::out_of_range exception for non-existing keys 
1119  - GaudiKernel/ToStream.h
1120     add the partial specialization for printout of following classes:  
1121      1) GaudiUtils::Map   
1122      2) GaudiUtils::HashMap   
1123      3) GaudiUtils::VectorMap
1124     The printout done in a style of "Python-dictionary", similar to 
1125      std::map 
1126     Also print out for std::set is added 
1127  - src/Lib/VectorMap.cpp
1128      new file fith implementtation of action for nonexisting key 
1129 
1130 ! 2006-11-22 - Hubert Degaudenzi
1131  - added environment variable GCCXML_CXXFLAGS=" -m32" for 32 bits
1132    compilation on amd64 machines (with the slc4-ia32 tag)
1133  - added environment variable GAUDIEXE which points to the Gaudi
1134    executable.
1135 
1136 ! 2006-11-02 - Hubert Degaudenzi
1137  - modified rootmapdump.py in order to match any file *beginning* with
1138    "rootmap" and not only the "rootmap" filename. This is the same
1139    matching behavior as the one in ROOT itself.
1140 
1141 ! 2006-10-27 - Ivan Belyaev
1142  - patch #870. Added operator << for StatusCode.
1143 
1144 ! 2006-10-26 - Marco Clemencic
1145  - Patch #736. Improvemts to TransientFastContainer. Now it allows to
1146    use for new objects the default constructor, the copy constructor
1147    and a user specified constructor (via placement new).
1148 
1149 ! 2006-10-12 - Marco Clemencic
1150  - Patch #879. Fixed a bug in DataSvc. When retrieving an object from
1151    the transient store, it fails if the root node has not yet been
1152    loaded. I added a check on the root node for those cases and I
1153    explicitely load it if needed.
1154 
1155 ! 2006-10-06 - Marco Clemencic
1156  - Patch #863. Add the function System::setEnv to set an environment
1157    variable.  Setting the variable to "" results in removing it from
1158    the environment (same behavior on windows and linux). The parameter
1159    overwrite define the behavior in the case the variable is alredy
1160    present (0=no change, 1=overwrite).
1161 
1162 ! 2006-11-29 - Hubert Degaudenzi
1163  - this is the end of the release notes for the merge with the
1164    v20r13 release (v20r9b branch).
1165 
1166 ! 2006-11-27 - David Quarrie
1167  - fixed compilation problems for MacOS 10.4
1168 
1169 ! 2006-11-17 - Pere Mato
1170  - ISvcLocator.h: Added new function eraseService() to erase a service
1171    from the list of known services
1172  - Service.cpp: The destructor calls eraseService() to cleanup the
1173    service list
1174  - Minor corrections for StatusCode.
1175 
1176 ! 2006-11-10 - Markus Frank -Patch #908
1177  - Removed access to histogram factory.
1178  - Added storage types for online usage to CLID.h
1179  - new header HistogramBase.h to allow access to ROOT implementation
1180    of AIDA histograms.
1181 
1182 ! 2006-11-09 - Pere Mato
1183  - Added classes JobHistory, AlgorithmHistory, AlgToolHistory,
1184    DataHistory, ServiceHistory from "GaudiHistory" package such that
1185    it can be removed. The goal is to have less packages
1186    (i.e. complexity)
1187  - requirements: added pattern to generate Python configuration file
1188  - genconf.cpp: adapted to new properties
1189 
1190 ================ GaudiKernel v21r0 ====================================
1191 ! 2006-10-31 - Pere Mato
1192  - StatusCode.h(.cpp) - Reworked to avoid copying complicated objects
1193    all the time
1194 
1195 ! 2006-09-25 - Hubert Degaudenzi
1196  - added the scripts folder with the rootmapdump.py utility. This
1197    scripts allows to dump the ROOTMAPs present in the
1198    LD_LIBRARY_PATH. It can also check the duplication of entries.
1199 
1200 ! 2006-09-21 - Hubert Degaudenzi
1201  - factored out the stacktrace function from the StatusCode class to the
1202    System.cpp file.
1203 
1204 ! 2006-09-09 - Hubert Degaudenzi
1205  - added dictionary generation for ExceptionSvc, IssueLogger,
1206    StatusCodeSvc, THistSvc.
1207  - fixed compilation problem for win32 in the StatusCode.cpp file.
1208 
1209 ! 2006-09-09 - Charles Leggett & Hubert Degaudenzi
1210  - Imported new services interfaces from ATLAS: IExceptionSvc,
1211    IIssueLogger, IStatusCodeSvc, ITHistSvc.
1212  - StatusCode.h has been modified (and has now an implementation)
1213  - new IssueSeverity.cpp.
1214 
1215 ! 2006-09-09 - Vanya BELYAEV - patch #839
1216  - GaudiKernel/Grammars.h
1217      Add a method StringGrammar::matchString, which allows to 
1218      substitute all "std::isspace" symbols with the blank.
1219      It is a bit incorrect operation, but it allows 
1220      to split very long string into few lines.
1221      It is incorrect since the overall number of blank symbols 
1222      in the string is a quantity which is difficult to control.
1223      One still needs to be very careful with CR/LF symbols in the 
1224      opts-files. 
1225      This particular fix solves the problem with configuration
1226      of DataOnDemandSvc, where long string are unavoidable. 
1227      The solution  ( 'std::isspace' --> ' ' ) has been discussed with 
1228      Marco Cattaneo. We have agreed that this solution is not safe, 
1229      but it solves the particular problem. 
1230 
1231      The fix is kindly provided by Sasha Mazurov (Alexander.Mazurov@gmail.com)
1232 
1233  - GaudiKernel/Property.h 
1234     1) reshuffle the property assignment/load methods to eliminate the 
1235        duplication of actions, from now Property::load is implemented 
1236        through Property::assign. It provides a bit more coherency in 
1237        the code.
1238     2) the actual action for Property::assign and Property::load is 
1239        been released a bit, not one can load/assign either from the 
1240        property of the same type or from the valid string representation 
1241        of property of any type. Previously only StringProperty has been 
1242        allowed.
1243     3) The full template specializations of 
1244        PropertyWithValue<std::string>::toString and  
1245        PropertyWithValue<std::string>::assign are provided 
1246         - there are no "extra" confusing double quotes now in the 
1247           string printout 
1248         - the string is always parsed at assign, in particular it means
1249           that all surrounding pairs of quotes will be removed 
1250           automatically as redundant  
1251  - GaudiKernel/ToStream.h
1252       - modify a bit the implementation of Gaudi::Utils::toStream 
1253         for std::string to use single quotes if the string containt 
1254         double quotes
1255       - add the implementation of Gaudi::Utils::toStream for boolean values 
1256         to print boolean values "à la Python" as "True" or "False" 
1257       - add the implementation for float/double/long double to print them 
1258         with reasonable precision. It is important since the default 
1259         precision of ios_base is 6, which could be not enough, and 
1260         the precision of boost::lexical_cast is 
1261          std::numerical_limit<...>::digit10+1, 
1262         which is much more than we need.
1263   - GaudiKernel/Property.h, src/Lib/Property.cpp 
1264      add few useful functions to descrease the number of ugly  
1265      technical lines in some public code 
1266 
1267      namespace Gaudi { namespace Utils {
1268        bool      hasProperty ( const IProperty*  p  , const std::string& name ) ;
1269        bool      hasProperty ( const IInterface* p  , const std::string& name ) ;
1270        Property* getProperty ( const IProperty*  p  , const std::string& name ) ;
1271        Property* getProperty ( const IInterface* p  , const std::string& name ) ;
1272        bool      hasProperty 
1273        ( const std::vector<const Property*> , const std::string& name ) ;
1274        const Property* getProperty 
1275        ( const std::vector<const Property*> , const std::string& name ) ;
1276      
1277      }}
1278 
1279 ================ GaudiKernel v20r9 ====================================
1280 ! 2006-08-21 - Ivan Belyaev
1281  - patch #817. For new associatiove properties, e.g. map
1282    the implemented behaviour do not fulfill the naive expectations. E.g:
1283 
1284    A.a = { "a" : 1 , "a" : 2 , "b" : 3 , "a" : 10 } ; 
1285    A.a += { "a" : 100 , "a" : 200 };
1286 
1287    The result will be the map:
1288 
1289    { "a" : 1 , "b" = 2 } ; // "The first wins"
1290 
1291    this result is not in agreement with "naive" expectation for
1292    std::map, where "the last wins". the attached patch solves the
1293    problem, and now the behaviour of the properties is more coherent
1294    with behaviour of std::map.
1295 
1296 ! 2006-08-06 - Markus Frank
1297  - System.cpp: do not free strings after calls to strerror() or
1298    dlerror().  This is known to cause valgrind errors because libc
1299    internally allocates memory, but is the **correct** usage of these
1300    functions according to the docs. Otherwise repeated calls tend to
1301    screw up malloc.
1302  
1303 ! 2006-07-31 - Pere Mato
1304  - Changed interface IJobOptionsSvc from pointer to reference to fix
1305    bug #18581 overview: Memory leak due to changed behaviour of
1306    JobOptionsSvc
1307 
1308 ================ GaudiKernel v20r8 ====================================
1309 ! 2006-07-14 - Stefan Roiser
1310  - fixed type in dictionary for m_typeinfo member of the Property
1311    class in the xml selection file.
1312 
1313 ! 2006-07-07 - Hubert Degaudenzi
1314  - bug #17843: fixed extra semicolon and DOS end of lines.
1315 
1316 ! 2006-07-07 - Marco Clemencic
1317  - patch #748: fixed the recipient of the std::string::find method. It
1318    should not be assigned to int but to std::string::size_type since
1319    it has a different size on 64 bits plateforms.
1320 
1321 ! 2006-06-26 - Hubert Degaudenzi
1322  - bug #17739. Changed the return value of GaudiMain. Before it was always
1323    returning 0 and now it returns the StatusCode of the ApplicationMgr
1324    in the UNIX command line way.
1325       - "0" for success
1326       - "1" for failure
1327    to test it for examples one could do: 
1328      >Gaudi.exe some.opts && echo "Gaudi has succeeded"
1329 
1330 ! 2006-06-15 - Hubert Degaudenzi
1331  - Fix gcc 3.4.5 compilation problems in the new property parser. 
1332 
1333 ! 2006-06-06 - Alexander Mazurov & Ivan Belyaev
1334  - new property parser installed. It relies on the Boost::spirit
1335    lexer/parser.
1336 
1337 ! 2006-06-06 - Vanya Belyaev
1338  - fixed const problem in VectorMap.
1339 
1340 ! 2006-05-31 - Marco Clemencic
1341  - patch #730. Fixes a bug in the constructor of
1342    TransientFastContainer when it is called with an argument different
1343    from 0.
1344 
1345 ================ GaudiKernel v20r7 ====================================
1346 ! 2006-05-22 - Marco Clemencic
1347  - patch #727. Fixed a compilation problem on Win32 after using
1348    std::map instead of hash_map in GaudiUtils::HashMap.
1349 
1350 ! 2006-05-19 - Marco Clemencic
1351  - patch #725. Fixed a warning on Win32.
1352 
1353 ! 2006-05-11 - Marco Cattaneo
1354  - patch #723. Redefines the unit "pascal" to "Pa" to avoid a name
1355    clash that causes a compiler warning on on Windows in
1356    SystemOfUnits.h
1357 
1358 ! 2006-05-11 - Vanya Belyaev
1359  - added templated SmartRefVector constructor with first and last
1360    iterator pointers as arguments 
1361 
1362 ================ GaudiKernel v20r6 ====================================
1363 ! 2006-05-04 Marco Clemencic
1364  - patch #720. Added TransientFastContiner<T> (and related helper classes
1365    TransientFastContainerBase and DefaultObjectCleaner<T>).
1366    The new container does its own memory management, recycling the objects not
1367    used and not deleting them when it is cleared (just reset an internal
1368    counter).
1369 
1370 ! 2006-05-02 Hubert Degaudenzi
1371  - Added PhysicalConstants.h and SystemOfUnits.h (from CLHEP) in
1372    GaudiKernel. The constants and units are in the Gaudi::Units
1373    namespace. 
1374  - patch #715. Added boost allocator wrapper (Marco Clemencic).
1375  - patch #719. Added 2 functions to make the UpdateManagerSvc work
1376    safely in multi-thread environment. They allow to block the
1377    activities of the service while interacting with it (Marco Clemencic).
1378 
1379 ! 2006-04-20 Hubert Degaudenzi
1380  - clean up of the legacy lines of code for obsolete compiler version
1381   (before gcc 3).
1382 
1383 ! 2006-04-20 Marco Clemencic
1384  - patch #705. The default hash functions is extremely expensive for
1385    integers. This causes extremely poor performaces for the standard
1386    KeyedContainer<>. The patch introduces efficient specializations of
1387    Hash<> for int, long and long long (and unsigned).
1388 
1389 ! 2006-04-13 Charles Leggett and Hubert Degaudenzi
1390  - inserted ATLAS feature INamedInterface.
1391 
1392 ================ GaudiKernel v20r5 ====================================
1393 ! 2006-03-15
1394  - modified the returned values of the Auditors
1395    beforeExecute/afterExecute (etc) to be void instead of StatusCode::SUCCESS.
1396 
1397 ! 2006-03-09 Markus Frank
1398  - patch #691. Add support for objects in N-tuples. Note: This only works for
1399    NTuple::Item.  NTuple::Array and NTuple::Matrix is __NOT__
1400    supported for objects. If you need this functionality store an
1401    std::vector<Object*>. See GaudiExamples/POOLIO/EvtCollectionWrite
1402    for an example of the usage.
1403  - Added GaudiMain.cpp in the library.
1404 
1405 ! 2006-03-09 Markus Frank
1406  - patch #668. Fix retrieval of error string in System::getErrorString().
1407    The routine caused a core dump on linux when dl_error() returned NULL.
1408 
1409 ! 2006-02-24 Marco Clemencic
1410  - patch #678. It has been reported that MS implementation of hash_map
1411    is extremely slow. The idea is to use std::map instead (which is
1412    faster than hash_map on win!!!), while we investigate to find a
1413    better solution.
1414 
1415 ! 2006-02-23 Hubert Degaudenzi
1416  - fix compilation warnings with Gcc 3.4.4
1417 
1418 ! 2006-02-14 Ivan Belyaev
1419  - added new allocator imported from GEANT4. They should decrease the
1420    allocation time significantly. Please have a look at the
1421    GaudiExample "Allocator".
1422 
1423 ! 2006-02-06 Hubert Degaudenzi
1424  - fixed windows compilation warning (bug #14852).
1425 
1426 ================ GaudiKernel v20r4 ====================================
1427 ! 2006-01-27 Hubert Degaudenzi
1428  - corrected constructor call syntax of fstream in genconf to be
1429    compatible with Linux.
1430 
1431 ! 2006-01-26 Pere Mato
1432  - Added new program genconf to generate the python configuration file for component libraries
1433  - Fix bug #14665 overview: IID_IAlgorithm and IID_IConversionSvc Conflict
1434  - Moved some class in the dictionary of GaudiPython to the dictionary in GaudiKernel
1435  
1436 ! 2006-01-25 Marco Clemencic
1437  - Added class Gaudi::Time (based on seal::Time). Updated interfaces
1438    IDetDataSvc, IValidity and IUpdateManager in order to use the new class.
1439    Modified dictionary.h and dictionary.xml in order to produce dictionaries
1440    for Gaudi::Time.
1441 
1442 ! 2006-01-25 Hubert Degaudenzi
1443  - added IUpdateManagerSvc in the dictionary generation.
1444 
1445 ! 2006-01-19 Pere Mato
1446  - Adapted to use genreflex (Reflex from ROOT)
1447 
1448 ================ GaudiKernel v20r3 ====================================
1449 ! 2006-01-18 Hubert Degaudenzi
1450  - fixed forward declarations in GaudiKernel/IMagneticFieldSvc.h
1451 
1452 ! 2006-01-12 Pere Mato
1453  - Added std::vector<const ContainedObect*> in the dictionary
1454 
1455 ! 2006-01-10 Hubert Degaudenzi
1456  - moved the macro definitions DECLARE_XXX_FACTORY and
1457    DECLARE_NAMESPACE_XXX_FACTORY from DeclareFactoryEntries.h to their
1458    own header files where XXX are Algorithm, Auditor, Converter,
1459    Object, Service, Tool.
1460  - corrected wrong syntax in macros.
1461  - moved the remaining macros (DECLARE_XXX and DECLARE_NAMESPACE_XXX)
1462    from DeclareFactoryEntries.h to their corresponding header files.
1463 
1464 ! 2005-12-20 Hubert Degaudenzi
1465  - Commented out AIDATupleSvc.
1466 
1467 ! 2005-12-20 Marco Clemencic
1468  - Added UpdateManager interface.
1469 
1470 ! 2005-12-05  Manuel Domenech
1471  - added setCriteria method to IAIDATupleSvc interface to allow passing
1472    a preselection criteria for reading data from a tuple.
1473 
1474 ! 2005-11-15 Markus Frank
1475  - Fix problems of KeyedContainer when using keys with explicit constructors.
1476 
1477 ================ GaudiKernel v20r2 ====================================
1478 ! 2005-11-22 Pere Mato
1479  - Booststrap.h: converted Gaudi class into a Gaudi namespace
1480 
1481 ! 2005-11-22 Vanya Belyaev
1482  - Added class GaudiUtils::VectorMap (former _VctMap from Vanya) that implements associative version inspirer 
1483    from the Loki library by Andrei Alexandrescu.
1484  
1485  an associative vector
1486    inspired from Loki associative vector.
1487    Fix problems of KeyedContainer when using keys with explicit constructors.
1488 
1489 ! 2005-11-21 Markus Frank
1490  - Fix problems of KeyedContainer when using keys with explicit constructors.
1491 
1492 ! 2005-11-21 -  Pere Mato
1493   - Added new methods in IAlgorithm: isInitialized(), isFinalized() and isExecuted() (suggested by Vanya)
1494 
1495 ! 2005-11-18 -  Marco Clemencic
1496   - Added 3 classes to replace the HashTable and the hacks in stl_hash.h
1497   
1498     * GaudiUtils::Map is a simple associative container. It is implemented as a proxy 
1499       to a template class implementing the underlying container (defaulting to std::map). 
1500       It features "operator[](key) const" and "operator()(key) const". It has a virtual 
1501       destructor so that it can be extended via inheritance.
1502     * GaudiUtils::Hash is a simple hash function (based on Stroustrup's example) which 
1503       correctly handle pointers, std::string and char*. It is portable between Linux and Windows.
1504     * GaudiYUtils::HashMap is a Map which uses internally a hash_map. The differences 
1505       between gcc and VC7 are taken into account in order avoid users having to put "#ifdef"s.
1506 
1507 ! 2005-11-09 - Chris Jones
1508  - Change output level data member in Algorithms and AlgTools from int
1509    to IntegerProperty, and add a non-const access method for this
1510    property. Allows uses to attach callback handle methods to this
1511    property (Such as in GaudiAlg) to allow them to react as needed
1512    to changes in the output levels. Needed in GaudiAlg to force the
1513    creation of a new cached MsgStream object.
1514 
1515 ================ GaudiKernel v20r1 ====================================
1516 ! 2005-11-03 Pere Mato
1517  - added the changes to dictionary.xml delection file. Removed the dictionary_rflx.xml file.
1518 
1519 ! 2005-10-13 Hubert Degaudenzi
1520  - removed obsolete files GaudiKernel/KeyedDictionary.h and
1521    GaudiKernel/SealDictonary.h.
1522 
1523 ! 2005-10-10 Hubert Degaudenzi
1524  - added the transient state to the refCount and hasKey Methods of
1525    KeyedObject in the dictionary_rflx.xml selection file (Markus Frank).
1526 
1527 ================ GaudiKernel v20r0 ====================================
1528 ! 2005-09-12  Pere Mato
1529  - MsgStream.h: removed special stream function for StatusCode. It did
1530    not help on WIN32
1531  - GaudiException.h: added explicit call to accessor of StatusCode to
1532    unsigned long code
1533 
1534 ! 2005-08-05  Hubert Degaudenzi
1535  - added "long long" format in the instantiation of SimpleProperty and
1536    SimplePropertyRef templates.
1537 
1538 ! 2005-08-05  Hubert Degaudenzi
1539  - applied patch #502. Minor polishing of Stat and StatEntity classes
1540    to improve their functionality (in absolutely backward compatible
1541    way). From now the usage of StatEntyty in 'standalone' mode is
1542    greatly simplified (previously it has been tightly coupled to
1543    Chrono&Stat Service, and "public" interface was ugly). The
1544    functionality of Stat class is also improved (Vanya).
1545 
1546 ! 2005-07-25 - Hubert Degaudenzi
1547  - fixed bug #9475. Missing #include <stdexcept> (Mattias Ellert).
1548 
1549 ! 2005-07-25 - Hubert Degaudenzi
1550  - fixed bug #9474. fixed bad friend declaration. According to the C++
1551    standard typedef'ed typenames may not be declared friends. (Mattias
1552    Ellert). 
1553 
1554 ! 2005-07-25 - Hubert Degaudenzi
1555  - fixed bug #9468. Missing typname keyword within templates (Mattias Ellert). 
1556 
1557 ! 2005-07-21 - Hubert Degaudenzi
1558  - fixed bug #9467 
1559 
1560 ! 2005-07-21  Markus Frank
1561  - patch #445. Move basic dictionaries from GaudiPoolDb to GaudiKernel
1562    gccxml inputs in new subdirectory dict
1563    output id a dictionary DLL called "GaudiKernelDict"
1564    Reflex dictionary produced in parallel: "GaudiKernelRflxDict"
1565  - Fix inline bug in SmartDataPtr (function was never instantiated,
1566    hence problem did not appear)
1567  - Fix data member access in RndmGenerators.h
1568 
1569 ! 2005-07-21 Hubert Degaudenzi
1570  - patch #476. Compilation of some Reflex dictionaries currently
1571    fails. I'd need an overload for the MsgStream::operator << for
1572    StatusCode to cure this. The attached patch is one proposal how it
1573    could be done (Stefan Roiser).
1574 
1575 ! 2005-07-18  Hubert Degaudenzi
1576  - fixed bug #9466. extra semicolon (Mattias Ellert).   
1577 
1578 ! 2005-07-15  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
1579  - fixed bug #9476. Missing keyword "class". (Mattias Ellert)
1580 
1581 ================ GaudiKernel v19r3 ====================================
1582 ! 2005-07-13  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
1583  - fixed bug #9479
1584 
1585 ! 2005-05-10  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
1586  - modifications for the new service StagerSvc. Added IStagerSvc and a
1587    new incident "EndStream" that will trigger the end of the
1588    processing of one file. 
1589 
1590 ================ GaudiKernel v19r2 ====================================
1591 ! 2005-05-10  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
1592  - added path access to SmartRef (Marco Clemencic)
1593 
1594 ! 2005-04-22  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
1595  - GaudiKernel/IValidity.h (IValidity): added some const qualifiers 
1596    to function members of the IValidity class (Marco Clemencic).
1597 
1598 ================ GaudiKernel v19r1 ====================================
1599 
1600 ! 2005-04-14 - Eric VAN HERWIJNEN 
1601  - modification of the IMonitor.h interface
1602 
1603 
1604 ! 2005-04-14 - Hubert Degaudenzi
1605  - removed the following interface files:
1606         
1607   GaudiKernel/IDetectorElement.h 
1608   GaudiKernel/IGeometryInfo.h
1609   GaudiKernel/ILVolume.h
1610   GaudiKernel/IPVolume.h
1611   GaudiKernel/ISolid.h
1612   GaudiKernel/ITransportSvc.h
1613 
1614 
1615 ================ GaudiKernel v19r0 ====================================
1616 ! 2005-03-02 - Markus Frank
1617  - Obsolete interface call: StatusCode IAlgManager::declareAlgModule
1618  - New interface call:      StatusCode IAlgManager::getFactory(const std::string& alg_type, IAlgFactory*& fac);
1619  - Obsolete interface call: StatusCode ISvcManager::declareSvcCreator
1620  - Obsolete interface call: StatusCode ISvcManager::declareSvcModule
1621  - New interface call:      StatusCode ISvcManager::getFactory(const std::string& svc_type, ISvcFactory*& fac);
1622  
1623 ================ GaudiKernel v18r3 ====================================
1624 ! 2005-02-25 - Pere Mato
1625  - System.cpp: applied patch to overcome CXXABI problem (merge from v17r1)
1626  
1627 ! 2005-02-24 - Manuel Domenech
1628 - Added the interface IAIDATupleSvc.h for the AIDA-based tuple service.
1629 - ClassID, Algorithm.h and lib/Algorithm.cpp: added declarations for the AIDATupleSvc.
1630 
1631 ================GaudiKernel v18r2=====================================
1632 ! 2005-02-15 - Markus Frank
1633  - SealDictionary.h - fix for SmartRefDict. 
1634 
1635 ! 2005-02-11 - Pere Mato
1636  - Algorithm.cpp: removed the name extensions such as  ".sysInitialize()", ".sysExecute()" 
1637    and ".sysFinalize()" in the messages generated by the base class.
1638    It makes it simple to control over the threshold messages from algorithm. (suggested by Vanya)
1639 
1640 ! 2005-02-02 - Pere Mato
1641  - System.cpp(typeinfoName):  removed extra spaces between types and "*" and "&"
1642 
1643 ================GaudiKernel v18r1=====================================
1644 ! 2005-01-19 - Pere Mato
1645  - DataObject.h(.cpp) Added copy constructor. Problem reported by Mikhail Kirsanov (HARP)
1646  - IMagneticFieldSvc.h: Changed forward declarations for CLHEP classes.
1647 
1648 ================GaudiKernel v18r0=====================================
1649 ! 2004-12-10 - Markus Frank
1650  - GaudiKernel/IDataProviderSvc.h
1651    Update doc for unregisterObj entries, which was uncorrect.
1652 
1653 ! 2005-01-12 - Pere Mato
1654  - IHistogramSvc.h: Added profile histograms
1655  - ClassId.h: Added profile histograms CLID's
1656 
1657 ! 2005-01-11 - Pere Mato
1658  - Changed IEventProcessor interface to add stopRun() method
1659  - Changed System.cpp to load dynamic libraries with RTLD_GLOBAL flag and commented out
1660    the special typo_info implementation
1661  
1662 ! 2004-12-10 - Pere Mato
1663  - Added interface IMonitorSvc.h (from Gaucho)
1664  - Algorithm.h,.cpp: Added new method declateInfo(...) to declare monitoring variables
1665  
1666 ! 2004-12-06 - Markus Frank
1667  - SealDictionary.h
1668    Make use of ReflectionBuilder/CollectionProxy.h
1669    for new container handling using ROOT CollectionProxy mechanism.
1670  - Service.cpp:
1671    Inhibit printing of services before the properties are properly
1672    set. Until the properties are set, each service inherits the
1673    output level of the message service.
1674    This was apparently screwed with the invention of the
1675    OutputLevel update handler for services.
1676    This removes the "ignored" global printout level of the
1677    sub-eventselector instances when opening new files.
1678 
1679 ! 2004-09-13 - Markus Frank
1680  - Protection in KeyedContainer::configureDirectAccess()
1681    To protect against reading NULL pointers - a problem
1682    reported by M.Cattaneo.
1683 
1684 ! 2004-10-27 - Pere Mato
1685  - Changed order of finalization of Algorithm/Sub-algorithms
1686    bug #3903 overview: finalize and nested algorithms
1687    
1688 ================GaudiKernel v17r0=====================================
1689 ! 2004-10-25 - Pere Mato
1690  - Algorithm.cpp: added setFinalized() at the end of of the finalization to avoid doing it
1691                   more than once.
1692  - Service.cpp: added protection on accessor msgSvc() for the MessageSvc itself.
1693  - Changed IAlgManager interface. 
1694    - Added initializeAlgorithms() and finalizeAlgorithms()
1695    - Removed declareAlgCreator()
1696    - Added optional argument to createAlgorithm() to tell if the Algorithm should be managed
1697  - Removed PathResolver.h,cpp because of compilation problems on Windows
1698  
1699 ! 2004-08-10 - Charles Leggett
1700  - new class ServiceLocatorHelper used to implement service methods
1701    in Algorithm.(h,cpp), Service.(h,cpp), AlgTool.(h,cpp), Converter.(h,cpp)
1702  - ISvcLocator.h:  new method service<T>(type, name, T*, bool) to 
1703     create/retrieve a non-default instance of a service
1704 
1705 ! 2004-08-10 - Charles Leggett
1706  - PathResolver.h,cpp: added
1707  - Service.(h,cpp): callback for output level
1708 
1709 ================GaudiKernel v16r2=====================================
1710 
1711 ! 2004-08-03 - Vanya BELYAEV
1712  - GaudiKernel/ParticleProperty.h
1713    Two methods for particle<-->antiparticle relations 
1714        const ParticleProeprty* antiParticle() const ;
1715        void setAntiParticle( const PArticleProeprty* ) ;
1716  - GaudiKernel/ChronoEntity.h, GaudiKernel/StatEntity.h
1717    src/Lib/ChronoEntity.cpp,   src/Lib/StatEntity.cpp
1718    Files are moved from GaudiSvc package to allow run-time 
1719    public inspection of Chrono & Stat counters 
1720  - GaudiKernel/IChronostatSvc.h 
1721    Two method are added to allow run-time publc inspection of
1722    Chrono & Stat counters: 
1723      const ChronoEntity* chrono ( const ChronoTag& tag ) const ;
1724      const StatEntity*   stat   ( const StatTag&   tag ) const ;
1725  
1726 ================GaudiKernel v16r1=====================================
1727 ! 2004-07-22 - Pere Mato
1728   - DataObject.h: Added ostream operator << . In this way we can output DataObjects using ostream or MsgStream. This was
1729                   already possible with ContainedObjects.
1730 ! 2004-07-20 - Pere Mato
1731   - KeyedDictionary.h: Reverted typo removal in KeyedContainer<> class name. Otherwise the existing files are not
1732     readable.
1733   - Incicent.h: Added doxygen comments (from Chris Jones)
1734   - Property.h/MsgStream.h: added more specialized templates for handling MsgStream operator << and 
1735     stream operator << for ArrayProperties and vector<T>. This should avoid compilation errors
1736     detected by Marco.
1737     
1738 ! 2004-07-19 - Pere Mato
1739   - System.h/cpp: added implementation for Windows
1740   - MsgStream: replaced a bunch MsgStream& operator <<(MsgStream&,...) by a templated one
1741     MsgStream& operator <<(MsgStream&,T) to handle any type for which the standard
1742     ostream& operator << (stream&, T) exists.
1743   - Property.h: added standard ostream& operator <<(ostream&,SimpleProperty<T>)
1744 
1745 ================GaudiKernel v16r0p1=====================================
1746 ! 2004-07-16 - Charles Leggett
1747   - DataObject.h: addeed refCount() method
1748   - System.h/cpp: added methods to get env vars and system parameters
1749 
1750 ================GaudiKernel v16r0=======================================
1751 ! 2004-07-13 - Charles Leggett
1752   - Additions for History Objects: HistoryObj.*, IHistorySvc.h, IAlgContextSvc.h
1753 
1754 ! 2004-07-13 - Pere Mato
1755   - ParticleProperty.h: added pdgID() and setPdgID() as alises to jetsetID() and setJetsetID()
1756   - Property.cpp: added template specialization to support string booleans in setProperty()
1757                   ("false", "true", "False", "True", ...)
1758                   
1759 ! 2004-26-06 - Markus Frank
1760   - Small update in SmartIF.h to get a cleaner API
1761   - New interface: IPartitionControl
1762     Generic interface to manipulate services with several
1763     encapsulated instances "Partitions"
1764   - New Interface: ICounterSvc
1765     Interface to manage/create/access counters and groups of counters
1766 
1767 ! 2004-07-02 - Pere Mato
1768   - IInterface.h    Removed IID typedef to finally avoid clashes with windows.h
1769 
1770 ! 2004-15-05 - Markus Frank
1771   - DataSvc.h/cpp     Let the DataSvc connect to the incident service
1772                       - Generate incident on persistent data access
1773                         Enable using        DataSvc.EnableAccessHandler = 1;
1774                         Set incident name:  DataSvc.DataAccessName = "EventDataAccess";
1775                       - Generate incident on data fault:
1776                         Enable using        DataSvc.EnableFaultHandler = 1;
1777                         Set incident name:  DataSvc.DataFaultName = "EventDataAccess";
1778 
1779 ! 2004-01-05 - Markus Frank
1780   - IEvtSelector.h    New upgraded interface from C.Cioffi - NOT backwards compatible
1781   - Environment.h/cpp New header file extending the System namespace to handle
1782                       standard environment manipulations
1783   - Tokenizer.h/cpp   Allow for environment resolution in token values - if requested.
1784                       Default is backwards compatible
1785 
1786 ================GaudiKernel v15r4=======================================
1787 ! 2004-04-22 - Vanya Belyaev
1788   - Added changes from Vanya to fix the problems reported by Matt on output level for AlgTools
1789 
1790 ================GaudiKernel v15r3=======================================
1791 ! 2004-04-19 - Markus Frank
1792  - KeyedContainer.h: Modified erase() method to use a temporary vector to improve performance.
1793    Tested by Chris Parkes: The new keyed container code  
1794      VeloSim:execute  238ms/event
1795    to be compared with the old timing
1796      VeloSim:execute  638ms/event - old code, using original keyed container
1797  
1798 ================GaudiKernel v15r2=======================================
1799 ! 2004-03-04 - Gloria Corti
1800  - IParticlePropertySvc.h: Changed interface to add the Pythia ID
1801  - ParticleProperty.h: Changed to Pythia ID in constructor and remove obsolete 
1802                        accessors.
1803 
1804 ================GaudiKernel v15r1=======================================
1805 ! 2004-01-23 - Markus Frank
1806  - SmartRef.h/SmartRefbase.h  Replaced inheritance by object embedding. This change
1807                               is neded to optimize CPU for persistency based on POOL.
1808                                  
1809 ! 2004-01-20 - Vanya BELYAEV  
1810  - Algorithm.h  1) add protected accessor to m_outputLevel field 
1811                 2) add shortcuts evtSvc() and svcLoc() 
1812                 3) resurrect default(empty) Algorithm::initialize() 
1813                    and Algorithm::finalize() methods
1814                 4) split 'long' lines to please LHCb-flavour Emacs 
1815  - AlgTool.h    1) add protected accessor to m_outputLevel field 
1816                 2) add shortcut svcLoc() to serviceLocator() method 
1817                 3) split 'long' lines to please LHCb-flavour Emacs 
1818   
1819 ================GaudiKernel v15r0=======================================
1820 ! 2004-01-08 - Werner Wiedenmann
1821  - System.h:        use gaudi "__linux" #define rather than LINUX
1822  - class AlgTool:   same MT-naming treatment as for Algorithm andService (use service_i)
1823  - ThreadGaudi.cpp: deal with AlgTool parents name
1824  - Converter.cpp:   get thread name from conversion svc
1825 
1826 ! 2004-01-08 - Vanya Belyaev
1827  - IJobOptionsSvc interface has been modified to add new method (readOptions(...)) to be
1828    ab;e to read additional option files.
1829 
1830 ! 2003-12-12 - Markus Frank
1831  - Added Keyed container as intrinisc Gaudi container object for Keyed objects
1832  - Added POOL storage types to ClassID.h
1833 
1834 ! 2003-12-12 - Markus Frank
1835  - Added Keyed container as intrinisc Gaudi container object for Keyed objects
1836  - Added POOL storage types to ClassID.h
1837 
1838 ! 2003-12-09 - Markus Frank
1839  - A bunch og changes in preparation to the integration with SEAL/POOL
1840  - Added dependency with SEAL
1841  
1842 
1843 ================GaudiKernel v14r2=======================================
1844 ! 2003-12-03 - Grigori Rybkine
1845  - Added using AIDA::<ClassName> to allow use of AIDA in applications
1846    without prefix AIDA:: (as before)
1847 
1848 ! 2003-11-26 - Pere Mato
1849  - Adapted to new version of AIDA (namespaces)
1850  - Replaced macro WIN32 by _WIN32
1851  
1852 ================GaudiKernel v14r1=======================================
1853 ! 2003-11-25 - Pere Mato
1854  - Modifications for Mac OSX (Guy Barrand)
1855 
1856 ! 2003-11-25 - Pere Mato
1857  - Added GaudiKernel/stl_hash.h to provide hash maps and sets
1858 
1859 ! 2003-11-20 - Pere Mato
1860  - Added IncidentTypes namespace with incident type names
1861    [ Bug #1085 ] 'Standard' incidents
1862 
1863 ================GaudiKernel v14r0=======================================
1864 ! 2003-07-03 - Markus Frank
1865   Major upgrade for use of POOL. Main change: extend technology specifier to
1866   int from unsigned char. Please note, that the changed interfaces are NOT BACKWARDS
1867   compatible. In particular in the converter area concrete user classes must 
1868   support integer technology types. To create a compiler error, the converter 
1869   base class does no longer have the method repSvcType().
1870 
1871   ModuleInfo.cpp        Remove signed/unsigned warning
1872   MsgStream.h           Added missing header file
1873 
1874   DataObject.cpp
1875   LinkManager.cpp/h     Dynamic link manager creation for POOL
1876 
1877   ClassID.h
1878   CnvFactory.h
1879   ConversionSvc.h
1880   Converter.cpp/h
1881   GenericAddress.h
1882   IAddressCreator.h
1883   ICnvFactory.h
1884   ICnvManager.h
1885   IConverter.h
1886   IOpaqueAddress.h
1887   IPersistencySvc.h      Integer technology types
1888 
1889   NTuple.h
1890   SmartRef.h
1891   SmartRefBase.cpp/h     Extend and allow customization for the usage in POOL
1892 
1893 ================GaudiKernel v13r5=====================================
1894 ! 2003-07-03 - Pere Mato
1895  - MsgStream.h: added op << for std::vector
1896 
1897 ! 2003-06-25 - Paolo Calafiura, Pere Mato
1898  - SmartDataObjectPtr: added const in operator = argument
1899  - Algorithm.cpp, Converter.cpp, Service.cpp: Fixed service_i() [ Bug #927 ] 
1900 
1901 ================GaudiKernel v13r4p1=====================================
1902 ! 2003-06-26 - Pere Mato
1903  - System.cpp: removed white spaces in System::typeinfoName() for templated classes with more than one argument.
1904  
1905 ================GaudiKernel v13r4=====================================
1906 
1907 ! 2003-05-07 - Paolo Calafiura
1908  - Algorithm.cpp: sysExecute returns immediately if isEnabled() false
1909 
1910 ! 2003-05-06 - Paolo Calafiura for RD Schaffer
1911  - IAddressCreator.h and ConversionSvc: new creatAddress from string interface
1912   
1913 ! 2003-04-29 - Sebastien Ponce
1914  - solution to the gcc 3.2 dynamic_cast problem. For deeeeeep explanations
1915    of both the problem and the solution, see doc/dynamic_cast.pb
1916 
1917 ! 2003-04-18 - Paolo Calafiura
1918  - DataSvc.cpp: protect registerObject against null DataObj pointer (fail)
1919   
1920 ! 2003-04-15 - Paolo Calafiura
1921  - NTupleImplementation.cpp: delete m_buffer mismatched with array new in
1922    RootHistCnv::RCWNTupleCnv::book
1923  - System.cpp: fix memory leak in getErrorString
1924 
1925 ! 2003-04-10 - Marco Cattaneo
1926  - RndmGenerators.cpp: Fix a memory leak at finalisation
1927 
1928 ! 3002-04-04 - Pere Mato 
1929  - Updated IAddressCreator interface with two convert IOpaqueAddresses to
1930    string format and vise versa (proposal by RD Shaffer)
1931    virtual StatusCode convertAddress( const IOpaqueAddress* pAddress,
1932                                       std::string& refAddress) = 0;
1933    virtual StatusCode createAddress( const std::string& refAddress,
1934                                      IOpaqueAddress*& refpAddress) = 0;
1935                                     
1936 ! 2003-04-01 - Sebastien PONCE
1937  - some coding convention applications
1938  - bug fix in PropertyMgr concerning the output of property names
1939 
1940 ! 2003-03-13 - Paolo Calafiura
1941 - moved pthread handle and "_self" call to System.h
1942 
1943 ! 2003-03-11 - Paolo Calafiura
1944 - MsgStream: define MSG::hex and MSG::dec for gcc 3.2
1945 - rename ThreadLibGaudi.h as ThreadGaudi.h
1946 
1947 ! 2003-02-27 - Charles Leggett & Paolo Calafiura
1948 - IMessageSvc: added two new abstract methods useColor and
1949   getLogColor (all existing MsgServices needs updating!).
1950   Added MSG::Color enum
1951 - MsgStream: support colored messages
1952 
1953 - changes to Converter service method (see Algorithm and Service
1954   below). TO DO: extract common service_i implementation
1955 
1956 
1957 ! 2003-02-25 - Werner Wiedenmann & Paolo Calafiura
1958  - add ThreadLibGaudi.{h,cpp}: utilities to get and parse thread
1959    instance names 
1960  - changes to Service and Algorithm:
1961          - service method asks first for thread specific service
1962            instance, if not available get generic service instance
1963          - allow for setting of thread specific and generic properties
1964          - create thread specific sub-Algorithms automatically
1965 
1966 ! 2003-01-21 - Markus Frank
1967   - Add second connectOutput call to conversion service interface.
1968     Second argument allows to specify the opening mode 
1969     (NEW, RECREATE, UPDATE)
1970   - DataTypeInfo: add 2 new types: LONG_STRING, LONG_NTCHAR
1971   - (I)SelectStatement: Allow for more generic selects than
1972     only FUNCTION and STRING
1973     
1974 ! 2003-01-06 - Sebastien Ponce
1975  - improvements in support for gcc 3.2
1976 
1977 ================GaudiKernel v13r3=====================================
1978 ! 2002-11-21 - Sebastien Ponce
1979  - fixes in Converter.cpp to avoid memory leaks
1980 
1981 ! 2002-11-19 - Pere Mato
1982  - Added setExecuted() after execute() in Algorithm::sysExecute(). Requested by
1983    Vanya.
1984 
1985 ================GaudiKernel v13r2=====================================
1986 ! 2002-11-06 - Sebastien Ponce
1987  - fixes in order to remove deprecated warnings on gcc 3.2
1988  - coding conventions applications
1989 
1990 ! 2002-11-11 - Markus Frank
1991  - Timing.cpp: Use routine ::gettimeofday(...) to measure current time.
1992    This improves the precision of several timing measurements 
1993    (current time, elapsed time) to 1 micro second.
1994    The change affects linux only.
1995  
1996 ! 2002-11-08 - Markus Frank
1997  - Move CLID for N-tuples into ClassID.h
1998  - Fix bug in ISvcLocator.h: If service initialization failed, status was still OK.
1999 
2000 ! 2002-11-06 - Markus Frank
2001  - DeclareObjectFactory.h - add declarations for containedobject factories 
2002    and dataobject factories.
2003 
2004 ================GaudiKernel v13r1=====================================
2005 ! 2002-10-21 - Pere Mato
2006  - IRegistry.h - the typedefs in this class are now public.
2007 
2008 ! 2002-10-21 - Sebastien Ponce
2009  - Bug fix in StreamBuffer for deserialization of char*
2010 
2011 ! 2002-10-11 - Paolo Calafiura
2012  - Added protection in ConversionService::setDataProvider: since ATLAS use 
2013    StoreGate and pass a NULL pDataSvc pointer.
2014 
2015 ================GaudiKernel v13r0=====================================
2016 ! 2002-10-04 - Pere Mato
2017  - Changed interface IJobOptionsSvc to add accessors to the JobOptions 
2018    catalogue
2019    
2020 ! 2002-09-27 - Sebastien Ponce
2021  - fixes in order to compile on gcc 3.2
2022  - lots of coding conventions applications
2023 
2024 ! 2002-09-25 - Markus Frank
2025  - Add declarations for object factories to DeclareFactoryEntries.h
2026  - Remove windows compiler warning in Bootstrap.cpp
2027 
2028 ! 2002-09-25 - Sebastien Ponce
2029  - Implementation of the reinitialize method for DataSvc
2030 
2031 ! 20020916 Pere Mato
2032  - Changes to clean the reference counting and memory deallocation
2033    detected by the "valgrind" tool.
2034 
2035 ! 20020703 Paolo Calafiura
2036  - RegistryEntry.h: put DataSvc in the global ns when declaring as friend
2037  - Service.h: add ISvcLocator include for service() inline implementation        
2038 
2039 ! 20020628 Pere Mato, Sebastien Ponce
2040  - Improved error reporting when loading dynamic libraries
2041  - Changed INFO messages to DEBUG when initializing services
2042  - Replaced forward class declarations by including the concerned header files. This
2043    is to aliviate user confusion.
2044  - Added function format(string fmt, ...) that can be used to format messages
2045    within the MsgStream class.
2046    Example: 
2047    log << MSG::INFO << format("Evt: %8d Run: %8d", evt, run) << endmsg;
2048          Caveat: Since the unspecified argument list is used (...) the arguments can not
2049          be cheched for the correct type and possible conversions are not triggered. 
2050 
2051 ! 20020529 Paolo Calafiura
2052  - Auditor.h: service() needs IServiceLocator header file
2053  - DeclareFactoryEntries.h: typo in AudFactory name
2054  
2055 ! 20020506 Paolo Calafiura
2056  - PropertyMgr: use interface hub (Massimo ApplicationMgr refactoring)
2057 
2058 ! 20020506 Andrea Valassi
2059  - Change in MsgStream.h to allow the use of std::hex on Windows
2060  
2061 ================v12r2=====================================
2062 ! 20020506 Pere Mato
2063  - Bug fix in AlgTool.cpp. Pointer to ToolSvc not initialized
2064    (Reported by O. Callot)
2065 
2066 ! 20020502 Pere Mato
2067  - Bug fix in base classes Service and Converter. The accessor msgsvc() shpould 
2068    returns always a valid MessageSvc (Reported by RD Schaffer)
2069  - Added templated function service() in Converter base class.
2070  - Bug fix in Service.cpp. The finalize method access violates if called before
2071    initialize (Reported by Wim Lavrijsen)
2072 
2073 ================v12r1=====================================
2074 ! 20020426 Markus Frank
2075   - Bug fix in DataSvc, which inhibited automatic directory
2076     generation if intermediate leafs were present.
2077 
2078 ================v12r0=====================================
2079 ! 20020408 Pere Mato
2080   - Included ISvcLocator.h and IMessageSvc.h in Algorithm.h instead
2081     of the existing forward declaration
2082 
2083 ! 20020405 Pere Mato
2084   - Added two new accessors to AlgTool base class
2085     templated  service( name, svc, createif) to access any service
2086                 tooSvc() to access the tool service
2087 
2088 ! 20020327 Pere Mato
2089   - Changes needed for Solaris (by Wim Lavrijsen). Details:
2090     +++ GaudiKernel/src/Lib/Property.cpp
2091        getQuotedItem() in unnamed namespace instead of static
2092     +++ GaudiKernel/src/Lib/ModuleInfo.cpp
2093        explicit cast added: "if ( 0 != ::dladdr((void*)System::moduleHandle,...
2094     +++ GaudiKernel/src/Lib/System.cpp
2095        in System::typeinfoName(), added a #elif defined(sun)
2096     +++ GaudiKernel/CnvFactory.h
2097        removed virtual inheritence in class CnvFactory & CnvFactory2 
2098     +++ GaudiKernel/ObjectFactory.h
2099        removed virtual inheritence in class ObjectFactory & ObjectFactory2 
2100 
2101 ! 20020315 Markus Frank
2102   - Kernel.h
2103     Properly #ifdef LONGLONG_MAX, LONGLONG_MIN
2104   - MsgStream.h
2105     Add operator<<(longlong), operator>>(longlong&)
2106   - StreamBuffer.h
2107     Add serialization for std::vector, std::list
2108     Add operator<<(longlong), operator>>(longlong&)
2109   - Converter.cpp
2110     Do not dereference dataProvider if pointer is invalid
2111   - TimePoint.h
2112     Add StreamBuffer& operator<<(), StreamBuffer& operator>>(), 
2113     MsgStream& operator<<()
2114   - TimePoint.h
2115     Add MsgStream& operator<<()
2116   - ITime.h
2117     Add MsgStream& operator<<()
2118 
2119 ! 20020213 - Markus Frank
2120   - Added clear() method to ObjectVector<T> and ObjectList<T>
2121     clear() removes all elements from the ObjectVector and  ObjectList<T>
2122 
2123 ! 20020215 Pere Mato
2124   - Removed dependency with AIDA
2125   - Eliminated the old IHistogramXXX interfaces. Users should use the 
2126     AIDA ones directly
2127   - Changed ClassId.h and IHistogramSvc.h to include 3D histograms
2128   
2129 ! 20020225 Markus Frank
2130   - Problem reported by Kambiz Mahboubi fixed concerning the
2131     user defined random number generator (i.e. DefinedPdf)
2132   - GaudiKernel/RndmGenerators.h
2133 
2134 ! 20020213 - Pere Mato
2135   - Algorithm.cpp: Fixed bug 
2136     The status code of sysInitilize() of sub-algorithms was not 
2137     checked. Now it should fail and report an error.
2138     
2139 ================v11r1=====================================
2140 ! 20020128 - Markus Frank
2141   - DataObejct.cpp: Fixed bug 
2142     Automatically create leaves on registerAddress if the
2143     Option "ForceLeaves" is set to true
2144   - SmartRefs.cpp:
2145     Fixed Feature: For smart refs to ContainedObject(s), resolve
2146     parent pointer only when needed.
2147   - ConversionSvc.cpp:
2148     Bug fix: Converters were never finalized. Done from now on, whenever the
2149     converter gets disconnected from the conversion service.
2150     
2151 ================v11r0=====================================
2152 ! 20011212 - Pere Mato
2153   - Added dependency to AIDA requested by David Quarrie
2154 
2155 ! 20011207 - Sebastien Ponce
2156   - Changed interface IConversionSvc.h. Added method converter(const CLID&) to get
2157     the converter with that CLID.
2158 
2159 ! 20011126 - Markus Frank
2160   - MsgStream.cpp
2161     Any change of the printout level from the application program
2162     using MsgStream::setLevel(...) is ignored by the message service. 
2163     Update the local printout level on a by message bases and restore
2164     the previous printout level.
2165 
2166 ! 20011120 - Markus Frank
2167   - NTuple.h
2168     the function entries addItem(...) are DEPRECATED for
2169     Ntuple columns, which depend on an index column.
2170     The replacement is: addIndexedItem(...).
2171     This has repeatedly caused confusion for users.
2172     Also added doxygen information for these entries.
2173 
2174 ! 20011115 - Pere Mato
2175   - Added initialize() and finalize() methods in IAlgTool interface.
2176   - The base class AlgTool implemements them as dummy but allows an implementation
2177     of  them on specific Algorithm Tools
2178   - Removed the need to implement a queryInterface() in specific Algorithm tools. Instead
2179     use the expresion declareInterface<Ixxxx>(this) in the constructor.  
2180   - Added releaseTool() method in IToolSvc.
2181  
2182 ! 20011111 - Pere Mato
2183   - Many Changes from Markus for the DataStore classes re-design.
2184 
2185 ! 20011108 - Pere Mato
2186   New versions of interfaces:
2187   - ISvcManager.h (incompatible) Added more functionality to offload ApplicationMgr
2188   - ISvsLocator.h (compatible) Changed getServices() to const
2189   
2190 ! 20011105 - Sebastien Ponce
2191   Added new methods in DataSvc to be able to set the root without clearing
2192   the store
2193 
2194 ! 20011009 - Pere Mato
2195   Removed CLID_Event from ClassID.h to avoid clashes with Event.h generated from
2196   GaudiObjDesc tools
2197 
2198 ! 20011005 - Pere Mato
2199   Changed IInterface.h Introduced a new constructor for InterfaceID that
2200   uses a name (class name) instead of the interface number. A hash
2201   function converts the name into a number.
2202 
2203 ! 20011003 - Pere Mato
2204   Changed SmartDataLocator.h reported by David Rousseau
2205 
2206 ! 20010914 - Pere Mato
2207   Modified ClassID.h to include CondDB stuff
2208   Solved bug in DataSvc.cpp reported by Andrea Valassi
2209 
2210 ! 20010710 - Pere Mato
2211   Removed interfaces IGiGaSvc.h and IGiGaSetUpSvc.h
2212 
2213 ! 20010706 - David Quarrie
2214   Extend IChronoStatSvc to support retrieving the delta-time between
2215   start/stop pairs.
2216 
2217 ! 20010629 - Pere Mato
2218   Changes in interfaces needed for improved interactivity support :
2219   IService.h   : Added new method reinitialize() to allow services to 
2220                  take into account changes after the first time initialization
2221   IAlgorithm.h : Added beginRun() and endRun() methods. These are called each time
2222                  the event loop is executed.
2223   IEventProcessor.h : Added executeRun() and nextEvent() methods. This is to 
2224                       eliminate the need to use the IAppMgrUI interface in the
2225                       EventLoopMgr components.
2226   IAppMgrUI.h  : Renamed method state() to stateName().
2227   IScriptingSvc.h : Deleted
2228 
2229 ! 20010627 - Markus Frank
2230   Bootstrap.h/cpp : Allow to set the instance of the service locator
2231                     in case several ApplicationMgr instances are present.
2232   ObjectVector.h,
2233   ObjectList.h    : Add forward typedefs for pointer and const_pointer
2234                     (Requested by P.Calafiura/LBL)
2235   RefTable.h      : Implement serialize methods
2236   RegistryEntry.h/cpp,
2237   DataSvc.h/cpp   : Implement several bug-fixes
2238                      - allow for objects in locations like /AA/BB/BB/BB/...
2239                      - allow to access objects with omission of the root
2240                        directory: "/Event/MC" is equivalent to "MC"
2241                      - execution optimization
2242   SmartDataObjectPtr.h : Fix annoying compiler warning
2243   SmartRefBase.h,
2244   SmartRef.h      : operator==() was badly implemented (Found by O.Callot)
2245   strcasecmp.h    : WIN32 needs an additional #include <cstring> 
2246 
2247 ! 20010625 - Pere Mato
2248   - Added remote properties functionality. Changed PropertyMgr and base classes Service
2249     and Algorithm
2250   - Added MsgStream::endmsg with same functionality as endreq. (Request from ATLAS)
2251   - Using AIDA Historams instead of LHCb private ones. The existing include files 
2252     include the new ones but generating a warning. The IAnnotation interface is added
2253     because it does not exists in the used AIDA release
2254     
2255 
2256 ! 20010618 - v10 (Flr)
2257   requirements - use GaudiPolicy v5
2258                  apply pattern package_stamps
2259 
2260 ! 20010518 - Pere Mato
2261   Changed CLIDs in Reftable.h (re-tagged v9)
2262 
2263 ! 20010508 - Pere Mato
2264   Fixed bug reported by M. Cattaneo. The OutputLevel of AlgTools was not
2265   set correctly if the parent Algorithm didn't set it explicitely.
2266 
2267 ! 20010503 - Markus Frank
2268   Allow access to data store items without specification of the top level
2269   directory. It is equivalent to specify an histogram like "/stat/simple/1"
2270   or simply "simple/1". Note that the the entire prefix "/stat/" must be 
2271   omitted. The use is backwards compatible.
2272   Added a qualifier ALWAYS to the message service specifying that a given 
2273   message should always be printed.
2274   ie.
2275   MsgStream log (msgSvc(), "Name")
2276   log << MSG::ALWAYS << "Hello." << endreq;
2277   will result in
2278   Name      SUCCESS Hello.
2279   and will not be omitted.
2280 
2281 ! 20010430 - Markus Frank
2282   Bug fixes:
2283   GaudiKernel/DllMain.icpp WINNT: Processhandle should no longer be closed
2284                            since the handle is shared for all DLLs.
2285   GaudiKernel/INTuple.h    Interface extended to directly use NTuple pointer
2286                            to write/read n-tuple. It is no longer necessary to
2287                            use the n-tuple service for these actions.
2288   NTupleImplementation.h/cpp dto.
2289   GaudiKernel/SmartDataPtr.h        Bug fix: 
2290                                     SmartDataPtr<Object> obj (...)
2291                                     if ( obj ) {...}
2292                                     Check succeeded if object is present however
2293                                     had bad type. Now this check checks for the
2294                                     presence of the object AND the data type.
2295                                     Moved pointer to object from SmartDataObjectPtr
2296                                     to SmartDataStorePtr (template class).
2297                                     Also moved corresponding check operators.
2298   GaudiKernel/SmartDataLocator.h    dto.
2299   GaudiKernel/SmartDataStorePtr.h   dto.
2300   GaudiKernel/SmartDataObjectPtr.h  dto.
2301   GaudiKernel/SmartDataObjectPtr.cpp dto.
2302 
2303 ! 20010320 - Sebastien Ponce
2304   - PropertyMgr.h Avoid compiation errors for egcs 2.95.2
2305   - Debugger.cpp, ProcessDescriptor.cpp Avoid compilation errors for 2.95.2
2306   - MsgStream.h Added the bool type in the operator<<(). 
2307 
2308 ! 20010320 David Quarrie
2309  - Fix Linux macro problem in Kernel.h (should be __linux, not linux).  Fix
2310    memory leak in Property.h. Fix a destructor problem in PropertyMgr.h by
2311    adding a std::vector<bool> to keep track of Property ownership. Add
2312    a protected state() member function to Service to allow subclasses to
2313    access the current state.
2314 
2315 ! 20010319 Pere Mato
2316  - Fixed interface IAddressCreator
2317 
2318 ! 20010316 Markus Frank
2319  - New Interface added IEventProcessor
2320 
2321 ! 20010315 Andrea Valassi
2322  - Minor changes in IValidity.h, MsgStream.h ClassID.h
2323 
2324 ! 20010314 Pere Mato
2325  - Removed const in IProperty::getProperty(const string&, string&)
2326    Implies to modify all the classes implementing such interface
2327 
2328 ! 20010314 David Quarrie
2329  IScriptingSvc.h Add execute( const std::string& ) to allow for execution
2330                  of a script.
2331  Property.cpp    Fix problem in dealing with either double or single quotes
2332                  as delimiters for string values.
2333 
2334 ! 20010313 Markus Frank
2335 
2336  - GaudiKernel/
2337         Bootstrap.h    Add entry point to create multiple Application Managers
2338         StreamBuffer.h Change in buffer allocation (See Gaudi Developers message)
2339         strcasecmp.h   Make inline function for WIN32 to standardize on Linux str(n)casecmp
2340                        without all the #ifdefs
2341         HashTable.h    Bug fix by Traudl Hansl-Kozanecka (GLAST)
2342         RefTable.h     dto. Moved from LHCbEvent to GaudiKernel.
2343         IRunable.h     new interface for Runable
2344         IAppMgrUI.h    Allow access to the application managers state.
2345                           (May need changes to ApplicationMgr in GaudiSvc)
2346         SystemBase.h   ->@System
2347         System.h       ->@System
2348         Timing.h       ->@System
2349         Memory.h       ->@System
2350         ModuleInfo.h   ->@System
2351         Debugger.h     ->@System
2352 
2353  - src/static/  Move all files to LIB - static is no longer needed at all!
2354 
2355  - src/Lib
2356         Bootstrap.cpp  Add entry point to create multiple Application Managers
2357         DataObject.cpp Remove warning on linux in acceptInspector()
2358         ConversionSvc.cpp Bug-Fix: if on creating persistent objects no converter was
2359                           found success (!!) was returned. No correctly returns error.
2360 
2361         System.cpp                ->@System
2362         Debugger.cpp              ->@System
2363         Memory.cpp                ->@System
2364         Timing.cpp                ->@System
2365         ModuleInfo.cpp            ->@System
2366         Win32PsApi.h              ->@System
2367         ProcessDescriptor.h       ->@System
2368         ProcessDescriptor.cpp     ->@System
2369 
2370  -@System:
2371        Major code reshuffeling.
2372         - Static class was changed to namespace. This will make it much simpler to
2373         extend the functionality without actually having the default header System.h.
2374         System.h containes the declarations of all functions in a backwards-compatible way.
2375       - All other functionality was factorized out:
2376         Memory.h/cpp            Info about memory consumption
2377         Timing.h/cpp            Info about time consumption
2378         ModuleInfo.h/cpp        Info about running modules
2379         Debugger.h/cpp          Invoke debugger from running program (NT only)
2380         ProcessDescriptor.h/cpp **Internal** access to process specific information
2381         + Win32Api.h            as it is exported by Linux/NT. This header is PURELY internal
2382                                 and should never be included directly.
2383 
2384 ! 20010313 Pere Mato
2385  - Moved files ISolid.h, IPVolume.h, ILVolume.h, IDetectorElement.h, IGeometryInfo.h
2386    ITransportSvc.h to the DesDesc package. Forward links to the new position have been
2387    left in place.
2388 
2389 ! 20010312 Markus Frank
2390  Changes to the job options processing
2391  - implemented PropertyMgr::setProperty( const std::string& n, const std::string& v )
2392  - Properly implement the macro QUOTEDELEMENTINPUT.
2393    CTDay ir right when he quotes that this is "HACK Big Time". It's also undebuggable.
2394 
2395 ! 20010305 Pere Mato
2396  - Corrected bug reported by O. Callot that the OutputLevel was not working
2397    for Algorithms.
2398 
2399 ! 20010228 David Quarrie
2400  - ARM page 210 tweaks to IToolFactory.h to avoid compiler warnings. Add
2401    DECLARE_ALGTOOL(X) and DECLARE_TOOL(X) macros to DeclareFactoryEntries.h
2402 
2403 ! 20010226 Pere Mato
2404  - Small changes to make it compile in NT
2405 
2406 ! 20010223 David Quarrie
2407  - Changes for Solaris support, which is incomplete. The package compiles on
2408    this platform, but some of the required template specialization "hacks" are
2409    not fully understood and need to be revisited. Run-time debugging hasn't
2410    yet begun.
2411  - Changes to avoid compiler warning messages. These are all due to function
2412    overloading across class hierarchies. The policy is described on Page 210
2413    of the ARM. It's not yet clear whether these are compatible with the Visual
2414    C++ compiler on NT. Modified files:
2415        GenericLink.h IAlgFactory.h IAuditorFactory.h IDataDirectory.h
2416        IFactory.h IHistogramSvc.h ISvcFactory.h ObjectContainerBase.h
2417        ObjectFactory.h ObjectList.h ObjectVector.h
2418  - Changes to support the scripting service. SimpleProperties now support
2419    callback handlers for both reading and updating. The IProperty interface
2420    has been extended to allow more flexible setting & retrieving of properties
2421    from streams and strings. Modified files:
2422        IProperty.h Property PropertyMgr PropertyVerifier
2423  - Add support for explicitly specifying the CLID and name of the root
2424    object in the transient event store (defaults are CLID_Event and "/Event").
2425    Modified files:
2426     DataSvc IDataManagerSvc
2427  - Other details:
2428    AlgTool Algorithm Auditor Service
2429        Support new IProperty interface. Use function template for
2430        declareProperty. Support deferred service instantiation in service
2431        accessors.
2432    FactoryTable.h
2433         Fix compiler warning because of missing comment characters
2434    System.cpp
2435         Minor tweak to avoid SOlaris compiler warning.
2436 
2437 ! 20010223 Pere Mato
2438  - Changes to deal with the template specialization in the new version of GNU c++ compiler
2439 
2440 ! 20010208 Pere Mato
2441  - Modified System.cpp. Added suffix in the DLL name when loading
2442  
2443 ! 20000125 Pere Mato
2444  - Changed CLID& by CLID in Converter base class to avoid weird problems with some
2445    converters in Linux.
2446  - Corrected bug in Algorithm::service()
2447  - In Bootstrap.h, added static method Gaudi::svcLocator() to get the ISvcLocator* 
2448    in isolation.
2449  - In ISvcLocation.h added a templated method ISvcLocator::service() to facilitate 
2450    retrival of services.
2451 
2452 ! 20010122 - GaudiKernel v8r1 and head revision (Flr)
2453   GaudiKernel/IGiGa*.h - update include file path to new schema.
2454 
2455 ! 20000119 Pere Mato
2456  <<< Changes are not compatible with existing packages. Everything should be re-built >>>>
2457  - Eliminated static library GaudiBase.
2458  - Eliminated the constant data files IInterface.cpp and Kernel.cpp
2459  - Renamed class IID to InterfaceID
2460  - Added de definition of the InterfaceID (IID) constants in each interface Ixxxx.h file
2461  - Introduced new file ClassID.h which constains some the definition of CLID and some basic
2462    constants.
2463  - Changes asked by Vanya for the classes: ILVolume, IPVolume, ISolid, IGeometryInfo,
2464    IDetectorElement
2465 
2466 ! 20001215 Pere Mato
2467  - Renamed Time::Time class by TimePoint class
2468  - The constants Time::time_absolutepast and Time::time_absolutefutre are now defined 
2469    in the TimePoint.h. The namespace Time has been removed.
2470    
2471 ! 20001213 Pere Mato
2472  - Cleanup and adaptation to the new way of documenting the code based
2473    on Doxygen (JavaDoc style)
2474  - Incorparated changes done by D.Quarrie in the old LHCb repository
2475 
2476  - Add isInitialized() and seInitialized() member functions and handling to prevent
2477    multiple initialization attempts on the same Algorithm. This protection is needed
2478    when scripting is in use.
2479 
2480 ! 20001119 - David Quarrie
2481  - Implemented a new service called ScriptingSvc. This is a service (with an
2482    initial implementation based on Python), which provides a scripting capability
2483    at run-time as opposed to the JobOptionsSvc which is limited to run startup
2484    time. This service has entailed some changes to the Gaudi kernel classes, which
2485    are mainly extensions to existing interfaces, but with some backwards-compatible
2486    rework of several of the Property classes.
2487    + Added new interface: IScriptingSvc
2488 
2489 - Auditor/Auditor
2490   Same changes as for Algorithm.
2491 
2492 - Interfaces/IServiceLocator
2493   Add list<IService*> getServices() for symmetry with the IAlgManager.
2494 
2495 - JobOptionsSvc
2496   A major rework of the Property class hierarchy to better support the scripting
2497   interface. For the most part the changes are backwards compatible, with the
2498   exception that bounds checking involves use of a verifier().  Note that the
2499   PropertyRef.cpp & .h files are obsolete since that class is now typedef'd.
2500   The PropertyList class for nested properties is not yet functional. Both of
2501   these classes have been retained but bypassed in the build for now.
2502 
2503 - Kernel/Service
2504   Replace overloaded declareProperty function by function template.
2505   Add PropertyMgr* accessor
2506 
2507 - ApplicationMgr/AppMgrUI
2508   Add AppMgrUI class as intermediate class between IAppMgrUI and
2509   ApplicationMgr. This simplifies the scripting interface.
2510 
2511 
2512 ! 20001204 Pere Mato
2513   Moved in ObjectVector<T> and ObjectList<T> from the LHCbEvent package.
2514   Removed iterator from ObjectContainerBase class
2515 
2516 ! 20001122 Pere Mato
2517   Various changes needed for CMT v1r7 and Nmake
2518 
2519 ! 20001128 GaudiKernel v8
2520   move *.cpp into src/static/ and src/Lib/
2521   move *.h, *.icpp and GaudiFactory.cpp into GaudiKernel/
2522   update #include statements
2523 
2524 !=============================================================================
2525 ! 20001018 - Pere Mato
2526  - Implemented a new service called IncidentSvc. This allows to communicate 
2527    asynchronously things that happen in the system. The ApplicationMgr uses it to inform
2528    when begining and ending the processing of one physics event.
2529    + Added new interfaces related to the new service: IIncidentSvc.h, IIncidentListener.h
2530    + Added new base class: Incident.h
2531 
2532  - Changed IHistogramSvc to be consistent with the (HTL) histogram implementation using
2533    double for defining histogram edges instead of float. Code using histograms needs to
2534    be re-compiled!!. (CT0000000035488)
2535 
2536 ! =====================================================================
2537 ! 20001310 - Markus Frank
2538  Changes files:
2539         DataSvc/DataSvc.cpp
2540         DataSvc/DataSvc.h
2541         PersistencySvc/ConversionSvc.cpp;
2542         System/System.cpp;
2543 
2544       New Interfaces:
2545       Interfaces/IDataSourceMgr.h;
2546       Interfaces/IInspectable.h;
2547       Interfaces/IInspector.h;
2548       Interfaces/ISelectStatement.h;
2549 
2550       Changed interfaces:
2551       Interfaces/INTuple.h      Extension for N-tuples to accept pre-selections
2552       Interfaces/IPersistencySvc.h;
2553 
2554         Kernel/DataObject.cpp;    Extended to make dataobject inspectable
2555         Kernel/DataObject.h;      dto.
2556 
2557         // New files:
2558       Kernel/DataTypeInfo.cpp;  allow access to primitive type information
2559       Kernel/DataTypeInfo.h;    dto.
2560       Kernel/SelectStatement.h; base calss for selct statements (e.g. for N-tuples)
2561       Kernel/Tokenizer.cpp;     small parser for qualified strings of type: ITEM='value'
2562       Kernel/Tokenizer.h;       dto.
2563 
2564         Kernel/GenericAddress.h; Fix bug when returning object name from datadirectory
2565       Kernel/IInterface.cpp;   Added Interface and storage types
2566 
2567       Kernel/ObjectFactory.h;
2568       Kernel/StreamBuffer.h;
2569         MessageSvc/MsgStream.h;
2570 
2571       NtupleSvc/NTuple.h;       Extension for N-tuples to accept pre-selections
2572       NTupleSvc/NTupleImplementation.cpp;  dto.
2573       NTupleSvc/NTupleImplementation.h;    dto.
2574       NTupleSvc/NTupleItems.cpp;           dto.
2575       NTupleSvc/NTupleItems.h;             dto.
2576       NTupleSvc/Selector.cpp;              Base class for user preselectors
2577       NTupleSvc/Selector.h;                dto.
2578 
2579 !=======================================================================================
2580 ! 20001009 - Vanya Belyaev 
2581    (1) Gaudi/Kernel/IInterface.cpp - added definition of IID_IGiGaCnvSvc 
2582               and 2 definitions of pseudy-technology types, needed for GiGa 
2583    (2) remove obsolete method from IGiGaSvc interface, the functionality of these 
2584        method is replaced by  GiGa Conversion Sercice 
2585 
2586 !========================================================================================
2587 ! 20001009 - David Quarrie, Pere Mato
2588  - Added the support for "Auditors". The following existing files has been changed:
2589    Algorithm.h (.cpp), ISvcLocator.h, IInterface.cpp
2590    New interfaces: IAuditor.h, IAuditorFactory.h
2591    New classes: Auditor.h (.cpp), AudFactory.h
2592 
2593 ! ======================================================================================
2594 ! 20000731 - Vanya Belyaev 
2595   - Gaudi/DetectorDataSvc/DetectorElement.h bug fix 
2596        (1) remove empty default constructor         (incorrect initialization) 
2597        (2) now default construction is not empty!!!
2598 
2599 ! ======================================================================================
2600 ! 20000720 - Gaudi v7
2601 
2602 ! 20000717 - Radovan Chytracek
2603   - Fixed inheritance order for DetectorElement class + class ID getters
2604 
2605 ! 20000710 - Gloria Corti
2606   - Introduce the interfaces and base classes for the ToolSvc
2607      new files in Interfaces: IAlgTool.h, IToolFactory.h, IToolSvc.h
2608      new files in Kernel: AlgTool.h, AlgTool.cpp, ToolFactory.h
2609      modified IInterface.cpp (in Kernel) to add the IID for IAlgTool,IToolFactory and 
2610      IToolSvc
2611   - requirements: introduce AlgTool.cpp in Gaudilib
2612   - Change obsolete comment in IParticlePropertySvc
2613 
2614 ! 20000709 - Markus Frank
2615   - Bug fixes for release
2616   - Randm number wrapper as described in the Sotfware week
2617 
2618 ! 20000704 - Pavel Binko
2619   - Interfaces - the interfaces IAxis, IHistogram and IHistogramSvc
2620                  have been enhanced by function :
2621                  - returning all edges in a given axis
2622                  - setting the histogram title
2623                  - allowing to register, unregister, retrieve and find
2624                    a histogram in the transient histogram data store 
2625 
2626 ! 20000704 - Marco Cattaneo
2627   - requirements : use LHCbCMT v3r1 (to pick up EXTLIB v2r1)
2628 
2629 ! 20000630 - Pere Mato
2630   - Removed implementations of initialize(), finalize() and execute() 
2631     in Algorithm base class as a response to the e-discussion concerning
2632     the spelling of such methods.
2633 
2634 ! 20000622 - Vanya Belyaev
2635   - System.cpp : introduce "more correct" coefficient between time clocks and seconds :-))
2636 
2637 ! 20000622 - Vanya Belyaev
2638   - System.cpp : introduce "correct" coefficient between time clocks and seconds 
2639 
2640 
2641 ! 20000621 - Marco Cattaneo
2642   - requirements: insert underscore in name of Gaudi_shlibflags macro, 
2643                   to please CMT v1r5
2644 
2645 ! 20000617 - Vanya Belyaev
2646   - Bug fix in Gaudi/System/System.cpp file in method char** System::argv()
2647 
2648 ! 20000616 - Pere Mato
2649   - Changed Algorithm base class. Added an error counter and max error 
2650     limit to allow continuation of trhe program. Default is one.
2651     Added accessor to RndmGenSvc from base class.
2652 
2653 ! 20000615 - (Pere Mato, David Quarrie)
2654   - Changed interface IAlgorithm and base class Algorithm to support 
2655     Algorithm sequences (Babar style). Added some more algorithm flags
2656    (enabled, executed, fileter passed, ...) in base class. Added method
2657     reasetExecuted() in the IAlgorithm interface.
2658   - Changed IProperty interface to support property browsing. Added the
2659     following methods:
2660     const Property& getProperty( const std::string& name ) const = 0;
2661     const std::vector<Property*>& getProperties( ) const = 0;
2662   - Changed base class Property to introduce the possibility of asking
2663     to a property for its type. 
2664   - Introduced new classes: PropertyList, CommandProperty
2665     A PropertyList is a Property that contains an array of other properties
2666     A CommandProperty has a callback function associated that is called 
2667     when a new value of the property is set.
2668     The PropertyList can handle property nesting. The name convention is
2669     that names are separated by ":".  
2670   - Changed PropertyMgr to base its implementation with PropertyList
2671 
2672 ! 20000609 - (Markus Frank)
2673   - Main improvement:
2674     Implementation of the public part of the random number generator package.
2675 
2676   Besides this I **had** to do some code cleanup:
2677   - Algorithm.h: Removed Algorithm::create(...) 
2678     Function was declared but never implemented.
2679   - IChronoStatSvc.h: "long double" is not really a ansi data type.
2680     Changed to double.
2681   - IDataManagerSvc.h
2682     IID_IDataManagerSvc_NO_ERROR = SUCCESS becomes
2683     IID_IDataManagerSvc_NO_ERROR = IInterface::SUCCESS
2684   - ITime.h: use longlong data type from kernel.h instead
2685     of __int64 and "long long" + #ifdef.
2686   - PropertyRef.h: Simple typedefs of simple properties.
2687     e.g. typedef SimplePropertyRef<int> IntegerPropertyRef;
2688     just as it is done in "Property.h".
2689   - DataObject.cpp: Actually implement 2 member functions which
2690     were always in the header, but never made it to code.
2691   - Kernel.h: If neither Linux nor WIN32 is the platform,
2692     fix "longlong" to a 64 bit structure capable of holding
2693     the variable.
2694   - StreamBuffer.h: Clean up internal classes ContainedLink and 
2695     IdentifiedLink, get rid of macros
2696   - Message.h: There is no such class "ostream". Use #include <iostream> instead;
2697   - MsgStream.h: Added copy constructor
2698   - NTuple.h:    Get rid of a few macros and write the proper code instead.
2699   - Get rid of NTupleFile.h and NTupleDirectory.h - should never have 
2700     been used at all. The classes were always defined in NTuple.h!
2701 
2702 
2703 ! 20000525 
2704 
2705 - Fixed template instantiation in Ntuple::Item (For version 6 of Visual C++
2706 - Corrected "OuputLevel" bug in Service.cpp. This would not take into account
2707   a change in the OuputLevel for services.
2708 
2709 ! 20000523 
2710 
2711 Markus Frank Make System.cpp compile under VC 6.0 which opposite to VC 5.0
2712              defines STRICT by default.
2713 
2714 ! 20000410 - Gaudi v6
2715 
2716 New EventSelector Interface  06/04/2000 
2717 ----------------------------------------
2718 Gonzalo Gracia Abril: IEvtSelector.h modified
2719 
2720 Gaudi splited into Gaudi and GaudiSvc
2721 -------------------------------------
2722 - Nearly all services moved into the new package GaudiSvc
2723 - Gaudi remains to contain only interfaces, base classes,
2724   DataSvc and ConversionSvc
2725 - Gaudi uses the new package LHCbCMT
2726   (Pavel Binko)
2727 
2728 Small correction in Service.cpp/h
2729 ---------------------------------
2730 - Added const function messageService() which was 
2731   necessary to get a MsgStream in any constant function
2732   (Gonzalo Gracia Abril)
2733 
2734 New Functionality
2735 -----------------
2736 - New histogram 1D and 2D interfaces, conforming the AIDA interfaces.
2737 - HistogramSvc changed - the LHCb histogram implementation uses now
2738   the HTL implementation of histograms through the AIDA interfaces.
2739 - HistogramSvc and NTupleSvc changed in order to allow their moving
2740   to the new package GaudiSvc.
2741 
2742 ! 19991116 - Gaudi v5
2743 
2744 New Functionality
2745 -----------------
2746 - Added a output level threshold associated to the clients (services &
2747   algotihms) of the MessageSvc overriding the global threshold.
2748 - New JobOptions service implementation with a new parser.
2749 - Support for N-tuples.
2750 - Support for dynamic library loading
2751 
2752 Improvemenets
2753 ------------- 
2754 - Added interfaces for detector description
2755 - Improved ParticleProperty service. Added index by LundID.
2756 - Modified ApplicationManager to acommonatye other changes
2757 
2758 ! 19991018 - Gaudi v4r1
2759 
2760 New Funtionality
2761 ----------------
2762 - Data service and conversion services changed, information about
2763   storage types and class IDs added
2764 - HTL histograms supported
2765   + New HTL interfaces are the Interfaces directory,
2766     their syntax does not differ from the native HTL syntax
2767   + Compilation with the HTL library nedds the flag HTL_USE_STD
2768 
2769 Changes done by Markus Frank, Pere Mato, Pavel Binko
2770 
2771 
2772 ! 19990812 
2773 
2774 New Funtionality
2775 ----------------
2776 - Support for dynamic link libraries (shareable libraries):
2777   + Added interface IClassManager with a method called loadModule()
2778   + Added interface IFactory as a base interface for all factory interfaces
2779   + Added a FactoryTable static class to support DLLs
2780   + Modified implemtation of AlgFactory and SvcFactory to use new interfaces
2781   + Added new property ("DLLs") in ApplicationMgr to set a list of DLL to be loaded at run time
2782   + Temporary compilation macro to use Gaudi with DDLs (GAUDI_USE_DLL)
2783 
2784 Improvements
2785 ------------
2786 - Removed "std" from the names of standard services instances.
2787 
2788 ! ========================================================================
2789 
2790 ! 19990618 - Gaudi v4
2791 
2792 Changes done by Markus Frank, Marco Cattaneo, Paul Maley, Pere Mato
2793                 Rado Chytracek, Iain Last, Pavel Binko among others
2794 
2795 New Functionality
2796 -----------------
2797 - Support for Detector Descriptions:
2798   New classes: DetDataSvc, DetectorElement
2799   New Interfaces: IgeometryInfo
2800 - Particle Property service:
2801   New classes: ParticleProperty, ParticlePropertySvc
2802   New interfaces: IPartoplePropertySvc
2803 
2804 Improvements
2805 ------------
2806 - Kernel:
2807   Added classes: GenericAddress, GenericLink
2808   Many changes in base classes to support new functionality.
2809 - Algorithm:
2810   Changed initialization methods (sysInitialize(), sysFinalize())
2811   Added assessors to standards services
2812 - ApplicationMgr:
2813   Changed to support new services (DetDataSvc, ParticlePropertiesSvc,...)
2814 - DataSvc:
2815   Improvements in interfaces. Changed the way to name a DataObject in the store.
2816   Added classes: SmartDataLocator, SmartDataObjectPtr
2817 - MessageSvc:
2818   Added classes GaudiErrorHandler and GaudiNagHandler to
2819   interface NAG C error handling to Gaudi/MessageSvc. 
2820   In order to avoid compile time dependency of Gaudi on <nag.h>,
2821   GaudiNagHandler is defined inline. Applications using this
2822   facility must #include "Gaudi/MessageSvc/GaudiNagHandler.h".
2823   Details of usage can be found at:
2824   http://lhcb.cern.ch/~cattanem/LHCb/GaudiNagC.html
2825 - PersistencySvc:
2826   Changed to support two or more conversion services. This was needed to
2827   support the Root conversion service. 
2828   Added classes OutputStream, OutputStreamAgent
2829 

source navigation ] diff markup ] identifier search ] general search ]

Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems
This page was automatically generated by the LXR engine. Valid HTML 4.01!