ce7772b | Axel Naumann | 03 March 2021, 16:31:09 UTC | "Update ROOT version files to v6.23/02." | 03 March 2021, 16:32:09 UTC |
392f621 | Axel Naumann | 03 March 2021, 16:31:59 UTC | [build] Adjust RVersion.h location after 3551b7c1f9f0. | 03 March 2021, 16:32:09 UTC |
36b06a4 | Philippe Canal | 02 March 2021, 21:34:36 UTC | 'Hide' kOnlyPrepStep as a protected member of TObject. This enum will be removed shortly (functionality moved from TObject::Write to *::Merge) | 03 March 2021, 15:39:17 UTC |
c9c70ed | Philippe Canal | 01 March 2021, 20:04:30 UTC | [NFC] Improve documentation (TTreeCloner, TBufferMerger, TFileMerger) | 03 March 2021, 15:39:17 UTC |
f2ac153 | Philippe Canal | 01 March 2021, 20:03:08 UTC | [NFC] Coding style | 03 March 2021, 15:39:17 UTC |
30fd4c7 | Philippe Canal | 27 February 2021, 22:04:10 UTC | TFileMerger delete directory only if we induced its creation/loading | 03 March 2021, 15:39:17 UTC |
552e963 | Philippe Canal | 27 February 2021, 00:12:20 UTC | TFileMerger: only delete the directory if the merger created it. This is necessary to support the 'fast' incremental merge where the input will continue to be used. | 03 March 2021, 15:39:17 UTC |
48edbd1 | Philippe Canal | 26 February 2021, 23:51:09 UTC | Fix typo in comments | 03 March 2021, 15:39:17 UTC |
10bb9ca | Philippe Canal | 26 February 2021, 17:13:53 UTC | Inline TBufferMerger::GetBuffered | 03 March 2021, 15:39:17 UTC |
b888718 | Philippe Canal | 25 February 2021, 20:18:00 UTC | TIsAProxy: Don't record failed searches (a library might be loaded between now and the next search). | 03 March 2021, 15:39:17 UTC |
6da190d | Philippe Canal | 18 February 2021, 17:27:23 UTC | Sort data member of TIsAProxy | 03 March 2021, 15:39:17 UTC |
0a35e74 | Philippe Canal | 18 February 2021, 17:26:19 UTC | TIsAProxy switch fClass to non-atomic. Since fClass is modified only 'once' at init time of the IsAProxy object, it is actual more efficient to protect the initialization by a lock rather than having fClass being atomic. | 03 March 2021, 15:39:17 UTC |
fa07ea3 | Philippe Canal | 18 February 2021, 17:21:07 UTC | TIsAProxy retain last 8 matches (rather than 1). This allows to significant reduce the number of search through the list of cached result ... That search was a noticeable cause of slow down with an increase of number threads due to the contention on updating the number of readers (used for the local read/write lock mechanism). | 03 March 2021, 15:39:17 UTC |
52452f3 | Philippe Canal | 12 February 2021, 20:44:05 UTC | Skip compression of the top TKeys in the TMemFile by default. To save space, the compression can be re-enabled by TBuffferMerger::SetCompressTemporaryKeys. The TBaskets are still compressed and thus the end result is unchanged. | 03 March 2021, 15:39:17 UTC |
ef117fa | Philippe Canal | 12 February 2021, 16:44:07 UTC | TBufferMerger: Allow to disable explict call to Flush when no tree in file | 03 March 2021, 15:39:17 UTC |
1c0059f | Philippe Canal | 12 February 2021, 00:15:06 UTC | Mark TBufferMerger::fBuffered as atomic | 03 March 2021, 15:39:17 UTC |
f0a88ff | Philippe Canal | 12 February 2021, 00:04:40 UTC | Improve TClass::GetBaseClassOffset parallelism. TClass::GetBaseClassOffset is a 'often' used routine in the I/O. In the fast path (looking up in a cache), rather than taking the global read lock (which is not only global but also 'slower' than a regular mutex), we are now use a instance specific mutex to protect the cache. | 03 March 2021, 15:39:17 UTC |
59094eb | Philippe Canal | 11 February 2021, 22:22:20 UTC | TBufferMergerFile: Call FlushBasket in unlocked thread. Add new enum for TObject::Write: kOnlyPrepStep = BIT(3) ///< Just prepare the objects do not write them (i.e. call TTree::FlushBaskets) | 03 March 2021, 15:39:17 UTC |
76917ed | Philippe Canal | 10 February 2021, 22:30:02 UTC | TTreeCloner: do not clone empty basket | 03 March 2021, 15:39:17 UTC |
7073b09 | Philippe Canal | 10 February 2021, 22:29:13 UTC | AddLastBasket: do not update first basket start entry | 03 March 2021, 15:39:17 UTC |
aeab20f | Philippe Canal | 10 February 2021, 22:26:31 UTC | TBranch::AddBasket allow to replace an empty write basket | 03 March 2021, 15:39:17 UTC |
146ab17 | Philippe Canal | 27 February 2021, 00:16:28 UTC | Tree: micro-optimization | 03 March 2021, 15:39:17 UTC |
a2890db | Philippe Canal | 09 February 2021, 17:21:22 UTC | TFileMerger: Use obj in memory even if it has no key (yet) | 03 March 2021, 15:39:17 UTC |
a1166f3 | Philippe Canal | 08 February 2021, 21:46:14 UTC | Allow TBufferMerger to skip write/read cycle. If TBufferMerger can take the merge lock, then rather than queuing the input file, merge it immediately and skip the Writing the TTree, doing a memcpy, Pushing to the queue then Reading and then deleting parts. | 03 March 2021, 15:39:17 UTC |
6c10d63 | Philippe Canal | 08 February 2021, 21:24:03 UTC | In TFileMerger use obj in memory if available. Currently only in the case where we have a Merge function and a dictionary. | 03 March 2021, 15:39:17 UTC |
0c0e00b | Philippe Canal | 06 February 2021, 00:18:29 UTC | Switch off dubious 'optimization' For iteration over the list of baskets, the existing code try to reduce the range of the iteration to stop as soon as all non-nullptr slot have been seen. However to know the number of non-nullptr slot, the code (has to) call GetEntries which scan the entire array anyway ... | 03 March 2021, 15:39:17 UTC |
427f543 | Philippe Canal | 05 February 2021, 23:52:44 UTC | Use TObjArray::GetEntriesFast to avoid wasting time. TObjArray::GetEntries() counts the number of non-zero slots while TObjArray::GetEntriesFast() return (in most case) the value of a high water mark (the slot over which all remaining slots are empty). In one use case (doing read a TTree and do many TTree cloning (via TBufferMerger), TObjArray::GetEntries was taking 8% of the running time (compression was disabled) Note: TObjArray::IsEmpty use GetEntriesFast rather than GetEntries. | 03 March 2021, 15:39:17 UTC |
c4d94ef | Philippe Canal | 05 February 2021, 20:09:16 UTC | TFileMerger allow to delay the object writes. Limited to TTree and Histogram. | 03 March 2021, 15:39:17 UTC |
9822c08 | Philippe Canal | 05 February 2021, 03:32:03 UTC | Do not call CopyAddresses during TTree::Merge fast cloning operation. We do not apply the same to CloneTree as the addresses copying is a side-effect (no reset at the end) that is relied upon by user code.g | 03 March 2021, 15:39:17 UTC |
3ae112b | Philippe Canal | 05 February 2021, 03:31:22 UTC | Add TBufferMerger::GetBuffered. This can be used to monitor the queue size in bytes rather than number of files | 03 March 2021, 15:39:17 UTC |
eddc874 | Philippe Canal | 05 February 2021, 03:30:48 UTC | Make TBufferMerger::GetQueueSize thread safe. This can now be safely use to avoid overloading the queue. | 03 March 2021, 15:39:17 UTC |
e91fd1b | Philippe Canal | 04 February 2021, 23:31:37 UTC | Add TTree::InPlaceClone. This speeds up the first step of merging (hadd) | 03 March 2021, 15:39:17 UTC |
f8fc806 | Philippe Canal | 03 February 2021, 17:22:55 UTC | TTree::MergeTrees pass options to first Cloning. This allow the fast cloning of the first tree in the list when using TTree::MergeTrees (rare) | 03 March 2021, 15:39:17 UTC |
9396a98 | Philippe Canal | 03 February 2021, 03:06:02 UTC | Speed-up TBranch::GetMother. When fMother is not set, first try to use fParent rather than iterate through the TTree's list of top level branches | 03 March 2021, 15:39:17 UTC |
d4b36ee | Philippe Canal | 03 February 2021, 03:04:26 UTC | Set TBranch::fParent when reading. fParent was already set during the usual branch creation (TTree::Branch and friends) but might still be not set if the user create a hierarchy by hand | 03 March 2021, 15:39:17 UTC |
14875cb | Philippe Canal | 03 February 2021, 03:03:09 UTC | Remove stray duplicate line in TBranch::GetSubBranch | 03 March 2021, 15:39:17 UTC |
ac862cb | Philippe Canal | 30 January 2021, 00:24:05 UTC | Actually give priority to the TFileMergeInfo's feature request ... instead of just always ignoring it | 03 March 2021, 15:39:17 UTC |
450eafd | Philippe Canal | 12 February 2021, 16:21:36 UTC | TFileMerger: don't stop after the first RNTuple | 03 March 2021, 15:39:17 UTC |
d310b95 | Bertrand Bellenot | 03 March 2021, 08:30:07 UTC | Remove the __type_info_node symbol from the exports list Don't export (expose) the '?__type_info_root_node@@3U__type_info_node@@A', this leads to the following error in some cases: MSVCRT.lib(tncleanup.obj) : error LNK2005: "struct __type_info_node __type_info_root_node" (?__type_info_root_node@@3U__type_info_node@@A) already defined in libCling.lib(libCling.dll) | 03 March 2021, 10:47:25 UTC |
cf3f37e | Patrick Gartung | 09 August 2017, 21:30:34 UTC | Fix type printing of array template args Apply patch to interpreter/llvm/src/tools/clang/lib/AST/TemplateBase.cpp as suggested here: https://reviews.llvm.org/D36368 | 03 March 2021, 08:51:16 UTC |
236cc68 | Sergey Linev | 02 March 2021, 18:34:31 UTC | [gui] do not use static array in TGFSComboBox Instead use std::vector which is much easier to manage | 03 March 2021, 08:00:43 UTC |
cbff71b | Sergey Linev | 02 March 2021, 16:20:29 UTC | [gui] use std::string in TGFSComboBox static variables Prevent memory leak, automatically cleanup at the end | 03 March 2021, 08:00:43 UTC |
779e1e5 | Sergey Linev | 02 March 2021, 15:49:24 UTC | [gui] Cleanup static entries in TGFSComboBox Every time when new instance was created, old dynamic entries were lost | 03 March 2021, 08:00:43 UTC |
5b06edd | Lorenzo Moneta | 01 March 2021, 18:32:10 UTC | Add an info message in the INFO stream with topic Optimization when a new node is processed but an existing node with same name exists | 02 March 2021, 22:07:32 UTC |
07b358e | Lorenzo Moneta | 24 February 2021, 10:57:56 UTC | Add normalization set variables in name of hist pdf that is created a s a cache. This avoids having same names of nodes when nset is present or not. This alone could fix ROOT-8947 but previous commit is a better fix for the genral case | 02 March 2021, 22:07:32 UTC |
6a8bfcd | Lorenzo Moneta | 24 February 2021, 10:53:58 UTC | When calling RooAbsArg::optimizeCacheMode look for already processNodes by pointer using RooLinkedList::FindObject instead of findArg which looks by name. This makes sure that nodes in the computational graph with the same name are not skipped. This happens for the FFTW where 2 caches exist, one for normalized and one for unnormalized pdf. By doing this fixes ROOT-5380 and ROOT-8497 (RooProdPdf which includes a RooFFT) | 02 March 2021, 22:07:32 UTC |
4e976b0 | Lorenzo Moneta | 18 February 2021, 10:48:55 UTC | Uncomment line setting operation mode of partInt components of RooProdPdf using current operation mode. This seems to be needed in order to propagate to the cached intergal component s of the RooProdPdf is operation mode. It fixes issue #7157 where RooProdPdf is used from a RooFFTConv. In this case the RooFFTConv sets AlwaysDirty as operation mode its components, and then the ROoProdPdf needs to propage to its owned parts, otherwise during the FFT computation the RooProdPdf returns always its first evaluation. | 02 March 2021, 22:05:59 UTC |
2066baa | Vassil Vassilev | 02 March 2021, 21:26:49 UTC | Install the global module index. This should fix the lcg nightlies and cmssw modules IB | 02 March 2021, 21:43:09 UTC |
1b7f9a9 | Axel Naumann | 27 February 2021, 15:23:32 UTC | [doc] Link GitHub as issue tracker (NFC) | 02 March 2021, 17:42:45 UTC |
c1e5a7d | Stefan Wunsch | 19 February 2021, 08:57:34 UTC | [TMVA] Update Keras tutorials using tensorflow.keras | 02 March 2021, 16:31:08 UTC |
e0f6c04 | Axel Naumann | 02 March 2021, 11:13:22 UTC | [llvm] Prevent static destruction from ending DefaultMMapper too early: On some platforms, SectionMemoryManager::MMapper has uses (during static destruction) that happen after static destruction has ended the lifetime of the DefaultMMapper object. Use of a function-static prevents this, as this guarantees that SectionMemoryManager::DefaultMMapper gets destructed after users, as long as users were constructed after SectionMemoryManager::DefaultMMapper (which is generally the case), rather than a random sequencing. | 02 March 2021, 14:46:04 UTC |
be2984d | Lorenzo Moneta | 01 March 2021, 18:43:29 UTC | Fix computation of diagonal element of covariance matrix. See issue #7319 | 02 March 2021, 14:21:13 UTC |
54b7a66 | Bertrand Bellenot | 02 March 2021, 09:05:00 UTC | Fix assertion failure on Windows Fixes the following error on Windows with macros containing Windows line endings (CR/LF): ``` Assertion failed: content[posOpenCurly] == '{' && "No curly at claimed position of opening curly!", file C:\Users\bellenot\git\master\interpreter\cling\lib\MetaProcessor\MetaProcessor.cpp, line 431 ``` | 02 March 2021, 14:02:40 UTC |
771585b | Sergey Linev | 02 March 2021, 11:51:38 UTC | [eve7] repair logic of mouseup handler Was corrupted by previous reorganization of mouse event handlers. Now assign all mouse event handlers only to specific dom element | 02 March 2021, 12:00:26 UTC |
e00e13b | Sergey Linev | 02 March 2021, 11:13:03 UTC | [jsroot] add warning in JSRootCore.js It is deprecated script, which will be deleted soon | 02 March 2021, 11:14:09 UTC |
85b2257 | Sergey Linev | 02 March 2021, 10:35:52 UTC | [reve] also correctly cleanup OrbitControl object | 02 March 2021, 11:14:09 UTC |
e2eee8e | Sergey Linev | 02 March 2021, 10:27:49 UTC | [eve7] let cleanup dom events handler If same GlViewerThree.js should be reused for other drawing, one should correctly remove all handlers assigned before. | 02 March 2021, 11:14:09 UTC |
a4eb63a | Sergey Linev | 02 March 2021, 09:59:00 UTC | [webgui] let reassign main thread id If application runs in special thread, one should call RWebWindowManager::AssignMainThrd() to indicate this | 02 March 2021, 11:14:09 UTC |
7d4c58d | Lorenzo Moneta | 01 March 2021, 15:14:00 UTC | Add capability to pass optimizer option in training string for MethodDL. One can setup for example the options for the ADAM minimizer, ADAM_beta1, ADAM_beta2 and ADAM_eps. Example is provided in the TMVA_Higgs_Classification.C tutorial | 02 March 2021, 10:35:08 UTC |
b4c0beb | Bertrand Bellenot | 02 March 2021, 08:19:31 UTC | Set pyroot_legacy=OFF by default on Windows (#7324) * Disable pyroot_legacy by default on Windows * Set pyroot_legacy=OFF by default on Windows Make the new PyROOT the default also on Windows (was not supported before) | 02 March 2021, 08:19:31 UTC |
d1b602c | Jakob Blomer | 01 March 2021, 21:41:06 UTC | [ntuple] Fix compiler warning | 02 March 2021, 08:03:55 UTC |
ff84158 | Jakob Blomer | 01 March 2021, 16:23:02 UTC | [ntuple] Fix compiling when IMT is off | 02 March 2021, 08:03:55 UTC |
2024d8e | Bertrand Bellenot | 01 March 2021, 14:34:17 UTC | Fix build time on Windows when nothing changed in the code Without this patch, CMake was always re-generating G__Imt.cxx, the re-buildding Core, and re-generating all the dictionaries, extending the build time from around two minutes to more than 30 minutes when nothing changed in the code. | 01 March 2021, 18:29:50 UTC |
19b4118 | Sergey Linev | 01 March 2021, 17:26:28 UTC | [jsroot] dev 1/03/2021 with zooming fixes When performing zoom of overlayed objects, one should ensure that first object is drawn before next is processed. Also fixing problem with 3D canvas cleanup, used in eve7 | 01 March 2021, 17:55:32 UTC |
abb2851 | Sergey Linev | 01 March 2021, 17:21:40 UTC | [eve7] also correctly cleanup jsroot drawings | 01 March 2021, 17:55:32 UTC |
0dcc28b | Sergey Linev | 01 March 2021, 16:50:41 UTC | [eve7] use naming convention for onEveManagerInit Always check if such method exists for the controller | 01 March 2021, 17:55:32 UTC |
db97cce | Sergey Linev | 01 March 2021, 16:40:28 UTC | [eve7] implement cleanup of GLViewer class When drawing different projection via View -> Browse to menu commands, one have to cleanup previosely shown views. | 01 March 2021, 17:55:32 UTC |
87dc938 | Axel Naumann | 01 March 2021, 11:48:17 UTC | [cmake] Prevent `#include <complex.h>` also for GCC <=5. | 01 March 2021, 16:31:59 UTC |
835a5a2 | Olivier Couet | 01 March 2021, 14:11:47 UTC | Make clear THtml is legacy code (#7312) * Make clear THtml is legacy code * Use the special doxygen keyword "\deprecated" * Update html/src/THtml.cxx Co-authored-by: Axel Naumann <Axel.Naumann@cern.ch> Co-authored-by: Axel Naumann <Axel.Naumann@cern.ch> | 01 March 2021, 14:11:47 UTC |
24a8a51 | Sergey Linev | 01 March 2021, 07:57:55 UTC | Use nullptr in TGraph header and source file | 01 March 2021, 11:11:52 UTC |
9a883db | Sergey Linev | 01 March 2021, 07:45:46 UTC | Fix TGraph copy constructor and assign operator (#7302) Cloned histogram should not be assign to current directory | 01 March 2021, 11:11:52 UTC |
41c08b6 | Harshal.S | 26 February 2021, 12:34:31 UTC | Timeout parameter added to ExternalProject | 01 March 2021, 08:15:46 UTC |
1db97d6 | Sergey Linev | 26 February 2021, 16:38:16 UTC | [jsroot] dev 26/02/2021 wih TRatioPlot support Also fix tooltips handling for TH1/TGraph error plots, used in TRatioPlot | 01 March 2021, 08:03:44 UTC |
47d9833 | Sergey Linev | 26 February 2021, 16:36:00 UTC | Add TRatioPlot to list of supported classes in TWebCanvas | 01 March 2021, 08:03:44 UTC |
797ac1f | Olivier Couet | 01 March 2021, 07:48:04 UTC | ChangeLabel was not fully implemented on alphanumeric labels. (#7294) | 01 March 2021, 07:48:04 UTC |
9716857 | Vassil Vassilev | 28 February 2021, 14:17:24 UTC | Revert "[cling] modulemap <string_view> requires C++17." This reverts commit 93c1649bef398ee310b85848bbe4a2f0182c3a76. | 28 February 2021, 16:35:46 UTC |
f4ea5ad | Vassil Vassilev | 28 February 2021, 14:16:52 UTC | [cxxmodules] Allow submodules to contain headers which may be missing. This allows us to use a single modulemap file across multiple libstdc++ versions and gives us a way forward to deal with deprecated files. This patch will be submitted for a review upstream. It fixes our gcc 4.8 builds where codecvt, cuchar and string_view header files do not exist. | 28 February 2021, 16:35:46 UTC |
37956b7 | Vassil Vassilev | 26 February 2021, 19:43:13 UTC | [cling] Add the CLANG_INCLUDE_DIRS if we build as part of LLVM. | 26 February 2021, 19:47:29 UTC |
93c1649 | Axel Naumann | 26 February 2021, 14:37:28 UTC | [cling] modulemap <string_view> requires C++17. | 26 February 2021, 17:09:00 UTC |
3948cc2 | Vassil Vassilev | 26 February 2021, 16:26:11 UTC | The Sema::LookupConstructor is not iteration safe. When looking up a ctor the modules infrasturcture deserializes more ctor candidates in the body of the function causing the internal vector implementation to rellocate and invalidate the pointers. This workaround should address the failures reported by LCG. The real fix is being processed here https://reviews.llvm.org/D91524 and we after being merged we should be able to backport it. | 26 February 2021, 16:44:46 UTC |
b68af73 | hristov | 25 February 2021, 08:59:50 UTC | Fix for Apple Silicon M1 - gfortran does not accept -m64 | 26 February 2021, 08:42:33 UTC |
43e6682 | Bertrand Bellenot | 25 February 2021, 15:06:21 UTC | Add `ACLiC.LinkLibs: 1` in the `.rootrc` files for Windows This fixes re-running tests on Windows. According to [the documentation](https://github.com/root-project/root/blob/master/config/rootrc.in#L384-L390), this is already the default for the other platforms, while the default is 3 for Windows. | 25 February 2021, 20:27:47 UTC |
337cc57 | Vassil Vassilev | 19 September 2020, 19:13:08 UTC | Complete the llvm upgrade for ROOT. | 25 February 2021, 19:40:47 UTC |
3cdad1e | Axel Naumann | 25 February 2021, 13:49:30 UTC | [tutorials] v7/climate/global_temperatures.C needs Davix. | 25 February 2021, 19:40:47 UTC |
cbaaa07 | Axel Naumann | 24 February 2021, 17:19:27 UTC | [llvm] Work around inconsistency of {std|llvm}::is_trivially_copyable: See https://bugs.chromium.org/p/swiftshader/issues/detail?id=153 I.e. this is expected to be fixed in llvm11. | 25 February 2021, 19:40:47 UTC |
2c4a756 | Axel Naumann | 24 February 2021, 17:17:57 UTC | [cling] Windows needs more symbols to be injected: such as __dllonexit() and _onexit(). Without, static destruction does not happen, as can be seen by roottest/cling/staticinit/execROOT-7775.C failing to call the static destructors. | 25 February 2021, 19:40:47 UTC |
7aae2e3 | Axel Naumann | 23 February 2021, 10:03:48 UTC | [matrix] Move operators into inline namespace TMatrixTAutoloadOps: The llvm9 upgrade triggered a re-ordered symbol lookup, where the operators were needed before symbols from classes were needed (that in turn triggered autoloading). As namespace-scope functions cannot trigger autoloading by default, the operator symbols were missing. This is worked around by moving the operators into an inline namespace, and declaring the namespace to the dictionary and thus rootmap file. Remove useless (since cling) pragma link statements for operators. | 25 February 2021, 19:40:47 UTC |
7807e94 | Axel Naumann | 23 February 2021, 09:37:28 UTC | [dict] Move dict decls to ROOTDict namespace: For inline namespaces, the ROOT namespace nested in the inline namespace and containing the dictionary decls for that inline namespace is ambiguous with the outer ROOT namespace: ``` math/matrix/G__Matrix.cxx:93:14: error: reference to ‘ROOT’ is ambiguous 93 | inline ::ROOT::TGenericClassInfo *GenerateInitInstance(); | ^~ math/matrix/G__Matrix.cxx:92:14: note: candidates are: ‘namespace TMatrixTAutoloadOps::ROOT { }’ 92 | namespace ROOT { | ^~~~ ``` Adjust `NamespaceImp` accordingly. | 25 February 2021, 19:40:47 UTC |
e507150 | Javier Lopez-Gomez | 16 February 2021, 14:11:37 UTC | DeclExtractor: exit early if there is nothing to do In LLVM 9, the `CompoundStmt::replaceStmts()` call seems to write to an invalid memory location if the body was empty. This may happen after a parse error and might end up corrupting the program state. This patch makes `DeclExtractor` to exit early if there is nothing to do, which solves the aforementioned problem. | 25 February 2021, 19:40:47 UTC |
b18096e | Vassil Vassilev | 12 February 2021, 17:15:42 UTC | removeRedeclFromChain is a template static. Fixes osx warning. | 25 February 2021, 19:40:47 UTC |
bf8829d | Vassil Vassilev | 12 February 2021, 16:39:10 UTC | Fix warnings about the ignored quals. | 25 February 2021, 19:40:47 UTC |
7c14edb | Simeon Ehrig | 11 February 2021, 16:20:30 UTC | Fixed CUDA mode for Clang/LLVM 9 upgrade - fix bug, which was caused by executing a transaction in the device interpreter - fixed warning from the device compiler - update test cases | 25 February 2021, 19:40:47 UTC |
2acaa30 | Axel Naumann | 11 February 2021, 16:43:49 UTC | [metacling] Also fwd decl templt spec args: rootmap needs { decls } entries such as ``` template <> class less<edm::AJet>; ``` to be able to load the right library containing a given specialization. But for this to be parsable, the template arguments of that specialization must also be forward declared. Re-use existing template-arg-fwd-decl code, and hook it into FwdDeclIfTmplSpec. Fixes roottest/cling/dict/fwd-decl-stdless/lessyDict.rootmap in the PCH case, and likely CMS's issue of a similar kind - TBC. | 25 February 2021, 19:40:47 UTC |
4e7d48a | Axel Naumann | 11 February 2021, 14:01:21 UTC | [cling] Improve 67b613517b: unsigned vallues cannot be negative: This fixes ``` math/mathcore/G__MathCore.cxx:450:57: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal] ::mersenne_twister_engine<ULong64_t,64,312,156,31,13043109905998158313,... ``` The code meant to test whether the highest bit is set. `isNegative` is false for unsigned values; we have to check whether the bit pattern starts with at least one leading one bit. | 25 February 2021, 19:40:47 UTC |
3dd035e | Axel Naumann | 11 February 2021, 13:36:07 UTC | Revert "Bring back the old workaround." This reverts commit b4fcf224a97f385467efde14911349ad9293ac3d. | 25 February 2021, 19:40:47 UTC |
0d58437 | Axel Naumann | 11 February 2021, 14:04:46 UTC | [metacling] Prevent inclusion of complex.h, use raw string literal: complex.h causes havoc, e.g. ``` libcomplexDict.rootmap:2:13: error: declaration of anonymous class must be a definition template <> class complex<float>; ``` running roottest_root_tree_cloning_treeCloneTest, which is caused by `complex` being redefined to _Complex, which is a kind of type annotation and breaks uses of `std::complex`. This means we can now remove `#undef I` (which comes from complex.h). Use cute raw string literals and combine remaining `#undef`s into a single call to `declare()` | 25 February 2021, 19:40:47 UTC |
76fede2 | Javier Lopez-Gomez | 01 February 2021, 21:45:48 UTC | Fixes Issue #6812. In some scenarios, initialization of variables declared by AutoSynthesizer does not work as expected (more information on the GH issue), e.g. ``` root [2] unsigned int c (unsigned int) 0 root [3] d=c Error in <TRint::HandleTermInput()>: std::runtime_error caught: >>> Interpreter expected relocatable expression ``` This is because the generated VarDecl initializer is missing a LValueToRValue conversion, where required by the C++ standard. | 25 February 2021, 19:40:47 UTC |
6a05121 | Vassil Vassilev | 09 February 2021, 09:20:05 UTC | Bring back the old workaround. This fixes warning: integer constant is so large that it is unsigned in MathCore dictionary until D77598 lands. | 25 February 2021, 19:40:47 UTC |
a5486e5 | Axel Naumann | 04 February 2021, 10:52:26 UTC | [cling] When unloading, also forget that the decl was emitted. | 25 February 2021, 19:40:47 UTC |
f40eede | Axel Naumann | 04 February 2021, 10:37:23 UTC | [cling] Allow cling as ASTSource to complete tmplt spec: cling must be able to provide template specializations (that might be explicit specializations, residing in a library to be loaded by autoload, etc), and it must be able to do that *before* clang starts the instantiation - because otherwise an instantiation (of the same type) as triggered by LookupHelper is exiting early with instantiation failure (to prevent recursive instantiations of the same type). I.e. while SemaTemplateInstantiate's getPatternForClassTemplateSpecialization() will query external ast sources, this is too late for cling, as it's during the instantiation and cling cannot instantiate that exact type anymore after it has made the definition available. This is visible in PCH mode with Vc on: ``` cmake -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_CXX_STANDARD="11" -DCMAKE_INSTALL_PREFIX=".../nortcxxmod-llvm9-2-inst" -DLLVM_BUILD_TYPE="Debug" -DLLVM_ENABLE_ASSERTIONS="On" -Dalien="Off" -Darrow="Off" -Dasimage="On" -Dasserts="ON" -Dbuiltin_afterimage="On" -Dbuiltin_cfitsio="Off" -Dbuiltin_davix="On" -Dbuiltin_fftw3="Off" -Dbuiltin_freetype="Off" -Dbuiltin_ftgl="On" -Dbuiltin_gl2ps="On" -Dbuiltin_glew="On" -Dbuiltin_gsl="Off" -Dbuiltin_lz4="On" -Dbuiltin_lzma="On" -Dbuiltin_nlohmannjson="On" -Dbuiltin_openssl="Off" -Dbuiltin_openui5="On" -Dbuiltin_pcre="On" -Dbuiltin_tbb="On" -Dbuiltin_unuran="On" -Dbuiltin_vc="On" -Dbuiltin_vdt="On" -Dbuiltin_veccore="On" -Dbuiltin_xrootd="On" -Dbuiltin_xxhash="On" -Dbuiltin_zlib="On" -Dbuiltin_zstd="On" -Dccache="ON" -Dcefweb="Off" -Dclad="On" -Dcocoa="Off" -Dcuda="Off" -Dcudnn="Off" -Ddataframe="On" -Ddavix="On" -Ddcache="Off" -Ddev="Off" -Ddistcc="Off" -Dfail-on-missing="On" -Dfcgi="Off" -Dfftw3="Off" -Dfitsio="Off" -Dfortran="On" -Dgdml="On" -Dgfal="Off" -Dgsl_shared="Off" -Dgviz="Off" -Dhttp="On" -Dimt="On" -Dlibcxx="Off" -Dmathmore="On" -Dmemstat="Off" -Dminuit2="On" -Dmlp="On" -Dmonalisa="Off" -Dmpi="Off" -Dmysql="Off" -Dodbc="Off" -Dopengl="On" -Doracle="Off" -Dpgsql="Off" -Dpyroot="On" -Dpyroot2="Off" -Dpyroot3="On" -Dpyroot_legacy="Off" -Dpythia6="Off" -Dpythia6_nolink="Off" -Dpythia8="On" -Dqt5web="Off" -Dr="Off" -Droofit="On" -Droottest="ON" -Druntime_cxxmodules="Off" -Dshadowpw="On" -Dsoversion="On" -Dspectrum="On" -Dsqlite="On" -Dssl="On" -Dtesting="ON" -Dtmva="On" -Dtmva-cpu="On" -Dtmva-gpu="Off" -Dtmva-pymva="On" -Dtmva-rmva="Off" -Dunuran="On" -During="Off" -Dvc="On" -Dvdt="On" -Dveccore="On" -Dvecgeom="Off" -Dvmc="On" -Dwin_broken_tests="Off" -Dx11="On" -Dxml="On" -Dxproofd="Off" -Dxrootd="On" .../src -G Ninja ``` as a failure in roottest/root/meta/naming/execCheckNaming.C: ``` In file included from nortcxxmod-llvm9-3/input_line_4:2: In file included from nortcxxmod-llvm9-3/include/Rtypes.h:191: In file included from nortcxxmod-llvm9-3/include/TGenericClassInfo.h:22: In file included from /usr/include/c++/10/vector:67: /usr/include/c++/10/bits/stl_vector.h:625:7: error: definition with same mangled name '_ZNSt6vectorIPKcSaIS1_EEC2ESt16initializer_listIS1_ERKS2_' as another definition vector(initializer_list<value_type> __l, ^ /usr/include/c++/10/bits/stl_vector.h:625:7: note: previous definition is here /usr/include/c++/10/bits/stl_vector.h:678:7: error: definition with same mangled name '_ZNSt6vectorIPKcSaIS1_EED1Ev' as another definition ~vector() _GLIBCXX_NOEXCEPT ^ /usr/include/c++/10/bits/stl_vector.h:678:7: note: previous definition is here ... ``` which is caused by LookupHelper unloading these decls but failing to unload them from CodeGen as they were generated during lookup (i.e. without CodeGen). This assumption is wrong, too, in a couple of ways: LookupHelper must emit decls created during instantiations to CodeGen, and thus onloading must also be done with CodeGen. Most importantly, though, pre-llvm9 these decls did not get unloaded, as the lookup of the template secialization was successful, as LookupHelper was able to provide it by specializing the template definition. With llvm9 and without this patch, no specialization can be provided by LookupHelper as that exact specialization is already ongoing on higher stack frames (see description of external AST source query before vs during instantiation). pre-llvm9 backtrace of this lookup: ``` diagOnOff=cling::LookupHelper::NoDiagnostics, resultType=0x7fffffff4d48, instantiateTemplate=true) at /home/axel/build/root/master/src/interpreter/cling/lib/Interpreter/LookupHelper.cpp:707 name=0x5555563cd570 "vector<const char*>", intantiateTemplate=true) at /home/axel/build/root/master/src/core/metacling/src/TClingClassInfo.cxx:88 at /home/axel/build/root/master/src/core/metacling/src/TCling.cxx:8155 at /home/axel/build/root/master/src/core/metacling/src/TCling.cxx:6103 at /home/axel/build/root/master/src/core/metacling/src/TCling.cxx:6191 at /home/axel/build/root/master/src/core/metacling/src/TCling.cxx:6414 at /home/axel/build/root/master/src/core/metacling/src/TCling.cxx:619 at /home/axel/build/root/master/src/core/metacling/src/TClingCallbacks.cxx:453 at /home/axel/build/root/master/src/interpreter/cling/lib/Interpreter/MultiplexInterpreterCallbacks.h:76 at /home/axel/build/root/master/src/interpreter/cling/lib/Interpreter/InterpreterCallbacks.cpp:285 at /home/axel/build/root/master/src/interpreter/llvm/src/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp:136 at /home/axel/build/root/master/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:7307 at /home/axel/build/root/master/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:7109 at /home/axel/build/root/master/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:7398 ``` With llvm9, without this patch: ``` at /home/axel/build/root/master2/src/interpreter/cling/lib/Interpreter/DeclUnloader.h:292 diagOnOff=cling::LookupHelper::NoDiagnostics, resultType=0x7fffffff4620, instantiateTemplate=true) at /home/axel/build/root/master2/src/interpreter/cling/lib/Interpreter/LookupHelper.cpp:720 name=0x5555562fcdc0 "vector<const char*>", intantiateTemplate=true) at /home/axel/build/root/master2/src/core/metacling/src/TClingClassInfo.cxx:88 at /home/axel/build/root/master2/src/core/metacling/src/TCling.cxx:8172 at /home/axel/build/root/master2/src/core/metacling/src/TCling.cxx:6120 at /home/axel/build/root/master2/src/core/metacling/src/TCling.cxx:6208 at /home/axel/build/root/master2/src/core/metacling/src/TCling.cxx:6431 at /home/axel/build/root/master2/src/core/metacling/src/TCling.cxx:619 at /home/axel/build/root/master2/src/core/metacling/src/TClingCallbacks.cxx:453 at /home/axel/build/root/master2/src/interpreter/cling/lib/Interpreter/MultiplexInterpreterCallbacks.h:77 at /home/axel/build/root/master2/src/interpreter/cling/lib/Interpreter/InterpreterCallbacks.cpp:287 at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp:133 TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2566 ClassTemplateSpec=0x555556543b40, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2596 at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:8075 at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:7828 at /home/axel/build/root/master2/src/interpreter/llvm/src/tools/clang/lib/Sema/SemaType.cpp:8141 ``` | 25 February 2021, 19:40:47 UTC |