Minor improvements to CLING_PROFILE and CLING_DEBUG
This PR fixes #10870.
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Build failed on ROOT-performance-centos8-multicore/cxx17. Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build See console output.
Failing tests:
There is a suspicious failure, this assertion is triggered by the failing test:
root.exe: /data/sftnight/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h:146: llvm::orc::SymbolStringPool::~SymbolStringPool(): Assertion `Pool.empty() && "Dangling references at pool destruction time"' failed.
I cannot judge if this could be related to the fix in LLVM or not. @Axel-Naumann and @vgvassilev, please advise. Should I drop that change?
Build failed on windows10/cxx14. Running on null:C:\build\workspace\root-pullrequests-build See console output.
Failing tests:
- projectroot.roottest.cling.function.roottest_cling_function_refClasses_build
- projectroot.roottest.cling.other.roottest_cling_other_runfileClose
- projectroot.roottest.cling.parsing.roottest_cling_parsing_scopeDict_build
- projectroot.roottest.cling.parsing.roottest_cling_parsing_scopeDict2_build
- projectroot.roottest.cling.specialobj.roottest_cling_specialobj_stlProxies
- projectroot.roottest.cling.template.roottest_cling_template_masterDict_build
- projectroot.roottest.cling.template.roottest_cling_template_forwardDict_build
- projectroot.roottest.cling.template.roottest_cling_template_slaveDict_build
- projectroot.roottest.cling.dict.ROOT-7879.roottest_cling_dict_ROOT_7879_skipLinkDef
- projectroot.roottest.cling.dict.ROOT-8096.roottest_cling_dict_ROOT_8096_load
And 223 more
@bellenot Could the Windows failures have any relation to my changes? I think the permission errors could be a problem with the node itself, maybe?
@phsft-bot build please
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Thank you @amadio , indeed we need Axel or Vasil's approval to merge (ping :) ).
IIUC this PR does not solve the last item in 10870, "investigate the runtime and memory cost of CLING_DEBUG=1, consider having it on by default in some cases, e.g. for interactive usage". Again up to cling devs to decide if it's worth opening a separate issue for that or we are happy with the current situation for now.
Build failed on ROOT-performance-centos8-multicore/cxx17. Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build See console output.
Failing tests:
Build failed on windows10/cxx14. Running on null:C:\build\workspace\root-pullrequests-build See console output.
Failing tests:
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Build failed on windows10/cxx14. Running on null:C:\build\workspace\root-pullrequests-build See console output.
Failing tests:
- projectroot.roottest.root.io.complex.roottest_root_io_complex_classWithComplex_libgen_build
- projectroot.roottest.root.meta.roottest_root_meta_Event_build
- projectroot.roottest.root.meta.autoloading.roottest_root_meta_autoloading_ROOT7114classes_libgen_build
- projectroot.roottest.root.io.transient.base.roottest_root_io_transient_base_WriteFile
- projectroot.roottest.root.meta.roottest_root_meta_ANSTmpltInt_build
- projectroot.roottest.root.meta.autoloading.roottest_root_meta_autoloading_TriggerTypeDefs_libgen_build
- projectroot.roottest.root.meta.autoloading.roottest_root_meta_autoloading_classes_libgen_build
- projectroot.roottest.root.meta.roottest_root_meta_TmpltInt1_build
- projectroot.roottest.root.meta.autoloading.NestedClasses.roottest_root_meta_autoloading_NestedClasses_nestedTemplate_libgen_build
- projectroot.roottest.root.meta.autoloading.classInNamespace.roottest_root_meta_autoloading__classInNamespace_libgen_build
And 259 more
Thank you @amadio , indeed we need Axel or Vasil's approval to merge (ping :) ).
IIUC this PR does not solve the last item in 10870, "investigate the runtime and memory cost of CLING_DEBUG=1, consider having it on by default in some cases, e.g. for interactive usage". Again up to cling devs to decide if it's worth opening a separate issue for that or we are happy with the current situation for now.
As discussed in Mattermost, there is a significant cost at runtime when enabling CLING_PROFILE=1 and/or CLING_DEBUG=1, so it's best to enable it only when needed. For reference, times measured for df102_NanoAODDimuonAnalysis.py tutorial were about 30s with CLING_PROFILE disabled, and almost 50s with the feature enabled. Keeping the frame pointer is especially costly when short functions get called many times, and that's the case with most RDataFrame analyses.
@Axel-Naumann, @vgvassilev I'd like to merge this when the build passes. Please add your stamp of approval at your earliest convenience. Thanks!
Note: I dropped a commit that used limited debugging info when only profiling, because that actually causes ROOT to crash. Full debug info must be used for things to work.
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Please clang-format again...
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Build failed on windows10/cxx14. Running on null:C:\build\workspace\root-pullrequests-build See console output.
Failing tests:
- projectroot.roottest.root.meta.MakeProject.roottest_root_meta_MakeProject_stl_makeproject_test_build
- projectroot.roottest.root.meta.MakeProject.roottest_root_meta_MakeProject_examples
- projectroot.roottest.root.meta.MakeProject.roottest_root_meta_MakeProject_stltest
- projectroot.roottest.root.meta.MakeProject.roottest_root_meta_MakeProject_stltest2
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
Got verbal approval from Axel as well, merging.