- Aug 23, 2018
-
-
Yuka Takahashi authored
-
- Aug 09, 2018
-
-
Guilherme Amadio authored
This reverts commit 19159269. The minicern library is used by ATLAS.
-
- May 04, 2018
-
-
Guilherme Amadio authored
These are temporary static libraries that need to be linked to a final shared library, so they must be compiled with -fPIC.
-
- Apr 10, 2018
-
-
Mattias Ellert authored
-
- Apr 03, 2018
-
-
Yuka Takahashi authored
-
Yuka Takahashi authored
There are some codes compiled at the start up time. For example, - #include \"cling/Interpreter/RuntimeUniverse.h\" - #include \"cling/Interpreter/DynamicLookupRuntimeUniverse.h\" - namespace cling { class Interpreter; namespace runtime { Interpreter* gCling }}} - PrintValue These are passed to Cling as string and initialized at the start up time. So I think it makes sense to reduce top-level global variables, #includes and virtual functions. 1. Global variables If we break at emitModule, we can get a list of global variables and functions which are actually deserialized. These include functions, variables, STL classes and all the functions derives from them. I tried to change them to for example constexpr, so that it's processed at compile time. 2. Eagerly Deserialized decls Thanks to @Axel 's hint and tip, we could minimize eagerly deserialized decls deserialized in ASTReader::PassInterestingDeclsToConsumer. We already removed most of eagerly deserialized decls (Some are remaining to be removed, some are hard to remove and some don't cost a lot). So far, we got 9.2% of cpu time improvement and 8.8% of memory improvement at start up time in release build. - root.exe -q -l - master cpu time = 0.09186914285714286 sec (average of 7 times) res memory = 142.008 Mbytes - HEAD cpu time = 0.08337842857142856 sec res memory = 129.508 Mbytes - hsimple.C Improved by 13% of cpu time and 8.5% of memory - master cpu time = 0.0954708 sec (average) res memory = 142.891 Mbytes - HEAD cpu time = 0.0833258 sec res memory = 130.73 Mbytes With modules - Improvement by 17.7% in cputime and 2% in memory on root.exe -q -l (For memory, small improvement is because most of the memory is taken by LoadModules) - With this patch, modules is 11.2% slower in cpu time and 6% better in residential memory.
-
- Mar 27, 2018
-
-
Axel Naumann authored
-
- Feb 06, 2018
-
-
Axel Naumann authored
-
- Jan 10, 2018
-
-
Axel Naumann authored
We will not fix them, some are even "fine". See https://sft.its.cern.ch/jira/browse/ROOT-9179 for more info.
-
- Dec 09, 2017
-
-
Guilherme Amadio authored
Removed in C++17. No functionality change intended.
-
- Dec 04, 2017
-
-
Julien Nabet authored
[net/monalisa/src/TMonaLisaWriter.cxx:956] -> [net/monalisa/src/TMonaLisaWriter.cxx:957]: (error) Iterator 'iter' used after element has been erased. [proof/proofd/src/XrdProofdProofServMgr.cxx:4648] -> [proof/proofd/src/XrdProofdProofServMgr.cxx:4646]: (error) Iterator 'iter' used after element has been erased. [math/minuit2/src/Minuit2Minimizer.cxx:669] -> [math/minuit2/src/Minuit2Minimizer.cxx:669]: (style) Same expression on both sides of '||'. [math/minuit2/src/Minuit2Minimizer.cxx:736] -> [math/minuit2/src/Minuit2Minimizer.cxx:736]: (style) Same expression on both sides of '||'. [math/minuit2/src/Minuit2Minimizer.cxx:753] -> [math/minuit2/src/Minuit2Minimizer.cxx:753]: (style) Same expression on both sides of '||'. [tree/tree/src/TBasket.cxx:852]: (style) Redundant condition: If 'flag >= 80', the comparison 'flag' is always true. [misc/table/src/TFileIter.cxx:467] -> [misc/table/src/TFileIter.cxx:468]: (warning) Identical condition 'thisRunNumber<runNumber', second condition is always false [math/mathcore/src/TMath.cxx:826]: (style) Array index 'ia' is used before limits check. [math/mathcore/src/TMath.cxx:830]: (style) Array index 'ib' is used before limits check. [math/mathcore/src/triangle.c:15434]: (style) Array index 'aspectindex' is used before limits check. [roofit/roofit/src/RooIntegralMorph.cxx:375]: (style) Array index 'igapHigh' is used before limits check. [core/winnt/src/TWinNTSystem.cxx:5035]: (style) Statements following return, break, continue, goto or throw will never be executed. [tree/treeplayer/src/TSelectorDraw.cxx:380]: (style) Statements following return, break, continue, goto or throw will never be executed. [net/auth/src/TAuthenticate.cxx:4205]: (error) Resource leak: fd [roofit/roofitcore/src/BidirMMapPipe.cxx:1880]: (error) Memory leak: s [tree/tree/src/TLeaf.cxx:222]: (error) Memory leak: countname [tree/tree/src/TLeaf.cxx:226]: (error) Memory leak: countname [tmva/tmva/src/MethodBase.cxx:2783]: (error) Memory leak: pdfS [tmva/tmva/src/MethodBase.cxx:2783]: (error) Memory leak: pdfB [roofit/roofitcore/src/RooAbsArg.cxx:280]: (style) Redundant checking of STL container element existence before removing it. [core/dictgen/src/rootcling_impl.cxx:457]: (performance) Possible inefficient checking for 'fieldSelRules' emptiness. [core/dictgen/src/rootcling_impl.cxx:4573]: (performance) Possible inefficient checking for 'filesIncludedByLinkdef' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:322]: (performance) Possible inefficient checking for 'fWebConn' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:374]: (performance) Possible inefficient checking for 'fCmds' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:419]: (performance) Possible inefficient checking for 'fWebConn' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:475]: (performance) Possible inefficient checking for 'fWebConn' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:587]: (performance) Possible inefficient checking for 'fCmds' emptiness. [gui/canvaspainter/v7/src/TCanvasPainter.cxx:787]: (performance) Possible inefficient checking for 'fCmds' emptiness. [html/src/TDocParser.cxx:684]: (performance) Possible inefficient checking for 'currentType' emptiness. [proof/proofd/src/XrdProofdManager.cxx:804]: (performance) Possible inefficient checking for 'uwrks' emptiness. [proof/proofd/src/XrdProofdSandbox.cxx:467]: (performance) Possible inefficient checking for 'staglst' emptiness. [proof/proofd/src/XrdProofdSandbox.cxx:571]: (performance) Possible inefficient checking for 'actln' emptiness. [roofit/roofitcore/src/RooSimWSTool.cxx:574]: (performance) Possible inefficient checking for 'slist' emptiness. all the reports Prefer prefix ++/-- operators for non-primitive types
-
- Nov 14, 2017
-
-
Philippe Canal authored
-
- Oct 27, 2017
-
-
Mattias Ellert authored
-
- Oct 09, 2017
-
-
Philippe Canal authored
-
- Jul 28, 2017
-
-
Raphael Isemann authored
This refactors the CMake build files to no longer manually call the CMake functions for generating and linking the dicionairies. One reason is to reduce boilerplate, the other is that it is now no longer possible to have naming mismatches between the dictionary generation arguments and linking function arguments which was causing the race conditions we had in our build system. This also now follows more strictly the separation between dependencies like Math, Tree and Core and pure linking flags to external libraries.
-
- Jul 12, 2017
-
-
Raphael Isemann authored
The naming of the library in the two function calls ROOT_GENERATE_DICTIONARY and ROOT_LINKER_LIBRARY was often not matching. This causes that ROOT_LINKER_LIBRARY couldn't correctly set its dependencies to the output file of ROOT_GENERATE_DICTIONARY and therefore causes race conditions in the build system. Note: We're attached all dependencies to a custom target, and NOT to the output files generated by rootcling. This should mitigate the race conditions we experience when multiple targets in different Make jobs request the same output file as a dependency and then suffer from this Make problem that is described here: https://cmake.org/Bug/view.php?id=10082 This patch also adds a (commented out) piece of code that can print warnings if we don't have a fitting G__*.cxx file for a ROOT_LINKER_LIBRARY call. This is sometimes intended, so I didn't enable this warning by default. We should enable this code by default in the future once we have a way to express if we intentionally don't provide the G__*.cxx file when calling ROOT_LINKER_LIBRARY.
-
Raphael Isemann authored
ROOT_GENERATE_DICTIONARY allows to specify dependencies, but we currently don't actually specify those. As we need this for getting the module dependencies right (as we can't build missing modules on demand), we should add those dependencies here. Then those dependencies propagate to the rootcling invocation which will in the future also generate the C++ module for the selected dictionary.
-
- Jun 13, 2017
-
-
Pere Mato Vila authored
-
- Jun 06, 2017
-
-
Vassil Vassilev authored
ClassImp is a macro defined in Rtypes.h. It can be written without trailing semicolon. However, clang-format is based on lexing and it doesn't know at all about preprocessors and how to expand macros. When visiting ClassImp(X) it thinks this is not a completed entity (as it doesn't expand macros) and considers the next line as continuation of the previous. Inserting a semicolon fixes the issue and makes formatting with clang-format in the ROOT codebase less tricky.
-
- May 09, 2017
-
-
Pere Mato Vila authored
-
- Feb 14, 2017
-
-
Raphael Isemann authored
Many headers contains redundant header guards around #include directives: #ifndef ROOT_TTree #include "TTree.h" #endif This patch removes the #ifndef's around these includes as they don't serve any pratical purpose anymore and are no longer part of the current ROOT coding convention. This patch also fixes the 153 typos that are contained in the symbols of the #ifndef directives. Signed-off-by:
Vassil Vassilev <vvasilev@cern.ch>
-
- Dec 17, 2016
-
-
Vassil Vassilev authored
Make cannot deal with 'export *', they have to be escaped and fixed later on.
-
- Dec 14, 2016
-
-
Vassil Vassilev authored
This is the recommended way of using the modules feature and should pave our way of enabling -fmodules-local-submodules-visibility mode.
-
Vassil Vassilev authored
Use the standard #include <typeinfo> and #include <iosfwd> instead.
-
Vassil Vassilev authored
-
Vassil Vassilev authored
Our two build systems can generate almost entirely a modulemap file laying out one module per library. Due to some non-modular implementation in ROOT's core we still need to treat some header files specially. This patch appends modular header files to the modulemap while skipping the predefined ones. Configure-make relates all headers that are installed in $ROOTSYS/include to their library whereas relates only headers which are part of library's dictionary.
-
- Nov 10, 2016
-
-
Pere Mato Vila authored
-
- Jun 27, 2016
-
-
Mattias Ellert authored
-
- Jun 23, 2016
-
-
Olivier Couet authored
- Spell check
-
Olivier Couet authored
- Spell check
-
- Apr 29, 2016
-
-
Philippe Canal authored
-
- Apr 26, 2016
-
-
Philippe Canal authored
-
- Apr 25, 2016
-
-
Philippe Canal authored
-
Philippe Canal authored
-
Philippe Canal authored
gcc complains that passing any other value than 0 is unsafe and show be used only in debug situations
-
- Jan 29, 2016
-
-
Fons Rademakers authored
-
Fons Rademakers authored
-
Fons Rademakers authored
-
- Dec 10, 2015
-
-
Vassil Vassilev authored
Makes modules builds with -fno-implicit-module-maps go further.
-
- Nov 13, 2015
-
-
Vassil Vassilev authored
Either include the missing header files or add forward declarations, where the complete types are not required.
-