The Gaudi Framework
v30r3 (a5ef0a68)
|
Package : Gaudi Package manager : Marco Clemencic Commit Id: $Format:%H$ ================================ Gaudi v28r3 ================================= ================================ Gaudi v28r2 ================================= ================================ Gaudi v28r1 ================================= ================================ Gaudi v28r0 ================================= ! 2016-10-31 - Marco Clemencic (commit b9f002b) - minor fixes to failing tests - fixed issue in CMake modules test - fixed BrunelScenarioGraphScheduler - clean up CPUCruncher See merge request !227 ! 2016-10-12 - Marco Clemencic (commit b5e05a1) - improved handling of package version in CMake configuration use project version if a package version is not provided See GAUDI-1215. See merge request !175 ! 2016-07-25 - Marco Clemencic (commit e3d4b07) - remove CMT configuration and related files * removed CMT configuration files * adapted scripts not to use CMT Fixes GAUDI-1216 Fixes GAUDI-979 See merge request !186 ================================ Gaudi v27r1 ================================= ! 2016-02-15 - commit 4dc9082 - fixed handling of (multi line) strings and ';' in strings for .opts files Fixes GAUDI-1179 See merge request !112 ! 2016-02-06 - commit d905569 - introduce DataHandle and DataObjectHandle See merge requests !57 !94 !95 ================================ Gaudi v27r0 ================================= ! 2015-11-02 - commit 57f356c - Merge branch 'hive' into 'master' Fixes GAUDI-978. See merge request !65 ================================ Gaudi v26r4 ================================= ! 2015-10-06 - commit 0b7a459 - Merge branch 'GAUDI-1093' into 'master' avoid (deprecated) Python module `commands` fixes GAUDI-1093 See merge request !38 ! 2015-09-16 - commit 7eb8601 - Merge branch 'GAUDI-1055' into 'master' GAUDI-1055: Allow use of Python configurables and components at build time. this merge request also includes a minor fix to gaudirun.py See merge request !12 ! 2015-07-23 - commit 5f7f60e - Merge branch 'dev/gdb_hook' into 'master' hook for gdb add hook and command line option ("--gdb") to start up gdb and attach it to currently running process. See GAUDI-1056 See merge request !8 ================================ Gaudi v26r3 ================================= ! 2015-06-18 - Marco Clemencic - Fixed GAUDI-1045: segfault running "LD_PRELOAD=libjemalloc.so gaudirun.py" The segfault was due to a Python ctypes "feature": Python integers passed to C functions are truncated to 32 bits even if the function is declared expecting 64 bits numbers (like void*). In addition, C functions declared to return void* get the return value converted to (Python) int. The net result is that the sequence: ``` instance = lib.myFactory() lib.doSomething(instance) ``` may give a segfault if the pointer returned by lib.myFactory is too big (as it happens with jemalloc). The work-around is to ensure that the void* returned by lib.myFactory is wrapped in a ctypes.c_void_p instance. See http://stackoverflow.com/questions/17840144. ================================ Gaudi v26r2 ================================= ! 2015-05-07 - Marco Clemencic - Fixed GAUDI-1033: segfaults when calling Python functions from C++ Use ctypes.PyDLL instead of ctypes.CDLL. This prevents python threads to run in parallel to the C++ code, but is consistent with the bootstrap via ROOT. Once the user code is instrumented to correctly acquire the GIL, we can revert to ctypes.CDLL. ! 2015-04-20 - Marco Clemencic - Modified the minimal boostrap function to force the import of GaudiPython with ROOT <= 6.2.5, to work around a bug in ROOT. ! 2015-04-13 - Marco Clemencic - Refactored printing of alg sequences and moved it after the initialize, to allow an implemetation in C++ (to avoid GaudiPython in gaudirun.py). ! 2015-04-13 - Marco Clemencic - Enable GaudiPython in gaudirun.py with an environment variable. Setting GAUDIRUN_USE_GAUDIPYTHON (any non-empty value) forces the use of GaudiPython for bootstrapping in gaudirun.py. ! 2015-04-10 - Marco Clemencic - Replaced GaudiPython/cppyy with ctypes in Gaudi.Main. GaudiPython is still used for the --printsequence and custom main loop cases. ================================ Gaudi v26r1 ================================= ! 2015-02-02 - Marco Clemencic - Fixed GAUDI-1001: '\' and '\n' not correctly interpreted by gaudirun.py ! 2015-01-30 - Marco Clemencic - Added command line option to restart gaudirun.py from old options (smaller memory footprint) after having parsed the options in Python. ! 2015-01-26 - Marco Clemencic - Replaced the only QMTest test not based on GaudiTest with a Nose-based test. ================================ Gaudi v26r0 ================================= ! 2015-01-15 - Marco Clemencic - Minor change in the CMake configuration to fix backward compatibility of the test environment with CMT. =============================== Gaudi v25r6p1 ================================ ================================ Gaudi v25r6 ================================= ================================ Gaudi v25r5 ================================= ! 2014-09-25 - Marco Clemencic - Bump package version to allow detection of the backward incompatible change in the Plugin Service via the GAUDI_VERSION cpp macro. ================================ Gaudi v25r3 ================================= ================================ Gaudi v25r2 ================================= ! 2014-03-26 - Marco Clemencic - Reverted work-around for ROOT-6125 (fixed upstream). =============================== Gaudi v25r1p1 ================================ ================================ Gaudi v25r1 ================================= ! 2014-03-18 - Ben Couturier - Fixed bug #104127: remove hwaf configuration. ! 2014-03-07 - Marco Clemencic - Fixed the workaround for ROOT-6125 after having understood what the problem really is. https://sft.its.cern.ch/jira/browse/ROOT-6125 ! 2014-03-05 - Marco Clemencic - Added workaround for ROOT-6125 (crash loading libCling.so when using tcmalloc). https://sft.its.cern.ch/jira/browse/ROOT-6125 ================================ Gaudi v25r0 ================================= ! 2014-02-10 - Marco Clemencic - Enable the fixed 'applyConfigurableUsers()' if the environment variable GAUDI_FIXED_APPLY_CONF is set. ! 2014-02-10 - Marco Clemencic - Allow switching between old 'applyConfigurableUsers()' (bug #103803) and the new one (fixed the bug, but different order of execution). The old one is the default and will be made deprecated. ! 2014-02-07 - Marco Clemencic - Modified configurables test to expose bug #103808. ! 2014-02-06 - Marco Clemencic - Improved test gaudi.conf_user.autoapply to be more robust in case of a change in the order of application of configurables. ! 2014-02-06 - Marco Clemencic - Added test exposing bug #103803: ConfigurableUser instances created in the __apply_configuration__ of another one are not "applied". ! 2013-12-11 - Sebastien Binet - Added hwaf configuration files. ================================ Gaudi v24r2 ================================= ================================ Gaudi v24r1 ================================= ================================ Gaudi v24r0 ================================= ! 2013-08-30 - Charles Leggett - retag for Atlas merge ================================ Gaudi v23r10 ================================ ! 2013-09-25 - Marco Clemencic - Enforce LC_ALL=C in gaudirun.py. ! 2013-09-03 - Marco Clemencic - Modified gaudirun.py to accept a .qmt file as argument. When a file ending by '.qmt' is encountered on the command line, it is parsed and replaced with the arguments and the option file it contains before the list of arguments is passed to the the command line options parser. ================================ Gaudi v23r9 ================================= ! 2013-07-09 - Marco Clemencic - Fixed a problem with a spurious error message when the import from Configurables fails. If the import fails, instead of an ImportError we were getting a RuntimeError about sys.path containing something else then strings. ================================ Gaudi v23r8 ================================= ================================ Gaudi v23r7 ================================= ! 2013-02-15 - Danilo Piparo - Patch #5605: Run performance profilers with gaudirun.py command line options Allow to operate performance profilers directly from gaudirun.py, simply using command line options. Igprof and Valgrind (whole suite: callgrind, massif, cachegrind, drd, ...) are supported. Three options have been added: o --profilerName: Specify the profiler name. The possibilities are igprofMem, igprofPerf and valgrind<toolname>. For igprof, sensible and basically universal meaningful default options are added (compress output, be verbose) o --profilerOutput: Specify the output file name. If not selected, a default is provided. o --profilerExtraOptions: specify extra options for the profiler, where the '--' is replaced with a '__'. ================================ Gaudi v23r6 ================================= ================================ Gaudi v23r5 ================================= ! 2012-11-05 - Marco Clemencic - Ensure that we get the correct return code after a segfault in C++. ================================ Gaudi v23r4 ================================= ! 2012-07-28 - Marco Clemencic - Modified gudirun.py to use a portable check of the number of CPUs. ! 2012-07-27 - Marco Clemencic - Rationalized the permissions of files in the repository. ================================ Gaudi v23r3 ================================= ! 2012-06-08 - Marco Clemencic - Added CMake configuration files. ================================ Gaudi v23r2 ================================= ! 2012-03-15 - Marco Clemencic - Fixed bug #92122: option '--printsequence' of gaudirun.py no longer works Moved the call to the printsequence function from gaudirun.py to gaudimain.run(), thus also fixing the possible configuration corruption due to the use of the option. ================================ Gaudi v23r1 ================================= ! 2012-02-22 - Marco Clemencic - Modified gaudirun.py to be able to preload arbitrary libraries (option --preload) and not just tcmalloc. ================================ Gaudi v23r0 ================================= ! 2012-01-20 - Marco Clemencic - Minor change to the test custom_main_loop_parallel to work on single core machines, like CERNVM. ! 2011-12-09 - Marco Clemencic - Added RootCnvSvc and RootEvtSelector to the list of aliased services (enforcing the default name to preserve compatibility with LHCb). ! 2011-12-08 - Marco Clemencic - Added support for class aliases in the meta-module "Configurables". - Added a ConfigurableUser to setup the persistency via RootCnv: from Configurables import GaudiPersistency GaudiPersistency() ! 2011-11-01 - Marco Clemencic - Moved core services out of GaudiSvc and into the new packages GaudiCoreSvc and GaudiCommonSvc. (patch #1816) Added GaudiCoreSvc and GaudiCommonSvc to the list of known modules in Gaudi.Configuration. - Added minimalistic tests to verify that all the required services are available. - Minor fix to the test gaudi.bug_39809: it was implicitly requiring the build of GaudiAlg to work. ================================ Gaudi v22r5 ================================= ! 2011-10-27 - Marco Clemencic - Fixed bug #86980: gaudirun.py should prevent the import of GaudiPython Install a fake GaudiPython module that prevents the use of any attribute, and uninstall it just before calling the run function. ! 2011-10-26 - Marco Clemencic - Introduced a hook to override the default gaudirun main loop: Gaudi.Configuration.setCustomMainLoop - Added tests for the custom main loop ================================ Gaudi v22r4 ================================= ================================ Gaudi v22r3 ================================= ================================ Gaudi v22r2 ================================= ================================ Gaudi v22r1 ================================= ================================ Gaudi v22r0 ================================= ! 2010-12-17 - Eoin Smith - Updated gaudirun.py and python/Gaudi/Main.py for multicore execution Multicore Execution with flag : --ncpus=N ( N in {-1,0,...,Z} ) -1 : all available cores 0 : conventional serial execution 1 : parallel execution with 1 worker parallel execution generates log file named by date and time of run ================================ Gaudi v21r11 ================================ ! 2010-07-28 - Marco Clemencic - Added dependency on pytools to be able to use Gaudi.Parallel. ================================ Gaudi v21r10 ================================ ! 2010-06-23 - Marco Clemencic - Minor fix in Configuration.getConfigurable. ================================ Gaudi v21r9 ================================= ! 2010-04-22 - Marco Clemencic - Use the property "ReturnCode" of the ApplicationMgr as return value of the application (gaudirun.py). ================================ Gaudi v21r8 ================================= ! 2010-03-02 - Marco Clemencic - Modified the test gaudi.conf_user_autoapply to test the dependency between named ConfigurableUser instances. ================================ Gaudi v21r7 ================================= ! 2010-01-08 - Marco Clemencic - Added test for bug #61144 (configuration problem for 'empty' tool handles) ================================ Gaudi v21r6 ================================= ! 2009-11-09 - Marco Clemencic - Extended the test gaudi.propagate_properties to expose a bug affecting properties of type list and dict (fixed). ================ Gaudi v21r5 ==================================== ! 2009-10-19 - Marco Clemencic - Modified the python modules Gaudi, Gaudi.Main and the script guadirun.py to avoid that an "import Gaudi" indirectly triggers a load of the configurables database (it is necessary to import Gaudi.Configuration). ! 2009-10-12 - Marco Clemencic - Normalization of white-spaces in Python files. (using http://svn.python.org/projects/python/tags/r254/Tools/scripts/reindent.py) ! 2009-10-09 - Eoin Smith - Patch #3297: Support for GaudiPython Parallel in gaudirun.py Modified gaudirun.py to accept the command line option "--parallel" to specify the number of workers to use. ================ Gaudi v21r4 ==================================== ! 2009-07-22 - Marco Clemencic - Modified the the code behind "from Configuables import MyConf" to match the standard Python semantics: raise an exception if the configurable is not found. The meta-module "Configuables" should be deprecated in favor of "Gaudi.Configurables", that can also be used as in: import Gaudi.Configurables as cfgs cfgs.MyConf The exception for missing configurables can be disabled with import Gaudi.Configurables Gaudi.Configurables.ignoreMissingConfigurables = True (done by default in genconfuser.py for backward compatibility). ! 2009-07-20 - Marco Clemencic - Moved the use of tcmalloc from Gaudi to GaudiPolicy to make it available everywhere. ================ Gaudi v21r3 ==================================== ================ Gaudi v21r2 ==================================== ! 2009-06-25 - Marco Clemencic - Added support for tcmalloc (via LD_PRELOAD) in gaudirun.py (option -T/--tcmalloc). ! 2009-06-15 - Hubert Degaudenzi - use the new LCG tag convention. ! 2009-05-25 - Marco Clemencic - Fixed bug #45517: Units not taken into account in .opts files Added the function importUnits() to populate from python the units used in a .opts file. Added a test for the new function. ================ Gaudi v21r1 ==================================== ================ Gaudi v21r0 ==================================== ! 2009-04-08 - Wouter Hulsbergen - Added '--printsequence' to gaudirun.py to print the sequence of algorithms after the configuration. ! 2009-01-29 - Marco Clemencic - Symbol visibility - Updated main.cpp to use the new GAUDI_IMPORT macro. ================ Gaudi v20r4 ==================================== ! 2008-12-16 - Marco Clemencic - Fixed bug #45392: gaudrun.py returns status code 0 even if the application manager fails The return code of AppMgr.run is now correctly propagated. ! 2008-12-15 - Marco Clemencic - Added a test for the passive "depedency" of ConfigurableUser. ! 2008-12-05 - Marco Clemencic - Added a test for the new logic of ConfigurableUser.propagateProperty. ================ Gaudi v20r3 ==================================== ! 2008-11-04 - Marco Clemencic - Improvements in gaudirun.py: - Added command line option --post-option to accept (single line) options to be executed after the apply of ConfigurableUser. - Modified --option to allow execution of the option in the actual position on the command line with respect to the option files. - Added --debug to enable some debugging print-out in gaudirun.py and in the Configurables. ! 2008-11-03 - Marco Clemencic - Added the function Gaudi.Configuration.getConfigurable to simplify the creation of configurable instances. If a configurable wit the give name exists it is returned, otherwise it is created using the name as its type or the specified type. ! 2008-10-30 - Marco Clemencic - Extended gaudirun.py to use the automatic apply of ConfigurableUser. - Adde the options: --output (to replace -p and allow dump to file in python or old options) --no-conf-user-apply (to disable the automatic apply of ConfigurableUser) ! 2008-10-23 - Marco Clemencic - Added a test for bug #42428 (properties of clones are not cloned). - Added the directory tests/python for modules needed for the tests - added a fake configurable MyToolTest into the new directory - Added a test for bug #43065 (Error when unpickling GaudiHandles) using the fake configurable MyToolTest, within a more generic (in principle) test for pickling (gaudi.pickle_write) and unpickling (gaudi.pickle_read). ! 2008-10-21 - Marco Clemencic - Minor changes in gaudirun.py to make use of the improvements in GaudiKernel.ProcessJobOptions. ! 2008-10-17 - Marco Clemencic - Fixed bug #39846. gaudirun.py creates invalid entries in flattened options - Use only the configurables that pass the filter "getNeededConfigurables" (from GaudiKernel.Proxy.Configurable) to generate pickle file or dump. - Added test (gaudi.bug_39846). ! 2008-08-06 - Marco Clemencic - Added a test for bug #39809 (wrong configuration of public tools). ! 2008-08-05 - Marco Clemencic - Fixed bug #39116. gaudirun.py export to old options prints '#' instead of '//' The fix required a review of the way messages are printed across the whole Configurables machinery. The Python standard logging module is now used and the customization in GaudiKernel.Logging has been removed. In printout in Python job option files should be done with the log instance accessible from Gaudi.Configuration. - Added a test for bug #39116 (gaudi.export_oldopts). ================ Gaudi v20r2 ==================================== ================ Gaudi v20r1 ==================================== ! 2008-06-25 - Marco Clemencic - Added tests for: - bug #38206: gaudirun.py fails to set a list property from a property reference. - bug #38194: gaudirun.py expands too many environment variables. ================ Gaudi v20r0 ==================================== ! 2008-06-13 - Marco Clemencic - Apply the pattern ProjectVersionHeader to generate the GAUDI_VERSION.h file. Added the version.cmt file too, so that the pattern works without version directory. ! 2008-06-05 - Marco Clemencic - Added tests for: - Bug #36742: Cannot pickle options using "PropertyReference" - Bug #37479: gaudirun.py fails parsing old option lines with comments and quotes. - Bug #37488: importOptions does not expand environment variables. - Bug #35347: Cannot import 2 Python option files with the same name. - Bug #34769: Assigning a configurable to a list property does not fail. - Added Windows batch wrapper for gaudirun.py (gaudirun.bat). - Added to the command line option "--option" to gaudirun.py. It allows to specify Python lines to be executed after the standard configuration to modify it. E.g.: gaudirun.py default.py --option "MessageSvc().OutputLevel = DEBUG" A test has been added too (gaudi.cmdline_conf). ================ Gaudi v19r9 ==================================== ! 2008-04-04 - Marco Clemencic - Bug #35201. Python options parser '//' interpreted as comment in strings. Added a test for the bug. ! 2008-03-07 - Marco Clemencic - Fixed Bug #34046. False warning when mixing Python options and old options. Improved the test on case sensitivity to expose the bug (if present). ! 2008-03-06 - Marco Clemencic - Modified Gaudi.Main.gaudimain to use the environment variables GAUDIAPPNAME and GAUDIAPPVERSION to set the default values for the ApplicationMgr properties AppName and AppVersion. ================ Gaudi v19r8 ==================================== ! 2008-02-11 - Marco Clemencic - Added aliases for the configurables FileCatalog (Gaudi::MultiFileCatalog) and IODataManager (Gaudi::IODataManager). ! 2008-02-08 - Marco Clemencic - Modified python/Gaudi/CommonGaudiConfigurables.py to ignore missing packages, essentially to allow the import of Gaudi.Configuration when GaudiPoolDb is missing. ================ Gaudi v19r7 ==================================== ! 2008-01-11 - Marco Clemencic - Added a test to check the late-bound references in old options (e.g. "MyAlg.MyProp = @AnotherAlg.AProp;"). - Added a simple test for properties with wrong cases in (old) job options. ! 2008-01-09 - Marco Clemencic - Added a test to check the conversion between configurables and strings. ================ Gaudi v19r6 ==================================== ! 2007-11-16 - Marco Clemencic - Added a couple of tests for the correct overriding of mixed options (exposing a bug fixed in GaudiKernel). ! 2007-11-14 - Marco Clemencic - Added a test for the function GaudiKernel.Configurable.purge. ! 2007-11-12 - Marco Clemencic - Moved the *.qmt files to the implicit suite (directory) "gaudi.qms". ! 2007-11-01 - Marco Clemencic - Added the function Gaudi.Configuration.configurationDict to produce the dictionary of configurations. - Minor changes in the command line options for gaudirun.py: - short option for "--dry-run" in now "-n" - the configuration is printed as dictionary by default and the old format is activated with the option "--old-opts" (removed "--opts-dict") - Added tests for the job option parser. - Moved "importOptions" from Gaudi.Configuration to GaudiKernel.ProcessJobOptions. The function is still accessible from Gaudi.Configuration (from Gaudi.Configuration import importOptions). ! 2007-10-29 - Marco Clemencic - Moved the command line logic from the class Gaudi.Main.gaudimain to the script gaudirun.py, using optparse instead of getopt. - Added an option to format the dump of the computed properties as a Python dictionary (formatted such that it can be evaluated in Python). - Renamed some command line options. - The different behaviors depending on the file name extension, are delegated to Configuration.importOptions(). ! 2007-10-29 - Pere Mato - Adapted to new GaudiPython structure ==================== Gaudi v19r5 ====================================== ! 2007-10-10 - Pere Mato - Added GaudiRun alias to "gaudirun.py" ! 2007-10-02 - Pere Mato Patch #1400: Support for configuration in Python pickle files ! 2007-09-28 - Pere Mato - Renamed the meta module containing common configurables from ConfDb to Configurables. ! 2007-09-24 - Hubert Degaudenzi - changed back Configurables.py into Configurable.py (it was a mistake) ! 2007-09-21 - Hubert Degaudenzi - New package to contain the main part of the Gaudi application. Moved the necessary parts from GaudiKernel.