94268f6 | Jonas Rembser | 09 April 2024, 22:22:56 UTC | [TMVA] Avoid xgboost-cppyy symbol clashing problem in tmva101_Training XGBoost has to be imported before ROOT to avoid crashes because of clashing std::regexp symbols that are exported by cppyy. See also: https://github.com/wlav/cppyy/issues/227 | 10 April 2024, 14:40:10 UTC |
23737a4 | Jonas Rembser | 10 April 2024, 10:32:13 UTC | [TMVA] Avoid relative imports in tutorials | 10 April 2024, 14:40:10 UTC |
250f522 | Jonas Rembser | 10 April 2024, 08:40:11 UTC | [TMVA] Fix tutorials Backporting parts of 363373bb987 to make the tests green. | 10 April 2024, 14:40:10 UTC |
1bcc6bc | Jonas Rembser | 09 April 2024, 22:18:45 UTC | [TMVA] Disable `rbdt_xgboost` test Disabled because RBDT doesn't support the imbalanced tree structure of XGBoost models. We need to disable this test right now, because we have now installed XGBoost on the GitHub action runners, and this test will be red. This test never worked, we just never noticed because XGBoost was not installed on any CI platform. Backport of a commit from #15183. | 09 April 2024, 23:37:50 UTC |
eac7d29 | Danilo Piparo | 04 April 2024, 07:29:18 UTC | [web] Disable test-webgui-ping on macOS < 13 | 04 April 2024, 13:36:41 UTC |
829c3fc | moneta | 22 March 2024, 16:45:51 UTC | [tmva] Fix tutorial for case when PYMVA is not present | 22 March 2024, 16:48:04 UTC |
f180659 | moneta | 22 March 2024, 07:42:21 UTC | [tmva] Backport protection in tutorial when pymva is not present | 22 March 2024, 09:07:45 UTC |
4ced87f | moneta | 20 March 2024, 13:55:31 UTC | [ci-config] disable tmva-pymva in CI builds for 6.26 Disable pymva since old ROOT version will not support the latest versions of the python tools which are installed in the build nodes | 21 March 2024, 13:22:10 UTC |
895c81d | Danilo Piparo | 20 March 2024, 22:09:45 UTC | [skip-ci][ci] Skip matrix overrides in case of workflow_dispatch events, which is what is triggered when releasing. | 20 March 2024, 22:09:45 UTC |
43b2001 | Danilo Piparo | 20 March 2024, 08:49:41 UTC | "Update ROOT version files to v6.26/17." | 20 March 2024, 08:49:41 UTC |
8b20960 | Danilo Piparo | 20 March 2024, 08:29:11 UTC | "Update ROOT version files to v6.26/16." | 20 March 2024, 08:29:11 UTC |
ee46660 | Danilo Piparo | 20 March 2024, 07:37:02 UTC | Update RN for 6.26/16 | 20 March 2024, 08:26:06 UTC |
e33a26e | Axel Naumann | 30 January 2023, 13:37:46 UTC | [foundation] Silence macOS / Xcode / clang warning on use of sprintf: There is no safe way if doing this, which is why the interface is now deprecated. Until it is removed, lie to the compiler that the buffer is large enough (which is no worse than what happened before this commit). | 11 March 2024, 17:07:27 UTC |
4ea405c | Jonas Rembser | 14 July 2022, 01:07:39 UTC | [core] Replace `sprintnf` calls with `snprintf` in ROOT core This is to suppress the warnings we see now in the nightlies on the macbeta nodes: https://lcgapp-services.cern.ch/root-jenkins/view/ROOT%20Nightly/job/root-nightly-master/LABEL=macbeta,SPEC=cxx17,V=master/lastBuild/parsed_console/ | 11 March 2024, 17:07:27 UTC |
8f79607 | Danilo Piparo | 11 March 2024, 14:42:41 UTC | [skip ci][ci] Remove windows builds LLVM 9.0 and recent versions of VS 2022 are incompatible. | 11 March 2024, 14:50:35 UTC |
3ca5012 | Axel Naumann | 25 July 2022, 13:08:31 UTC | Update cmake/modules/RootCPack.cmake Co-authored-by: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch> | 10 March 2024, 18:01:16 UTC |
cbc2651 | Danilo Piparo | 09 March 2024, 21:02:43 UTC | [ci] Enable imt on Ubu22 | 10 March 2024, 13:53:26 UTC |
1d36bd6 | Jonas Hahnfeld | 16 May 2023, 08:38:45 UTC | [PyROOT] Replace deprecated np.bool by plain bool The alias was deprecated with numpy-1.20 and now expired in numpy-1.24: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations https://numpy.org/devdocs/release/1.24.0-notes.html#expired-deprecations This change also works with older versions (tested with numpy-1.19). (cherry picked from commit e0a6f8c76595d0c19e87e8924a7fb65fe2206766) | 09 March 2024, 21:00:15 UTC |
57abe07 | Vincenzo Eduardo Padulano | 30 January 2023, 09:31:29 UTC | [DF][PyROOT] Avoid deprecated numpy.object | 09 March 2024, 21:00:15 UTC |
323db39 | Axel Naumann | 22 July 2022, 13:54:03 UTC | [cmake,test] Get rid of `lsb_release`: It is available less and less often, and we do not actually benefit a lot from printing the distro (stress) or we can get the same info from /etc/os-release (cmake). | 09 March 2024, 16:05:20 UTC |
66dfaf5 | Danilo Piparo | 08 March 2024, 20:38:04 UTC | [skip ci][ci] Enable builds in the new CI | 08 March 2024, 20:38:04 UTC |
fed44af | Jonas Hahnfeld | 02 February 2024, 12:37:22 UTC | [core/zip] Add test for compression buffer sizes This would have found any of the previous three commits. (cherry picked from commit 73d8c3d616bd9dd5b8288b879c6dd3f4dbfc3d26) | 08 February 2024, 11:01:32 UTC |
fd58fc9 | Jonas Hahnfeld | 02 February 2024, 08:59:27 UTC | [core/zip] Validate target size before compression In practice, the target size is greater or equal the source size in most cases for ROOT, but add this additional correct check to fuzz the inputs in the next commit. (cherry picked from commit 23261a631c9e53a2ca7981a61d174c6465873a0e) | 08 February 2024, 11:01:32 UTC |
62f3ce9 | Jonas Hahnfeld | 02 February 2024, 08:47:05 UTC | [core/lzma] Properly account for kHeaderSize lzma_code must only see the buffers without the header, so the sizes have to be adjusted accordingly. Fixes https://github.com/root-project/root/issues/14508 (cherry picked from commit 17e35619159c236302b526caa35d1b5f707587b2) | 08 February 2024, 11:01:32 UTC |
c364612 | Jonas Hahnfeld | 02 February 2024, 12:39:23 UTC | [core/zip] Properly account for HDRSIZE in R__zipZLIB R__unzipZLIB is already properly subtracting it from srcsize. (cherry picked from commit 44d1c2355cd5ae53b811de53061ecd6cabcd0a14) | 08 February 2024, 11:01:32 UTC |
e48ba04 | Philippe Canal | 03 March 2023, 19:23:45 UTC | fBits read: preserve kIsOnHeap, always set kNotDeleted. Rather than reading from the file the value of kIsOnHeap, preserve the value that was calculated at object creation time (i.e. in the current execution). For example, for an embedded object (inside an object created on the heap or stack), the bit always need to be off (i.e. it can never be explicitly deleted) | 20 December 2023, 18:02:59 UTC |
e8ff650 | dpiparo | 28 November 2023, 00:44:03 UTC | "Update ROOT version files to v6.26/15." | 28 November 2023, 01:00:00 UTC |
8feeafb | dpiparo | 28 November 2023, 00:27:58 UTC | "Update ROOT version files to v6.26/14." | 28 November 2023, 00:59:47 UTC |
92a35a8 | dpiparo | 27 November 2023, 23:33:32 UTC | Update for 6.26/14. | 28 November 2023, 00:59:39 UTC |
41212a8 | dpiparo | 27 November 2023, 23:23:59 UTC | Fix wrongly formatted core team list | 28 November 2023, 00:59:27 UTC |
d80bdcf | dpiparo | 27 November 2023, 22:44:07 UTC | "Update ROOT version files to v6.26/13." | 27 November 2023, 22:53:45 UTC |
560de48 | dpiparo | 27 November 2023, 22:36:32 UTC | "Update ROOT version files to v6.26/12." | 27 November 2023, 22:53:45 UTC |
61713ad | dpiparo | 27 November 2023, 22:32:25 UTC | [relnotes] Update for 6.26/12. | 27 November 2023, 22:53:27 UTC |
a40379c | Sergey Linev | 27 November 2023, 15:55:36 UTC | [webgui] use classical browser by default | 27 November 2023, 21:22:21 UTC |
171bed8 | Sergey Linev | 27 November 2023, 13:27:54 UTC | [webgui] always use loopback Disregard of rootrc parameters always assign loopback. FastCGI is also disabled for the moment; it is alternative to civetweb | 27 November 2023, 21:21:59 UTC |
f93c4f0 | Sergey Linev | 21 November 2023, 07:32:09 UTC | [webgui] use loopback by default Default value is on in C++ code, but was remained off in system.rootrc and over-rulling C++ (cherry picked from commit 7d500ff00a902c4e2db65b72660493ee2c33e1ac) | 26 November 2023, 12:54:07 UTC |
932848e | Sergey Linev | 31 October 2023, 11:52:00 UTC | [jsroot] 6.3.x 31/10/2023 with critical fixes from v7 Fix - do not draw empty TGraph Fix - do not exclusion if distance too small Fix - correctly open channel in web window Fix - correctly get bin for RH3 | 31 October 2023, 12:05:11 UTC |
29a2817 | Vincenzo Eduardo Padulano | 03 October 2023, 15:15:18 UTC | [df] Add regression test for #12043 | 03 October 2023, 20:56:33 UTC |
72a8cef | Vincenzo Eduardo Padulano | 03 October 2023, 07:32:08 UTC | [df] Avoid clearing sample callbacks after event loop Sample callbacks can be registered by an RAction or an RDefinePerSample instance. In both cases, the lifetime of the callback is tied to the lifetime of the object itself. Avoid eager clearing of the callbacks so to not interfer with the normal functioning. | 03 October 2023, 20:56:33 UTC |
e352c60 | Vincenzo Eduardo Padulano | 03 October 2023, 07:27:09 UTC | [df] Add RDefinePerSample to CMakeLists.txt | 03 October 2023, 17:13:09 UTC |
4da8566 | Jonas Rembser | 08 June 2023, 09:22:08 UTC | [RF][HF] Remove commented-out `Systematic` class from HistFactory Yesterday, I accidentally added a LinkDef entry for `RooStats::HistFactory::Systematic` (2607947ee3) as I didn't realize that this class was commented out. This commit removes this LinkDef entry again, and removes the commented-out class declaration such that these mistakes don't happen again. | 02 October 2023, 12:30:47 UTC |
20368cf | Vincenzo Eduardo Padulano | 20 September 2023, 19:20:23 UTC | [io] Validate fList data member in TDirectory::RecursiveRemove | 01 October 2023, 16:48:36 UTC |
4ddb69b | Vincenzo Eduardo Padulano | 21 September 2023, 06:51:33 UTC | [io] Do not initialize gROOT in TDirectory destructor | 01 October 2023, 16:48:36 UTC |
7ce25a8 | Vincenzo Eduardo Padulano | 21 September 2023, 06:57:28 UTC | Add unittest for TDirectoryFile destructor With the reproducer described in https://github.com/root-project/root/issues/13691. The test *must* link to some library that is not automatically ignored when loading PCMs in TCling::RegisterModule in order to trigger the segfault. | 01 October 2023, 16:48:36 UTC |
947c6fe | Jonas Rembser | 07 June 2023, 20:54:31 UTC | [RF][HF] Add missing LinkDefs for systematics classes in HistFactory This completes the list of LinkDef entries for the classes in `RooStats/HistFactory/Systematics.h`. Closes #12967. | 26 September 2023, 22:10:04 UTC |
79c33fe | Vincenzo Eduardo Padulano | 05 September 2023, 09:12:21 UTC | [PyROOT] Test TGraph[Asymm,Benti,Multi]Errors getters | 08 September 2023, 08:28:29 UTC |
7f09a9b | Vincenzo Eduardo Padulano | 05 September 2023, 09:08:12 UTC | [PyROOT] Extend Pythonization of TGraph* getters Extend the regex passed to 'compose_method' to include 'E*(low,high)[d]' getters. | 08 September 2023, 08:28:29 UTC |
fb22ea9 | Enrico Guiraud | 03 August 2023, 17:15:47 UTC | [core] Do not provide our own strlcpy if glibc >= 2.38 Since version 2.38, glibc provides strlcpy and strlcat. No need to provide our own. In fact ROOT's definitions clash with glibc's: the latter are marked `noexcept`. | 29 August 2023, 08:43:31 UTC |
9583d15 | Philippe Canal | 16 August 2023, 00:39:58 UTC | Delete the object held by gROOT after we reset the globals. For example this allows unique_ptr to be deleted first and thus inform TROOT if need be. Fix #13462 | 16 August 2023, 22:45:58 UTC |
2f33648 | Jonas Hahnfeld | 25 July 2023, 13:59:32 UTC | [TCling] Fix suppression of enum forward declarations There can be multiple attributes in the forward declaration, see the added test in roottest/cling/dict/enum (reduced from a case reported by CMS in https://github.com/cms-sw/cmssw/issues/42234), so we have to look for the last closing parentheses. (cherry picked from commit 9d2f7612a6e88d3a7148b19e131402349bac509b) | 27 July 2023, 11:10:06 UTC |
fe72f2f | Olivier Couet | 25 May 2023, 11:18:36 UTC | [skip-ci] with the new doxygen the doc footer was corrupted (#12885) (cherry picked from commit d05fe4830381c2ebd435ae8111be3807802ccbbf) (cherry picked from commit e92a6046d0d368864942d22920d1eb7cbb79904f) | 26 May 2023, 12:30:42 UTC |
98dcad9 | Philippe Canal | 17 April 2023, 15:14:12 UTC | TTreeCache::FillBuffer extent internal code doc | 23 May 2023, 23:57:35 UTC |
475a8e5 | Philippe Canal | 21 April 2023, 16:18:57 UTC | TTreeCache: handle binary search failure | 23 May 2023, 23:57:35 UTC |
919d2e9 | Philippe Canal | 12 April 2023, 16:22:52 UTC | TTree::Cache Use binary search instead of linear search for first basket. On an extreme example: 15,272,928 entries 152,739 baskets (and as many clusters) 10,000 Actual TTreeCache buffer size (minimum allowed) 8,442 estimated buffer size of TTreeCache (1.5 times compressed buffer size) 400 bytes per baskets 100 entries per baskets (i.e. per clusters) 25 number of cluster per TTreeCache buffer for single branch with default size. 1 float per entry (reading a single branch). we gain 20% run time on a call to `Tree::Draw` | 23 May 2023, 23:57:35 UTC |
bff7aa1 | Philippe Canal | 12 April 2023, 16:10:02 UTC | TTreeCache correct place cache (avoid O(N^2) behavior Prior to this change, the cache of which basket to start the search on would restart from the first basket at each cluster iteration (i.e. for filling the cache with with clusters) On an extreme example: 15,272,928 entries 152,739 baskets (and as many clusters) 10,000 Actual TTreeCache buffer size (minimum allowed) 8,442 estimated buffer size of TTreeCache (1.5 times compressed buffer size) 400 bytes per baskets 100 entries per baskets (i.e. per clusters) 25 number of cluster per TTreeCache buffer for single branch with default size. 1 float per entry (reading a single branch). This ends up repairing the performance of a simple `TTree::Draw` of a single branch from 1 hour back down to 7s (performance seem in v6.12). This correct an issue introduced by commit 73f6223d0c9 first since in v6.14/00 This fixes #12649 | 23 May 2023, 23:57:35 UTC |
f2c75a0 | Philippe Canal | 06 April 2023, 21:18:13 UTC | Always enable cache in TTreePlayer unless explicitly disabled. Previously depending whether the TTreeCache was globally enabled or disabled and whether fAutoFlush was set or not, the TTreeCache would be enabled or not. In particular no longer rely on TTree::Streamer setting fCacheSize to an estimated value when the TTreeCache is disabled globally (The old code lead to the cache being enabled even-though it was disabled). Note/Reminder: `TTreePlayer::Process` (and hence `TTree::Draw`) does not rely on the global setting on whether the cache should be used or not and only respect an explicit disabling of the cache for the specific `TTree` being used. | 23 May 2023, 23:57:35 UTC |
39a9c4c | Philippe Canal | 06 April 2023, 21:15:05 UTC | Add TTree::EnableCache | 23 May 2023, 23:57:35 UTC |
2114420 | Philippe Canal | 06 April 2023, 18:58:33 UTC | TTree::GetCacheAutoSize factor out size calculation | 23 May 2023, 23:57:35 UTC |
8ed1808 | Philippe Canal | 06 April 2023, 18:50:51 UTC | TreeCache fallback size should not use cacheFactor | 23 May 2023, 23:57:35 UTC |
f4e645e | Philippe Canal | 23 May 2023, 15:48:32 UTC | HistFactory: open channel and combined files only once | 23 May 2023, 22:35:48 UTC |
a25c523 | Sergey Linev | 05 May 2023, 12:44:02 UTC | Fix seldom crash in TPad::ShowGuidelines In some cases gPad can be set to tmpGuideLinePad, which is deleted any time ShowGuidelines method is called. In that case pointer on this temporary pad should be removed from TContext object | 08 May 2023, 08:06:02 UTC |
6a220a3 | Mattias Ellert | 20 January 2023, 05:34:11 UTC | Add missing #include <cstdint> Fixes compilation error with gcc 13 | 07 May 2023, 19:55:44 UTC |
775bbc6 | scott snyder | 30 November 2022, 03:05:39 UTC | Fix compilation with gcc13. Missing #include <cstdint>. | 07 May 2023, 19:55:44 UTC |
e1d7c7a | Jonas Rembser | 25 April 2023, 05:40:16 UTC | [RF] Fix off-by-one error in HistoToWorkspaceFactoryFast There is an error here that was introduced in `dc65afe`: https://github.com/root-project/root/blob/6abb8e90d9bea276269f375a67855c4065813343/roofit/histfactory/src/HistoToWorkspaceFactoryFast.cxx#L760-L762 This error should only be thrown when the number of observables is not 1, 2 or 3, but currently fires if the number is equal to 3. See the change from `dc65afe` here where the mistake is evident: https://github.com/root-project/root/commit/dc65afe00ec72d18ebc5d31e7b2d6b50c6a20423#diff-42ea09980f1ed2bacde4381f212c35d78be6ddedccf746953dc99d6455525d8aL1256-R1221 The conditional should be `if (fObsNameVec.empty() || fObsNameVec.size() > 3)` This needs to be backported to ROOT 6.26 and 6.28 to make it into the next patch releases. Thanks to @CoffeeIntoScience for reporting this bug! | 25 April 2023, 11:24:31 UTC |
0edacdf | Jonas Rembser | 23 April 2023, 16:09:13 UTC | [RF] Don't throw an error if `roobatchcompute` lib was already loaded The `roobatchcompute` library dynamically loads the most performant implementation library that the CPU supports. However, it throws an error if the library was already loaded. Indeed, in most usecases it's correct that the implementation library is not loaded before the RooBatchCompute main library is initialized, but if a RooFit script is executed via `gInterpreter->LoadMacro("Macro_Name.cxx++")`, the library is already loaded the second time the macro is launched like this. Hence, it's better is the `batchcompute` library throws no exception if the implementation is already loaded. This fixes a problem reported on the forum: https://root-forum.cern.ch/t/roofit-computation-library-libroobatchcompute-avx2-was-loaded-before-roofit-initialisation-began/54580 | 25 April 2023, 11:24:31 UTC |
d169650 | Philippe Canal | 07 October 2022, 19:57:38 UTC | MakeProject: workaound deficiency in gcc 11.2 warning On Ubuntu 22, gcc 11.2 with get the apparently spurious message: aliceesdProjectSource.cxx: In copy constructor ‘AliESDkink::AliESDkink(const AliESDkink&)’: aliceesdProjectSource.cxx:992:54: warning: writing 16 bytes into a region of size 8 [-Wstringop-overflow=] 992 | for (Int_t i=0;i<4;i++) (&(fTPCdensity[0][0]))[i] = (&(rhs.fTPCdensity[0][0]))[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from aliceesdProjectHeaders.h:20, from aliceesdProjectSource.cxx:3: AliESDkink.h:36:26: note: destination object ‘AliESDkink::fTPCdensity’ of size 8 36 | Float_t fTPCdensity[2][2]; //tpc cluster density before and after kink | ^~~~~~~~~~~ I.e. complaining about having only 8 bytes when 16 are reserved. We work around this issue by using: for (Int_t i=0;i<4;i++) reinterpret_cast<Float_t*>(fTPCdensity)[i] = (&(rhs.fTPCdensity[0][0]))[i]; | 21 April 2023, 17:52:01 UTC |
cec589f | Philippe Canal | 16 March 2023, 23:33:27 UTC | Allow splitting of TTime objects | 19 April 2023, 23:01:09 UTC |
29ebdcb | Philippe Canal | 31 March 2023, 19:04:45 UTC | TClassTable: white space | 06 April 2023, 22:52:13 UTC |
c2f65c0 | Philippe Canal | 31 March 2023, 18:50:38 UTC | TClassTable: move table creation trigger out of critical section | 06 April 2023, 22:52:13 UTC |
0a855ec | Philippe Canal | 30 March 2023, 22:27:59 UTC | TClassTable rename RAII class to NormalizeThenLock and add doc | 06 April 2023, 22:52:13 UTC |
bf8939f | Philippe Canal | 30 March 2023, 22:27:10 UTC | TClassTable: Remove obsolete FindElement The name normalization must be done outside of the TClassTable critical section, so both the normalization and lock taking needs to be done outside the FindElement function. Then rename the remaning function (FindElementImpl) into the now available FindElement. Both are private functions | 06 April 2023, 22:52:13 UTC |
5b5f205 | Philippe Canal | 27 March 2023, 18:55:29 UTC | TClassTable: fix data race between dlopen and other use This fixes #12552 This commit add a mutex for the TClassTable inner operations. Several changes were needed to insure that operation that can either take the ROOT global lock or recursively call TClassTable are executed outside of the TClassTable critical sections. | 06 April 2023, 22:52:13 UTC |
d6bc746 | Philippe Canal | 27 March 2023, 18:53:39 UTC | NFC: TClassTable updated white space and newlines | 06 April 2023, 22:52:13 UTC |
38994b6 | Kyle Knoepfel | 05 April 2023, 16:28:15 UTC | Fully qualify ROOT namespace | 06 April 2023, 22:52:13 UTC |
35e0f6e | Enrico Guiraud | 02 February 2023, 19:32:15 UTC | [VecOps] Avoid -ffast-math The performance gains are unclear and the option can harm users linking against the library with gcc<13, see also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522 . (cherry picked from commit 3cfb0da6078ca9ebdb4d006c56102eaff1a1b45f) | 03 April 2023, 15:52:56 UTC |
ac72372 | Enrico Guiraud | 01 March 2023, 15:52:54 UTC | [VecOps] Avoid unnecessarily large allocations when masking We only need to allocate storage for the elements that pass the mask, not for as many elements as the original array had. | 03 April 2023, 15:52:56 UTC |
7ff8559 | Enrico Guiraud | 01 March 2023, 15:49:56 UTC | [VecOps] Make sure lifetime of elements is started when masking Before this commit the implementation of RVecN::operator[](const RVecN<V, M> &conds) implicitly assumed that the value type be trivially-constructible: it was using reserve + copy-assignment + manual resizing to fill the returned vector, which never properly initializes the new elements. This commits changes that to a reserve + push_back, which properly constructs the new elements in place. This fixes #12398. | 03 April 2023, 15:52:56 UTC |
5858905 | moneta | 03 March 2023, 11:24:00 UTC | Fix the copying of TF2 or TF3 objects in TEfficiency::Fit | 17 March 2023, 17:02:55 UTC |
b08941f | Jonas Rembser | 13 February 2023, 18:46:46 UTC | [RF] Support `RooAbsCategoryLValue::setBin()` for non-existing ranges In `RooAbsCategoryLValue::setBin()`, there is a check for passing a named binning, because the function doesn't support named binnings. However, if a binning with that name doesn't exist, it is fine to not error out, because the default range is used. | 16 February 2023, 09:24:39 UTC |
cb99ef5 | Jonas Rembser | 21 January 2023, 10:36:36 UTC | [RF] Fix signature of `RooWorkspace::getSnapshots()` For ROOT 6.26, the `RooWorkspace::getSnapshots()` method was introduced in commit 460a58cb28. However, the signature was not what it should have been: it returned a copy of the snaphot list instead of a `const` reference. This is fixed now, which also uncovered a bug in some RooStats code where the snapshots are supposed to be transferred from one workspace to another, but they were just appended to the new list that was returned by `getSnapshots()`, so whe whole code had no effect. This is fixed now by correctly using `RooWorkspace::saveSnapshot()`. | 16 February 2023, 09:24:39 UTC |
300183c | moneta | 30 January 2023, 18:27:39 UTC | fix also classification test | 08 February 2023, 11:58:26 UTC |
020226e | moneta | 30 January 2023, 13:58:50 UTC | [tmva][pymva] Use correct python executable for the tests | 08 February 2023, 11:58:26 UTC |
e79fa9e | moneta | 23 March 2022, 15:14:55 UTC | Add support in the Keras RModel parser to models where the batch size is not defined. In this case define a RModel with batch size=1 | 08 February 2023, 11:58:26 UTC |
a2d13d5 | Philippe Canal | 20 January 2023, 19:31:12 UTC | Re-enable registration of thread-local gDirectory to gROOT. Registrering the thread-local gDirectory with the gROOT (which is special TDirectory) allows to keep the shared_pointer alive until gROOT is destructed. Technically we would only need to keep around the one associated with the main thread. Thread local storage (and hence the original shared_ptr for the thread local gDirectory) is destructed (even for the thread local associated with the main thread) before the static storage is destructed. So prior to this commit, the main thread's gDirectory shared pointer was destructed before the start of the TROOT destructor and then TDirectory::CleanTargets when using explicitly 'gDirectory' was reading deleted memory. | 27 January 2023, 21:15:57 UTC |
03c011e | Philippe Canal | 20 January 2023, 15:46:10 UTC | [NFC] Extend TDirectoryAtomicAdapter comments | 27 January 2023, 21:15:57 UTC |
295ce33 | Philippe Canal | 19 January 2023, 19:18:07 UTC | [NFC] Extend TDirectoryAtomicAdapter comments | 27 January 2023, 21:15:57 UTC |
ee347fa | Philippe Canal | 19 January 2023, 18:44:28 UTC | TDirectory remove redundant lock. It was only lock the access to a atomic that since it is held by a shared pointer is guarantee to exist when it was used in connjunction with the lock | 27 January 2023, 21:15:57 UTC |
0743f73 | Philippe Canal | 19 January 2023, 16:47:51 UTC | TDirectory::CleanTargets: add code comment, remove dead code | 27 January 2023, 21:15:57 UTC |
b9a0da8 | Philippe Canal | 18 January 2023, 21:54:14 UTC | Improve TDirectory code comments | 27 January 2023, 21:15:57 UTC |
a342b08 | Philippe Canal | 22 December 2022, 17:05:30 UTC | Remove TThreadSlots's kDirectoryThreadSlot | 27 January 2023, 21:15:57 UTC |
36c2b7b | Philippe Canal | 21 December 2022, 23:29:54 UTC | Do not register gROOT with the context and gDirectory | 27 January 2023, 21:15:57 UTC |
de386a0 | Philippe Canal | 21 December 2022, 23:28:04 UTC | Remove CINT code guard in TDirectory.h | 27 January 2023, 21:15:57 UTC |
640df90 | Philippe Canal | 21 December 2022, 23:16:33 UTC | Factor out the gDirectory registration | 27 January 2023, 21:15:57 UTC |
ef4324f | Philippe Canal | 21 December 2022, 22:17:56 UTC | Split TDirectory::cd into 2 implementation. Separate the 2 implementation so that the parameter less implementation can focus on the gDirectory update while the implementation taking a path parameter can focus in the path search (and then call the other one). | 27 January 2023, 21:15:57 UTC |
101adba | Philippe Canal | 21 December 2022, 22:00:13 UTC | Slight extension of TDirectory::cd*'s documentation | 27 January 2023, 21:15:57 UTC |
d90c7ba | Philippe Canal | 21 December 2022, 02:18:12 UTC | Add comment why TDirectory::CleanTargets can not use gROOT for ctxt reset | 27 January 2023, 21:15:57 UTC |
817f5d5 | Philippe Canal | 20 December 2022, 02:14:26 UTC | Better reset value for the other thread gDirectory We now apply the same algorithm for the reset value of other's thread gDirectory (point to 'this' file) as we do for the local gDirectory. | 27 January 2023, 21:15:57 UTC |
4e5210f | Philippe Canal | 19 December 2022, 21:43:23 UTC | Must NOT reset gDirectory to gROOT even in threads In the previous implementation at every lookup of the thread local gDirectory, its value was checked against nullptr and if it was, it was reset to gROOT. This disabled the pattern of setting gDirectory to nullptr to prevent any registration of newly create Histogram or TTree. This pattern is used for example in TGraph2D::GetHistogram. The net result was that the pattern work perfectly if it was run on the main thread but failed if it was run in a thread. For example, in the case of TGraph2D::GetHistogram, when this was called on a thread, the ownership was shared between the TGraph2D and gROOT but TGraph2D does not implement RecursiveRemove (since it does not need to, since it does not expect shared ownership) and thus there was case of double deletion or access after delete of the histogram. | 27 January 2023, 21:15:57 UTC |
222b9e1 | Philippe Canal | 16 December 2022, 23:23:41 UTC | Resolve race condition between thread tear down and file closing. In the previous implementation, the TFile retained the address of the thread local gDirectory pointer. However once the thread is tear down that address is now invalid. Instead we now create a shared_pointer. One copy is thread local (and the 'official' location of the thread local gDirectory). Other copies are held by the TFile in their list of gDirectories to be updated at closure. Note: We no longer use TThread as the holder of the thread local for gDirectory. | 27 January 2023, 21:15:57 UTC |
0d8ab5d | Philippe Canal | 16 December 2022, 02:00:04 UTC | TROOT::GetFile avoid nullptr dereference | 27 January 2023, 21:15:57 UTC |