https://github.com/root-project/root

sort by:
Revision Author Date Message Commit Date
c7b379c 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:09:42 UTC
e4ec593 [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`. 31 August 2023, 20:28:38 UTC
038b8a4 io: Do not turn on automatically MustClean for TDirectory 21 August 2023, 16:48:47 UTC
585de29 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:01 UTC
c720a8f Add Rint as a dependency of rootcling `TCling.cxx`’s `RegisterCxxModules` loads explicitly several modules including `Core`, `Rint` and `RIO`. When executing rootcling (for example for G__Net.cxx) *before* `G__Rint.cxx` was created and thus before `lib/Rint.pcm` was properly created, a default `lib/Rint.pcm` is auto-generated and registered as one of the dependencies. Later the real `lib/Rint.pcm` is created is creation date is later than other `pcm` than depends-on/uses it’s creation time. For example: ``` $ ls -lart lib/Net.pcm lib/MultiProc.pcm lib/Imt.pcm lib/MathCore.pcm lib/Rint.pcm -rw-r--r-- 1 pcanal pcanal 1158548 Nov 10 20:26 lib/Net.pcm -rw-r--r-- 1 pcanal pcanal 1278392 Nov 10 20:27 lib/MultiProc.pcm -rw-r--r-- 1 pcanal pcanal 2032752 Nov 10 20:27 lib/Imt.pcm -rw-r--r-- 1 pcanal pcanal 12911448 Nov 10 20:27 lib/MathCore.pcm -rw-r--r-- 1 pcanal pcanal 444724 Nov 10 20:35 lib/Rint.pcm ``` then later uses of those `pcm` leads to the (mis-worded) error message: ``` <<< cling interactive line includer >>>: fatal error: module file '/home/neel/Desktop/Root/build/lib/Rint.pcm' is out of date and needs to be rebuilt: could not read module signature <<< cling interactive line includer >>>: note: imported by module 'MathCore' in '/home/neel/Desktop/Root/build/lib/MathCore.pcm' Error: Module 'MathCore.pcm' failed to load. Error: Error loading the default rootcling header files. make[2]: *** [math/mathmore/CMakeFiles/G__MathMore.dir/build.make:130: math/mathmore/G__MathMore.cxx] Error 1 ``` See the related circumstances in https://root-forum.cern.ch/t/wsl-build-from-source-error-rint-pcm-is-out-of-date-cannot-read-module-signature/47564/39 The stack trace that was triggers the auto-generation of `Rint.pcm` at /home/pcanal/root_working/code/master/interpreter/llvm/src/tools/clang/lib/Sema/SemaModule.cpp:325 at /home/pcanal/root_working/code/master/interpreter/cling/lib/Interpreter/Interpreter.cpp:908 at /home/pcanal/root_working/code/master/interpreter/cling/lib/Interpreter/Interpreter.cpp:872 at /home/pcanal/root_working/code/master/core/metacling/src/TCling.cxx:1590 11 November 2022, 22:37:51 UTC
cd879a3 TStreamerInfo::New needs to use the CollectionProxy::New This fixes issue #9543 In the issue #9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue #9543 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix #9543 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case). 20 January 2022, 12:46:59 UTC
45a1d8c [RF] Fix missing initializer warnings in MemPoolForRooSets.h This PR should fix the build warnings in the v6.18 nightlies. I have checked that the missing field initializer warnings go away with this change by compiling the following example snippet under gcc48: ```C++ // compile with g++ -Wmissing-field-initializers -std=c++11 -o test test.cc struct A{ A() : arr_{{}} {} std::array<int, 10> arr_ = {{}}; }; int main() { A a{}; std::cout << a.arr_[0] << std::endl; return 0; } ``` The warnings are reproduced, and can successfully be suppressed by replacing `{}` with `{{}}`. This is a backport of 855fd44340e13161f88ca09a86e50abf5c1cd5a1. 21 October 2021, 14:39:26 UTC
dca7e42 gdml: add support for the official spelling of millimeter 07 July 2021, 20:12:33 UTC
a9f3e86 Remove stray debug print out. It was inadvertently introduced in 82fad768c9a In TBranchElement::Print use the correct StreamerInfo in case of schema evolution 22 June 2021, 21:13:09 UTC
d7e4665 [core] Missing include in string_view header 31 May 2021, 16:53:27 UTC
cf1b9ca [RF] Use again operator new instead of ObjectAlloc in MemPoolForRooSets This reverts a change from commit b874ed534f40ad80db3f8a3395d5dd44183811bb. The change was causing crashes in in python code. 29 April 2021, 14:27:25 UTC
b874ed5 [RF] Reduce memory consumption of MemPoolForRooSets The MemPoolForRooSets has two problems: 1. Scaling issues: increasing memory and CPU consumption with increasing number of arenas, becuase trying to allocate a new non-overlapping arena often fails. 2. Amplification of memory leaks in user code: If one of the elements in the arena leaks, the whole arena will leak. Since each arena has 6000 elements, this means a leak of a RooArgSet will be ampilfied by a factor 6000 in the worst case. This commit proposes a solution to the scaling/performance issues and the leak amplification. Explained for the example for RooArgSet, the idea is to use each arena 120 times because this is the size of RooArgSet in bytes. This can be done while still having unique adresses for each RooArgSet: 1. Keep a gap of 120 bytes between each RooArgSet 2. When an address was used before, add one byte and in can be used again So at the cost of allocating 2x more memory per arena, we can reuse each arena 120 times. Now, the good thing is that the interval of creating/deleting RooArgSets is usually higher than 6000. So when reusing an arena multiple times, they will eventually be filled only by leaking RooArgSets if there is a leak. Meaning the leak amplification effect should be gone. This was checked with the CMS Higgs combine toy fit example from the Higgs combine tutorial. Without this commit, there is a GB-level leak that can be clearly observed with `top`, but with this commit the leak becomes negligible again. (cherry picked from commit 73acf88a799547bfe7eacf37a4537a2968da57af) 22 April 2021, 18:43:51 UTC
297d2ac [RF] Deallocate memory owned by empty MemPoolForRooSets Arenas If an arena in the MemPoolForRooSets is not referenced anymore, it should delete the memory it has allocated. (cherry picked from commit a3f4198f546e6e41323a8d0871aad74fcbb9b252) 22 April 2021, 18:43:51 UTC
72f78b8 [RF] Fix memory leak in ToyMCSampler. Fix #7890. (cherry picked from commit e485b2898ae65b78cd4208ae2f5337b703228c8a) 22 April 2021, 18:43:51 UTC
af9cde8 [webgui] fix compiler warning 15 April 2021, 11:08:26 UTC
ccd35b5 [test] Update location of xrootd test files: The original directory was removed. (cherry picked from commit ca9ab88c7e38046dae309d039b7912e294a5435d) 14 April 2021, 17:13:08 UTC
ed9d3f2 Modify testSMatrix.cxx:test16 to test each matrix element with a tolerance of 10 ULP 04 February 2021, 09:01:52 UTC
b9f11b0 add some debug when test failed 03 February 2021, 16:42:32 UTC
c5ea772 [RelNotes] Clarify statement in 6.18 release notes. (cherry picked from commit 3a7067669a9e2b64e988cf87394e54953a9025d7) 03 December 2020, 19:45:09 UTC
4a54cb9 Add config switch to disable (x)proofd. Default OFF. (#5432) * Add config switch to disable (x)proofd. Default OFF. This patch disables default building proofd and proofx modules, the PROOF ones requiring XRootD. The possibility to build these modules is provided as legacy and controlled by the switch 'xproofd' (-Dxproofd=ON). Note that these modules require XRootD v4 and the xrootd-private-devel RPM installed (or equivalent on Debian systems). Or -Dbuiltin_xrootd=ON . * Proof: fix segv introduced by patch 7a810c6f207 (2020-02-14) 09 November 2020, 15:16:01 UTC
dd56717 Compatibility with xrootd 5. The old client library libXrdClient is removed. Also XrdSysDNS is removed. Do not build the legacy XProofD file server and client (already disabled by default - give error if someone enables it while building with xrootd 5). Do not build the old libNetx. Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead. 09 November 2020, 15:16:01 UTC
bec0dc1 GLOBbing is fine, WARNING if install_name_tool not found 09 November 2020, 15:16:01 UTC
6ae6337 List needed libraries and use ERROR_QUIET 09 November 2020, 15:16:01 UTC
4143502 Add INSTALL_RPATH to xrootd build and post install script to correct it after installation 09 November 2020, 15:16:01 UTC
8ecc0c4 [PyROOT] Silence deprecated-declarations warning for tp_print in Python3.8 13 October 2020, 10:17:34 UTC
36aea28 Fix -Wmissing-field-initializers in python bindings for Python 3.8 and 3.9 Warnings with python 3.8: .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_vectorcall' [-Wmissing-field-initializers] .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_print' [-Wmissing-field-initializers] Warnings with python 3.9: .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_vectorcall' [-Wmissing-field-initializers] 13 October 2020, 10:17:34 UTC
df64ad3 [cmake] Update host for Davix download, as per Maarten's request. 13 October 2020, 09:52:52 UTC
0af6e9b [cmake] Load ctest envvars for Python vetos 28 August 2020, 12:40:19 UTC
e32de2e Remove obsolete TGenCollectionProxy::UpdateValueClass. The implementation was not thread safe **and** has been obsolete ever since fType is a TClassRef and since c9460ae556c84c9a7febb7cef6865e8e04c2621a make the update much faster (single atomic update) and thread safe. 12 August 2020, 17:38:42 UTC
ff2ff89 Use std::memory_order_relaxed for 'standalone' atomics 12 August 2020, 17:38:41 UTC
44aab6d Avoid extremely frequent setting of atomic to ... the same value. This was happening to TClass::fVersionUsed. Replacing the assignment with a test then assign greatly improved scaling of io on 'small objects' 12 August 2020, 17:38:40 UTC
a89321b Reduce contention on some atomics in core/meta and io 12 August 2020, 17:38:40 UTC
c41ef66 [NFC] White space. 12 August 2020, 17:26:32 UTC
7a6becc Improve TBasket/TBuffer memory allocation for reading. Rename TBasket::Reset to TBasket::WriteReset Add TBasket::ReadResetBuffer which will shrink the buffer is it is currently significantly larger than it is needed to any of the next (up to) 10 baskets. 12 August 2020, 17:26:31 UTC
b77fa7c [DF] Fix inclusion of certain arrow headers in new arrow versions (#6138) arrow/compute/test_util.h has been removed from recent versions, but arrow/testing/gtest_util.h contains what we need and is present both in v0.15 and v0.17. 07 August 2020, 08:43:01 UTC
fbe2182 Avoid auto-parsing for std::pair during I/O init. Don't provoke auto-parsing during name normalization for the std::pair (but let it happen for its parameters if need be). In TGenCollectionProxy Don't provoke autoparsing for an std::pair. In TGenCollectionProxy handle the fact that we may now not find the std::pair. Addresses (at least part of) ROOT-10932 23 July 2020, 15:28:27 UTC
dcb6e6c In TClass::GetListOfBaseClasses, correct conditional. It looks like without ROOT pcm but with a ClassInfo/Decl available but not loaded then the base class would not be properly setup. 15 July 2020, 17:15:24 UTC
d72e536 Reduce TBasket high water mark use. Fix ROOT-10927. In commit 79f2e3b0e5, TBranch::GetFreshBasket was effectively switch from always reallocating the TBuffer (i.e. minimal memory use but maximal number of memory allocation) to always keeping the TBuffer (i.e. maximal memory use but minimal number of memory allocations). This causes a problem in a use CMS use case where: - files were kept open - TTree were kept in memory - has (at least) one branch with one unusually large basket (257Mb) This accumulated to increase the memory use from 1.8Gb to 2.9Gb. For now (quick fix), we use TBasket::Reset (tuned for writing) also for reading. (This leads to spurrious large reallocation in case of a consecutive series of large baskets). 14 July 2020, 19:46:01 UTC
c54aac0 In MakeProject properly handle ptr in template args. Without this std::map<int,std::vector<double>* > got corrupted into std::map<int,std::vector<double,*> >. This fixes ROOT-10796 24 June 2020, 19:17:28 UTC
1967743 [NFC][io] Fix typo in comment and add new line after if 24 June 2020, 16:15:10 UTC
9181a8d Fix ROOT-9240 by preventing TMapFile::WhichMapFile from initializing TROOT. TMapFile::WhichMapFile is called via operator delete which is used during RegisterModule and letting TMapFile::WhichMapFile trigger the initialization of the TROOT object means that a) RegisterModule will have nested called to RegisterModule b) The interpreter will be created in the middle of the execution of RegisterModule. Both are potentially fatal (i.e. undefined behavior). 24 June 2020, 15:54:26 UTC
1b04aaf Add missing read lock in THashTable::FindObject(const TObject *obj). Fix ROOT-10839 11 June 2020, 19:58:33 UTC
fdc062d TTree::CopyAddress: update array allocation for all leaves. Fix ROOT-10837 (and technically it is a completion of the fix for ROOT-9393). See allow commit f8897bb49c2fc81e875a7fd70dec9f1f714e6398 and 6ad1a98455bec01ccfce6ea9ddde62154bedf1a4. Seen with CMS NanoAOD files: https://root-forum.cern.ch/t/merge-nanoaod-root-files/39707/13 When the files have several array branches using the same "leaf count" branch and the maximum array size increase from file to file, only the memory allocated for the "first" array is extended. This results in memory error for the other arrays. 10 June 2020, 16:26:07 UTC
d735255 [RDF] Move dictionary generation into RDF test to fix dependency issues. 30 May 2020, 13:56:55 UTC
56534fa [RDF] Fix a dependency issue for an RDF test. splitcoll-arrayview needs a dictionary to run. This creates a dependency between dictionary generation step and test target to fix a build-system race condition. 28 May 2020, 20:02:28 UTC
adb88db [RDF] Fix a dependency issue for an RDF test. splitcoll-arrayview needs a dictionary to run. This creates a dependency between dictionary generation step and test target to fix a build-system race condition. 28 May 2020, 13:29:56 UTC
62f8e99 Revert "[DF] Disable splitcoll_arrayview test if runtime modules are on" Failures in 6.16 even though the test was turned off if runtime modules were on demostrate that this was not the cause, but most probably a race condition in the build system. This reverts commit 603d9701d086bb67fb42e8ee5f921d71bd499e48. 28 May 2020, 13:29:56 UTC
142803b [cmake] Keep PYTHON_EXECUTABLE from find_package(Python2? for tutorials/. (cherry picked from commit e0fa6cc9146ee034b6067f22a4c7d9141af6d80a) 25 May 2020, 20:18:31 UTC
edcf6b2 [cmake] Use FindPython for newer CMake, fixes MacOS 10.14 with Xcode 11: See https://gitlab.kitware.com/cmake/cmake/issues/19763 (cherry picked from commit 38c49999088f58e63f1c819d74abf37363525fd9) 25 May 2020, 20:18:31 UTC
ccc8ede Also capture SFINAE error counts (ROOT-10754, ROOT-10777): When doing lookup on templates, instantiation can fail. This can be triggered during template instantiation somewhere in clang, autoloading, cling-lookup - and SFINAE errors that occur in cling-lookup must not bubble up to clang, or else clang will think that there was a problem (where there was none - just e.g. ROOT trying to autoload a bogus template). In this concrete case, a template specialized with a lambda was not found by clang, was tried to be autoloaded, TMetaUtils produced a broken normalized type name, lookup on the broken type name failed with a SFINAE error - and that ended up being swallowed by a clang SFINAETrap by the topmost lookup. Instead, keep SFINAE errors to ourselves. This is an improved version of 40673e583fceda8b362a0902c6aba371ddd0cfd8 which lowers the SFINAE-reset to Lookup, as AutoParse can still see partial template specialization scopes. It fixes ROOT-10777. (cherry picked from commit 4dcdbcb9f7a5cdc774da9e1dcb67b388cd685039) 25 May 2020, 08:27:08 UTC
c8a5b66 [cling] Make use of shared_ptr operators instead of get() (NFC). (cherry picked from commit add00009abbf854b6838778c947d6d2bbd4943ff) 25 May 2020, 08:27:08 UTC
1675987 Actually use a name unique to the tutorials. mp101_singleCore.root was (of course) also use by mp101_fillNtuples.C 21 May 2020, 15:28:50 UTC
c4b551b Fix issues in THistPainter and TFileMerger (#5410) * Protect against division by zero * Protect against null pointer 20 May 2020, 16:22:57 UTC
f3ae9f4 Do not use URL format for local files Fixes failing tree/chain related tests 23 April 2020, 16:28:12 UTC
3b151da Fix for ROOT-10494 TUrl silently removes double slashes ('//') in the file field. This makes string comparisons later on failing unless is done within TUrl. 23 April 2020, 16:28:12 UTC
29bd97b Fix ROOT-10696 by removing goto statement. Reduce the amount of state change involve in the execution TKey::Read* by using local variable when possible. One thing leaf is the change to fBuffer which is used by ReadFile (called from the TKey::Read*) but changing ReadFile is challenging since it is marked as a virtual function. 23 April 2020, 15:20:35 UTC
32878a4 Fix tests arrow tests 22 April 2020, 18:03:37 UTC
b10588e [DF] Fix header name in test/datasource_arrow.cxx From arrow v0.15, the header is called test_utils.h 22 April 2020, 18:03:37 UTC
450da8a [DF] Do not use C++14 in RArrowDS 22 April 2020, 18:03:37 UTC
920a230 Add support for arrow 0.15.0+ 22 April 2020, 18:03:37 UTC
07ef970 Renable TFile::ShrinkCacheFileDir. Use the non static TString::Form to actually modify the cmd string. Use || to actually delete the file when the .ROOT.cachefile does not exist 08 April 2020, 17:32:24 UTC
6037cb6 TNetXNGFile - read archive member size instead of the whole archive 07 April 2020, 14:11:50 UTC
603d970 [DF] Disable splitcoll_arrayview test if runtime modules are on This test fails with runtime C++ modules on in v6.18, runs fine in v6.20 and above. Won't fix. 03 April 2020, 09:46:16 UTC
cc19712 In TEntryList properly check error cases. In TEntryList::Remove and TEntryList::GetEntryAndTree the error case of GetEntry (received indirectly by TEntryList::Remove) was not treated and consequently 'undefined' behavior followed. stressEntryList triggered a crash in GetEntryAndTree when reading random memory to fill the input TTree led to a situation where a TEntryList was created on a large chain but then applied to only a subset of that chain __and__ the selection/random-number was such that none of the entries of the subset was selected (but some of the other part of the large chain was selected). This lead GetEntryAndTree to call GetEntry in a state that it returned an error code (-1) and left the TEntryList in a state unexpected by GetEntryAndTree (namely that fCurrent is nullptr even though fLists is not nullptr) 31 March 2020, 16:38:08 UTC
04cf4b3 In stressEntryList hide expected warning 31 March 2020, 16:38:08 UTC
bffe773 stressEntryList detect if entryList content is completely unexpected 31 March 2020, 16:38:08 UTC
5e4d08f Extend stressEntryList to test weird TEntryList content. Due to the previous random memory address read, we ended up testing a new content layout that we are reproducing now with a 'fixed' cut. In this test, we first create a TEntryList from a large chain but apply it to a small chain but none of the entries in the small tree was selected then it triggered a crash in TEntryList 31 March 2020, 16:38:08 UTC
1e340b0 In stressEntryList do not fill the Tree from random memory address. 31 March 2020, 16:38:08 UTC
6d2fb83 you can now select how MAKEEXE is building the test executable in case of failure. This is a follow up of f52497607d370f688e93df316da41af9ed1ff297 and a fix for ROOT-10632 31 March 2020, 16:38:08 UTC
942f64b Fix in TEntryList - check fCurrent memeber before access 31 March 2020, 16:38:08 UTC
a97668a Patch Vc to avoid warnings about macro redefinitions See https://github.com/VcDevel/Vc/issues/247 for more information. 27 March 2020, 08:10:33 UTC
e5ddfc0 add GLEW as dependency for FTGL 25 March 2020, 08:10:11 UTC
282be4e add missing GL includes in FTGL 25 March 2020, 08:10:11 UTC
ca2be84 [tutorials] Do not overwrite files of other tutorials: Made ARM 256 core builds fail! 23 March 2020, 15:26:50 UTC
a73e26e [DF] Move test_splitcoll_arrayview to gtests from roottest 21 March 2020, 11:30:24 UTC
bcb6d72 [ntuple] cosmetics (NFC) 16 March 2020, 16:22:01 UTC
a8b7bf1 [ntuple, tutorial] fix bad assert expression 16 March 2020, 16:22:01 UTC
9006838 Protect multi-thread access to TSystem::fHelper. Fix ROOT-9966. 12 March 2020, 18:30:30 UTC
ac96ac9 [NFC] 0 to nullptr 12 March 2020, 18:30:30 UTC
ea29771 Fix compilation error on Windows This patch fixes the following error: In file included from input_line_12:3: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/include\TGWin32.h:24: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdk.h:30: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdkcc.h:4: C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdktypes.h:32:10: fatal error: 'glib.h' file not found #include <glib.h> ^~~~~~~~ CUSTOMBUILD : error : C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/bin/rootcling.exe: compilation failure (C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/bin/libWin32gdk1fec221199_dictUmbrella.h) [C:\build\night\LABEL\windows10\SPEC\default\V\6-18\build\graf2d\win32gdk\G__Win32gdk.vcxproj] 27 February 2020, 16:24:52 UTC
181706c Fix ROOT-10552 incorrect StreamerInfoList update. Prior to this update if a StreamerInfo on file was the exact same as one in memory, it would get recorded in an arbitrary slot in the 'record those StreamerInfo array'. 20 February 2020, 20:12:18 UTC
872f5e9 Fix ROOT-10574, ResolveTypedef was stripping 2 char from name prefixed with :: The code was advancing the cursor and reducing the length, hence ignoring the last 2 characters. This had a visible consequence only if the input was a typedef (then it was not found/replaced when it should have) or the input minus the last 2 characters was a typedef (then it was replaced when it should not have). 20 February 2020, 20:12:18 UTC
9545bb8 TreeFormula: properly handle scalar index variable. Fix ROOT-10557. 18 February 2020, 15:18:21 UTC
ef40b56 TreeFormula: Better variable name 18 February 2020, 15:18:21 UTC
da77e82 Compile Interpreter.cpp with exception on. Fix script with exception with ROOT Mutex on. Compiling Interpreter.cpp allows RunFunction and friends to be actually seen during stack unwind after an exception has been thrown, directly or indirectly, by interpreter code. This allows for the RAII objects to be properly tear down. In particular, without this patch, EnterUserCodeRAII was not tear down and thus the callbacks were not executed. Consequently the "Restore the ROOT global Mutex" callback was not executed leaving the Mutex in an invalid state. In case of ART application, in most cases, they customize the ROOT error handler to throw an exception. This resulted (without this fix) in crash when import a GDML file with an error in it. In practice what we have is: call to TGeo Import which calls the interpreter for some of its functionality which calls gdml code which reports an error which leads the error handler to thrown an exception. ... some of the stack are properly unwound ... some are not (because they were not compiled with exception support on) .... ... so the ROOT Mutex goes into an incorrect state ... ... unwinding continues ... unwinding reached a frame that Unlock the mutex Mutex notices it is an incorrect state. so it reports the Error the Error handler throw an exception ....... and because this exception is being thrown during the unwind, it is fatal. 31 January 2020, 19:29:52 UTC
0df98d1 Clarify conditional in IsDefaultVector 31 January 2020, 17:15:50 UTC
818b2f0 In StreamerInfoActions always respect vector's custom-allocator Previously the handling was inconsistent resulting in mis-matches and thus memory errors. This fixes ROOT-10526. 31 January 2020, 17:15:50 UTC
db7bd7d Update comment in patch to DiagnosticsEngine::DiagStateMap::append 31 January 2020, 17:05:50 UTC
10a709f Add support for DiagnosticEngine state change within recursive parsing. This fixes ROOT-10504. the script: ``` namespace boost { namespace mpl { // Commenting the next line make the assert failure go away struct TTUBE {}; }} ``` reproduce the problem with 'just' ROOT. The trigger is the auto-loading of a library that has a dictionary with has forward decl string .. which all starts with: ``` static const char* fwdDeclCode = R"DICTFWDDCLS( extern int __Cling_Autoloading_Map; .... ``` The order of parsing is (with many ellipsis): ``` "<<< cling interactive line includer >>>" : line 9 : #include “standalone.C” standalone.C : line 1 : #pragma GCC diagnostic push standalone.C : line 2 : #pragma GCC diagnostic ignored "-Wuninitialized" // Inserted in Diag map standalone.C : line 3 : #pragma GCC diagnostic ignored "-Wsign-conversion" // Inserted in Diag map standalone.C : line 8 : struct TTUBE {} ; // triggers auto-loading and thus recursive parsing. "<<< cling interactive line includer >>>" : line 10 : parse dict fwd declare string input_line_9 : line 2 : #pragma clang diagnostic ignored "-Wkeyword-compat" // Inserted in Diag map input_line_9 : line 3 : #pragma clang diagnostic ignored "-Wignored-attributes" // Inserted in Diag map input_line_9 : line 4 : #pragma clang diagnostic ignored "-Wreturn-type-c-linkage" // Inserted in Diag map end of file standalone.C : line 12 : #pragma GCC diagnostic pop // Inserted in Diag map ``` The last line triggers the assert because when recording the state change, it records it as being from ``` standalone.C : line 12 "<<< cling interactive line includer >>>" : line 9 ``` but when recording the last one, it notices that the last state change that happened, indirectly, for the file '<<< cling interactive line includer >>>' happened at line 10 (because of the pragma in input_line_9 which is 'recorded' as being included by line 10), which makes that the state change for ```standalone.C:12``` happens 'ealier' than the last state change as far as the pseudo-file "<<< cling interactive line includer >>>" is concerned. For that pseudo-file, the last state change happened line 10 but the state change bbeing processed happens line 9 (where Standalone.C is being included). 31 January 2020, 17:05:50 UTC
7fbd391 Avoid spurrious header file parsing in TFileMerger 31 January 2020, 17:05:50 UTC
9cfb209 Fix in TGeoMCGeometry::Mixture(Int_t& kmat, const char* name, Float_t* ...): 'wmat' values were not updated when the function is called with nlmat<0, as they should be to mimic the Geant3 behavior. 29 January 2020, 14:08:43 UTC
61d0801 [vmc] Re-apply: Disambiguate ROOT's ::Info from Pythia8's Info: Some Pythia8 headers expose an unfortunate "using namespace Pythia8". This triggers: In file included from /root/ship-log-keep/sw/slc7_x86-64/ROOT/master_FAIRSHIP-1/include/TMCManager.h:26: /root/ship-log-keep/sw/slc7_x86-64/ROOT/master_FAIRSHIP-1/include/TMCParticleStatus.h:81:7: error: reference to 'Info' is ambiguous Info("Print", "Status of track"); ^ /root/ship-log-keep/sw/BUILD/b61305e07edfb1f9a906335e2093ac409db3c4cc/ROOT/include/TError.h:58:13: note: candidate found by name lookup is 'Info' extern void Info(const char *location, const char *msgfmt, ...) ^ /root/ship-log-keep/sw/slc7_x86-64/pythia/v8230-ship-1/include/Pythia8/Info.h:30:7: note: candidate found by name lookup is 'Pythia8::Info' class Info { ^ By explicitly requesting "::Info" that ambiguity should be resolved. (cherry picked from commit bba421940c2073430ac03126e8f41e334e014c36) (got reverted by commit d90fc155397fd8bf986c03d36cd35f9f1a242b40) 29 January 2020, 14:08:43 UTC
5d69a62 Fixes in vmc for multi-engine mode (B. Volkel, I. Hrivnacova): - Only rely on presence of TMCManager in multi run (PR#6 in vmc-project/vmc) - Withdraw unwanted TMCVerbose modifications to avoid changes in the tests outputs - Recover TGeoManager::fIsOutside for transfer tracks (PR#3 in vmc-project/vmc) 29 January 2020, 14:08:43 UTC
0a77475 [RF] Fix reducing a dataset with multipe ranges. [ROOT-10517] When reducing a RooDataSet, selecting multiple ranges separated by ',' was ignored. 21 January 2020, 08:42:07 UTC
4c97268 [http] handle symbolic links on Windows when sending file 09 January 2020, 10:20:53 UTC
40b61a8 [http] use own files send method on Windows civetweb mg_send_file function does not support symbolic links on Windows, but in some situations it is required. Advantage of mg_send_file() that it supports partial reading, therefore keep functionality for ROOT files 07 January 2020, 12:41:29 UTC
2670d0e [http] use native windows slahes when sending file via civetweb 07 January 2020, 12:41:29 UTC
4132a32 [http] fix files reading on Windows One has to use binary mode to be able read file content, otherwise Windows may change lines ending and result will not fit into the preallocated string 07 January 2020, 08:58:49 UTC
8bc26f4 [RF] Fix reading trees with long branch names. [ROOT-10413] In 2001, long branch names in TTrees were apparently not supported. RooFit was therefore truncating them. Now, this leads to problems, so the truncation was removed. (cherry picked from commit 0d5f523b43be0b8a579fa93b6267b849a7243129) 17 December 2019, 17:21:31 UTC
c202029 [RF] Restore ability to read HistFactory measurements. [ROOT-10449] When speeding up HistFactory, the type of a pointer was changed to unique_ptr, and moved into a base class. The schema evolution cannot follow both at the same time, so a conversion rule had to be added. (cherry picked from commit b15e692c7ed072493cf3977d7793dc43d32a8f01) 12 December 2019, 09:32:03 UTC
back to top