Update to 6.28.00
ROOT now uses llvm/clang version 13 (updated from version 9) Clean up specfile by removing EPEL 7 conditionals Drop dataframe, roofit and tmva-sofieparser on EPEL 8 ppc64le due to "pure virtual method called" errors Split the root-geom sub-package into three separate sub-packages: root-geom, root-geom-builder and root-geom-painter Enable uring support in EPEL 9 (liburing now available) New sub-packages: root-geom-webviewer, root-roofit-jsoninterface, root-testsupport, root-tree-ntuple-utils, root-tree-webviewer, root-xroofit Dropped patches: 31 New patches: 17 Updated patches: 4
This commit is contained in:
parent
1801745923
commit
a08fcbc5ad
54 changed files with 1982 additions and 3197 deletions
|
|
@ -1,170 +0,0 @@
|
|||
From 686d5011df607fde2a42c729d6bd446486163784 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 13 Mar 2020 16:20:17 +0100
|
||||
Subject: [PATCH] Restore 32-bit dataframe
|
||||
|
||||
---
|
||||
build/unix/makepchinput.py | 3 ---
|
||||
cmake/modules/RootBuildOptions.cmake | 5 -----
|
||||
tree/dataframe/test/dataframe_cache.cxx | 4 ----
|
||||
tree/dataframe/test/datasource_arrow.cxx | 4 ----
|
||||
tree/dataframe/test/datasource_csv.cxx | 4 ----
|
||||
tree/dataframe/test/datasource_root.cxx | 4 ----
|
||||
tree/dataframe/test/datasource_trivial.cxx | 4 ----
|
||||
tutorials/CMakeLists.txt | 5 -----
|
||||
8 files changed, 33 deletions(-)
|
||||
|
||||
diff --git a/build/unix/makepchinput.py b/build/unix/makepchinput.py
|
||||
index 1adff487de..eec73f946d 100755
|
||||
--- a/build/unix/makepchinput.py
|
||||
+++ b/build/unix/makepchinput.py
|
||||
@@ -252,9 +252,6 @@ def isDirForPCH(dirName, legacyPyROOT):
|
||||
"math/vdt",
|
||||
"tmva/rmva"]
|
||||
|
||||
- if (sys.platform != 'win32' and sys.maxsize <= 2**32): # https://docs.python.org/3/library/platform.html#cross-platform
|
||||
- PCHPatternsBlacklist.append("tree/dataframe")
|
||||
-
|
||||
accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \
|
||||
not isAnyPatternInString(PCHPatternsBlacklist,dirName)
|
||||
|
||||
diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake
|
||||
index 7886c5f3e9..6fbd8873f1 100644
|
||||
--- a/cmake/modules/RootBuildOptions.cmake
|
||||
+++ b/cmake/modules/RootBuildOptions.cmake
|
||||
@@ -344,11 +344,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
|
||||
set(runtime_cxxmodules_defvalue OFF)
|
||||
endif()
|
||||
|
||||
-# Disable RDataFrame on 32-bit UNIX platforms due to ROOT-9236
|
||||
-if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
- set(dataframe_defvalue OFF)
|
||||
-endif()
|
||||
-
|
||||
# MultiProcess is not possible on Windows, so fail if it is manually set:
|
||||
if(roofit_multiprocess AND WIN32)
|
||||
message(FATAL_ERROR ">>> Option 'roofit_multiprocess' is not supported on Windows.")
|
||||
diff --git a/tree/dataframe/test/dataframe_cache.cxx b/tree/dataframe/test/dataframe_cache.cxx
|
||||
index 77be488052..8475b98acb 100644
|
||||
--- a/tree/dataframe/test/dataframe_cache.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_cache.cxx
|
||||
@@ -224,8 +224,6 @@ TEST(Cache, evtCounter)
|
||||
|
||||
}
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(Cache, Regex)
|
||||
{
|
||||
|
||||
@@ -329,8 +327,6 @@ TEST(Cache, Carrays)
|
||||
gSystem->Unlink(fileName);
|
||||
}
|
||||
|
||||
-#endif // R__B64
|
||||
-
|
||||
// ROOT-10563
|
||||
TEST(Cache, Alias)
|
||||
{
|
||||
diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx
|
||||
index 5ac9fcf09a..5f5f94a666 100644
|
||||
--- a/tree/dataframe/test/datasource_arrow.cxx
|
||||
+++ b/tree/dataframe/test/datasource_arrow.cxx
|
||||
@@ -177,8 +177,6 @@ TEST(RArrowDS, SetNSlotsTwice)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(RArrowDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {}));
|
||||
@@ -250,5 +248,3 @@ TEST(RArrowDS, FromARDFWithJittingMT)
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff --git a/tree/dataframe/test/datasource_csv.cxx b/tree/dataframe/test/datasource_csv.cxx
|
||||
index 6554719f98..d93117b67a 100644
|
||||
--- a/tree/dataframe/test/datasource_csv.cxx
|
||||
+++ b/tree/dataframe/test/datasource_csv.cxx
|
||||
@@ -210,8 +210,6 @@ TEST(RCsvDS, SetNSlotsTwice)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(RCsvDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0));
|
||||
@@ -324,5 +322,3 @@ TEST(RCsvDS, ProgressiveReadingRDFMT)
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff --git a/tree/dataframe/test/datasource_root.cxx b/tree/dataframe/test/datasource_root.cxx
|
||||
index 79840d9fff..4c795fee6f 100644
|
||||
--- a/tree/dataframe/test/datasource_root.cxx
|
||||
+++ b/tree/dataframe/test/datasource_root.cxx
|
||||
@@ -117,8 +117,6 @@ TEST(TRootTDS, SetNSlotsTwice)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(TRootTDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new ROOT::Internal::RDF::RRootDS(treeName, fileGlob));
|
||||
@@ -190,5 +188,3 @@ TEST(TRootTDS, FromARDFWithJittingMT)
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff --git a/tree/dataframe/test/datasource_trivial.cxx b/tree/dataframe/test/datasource_trivial.cxx
|
||||
index 7da675c83b..deb89301c7 100644
|
||||
--- a/tree/dataframe/test/datasource_trivial.cxx
|
||||
+++ b/tree/dataframe/test/datasource_trivial.cxx
|
||||
@@ -141,8 +141,6 @@ TEST(RTrivialDS, EarlyQuitWithRange)
|
||||
EXPECT_EQ(df.Range(10).Count().GetValue(), 10);
|
||||
}
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(RTrivialDS, FromARDFWithJitting)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RTrivialDS(32));
|
||||
@@ -245,5 +243,3 @@ TEST(RTrivialDS, SkipEntriesMT)
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
|
||||
index a6e5c97703..12bb610d67 100644
|
||||
--- a/tutorials/CMakeLists.txt
|
||||
+++ b/tutorials/CMakeLists.txt
|
||||
@@ -332,10 +332,6 @@ else()
|
||||
list(APPEND root7_veto ${v7_veto_files})
|
||||
endif()
|
||||
|
||||
-if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
|
||||
- set(bits32_veto dataframe/*.C graphs/timeSeriesFrom*.C v7/ntuple/ntpl004_dimuon.C)
|
||||
-endif()
|
||||
-
|
||||
if (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES arm64)
|
||||
set(macm1_veto dataframe/df107_SingleTopAnalysis.py)
|
||||
endif()
|
||||
@@ -391,7 +387,6 @@ set(all_veto hsimple.C
|
||||
${classic_veto}
|
||||
${pythia_veto}
|
||||
${root7_veto}
|
||||
- ${bits32_veto}
|
||||
${xrootd_veto}
|
||||
${mlp_veto}
|
||||
${spectrum_veto}
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From a12f3b736a9c69e0d69e7f483e50e7cdf59d9fd2 Mon Sep 17 00:00:00 2001
|
||||
From: Enric Tejedor Saavedra <enric.tejedor.saavedra@cern.ch>
|
||||
Date: Fri, 10 Jun 2022 16:42:49 +0200
|
||||
Subject: [PATCH] [PyROOT] Prevent cast error when calling PyTuple_SET_ITEM in
|
||||
3.11
|
||||
|
||||
PyTuple_SET_ITEM ends up calling _PyObject_CAST(nullptr) which
|
||||
causes "error: invalid cast from type 'std::nullptr_t' to type
|
||||
'const PyObject*' {aka 'const _object*'}
|
||||
---
|
||||
bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx b/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
|
||||
index 685ad3dc60..2189348594 100644
|
||||
--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
|
||||
+++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPMethod.cxx
|
||||
@@ -580,7 +580,7 @@ PyObject* CPyCppyy::CPPMethod::ProcessKeywords(PyObject* self, PyObject* args, P
|
||||
// set all values to zero to be able to check them later (this also guarantees normal
|
||||
// cleanup by the tuple deallocation)
|
||||
for (Py_ssize_t i = 0; i < nArgs+nKeys; ++i)
|
||||
- PyTuple_SET_ITEM(newArgs, i, nullptr);
|
||||
+ PyTuple_SET_ITEM(newArgs, i, static_cast<PyObject*>(nullptr));
|
||||
|
||||
// next, insert the keyword values
|
||||
PyObject *key, *value;
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 484deb056dacf768aba4954073b41105c431bffc Mon Sep 17 00:00:00 2001
|
||||
From: Enric Tejedor Saavedra <enric.tejedor.saavedra@cern.ch>
|
||||
Date: Thu, 9 Jun 2022 12:24:07 +0200
|
||||
Subject: [PATCH] [PyROOT] code.h must not be included directly in 3.11
|
||||
|
||||
It has been moved to Include/cpython, and it is included by Python.h.
|
||||
|
||||
See:
|
||||
https://docs.python.org/3.11/whatsnew/3.11.html
|
||||
---
|
||||
bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
|
||||
index 59997e390d..28bbd635c2 100644
|
||||
--- a/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
|
||||
+++ b/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
|
||||
@@ -1,10 +1,10 @@
|
||||
// Bindings
|
||||
#include "CPyCppyy.h"
|
||||
#include "structmember.h" // from Python
|
||||
-#if PY_VERSION_HEX >= 0x02050000
|
||||
-#include "code.h" // from Python
|
||||
-#else
|
||||
+#if PY_VERSION_HEX < 0x02050000
|
||||
#include "compile.h" // from Python
|
||||
+#elif PY_VERSION_HEX < 0x030b0000
|
||||
+#include "code.h" // from Python
|
||||
#endif
|
||||
#ifndef CO_NOFREE
|
||||
// python2.2 does not have CO_NOFREE defined
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
From d759a42a33fe6a9195c3c79275fe05e4da2b4195 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Sat, 14 Jan 2023 12:25:20 +0100
|
||||
Subject: [PATCH] [PyROOT] Only build RooFit and TMVA pythonizations if needed
|
||||
|
||||
Like this, we are polluting the build and install directories less with
|
||||
unneeded files and it also speeds up the build process a bit if RooFit
|
||||
and/or TMVA are disabled. Their pythonization files don't need to be
|
||||
compiled to `.pyc` files.
|
||||
---
|
||||
bindings/pyroot/pythonizations/CMakeLists.txt | 76 ++++++++++---------
|
||||
1 file changed, 42 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
index 9e853d1885..8395785b24 100644
|
||||
--- a/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
@@ -25,6 +25,48 @@ if(dataframe)
|
||||
inc/RNumpyDS.hxx)
|
||||
endif()
|
||||
|
||||
+if(roofit)
|
||||
+ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE
|
||||
+ ROOT/_pythonization/_roofit/__init__.py
|
||||
+ ROOT/_pythonization/_roofit/_rooabscollection.py
|
||||
+ ROOT/_pythonization/_roofit/_rooabsdata.py
|
||||
+ ROOT/_pythonization/_roofit/_rooabspdf.py
|
||||
+ ROOT/_pythonization/_roofit/_rooabsreallvalue.py
|
||||
+ ROOT/_pythonization/_roofit/_rooabsreal.py
|
||||
+ ROOT/_pythonization/_roofit/_rooarglist.py
|
||||
+ ROOT/_pythonization/_roofit/_rooargset.py
|
||||
+ ROOT/_pythonization/_roofit/_roocategory.py
|
||||
+ ROOT/_pythonization/_roofit/_roochi2var.py
|
||||
+ ROOT/_pythonization/_roofit/_roodatahist.py
|
||||
+ ROOT/_pythonization/_roofit/_roodataset.py
|
||||
+ ROOT/_pythonization/_roofit/_roodecays.py
|
||||
+ ROOT/_pythonization/_roofit/_roogenfitstudy.py
|
||||
+ ROOT/_pythonization/_roofit/_rooglobalfunc.py
|
||||
+ ROOT/_pythonization/_roofit/_roojsonfactorywstool.py
|
||||
+ ROOT/_pythonization/_roofit/_roomcstudy.py
|
||||
+ ROOT/_pythonization/_roofit/_roomsgservice.py
|
||||
+ ROOT/_pythonization/_roofit/_roonllvar.py
|
||||
+ ROOT/_pythonization/_roofit/_rooprodpdf.py
|
||||
+ ROOT/_pythonization/_roofit/_roorealvar.py
|
||||
+ ROOT/_pythonization/_roofit/_roosimultaneous.py
|
||||
+ ROOT/_pythonization/_roofit/_roosimwstool.py
|
||||
+ ROOT/_pythonization/_roofit/_roovectordatastore.py
|
||||
+ ROOT/_pythonization/_roofit/_rooworkspace.py
|
||||
+ ROOT/_pythonization/_roofit/_utils.py)
|
||||
+endif()
|
||||
+
|
||||
+if(tmva)
|
||||
+ list(APPEND PYROOT_EXTRA_PY2_PY3_SOURCE
|
||||
+ ROOT/_pythonization/_tmva/_crossvalidation.py
|
||||
+ ROOT/_pythonization/_tmva/_dataloader.py
|
||||
+ ROOT/_pythonization/_tmva/_factory.py
|
||||
+ ROOT/_pythonization/_tmva/__init__.py
|
||||
+ ROOT/_pythonization/_tmva/_rbdt.py
|
||||
+ ROOT/_pythonization/_tmva/_rtensor.py
|
||||
+ ROOT/_pythonization/_tmva/_tree_inference.py
|
||||
+ ROOT/_pythonization/_tmva/_utils.py)
|
||||
+endif()
|
||||
+
|
||||
list(APPEND PYROOT_EXTRA_HEADERS
|
||||
inc/TPyDispatcher.h)
|
||||
|
||||
@@ -39,32 +81,6 @@ set(py2_py3_sources
|
||||
ROOT/_pythonization/_generic.py
|
||||
ROOT/_pythonization/__init__.py
|
||||
ROOT/_pythonization/_pyz_utils.py
|
||||
- ROOT/_pythonization/_roofit/__init__.py
|
||||
- ROOT/_pythonization/_roofit/_rooabscollection.py
|
||||
- ROOT/_pythonization/_roofit/_rooabsdata.py
|
||||
- ROOT/_pythonization/_roofit/_rooabspdf.py
|
||||
- ROOT/_pythonization/_roofit/_rooabsreallvalue.py
|
||||
- ROOT/_pythonization/_roofit/_rooabsreal.py
|
||||
- ROOT/_pythonization/_roofit/_rooarglist.py
|
||||
- ROOT/_pythonization/_roofit/_rooargset.py
|
||||
- ROOT/_pythonization/_roofit/_roocategory.py
|
||||
- ROOT/_pythonization/_roofit/_roochi2var.py
|
||||
- ROOT/_pythonization/_roofit/_roodatahist.py
|
||||
- ROOT/_pythonization/_roofit/_roodataset.py
|
||||
- ROOT/_pythonization/_roofit/_roodecays.py
|
||||
- ROOT/_pythonization/_roofit/_roogenfitstudy.py
|
||||
- ROOT/_pythonization/_roofit/_rooglobalfunc.py
|
||||
- ROOT/_pythonization/_roofit/_roojsonfactorywstool.py
|
||||
- ROOT/_pythonization/_roofit/_roomcstudy.py
|
||||
- ROOT/_pythonization/_roofit/_roomsgservice.py
|
||||
- ROOT/_pythonization/_roofit/_roonllvar.py
|
||||
- ROOT/_pythonization/_roofit/_rooprodpdf.py
|
||||
- ROOT/_pythonization/_roofit/_roorealvar.py
|
||||
- ROOT/_pythonization/_roofit/_roosimultaneous.py
|
||||
- ROOT/_pythonization/_roofit/_roosimwstool.py
|
||||
- ROOT/_pythonization/_roofit/_roovectordatastore.py
|
||||
- ROOT/_pythonization/_roofit/_rooworkspace.py
|
||||
- ROOT/_pythonization/_roofit/_utils.py
|
||||
ROOT/_pythonization/_rvec.py
|
||||
ROOT/_pythonization/_stl_vector.py
|
||||
ROOT/_pythonization/_tarray.py
|
||||
@@ -79,14 +95,6 @@ set(py2_py3_sources
|
||||
ROOT/_pythonization/_tgraph.py
|
||||
ROOT/_pythonization/_th1.py
|
||||
ROOT/_pythonization/_titer.py
|
||||
- ROOT/_pythonization/_tmva/_crossvalidation.py
|
||||
- ROOT/_pythonization/_tmva/_dataloader.py
|
||||
- ROOT/_pythonization/_tmva/_factory.py
|
||||
- ROOT/_pythonization/_tmva/__init__.py
|
||||
- ROOT/_pythonization/_tmva/_rbdt.py
|
||||
- ROOT/_pythonization/_tmva/_rtensor.py
|
||||
- ROOT/_pythonization/_tmva/_tree_inference.py
|
||||
- ROOT/_pythonization/_tmva/_utils.py
|
||||
ROOT/_pythonization/_tobject.py
|
||||
ROOT/_pythonization/_tobjstring.py
|
||||
ROOT/_pythonization/_tseqcollection.py
|
||||
--
|
||||
2.39.2
|
||||
|
||||
168
root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch
Normal file
168
root-RF-Rewrite-RooProdPdf.TestGetPartIntList-unit-test.patch
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
From c20004230608a5679ee6c0a7648af5f190c415c9 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Tue, 7 Mar 2023 11:53:01 +0100
|
||||
Subject: [PATCH] [RF] Rewrite `RooProdPdf.TestGetPartIntList` unit test
|
||||
|
||||
In the ROOT 6.26 development cycle, the RooProdPdf was partially
|
||||
rewritten in moden C++ with less manual memory allocation to improve
|
||||
performance (PR #7907).
|
||||
|
||||
In that PR, a unit test that verifies the RooProdPdf can correctly deal
|
||||
with factorizing PDFs was implemented. However, that test used an
|
||||
arbitrary PDF where the correct factorization was checked in a rather
|
||||
crude way: check by hashing the content of the RooProdPdf cache element
|
||||
for a given normalization set that said PR doesn't change any behavior
|
||||
(the reference hash was hardcoded in the unit test).
|
||||
|
||||
This commit suggests a better alternative for the unit test, checking
|
||||
for a multidimensional product pdf of factorizing uniform pdfs that the
|
||||
pdf values for differenc normalization sets is as expected. This should
|
||||
cover the same functionality and is less fragile and implementation
|
||||
dependend than hashing the cache elements.
|
||||
|
||||
This closes GitHub issue #12430, as the rewritten test is not affected
|
||||
anymore by the problem reported in that issue.
|
||||
---
|
||||
roofit/roofitcore/inc/RooProdPdf.h | 2 -
|
||||
roofit/roofitcore/src/RooProdPdf.cxx | 4 --
|
||||
roofit/roofitcore/test/testRooProdPdf.cxx | 88 +++++++----------------
|
||||
3 files changed, 26 insertions(+), 68 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/inc/RooProdPdf.h b/roofit/roofitcore/inc/RooProdPdf.h
|
||||
index 3d779a4901..0a76c839aa 100644
|
||||
--- a/roofit/roofitcore/inc/RooProdPdf.h
|
||||
+++ b/roofit/roofitcore/inc/RooProdPdf.h
|
||||
@@ -96,8 +96,6 @@ public:
|
||||
|
||||
RooArgSet* findPdfNSet(RooAbsPdf const& pdf) const ;
|
||||
|
||||
- void writeCacheToStream(std::ostream& os, RooArgSet const* nset) const;
|
||||
-
|
||||
std::unique_ptr<RooAbsArg> compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext & ctx) const override;
|
||||
|
||||
private:
|
||||
diff --git a/roofit/roofitcore/src/RooProdPdf.cxx b/roofit/roofitcore/src/RooProdPdf.cxx
|
||||
index 8c8c7e01c6..6af7279603 100644
|
||||
--- a/roofit/roofitcore/src/RooProdPdf.cxx
|
||||
+++ b/roofit/roofitcore/src/RooProdPdf.cxx
|
||||
@@ -2324,10 +2324,6 @@ void RooProdPdf::CacheElem::writeToStream(std::ostream& os) const {
|
||||
}
|
||||
}
|
||||
|
||||
-void RooProdPdf::writeCacheToStream(std::ostream& os, RooArgSet const* nset) const {
|
||||
- getCacheElem(nset)->writeToStream(os);
|
||||
-}
|
||||
-
|
||||
std::unique_ptr<RooArgSet> RooProdPdf::fillNormSetForServer(RooArgSet const &normSet, RooAbsArg const &server) const
|
||||
{
|
||||
if (normSet.empty())
|
||||
diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
index d794fb415a..ff334211d2 100644
|
||||
--- a/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
@@ -74,76 +74,40 @@ INSTANTIATE_TEST_SUITE_P(RooProdPdf, TestProdPdf,
|
||||
return ss.str();
|
||||
});
|
||||
|
||||
-std::vector<std::vector<RooAbsArg *>> allPossibleSubset(RooAbsCollection const &arr)
|
||||
+TEST(RooProdPdf, TestGetPartIntList)
|
||||
{
|
||||
- std::vector<std::vector<RooAbsArg *>> out;
|
||||
- std::size_t n = arr.size();
|
||||
-
|
||||
- std::size_t count = std::pow(2, n);
|
||||
- for (std::size_t i = 0; i < count; i++) {
|
||||
- out.emplace_back();
|
||||
- auto &back = out.back();
|
||||
- for (std::size_t j = 0; j < n; j++) {
|
||||
- if ((i & (1 << j)) != 0) {
|
||||
- back.push_back(arr[j]);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- return out;
|
||||
-}
|
||||
+ RooHelpers::LocalChangeMsgLevel chmsglvl1{RooFit::ERROR, 0u, RooFit::InputArguments, true};
|
||||
+ RooHelpers::LocalChangeMsgLevel chmsglvl2{RooFit::WARNING, 0u, RooFit::NumIntegration, true};
|
||||
|
||||
-// Hash the integral configuration for all possible normalization sets.
|
||||
-unsigned int hashRooProduct(RooProdPdf const &prod)
|
||||
-{
|
||||
- RooArgSet params;
|
||||
- prod.getParameters(nullptr, params);
|
||||
- auto subsets = allPossibleSubset(params);
|
||||
+ // This test checks if RooProdPdf::getPartIntList factorizes the integrals
|
||||
+ // as expected, for the example of a three dimensional RooProdPdf.
|
||||
|
||||
- std::stringstream ss;
|
||||
+ RooWorkspace ws;
|
||||
|
||||
- for (auto const &subset : subsets) {
|
||||
- // this can't be on the stack, otherwise we will always get the same
|
||||
- // address and therefore get wrong cache hits!
|
||||
- auto nset = std::make_unique<RooArgSet>(subset.begin(), subset.end());
|
||||
- prod.writeCacheToStream(ss, nset.get());
|
||||
- }
|
||||
+ double a = 10.;
|
||||
+ double b = 4.;
|
||||
+ double c = 2.5;
|
||||
|
||||
- std::string s = ss.str();
|
||||
- return TString::Hash(s.c_str(), s.size());
|
||||
-}
|
||||
+ auto &x = static_cast<RooRealVar &>(*ws.factory("x[0, 0, " + std::to_string(a) + "]"));
|
||||
+ auto &y = static_cast<RooRealVar &>(*ws.factory("y[0, 0, " + std::to_string(b) + "]"));
|
||||
+ auto &z = static_cast<RooRealVar &>(*ws.factory("z[0, 0, " + std::to_string(c) + "]"));
|
||||
|
||||
-TEST(RooProdPdf, TestGetPartIntList)
|
||||
-{
|
||||
- // This test checks if RooProdPdf::getPartIntList factorizes the integrals
|
||||
- // as expected.
|
||||
- // Instead of trying to construct tests for all possible cases by hand,
|
||||
- // this test creates a product where the factors have different patters of
|
||||
- // overlapping parameters. To make sure all possible cases are covered, we
|
||||
- // are using all possible subsets of the parameters one after the other to
|
||||
- // create the reference test result.
|
||||
-
|
||||
- RooRealVar x{"x", "x", 1., 0, 10};
|
||||
- RooRealVar y{"y", "y", 1., 0, 10};
|
||||
- RooRealVar z{"z", "z", 1., 0, 10};
|
||||
-
|
||||
- RooRealVar m1{"m1", "m1", 1., 0, 10};
|
||||
- RooRealVar m2{"m2", "m2", 1., 0, 10};
|
||||
- RooRealVar m3{"m3", "m3", 1., 0, 10};
|
||||
-
|
||||
- RooGenericPdf gauss1{"gauss1", "gauss1", "x+m1", {x, m1}};
|
||||
- RooGenericPdf gauss2{"gauss2", "gauss2", "x+m2", {x, m2}};
|
||||
- RooGenericPdf gauss3{"gauss3", "gauss3", "y+m3", {y, m3}};
|
||||
- RooGenericPdf gauss4{"gauss4", "gauss4", "z+m1", {z, m1}};
|
||||
- RooGenericPdf gauss5{"gauss5", "gauss5", "x+m1", {x, m1}};
|
||||
+ // Factorize the product in one 1D and one 2D pdf to get a more complicated
|
||||
+ // and complete test case.
|
||||
+ ws.factory("Uniform::pdf1({x})");
|
||||
+ ws.factory("Uniform::pdf2({y, z})");
|
||||
|
||||
// Product of all the pdfs.
|
||||
- RooProdPdf prod{"prod", "prod", RooArgList{gauss1, gauss2, gauss3, gauss4, gauss5}};
|
||||
-
|
||||
- // We hash the string serializations of caches for all possible
|
||||
- // normalization sets and compare it to the expected hash.
|
||||
- // This value must be updated if the convention for integral names in
|
||||
- // RooProdPdf changes.
|
||||
- EXPECT_EQ(hashRooProduct(prod), 2448666198);
|
||||
+ auto &prod = static_cast<RooProdPdf &>(*ws.factory("PROD::prod(pdf1, pdf2)"));
|
||||
+
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({}), 1.0);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({x}), 1. / a);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({y}), 1. / b);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({z}), 1. / c);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({x, y}), 1. / a / b);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({x, z}), 1. / a / c);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({y, z}), 1. / b / c);
|
||||
+ EXPECT_DOUBLE_EQ(prod.getVal({x, y, z}), 1. / a / b / c);
|
||||
}
|
||||
|
||||
TEST(RooProdPdf, TestDepsAreCond)
|
||||
--
|
||||
2.39.2
|
||||
|
||||
32
root-Set-DataLayout-from-our-TargetMachine.patch
Normal file
32
root-Set-DataLayout-from-our-TargetMachine.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
From d4c66a41ae50ecfb905ebe66eb296de4e5c146d7 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
|
||||
Date: Thu, 16 Feb 2023 16:40:16 +0100
|
||||
Subject: [PATCH 2/2] [cling] Set DataLayout from our TargetMachine
|
||||
|
||||
Otherwise LLJIT's constructor will ask the LLJITBuilder's JTMB to
|
||||
create a DataLayout. As we don't propagate the JTMB (yet -- we
|
||||
probably should!), this will be wrong if target features influence
|
||||
the DataLayout.
|
||||
|
||||
This should fix #12293.
|
||||
|
||||
(cherry picked from commit 254bac6cfad78ed671ec3af3d2001c52487b4c86)
|
||||
---
|
||||
interpreter/cling/lib/Interpreter/IncrementalJIT.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
index 80b6761491..e1721a4d45 100644
|
||||
--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
+++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
@@ -358,6 +358,7 @@ IncrementalJIT::IncrementalJIT(
|
||||
ErrorAsOutParameter _(&Err);
|
||||
|
||||
LLJITBuilder Builder;
|
||||
+ Builder.setDataLayout(TM->createDataLayout());
|
||||
Builder.setExecutorProcessControl(std::move(EPC));
|
||||
|
||||
// Create ObjectLinkingLayer with our own MemoryManager.
|
||||
--
|
||||
2.39.2
|
||||
|
||||
94
root-Simplify-creation-of-TargetMachine.patch
Normal file
94
root-Simplify-creation-of-TargetMachine.patch
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
From 63d16de24e695a847274fa3044127cefffc7b0b6 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
|
||||
Date: Fri, 3 Feb 2023 11:52:22 +0100
|
||||
Subject: [PATCH 1/2] [cling] Simplify creation of TargetMachine
|
||||
|
||||
We know exactly which target triple and features the CompilerInstance
|
||||
wants, we don't need to (and probably must not) second-guess that. This
|
||||
brings us closer to upstream clang-repl and also includes the change of
|
||||
https://reviews.llvm.org/D128853 which is crucial for RISC-V.
|
||||
|
||||
(cherry picked from commit df0905c499a541eaac3be63c0455a07946022983)
|
||||
---
|
||||
.../cling/lib/Interpreter/IncrementalJIT.cpp | 34 ++++++-------------
|
||||
1 file changed, 11 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
index 5342945ed1..80b6761491 100644
|
||||
--- a/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
+++ b/interpreter/cling/lib/Interpreter/IncrementalJIT.cpp
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "cling/Utils/Output.h"
|
||||
#include "cling/Utils/Utils.h"
|
||||
|
||||
+#include <clang/Basic/TargetInfo.h>
|
||||
#include <clang/Basic/TargetOptions.h>
|
||||
#include <clang/Frontend/CompilerInstance.h>
|
||||
|
||||
@@ -292,45 +293,32 @@ Error RTDynamicLibrarySearchGenerator::tryToGenerate(
|
||||
}
|
||||
|
||||
static std::unique_ptr<TargetMachine>
|
||||
-CreateHostTargetMachine(const clang::CompilerInstance& CI) {
|
||||
- const clang::TargetOptions& TargetOpts = CI.getTargetOpts();
|
||||
- const clang::CodeGenOptions& CGOpt = CI.getCodeGenOpts();
|
||||
- const std::string& Triple = TargetOpts.Triple;
|
||||
-
|
||||
- std::string Error;
|
||||
- const Target *TheTarget = TargetRegistry::lookupTarget(Triple, Error);
|
||||
- if (!TheTarget) {
|
||||
- cling::errs() << "cling::IncrementalExecutor: unable to find target:\n"
|
||||
- << Error;
|
||||
- return std::unique_ptr<TargetMachine>();
|
||||
- }
|
||||
-
|
||||
+CreateTargetMachine(const clang::CompilerInstance& CI) {
|
||||
CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
|
||||
- switch (CGOpt.OptimizationLevel) {
|
||||
+ switch (CI.getCodeGenOpts().OptimizationLevel) {
|
||||
case 0: OptLevel = CodeGenOpt::None; break;
|
||||
case 1: OptLevel = CodeGenOpt::Less; break;
|
||||
case 2: OptLevel = CodeGenOpt::Default; break;
|
||||
case 3: OptLevel = CodeGenOpt::Aggressive; break;
|
||||
default: OptLevel = CodeGenOpt::Default;
|
||||
}
|
||||
+
|
||||
using namespace llvm::orc;
|
||||
- auto JTMB = JITTargetMachineBuilder::detectHost();
|
||||
- if (!JTMB)
|
||||
- logAllUnhandledErrors(JTMB.takeError(), llvm::errs(),
|
||||
- "Error detecting host");
|
||||
+ auto JTMB = JITTargetMachineBuilder(CI.getTarget().getTriple());
|
||||
+ JTMB.addFeatures(CI.getTargetOpts().Features);
|
||||
|
||||
- JTMB->setCodeGenOptLevel(OptLevel);
|
||||
+ JTMB.setCodeGenOptLevel(OptLevel);
|
||||
#ifdef _WIN32
|
||||
- JTMB->getOptions().EmulatedTLS = false;
|
||||
+ JTMB.getOptions().EmulatedTLS = false;
|
||||
#endif // _WIN32
|
||||
|
||||
#if defined(__powerpc64__) || defined(__PPC64__)
|
||||
// We have to use large code model for PowerPC64 because TOC and text sections
|
||||
// can be more than 2GB apart.
|
||||
- JTMB->setCodeModel(CodeModel::Large);
|
||||
+ JTMB.setCodeModel(CodeModel::Large);
|
||||
#endif
|
||||
|
||||
- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
|
||||
+ std::unique_ptr<TargetMachine> TM = cantFail(JTMB.createTargetMachine());
|
||||
|
||||
// Forcefully disable GlobalISel, it might be enabled on AArch64 without
|
||||
// optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this
|
||||
@@ -365,7 +353,7 @@ IncrementalJIT::IncrementalJIT(
|
||||
std::unique_ptr<llvm::orc::ExecutorProcessControl> EPC, Error& Err,
|
||||
void *ExtraLibHandle, bool Verbose)
|
||||
: SkipHostProcessLookup(false),
|
||||
- TM(CreateHostTargetMachine(CI)),
|
||||
+ TM(CreateTargetMachine(CI)),
|
||||
SingleThreadedContext(std::make_unique<LLVMContext>()) {
|
||||
ErrorAsOutParameter _(&Err);
|
||||
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From cf6a925dfda2411b979da368e4cea769dbe6238a Mon Sep 17 00:00:00 2001
|
||||
From 87d302b9192538e18645f4c3efadc70e9a20a913 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 20 Jan 2023 06:34:11 +0100
|
||||
Subject: [PATCH] Add missing #include <cstdint>
|
||||
|
|
@ -14,8 +14,8 @@ index 69ee9ba99d..6367dfa93f 100644
|
|||
--- a/tree/ntuple/v7/inc/ROOT/RDaos.hxx
|
||||
+++ b/tree/ntuple/v7/inc/ROOT/RDaos.hxx
|
||||
@@ -22,6 +22,7 @@
|
||||
// Also, this header file is known to provide macros that conflict with std::min()/std::max().
|
||||
extern "C" void d_rank_list_free(d_rank_list_t *rank_list);
|
||||
|
||||
#include <daos.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <functional>
|
||||
|
|
@ -31,8 +31,8 @@ index a975b5ce5d..be08eba924 100644
|
|||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
--
|
||||
2.39.0
|
||||
2.39.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
From c7dd58f3bc012690bab16763b1d73a4b7106ced9 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 29 Mar 2022 15:40:35 +0200
|
||||
Subject: [PATCH] Avoid deleting TFormulas twice
|
||||
|
||||
Example failure:
|
||||
|
||||
562/1224 Test #541: tutorial-gl-gltf3 ...................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.36 sec
|
||||
Processing /builddir/build/BUILD/root-6.26.00/tutorials/gl/gltf3.C...
|
||||
Error in <TList::Delete>: A list is accessing an object (0x7fffd1c959a0) already deleted (list name = Functions)
|
||||
Error in <TList::Delete>: A list is accessing an object (0x7fffd1c95750) already deleted (list name = Functions)
|
||||
|
||||
The commit also changes the filename used in
|
||||
tutorials/hist/fillrandom.py to be different form the one used in
|
||||
tutorials/hist/fillrandom.C (and tutorials/pyroot/fillrandom.py)
|
||||
---
|
||||
tutorials/gl/gltf3.C | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tutorials/gl/gltf3.C b/tutorials/gl/gltf3.C
|
||||
index 3697e69b7a..4089f0d2b7 100644
|
||||
--- a/tutorials/gl/gltf3.C
|
||||
+++ b/tutorials/gl/gltf3.C
|
||||
@@ -27,8 +27,8 @@ void gltf3()
|
||||
TPad *tf3Pad = new TPad("box", "box", 0.04, 0.04, 0.96, 0.8);
|
||||
tf3Pad->Draw();
|
||||
|
||||
- TFormula f1 = TFormula("f1", "x*x + y*y + z*z + 2*y - 1");
|
||||
- TFormula f2 = TFormula("f2", "x*x + y*y + z*z - 2*y - 1");
|
||||
+ TFormula *f1 = new TFormula("f1", "x*x + y*y + z*z + 2*y - 1");
|
||||
+ TFormula *f2 = new TFormula("f2", "x*x + y*y + z*z - 2*y - 1");
|
||||
|
||||
// Klein bottle with cut top&bottom parts
|
||||
// The Klein bottle is a closed non-orientable surface that has no
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
From 1e7dc9fcd60133375c3b725d8317fab339c2bf38 Mon Sep 17 00:00:00 2001
|
||||
From: Vincenzo Eduardo Padulano <v.e.padulano@gmail.com>
|
||||
Date: Mon, 30 Jan 2023 10:31:29 +0100
|
||||
Subject: [PATCH] [DF][PyROOT] Avoid deprecated numpy.object
|
||||
|
||||
---
|
||||
.../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
index 59cb0cd260dd..01cb08b0365f 100644
|
||||
--- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
@@ -287,7 +287,7 @@ def GetValue(self):
|
||||
tmp = numpy.asarray(cpp_reference) # This adopts the memory of the C++ object.
|
||||
self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column])
|
||||
else:
|
||||
- tmp = numpy.empty(len(cpp_reference), dtype=numpy.object)
|
||||
+ tmp = numpy.empty(len(cpp_reference), dtype=object)
|
||||
for i, x in enumerate(cpp_reference):
|
||||
tmp[i] = x # This creates only the wrapping of the objects and does not copy.
|
||||
self._py_arrays[column] = ndarray(tmp, self._result_ptrs[column])
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From 91de99623d0e945610be46d46e84b54985415aeb Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 28 Oct 2022 06:27:10 +0200
|
||||
Subject: [PATCH] Avoid race condition between
|
||||
tutorial/roofit/rf512_wsfactory_oper.C and
|
||||
tutorial/roofit/rf512_wsfactory_oper.py
|
||||
|
||||
When run in parallel they delete eachother's files:
|
||||
|
||||
cc1plus: fatal error: /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.cxx: No such file or directory
|
||||
compilation terminated.
|
||||
/usr/bin/ld: cannot find /builddir/build/BUILD/root-6.26.08/redhat-linux-build/runtutorials/RooCFAuto000Pdf_cxx_ACLiC_dict.o: No such file or directory
|
||||
collect2: error: ld returned 1 exit status
|
||||
---
|
||||
tutorials/CMakeLists.txt | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
|
||||
index cfba4d3ed9..6ae9be5869 100644
|
||||
--- a/tutorials/CMakeLists.txt
|
||||
+++ b/tutorials/CMakeLists.txt
|
||||
@@ -483,7 +483,7 @@ set(hist-hbars-depends tutorial-tree-cernbuild)
|
||||
set(benchmarks-depends tutorial-hsimple
|
||||
tutorial-fit-fit1
|
||||
tutorial-fit-myfit
|
||||
- tutorial-hist-h1ReadAndDraw
|
||||
+ tutorial-hist-h1ReadAndDraw
|
||||
tutorial-hist-FirstContour
|
||||
tutorial-geom-na49view
|
||||
tutorial-tree-ntuple1
|
||||
@@ -731,7 +731,7 @@ if(ROOT_pyroot_FOUND)
|
||||
set(pyroot-benchmarks-depends tutorial-pyroot-hsimple-py
|
||||
tutorial-pyroot-fit1-py
|
||||
tutorial-pyroot-na49view-py
|
||||
- tutorial-pyroot-h1ReadAndDraw-py
|
||||
+ tutorial-pyroot-h1ReadAndDraw-py
|
||||
tutorial-pyroot-ntuple1-py)
|
||||
set(pyroot-fit1-depends tutorial-pyroot-fillrandom-py)
|
||||
set(pyroot-na49view-depends tutorial-pyroot-geometry-py)
|
||||
@@ -739,6 +739,7 @@ if(ROOT_pyroot_FOUND)
|
||||
|
||||
# Avoid a race condition: make sure Python tutorial is ran after C++ tutorial
|
||||
set(roofit-rf104_classfactory-depends tutorial-roofit-rf104_classfactory)
|
||||
+ set(roofit-rf512_wsfactory_oper-depends tutorial-roofit-rf512_wsfactory_oper)
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# List requirements for python tutorials.
|
||||
--
|
||||
2.37.3
|
||||
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
From d9e03aad7a5132fe9db9992eecb47ee4e91c354c Mon Sep 17 00:00:00 2001
|
||||
From b32c7a1b080cb5d14f242070bf906ea6929d604d Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 25 Mar 2022 11:13:12 +0100
|
||||
Subject: [PATCH] Byte swap values read from the protobuf raw data stream on
|
||||
big endian
|
||||
|
||||
---
|
||||
tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
tmva/sofie_parsers/src/RModelParser_ONNX.cxx | 23 +++++++++++++++-----
|
||||
1 file changed, 17 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
index 3b0a30cdb0..23e41d746f 100644
|
||||
index ab457dcddc..d701fb3299 100644
|
||||
--- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
+++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
@@ -1,3 +1,4 @@
|
||||
|
|
@ -17,24 +17,42 @@ index 3b0a30cdb0..23e41d746f 100644
|
|||
#include "TMVA/RModelParser_ONNX.hxx"
|
||||
#include "onnx_proto3.pb.h"
|
||||
|
||||
@@ -980,9 +981,14 @@ RModel RModelParser_ONNX::Parse(std::string filename){
|
||||
//void* data = malloc (fLength * sizeof(float));
|
||||
std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free);
|
||||
@@ -335,9 +336,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose)
|
||||
case ETensorType::FLOAT: {
|
||||
std::shared_ptr<void> data(malloc(fLength * sizeof(float)), free);
|
||||
|
||||
- if (tensorproto->raw_data().empty() == false){
|
||||
- auto raw_data_ptr = reinterpret_cast<float*>(const_cast<char*>(tensorproto->raw_data().c_str()));
|
||||
- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float));
|
||||
+ if (!tensorproto->raw_data().empty()) {
|
||||
- if (tensorproto->raw_data().empty() == false) {
|
||||
- auto raw_data_ptr = reinterpret_cast<float *>(const_cast<char *>(tensorproto->raw_data().c_str()));
|
||||
- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(float));
|
||||
+ if (!tensorproto->raw_data().empty()) {
|
||||
+#ifdef R__BYTESWAP
|
||||
+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float));
|
||||
+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(float));
|
||||
+#else
|
||||
+ for (std::size_t k = 0; k < fLength; ++k)
|
||||
+ (reinterpret_cast<UInt_t*>(data.get()))[k] =
|
||||
+ R__bswap_32((reinterpret_cast<const UInt_t*>(tensorproto->raw_data().c_str()))[k]);
|
||||
+ for (std::size_t k = 0; k < fLength; ++k)
|
||||
+ (reinterpret_cast<uint32_t *>(data.get()))[k] =
|
||||
+ Rbswap_32((reinterpret_cast<const uint32_t *>(tensorproto->raw_data().c_str()))[k]);
|
||||
+#endif
|
||||
}else{
|
||||
tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), static_cast<float*>(data.get()));
|
||||
}
|
||||
} else {
|
||||
tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(),
|
||||
static_cast<float *>(data.get()));
|
||||
@@ -350,9 +356,14 @@ RModel RModelParser_ONNX::Parse(std::string filename, bool verbose)
|
||||
case ETensorType::INT64: {
|
||||
std::shared_ptr<void> data(malloc(fLength * sizeof(int64_t)), free);
|
||||
|
||||
- if (tensorproto->raw_data().empty() == false) {
|
||||
- auto raw_data_ptr = reinterpret_cast<int64_t *>(const_cast<char *>(tensorproto->raw_data().c_str()));
|
||||
- std::memcpy(data.get(), raw_data_ptr, fLength * sizeof(int64_t));
|
||||
+ if (!tensorproto->raw_data().empty()) {
|
||||
+#ifdef R__BYTESWAP
|
||||
+ std::memcpy(data.get(), tensorproto->raw_data().c_str(), fLength * sizeof(int64_t));
|
||||
+#else
|
||||
+ for (std::size_t k = 0; k < fLength; ++k)
|
||||
+ (reinterpret_cast<uint64_t *>(data.get()))[k] =
|
||||
+ Rbswap_64((reinterpret_cast<const uint64_t *>(tensorproto->raw_data().c_str()))[k]);
|
||||
+#endif
|
||||
} else {
|
||||
tensorproto->mutable_int64_data()->ExtractSubrange(0, tensorproto->int64_data_size(),
|
||||
static_cast<int64_t *>(data.get()));
|
||||
--
|
||||
2.35.1
|
||||
2.39.2
|
||||
|
||||
|
|
|
|||
35
root-cling-Disable-outline-atomics-on-AArch64.patch
Normal file
35
root-cling-Disable-outline-atomics-on-AArch64.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
From ddf9a8c3d113e3a3d48dbe13b6b4a6bf2338fb7a Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
|
||||
Date: Mon, 20 Feb 2023 10:08:00 +0100
|
||||
Subject: [PATCH] [cling] Disable outline-atomics on AArch64
|
||||
|
||||
The routines __aarch64_* are defined in the static library libgcc.a
|
||||
and not necessarily included in libCling or otherwise present in the
|
||||
process, so the interpreter has a hard time finding them.
|
||||
|
||||
Fixes #12294
|
||||
---
|
||||
interpreter/cling/lib/Interpreter/CIFactory.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp
|
||||
index b135bf21aa..b5b5df2e8e 100644
|
||||
--- a/interpreter/cling/lib/Interpreter/CIFactory.cpp
|
||||
+++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp
|
||||
@@ -1254,6 +1254,13 @@ namespace {
|
||||
#if __APPLE__ && __arm64__
|
||||
argvCompile.push_back("--target=arm64-apple-darwin20.3.0");
|
||||
#endif
|
||||
+#if __aarch64__
|
||||
+ // Disable outline-atomics on AArch64; the routines __aarch64_* are defined
|
||||
+ // in the static library libgcc.a and not necessarily included in libCling
|
||||
+ // or otherwise present in the process, so the interpreter has a hard time
|
||||
+ // finding them.
|
||||
+ argvCompile.push_back("-mno-outline-atomics");
|
||||
+#endif
|
||||
|
||||
// Variables for storing the memory of the C-string arguments.
|
||||
// FIXME: We shouldn't use C-strings in the first place, but just use
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 12d52a60629e1639ced23a1919bd85628d9135ea Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 3 Apr 2022 23:23:00 +0200
|
||||
Subject: [PATCH] Fix library link order
|
||||
|
||||
Fixes undefined references when linking CoreBaseTests
|
||||
|
||||
../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::TMemFile(char const*, TMemFile::ZeroCopyView_t const&)'
|
||||
../../../lib/libCling.so.6.26.00: undefined reference to `TFile::TFile(char const*, char const*, char const*, int)'
|
||||
../../../lib/libCling.so.6.26.00: undefined reference to `TFile::~TFile()'
|
||||
../../../lib/libCling.so.6.26.00: undefined reference to `TStreamerInfo::TStreamerInfo()'
|
||||
../../../lib/libCling.so.6.26.00: undefined reference to `TMemFile::~TMemFile()'
|
||||
---
|
||||
core/base/test/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/base/test/CMakeLists.txt b/core/base/test/CMakeLists.txt
|
||||
index 4b08cb0390..9b52e83405 100644
|
||||
--- a/core/base/test/CMakeLists.txt
|
||||
+++ b/core/base/test/CMakeLists.txt
|
||||
@@ -22,6 +22,6 @@ ROOT_ADD_GTEST(CoreBaseTests
|
||||
TExceptionHandlerTests.cxx
|
||||
TStringTest.cxx
|
||||
TBitsTests.cxx
|
||||
- LIBRARIES Core RIO ${extralibs})
|
||||
+ LIBRARIES ${extralibs} RIO Core)
|
||||
|
||||
ROOT_ADD_GTEST(CoreErrorTests TErrorTests.cxx LIBRARIES Core)
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
From d849bc502eec4ec95d15ca41319ba0467ab22759 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 15:55:29 +0100
|
||||
Subject: [PATCH] =?UTF-8?q?NENTRIES=20is=20not=20always=20a=20multiple=20o?=
|
||||
=?UTF-8?q?f=20the=20expected=20size.=20NENTRIES=20is=2010.=20On=20a=204?=
|
||||
=?UTF-8?q?=20core=20machine=20the=20expected=20size=20in=202=20=C3=97=204?=
|
||||
=?UTF-8?q?=20=3D=208.=20Looping=20over=20the=208=20IDs,=202=20have=202=20?=
|
||||
=?UTF-8?q?entries=20the=20remaining=206=20have=201=20entry=20for=20a=20to?=
|
||||
=?UTF-8?q?tal=20of=2010=20(NENTRIES)=20entries.=20The=20test=20checked=20?=
|
||||
=?UTF-8?q?that=20each=20ID=20had=20NENTRIES/(expected=20size)=20entries,?=
|
||||
=?UTF-8?q?=20which=20in=20this=20case=20with=20integer=20division=20equal?=
|
||||
=?UTF-8?q?s=201=20entry,=20which=20was=20not=20the=20correct=20test.=20Th?=
|
||||
=?UTF-8?q?is=20commit=20chenges=20to=20test=20to=20check=20that=20the=20t?=
|
||||
=?UTF-8?q?otal=20number=20of=20entries=20summed=20for=20all=20IDs=20equal?=
|
||||
=?UTF-8?q?s=20NENTRIES.?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
---
|
||||
tree/dataframe/test/dataframe_samplecallback.cxx | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
index 188d58dd31..d387ea5f86 100644
|
||||
--- a/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
@@ -125,11 +125,13 @@ TEST_P(RDFSampleCallback, EmptySourceSampleID) {
|
||||
// RDF with empty sources tries to produce 2 tasks per slot when MT is enabled
|
||||
const auto expectedSize = std::min(NENTRIES, df.GetNSlots() * 2ull);
|
||||
ASSERT_EQ(result->size(), expectedSize);
|
||||
+ ULong64_t entries = 0;
|
||||
for (auto &id : *result) {
|
||||
// check that all entries start with the expected string
|
||||
EXPECT_TRUE(id.AsString().rfind("Empty source, range: {", 0) == 0);
|
||||
- EXPECT_EQ(id.NEntries(), NENTRIES / expectedSize);
|
||||
+ entries += id.NEntries();
|
||||
}
|
||||
+ EXPECT_EQ(entries, NENTRIES);
|
||||
} else {
|
||||
ASSERT_EQ(result->size(), 1);
|
||||
const auto &id = result->at(0);
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
From a486081a8065154308b23381c3a77f3fdb73de97 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 16 Nov 2022 20:44:48 +0100
|
||||
Subject: [PATCH] Use different filename in loopdir.C and loopdir11.C to avoid
|
||||
race condition
|
||||
|
||||
Start 672: tutorial-io-loopdir
|
||||
690/1156 Test #666: tutorial-io-double32 ................................................ Passed 2.42 sec
|
||||
Start 673: tutorial-io-loopdir11
|
||||
691/1156 Test #673: tutorial-io-loopdir11 ............................................... Passed 0.76 sec
|
||||
Start 674: tutorial-io-mergeSelective
|
||||
692/1156 Test #672: tutorial-io-loopdir .................................................***Failed Error regular expression found in output. Regex=[Error in <] 1.23 sec
|
||||
Processing /builddir/build/BUILD/root-6.26.10/tutorials/io/loopdir.C...
|
||||
Info in <TCanvas::Print>: ps file hsimple.ps has been created
|
||||
Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps
|
||||
Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps
|
||||
Info in <TCanvas::Print>: Current canvas added to ps file hsimple.ps
|
||||
Info in <TCanvas::Print>: ps file hsimple.ps has been closed
|
||||
Error in <TPostScript::Text>: Cannot open temporary file: hsimple.ps_tmp_2089748
|
||||
---
|
||||
tutorials/io/loopdir11.C | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tutorials/io/loopdir11.C b/tutorials/io/loopdir11.C
|
||||
index b5f9f4719c..bf8c33b442 100644
|
||||
--- a/tutorials/io/loopdir11.C
|
||||
+++ b/tutorials/io/loopdir11.C
|
||||
@@ -12,14 +12,14 @@
|
||||
void loopdir11() {
|
||||
TFile *f1 = TFile::Open("hsimple.root");
|
||||
TCanvas c1;
|
||||
- c1.Print("hsimple.ps[");
|
||||
+ c1.Print("hsimple11.ps[");
|
||||
for(auto k : *f1->GetListOfKeys()) {
|
||||
TKey *key = static_cast<TKey*>(k);
|
||||
TClass *cl = gROOT->GetClass(key->GetClassName());
|
||||
if (!cl->InheritsFrom("TH1")) continue;
|
||||
TH1 *h = key->ReadObject<TH1>();
|
||||
h->Draw();
|
||||
- c1.Print("hsimple.ps");
|
||||
+ c1.Print("hsimple11.ps");
|
||||
}
|
||||
- c1.Print("hsimple.ps]");
|
||||
+ c1.Print("hsimple11.ps]");
|
||||
}
|
||||
--
|
||||
2.38.1
|
||||
|
||||
44
root-do-not-remove-Wp-before-D-and-U.patch
Normal file
44
root-do-not-remove-Wp-before-D-and-U.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
From 0191a987b7583c2aa84b1293105db353fee40b1d Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 10 Mar 2023 20:49:02 +0100
|
||||
Subject: [PATCH] Do not remove -Wp, before -D and -U when recording used
|
||||
compiler flags
|
||||
|
||||
This breaks the pattern used when undefining and then defining a
|
||||
variable in the same flag:
|
||||
|
||||
$ echo | g++ -Wp,-UVAR,-DVAR=1 -c -x c++ -
|
||||
|
||||
Here -Wp,-UVAR,-DVAR=1 will first undefine VAR and then define it to 1
|
||||
|
||||
If the -Wp, is dropped, this fails:
|
||||
$ echo | g++ -UVAR,-DVAR=1 -c -x c++ -
|
||||
<command-line>: warning: extra tokens at end of #undef directive
|
||||
|
||||
Now it will only undefine VAR, but not defin it. I.e.
|
||||
|
||||
insted of
|
||||
|
||||
you get
|
||||
|
||||
which explains the rather cryptic warning about extra token after #undef.
|
||||
---
|
||||
cmake/modules/RootConfiguration.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake
|
||||
index 3d1ae9be53..042b43f039 100644
|
||||
--- a/cmake/modules/RootConfiguration.cmake
|
||||
+++ b/cmake/modules/RootConfiguration.cmake
|
||||
@@ -729,7 +729,7 @@ if (cxxmodules)
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "(^|[ ]*)-W[^ ]*" "" __fflags "${CMAKE_Fortran_FLAGS}")
|
||||
-string(REGEX MATCHALL "-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}")
|
||||
+string(REGEX MATCHALL "(-Wp,)?-(D|U)[^ ]*" __defs "${CMAKE_CXX_FLAGS}")
|
||||
set(ROOT_COMPILER_FLAG_HINTS "#
|
||||
set(ROOT_DEFINITIONS \"${__defs}\")
|
||||
set(ROOT_CXX_FLAGS \"${__cxxflags}\")
|
||||
--
|
||||
2.39.2
|
||||
|
||||
26
root-dont-install-roofit-files-fix.patch
Normal file
26
root-dont-install-roofit-files-fix.patch
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
From 74aaf99530443a712f9b0577d8edde615ea8902d Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 4 Mar 2023 21:27:35 +0100
|
||||
Subject: [PATCH] Use FILTER instead of REMOVE_ITEM since GLOB returns absolute
|
||||
paths
|
||||
|
||||
---
|
||||
build/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt
|
||||
index e964b5e255..2b24b1d6e6 100644
|
||||
--- a/build/CMakeLists.txt
|
||||
+++ b/build/CMakeLists.txt
|
||||
@@ -30,7 +30,7 @@ ROOT_EXECUTABLE(rmkdepend
|
||||
if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO")
|
||||
file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py")
|
||||
if(NOT roofit)
|
||||
- list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py)
|
||||
+ list(FILTER PRETTY_PRINTERS EXCLUDE REGEX libRooFitCore.so-gdb.py)
|
||||
endif()
|
||||
set(PRETTY_PRINTER_DESTS)
|
||||
foreach(PRETTY_PRINTER ${PRETTY_PRINTERS})
|
||||
--
|
||||
2.39.2
|
||||
|
||||
75
root-dont-install-roofit-files-when-roofit-is-disabled.patch
Normal file
75
root-dont-install-roofit-files-when-roofit-is-disabled.patch
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
From df636dcc05d0284f39427ea5be1d72e7faca90d8 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 1 Mar 2023 18:30:35 +0100
|
||||
Subject: [PATCH] Don't install roofit files when roofit is disabled
|
||||
|
||||
---
|
||||
CMakeLists.txt | 14 ++++++++++++--
|
||||
build/CMakeLists.txt | 3 +++
|
||||
core/base/CMakeLists.txt | 2 ++
|
||||
3 files changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e1d998fde2..7992e27b64 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -591,7 +591,14 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX)
|
||||
else()
|
||||
install(DIRECTORY README DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
endif()
|
||||
+ set(ETC_PATT_EXCL)
|
||||
+ if(NOT roofit)
|
||||
+ list(APPEND ETC_PATT_EXCL PATTERN HistFactorySchema.dtd EXCLUDE)
|
||||
+ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsexportkeys.json EXCLUDE)
|
||||
+ list(APPEND ETC_PATT_EXCL PATTERN RooFitHS3_wsfactoryexpressions.json EXCLUDE)
|
||||
+ endif()
|
||||
install(DIRECTORY etc/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS
|
||||
+ ${ETC_PATT_EXCL}
|
||||
PATTERN "system.rootrc" EXCLUDE
|
||||
PATTERN "system.rootauthrc" EXCLUDE
|
||||
PATTERN "system.rootdaemonrc" EXCLUDE
|
||||
@@ -612,8 +619,11 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_INSTALL_PREFIX)
|
||||
set(MAN_PATT_EXCL PATTERN xproofd.1 EXCLUDE)
|
||||
endif()
|
||||
if(NOT fortran OR NOT CMAKE_Fortran_COMPILER)
|
||||
- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN h2root.1 EXCLUDE)
|
||||
- set(MAN_PATT_EXCL ${MAN_PATT_EXCL} PATTERN g2root.1 EXCLUDE)
|
||||
+ list(APPEND MAN_PATT_EXCL PATTERN h2root.1 EXCLUDE)
|
||||
+ list(APPEND MAN_PATT_EXCL PATTERN g2root.1 EXCLUDE)
|
||||
+ endif()
|
||||
+ if(NOT roofit)
|
||||
+ list(APPEND MAN_PATT_EXCL PATTERN prepareHistFactory.1 EXCLUDE)
|
||||
endif()
|
||||
install(DIRECTORY man/ DESTINATION ${CMAKE_INSTALL_MANDIR} ${MAN_PATT_EXCL})
|
||||
install(DIRECTORY tutorials/ DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests)
|
||||
diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt
|
||||
index 9f60c813ac..e964b5e255 100644
|
||||
--- a/build/CMakeLists.txt
|
||||
+++ b/build/CMakeLists.txt
|
||||
@@ -29,6 +29,9 @@ ROOT_EXECUTABLE(rmkdepend
|
||||
|
||||
if(NOT MSVC AND _BUILD_TYPE_UPPER MATCHES "DEBUG|RELWITHDEBINFO")
|
||||
file(GLOB PRETTY_PRINTERS "gdbPrinters/*.so-gdb.py")
|
||||
+ if(NOT roofit)
|
||||
+ list(REMOVE_ITEM PRETTY_PRINTERS gdbPrinters/libRooFitCore.so-gdb.py)
|
||||
+ endif()
|
||||
set(PRETTY_PRINTER_DESTS)
|
||||
foreach(PRETTY_PRINTER ${PRETTY_PRINTERS})
|
||||
get_filename_component(PRETTY_PRINTER_DEST ${PRETTY_PRINTER} NAME)
|
||||
diff --git a/core/base/CMakeLists.txt b/core/base/CMakeLists.txt
|
||||
index 0c9df7c896..df701fedea 100644
|
||||
--- a/core/base/CMakeLists.txt
|
||||
+++ b/core/base/CMakeLists.txt
|
||||
@@ -224,7 +224,9 @@ if(NOT MSVC)
|
||||
#---addRootC++CmdMan-------------------------------------------------------------------------
|
||||
generateManual(rootMan ${CMAKE_CURRENT_SOURCE_DIR}/src/root-argparse.py ${CMAKE_BINARY_DIR}/man/root.1)
|
||||
generateManual(haddMan ${CMAKE_SOURCE_DIR}/main/src/hadd-argparse.py ${CMAKE_BINARY_DIR}/man/hadd.1)
|
||||
+if (roofit)
|
||||
generateManual(hist2workspaceMan ${CMAKE_SOURCE_DIR}/roofit/histfactory/src/hist2workspace-argparse.py ${CMAKE_BINARY_DIR}/man/hist2workspace.1)
|
||||
+endif()
|
||||
generateManual(rootclingMan ${CMAKE_SOURCE_DIR}/core/dictgen/src/rootcling-argparse.py ${CMAKE_BINARY_DIR}/man/rootcling.1)
|
||||
|
||||
#---addRootPyCmdMan---------------------------------------------------------------------------
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From ba0dc65e558fd916dbe18f8dbe8208a3be932c25 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 28 Mar 2022 09:20:18 +0200
|
||||
Subject: [PATCH 2/2] Ignore warnings about RooNaNPacker not being implemented
|
||||
for big endian
|
||||
|
||||
This warning is triggered in many tests, so it makes sense to put it
|
||||
in the default ignored set.
|
||||
---
|
||||
test/unit_testing_support/ROOTUnitTestSupport.cxx | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/test/unit_testing_support/ROOTUnitTestSupport.cxx b/test/unit_testing_support/ROOTUnitTestSupport.cxx
|
||||
index 259ab4e09c..79cd476950 100644
|
||||
--- a/test/unit_testing_support/ROOTUnitTestSupport.cxx
|
||||
+++ b/test/unit_testing_support/ROOTUnitTestSupport.cxx
|
||||
@@ -73,6 +73,13 @@ static struct ForbidDiagnostics {
|
||||
return;
|
||||
}
|
||||
|
||||
+ // FIXME: RooNaNPacker warns about not being implemented for big endian
|
||||
+ if (level == kWarning
|
||||
+ && strcmp(msg, "Fast recovery from undefined function values only implemented for little-endian machines. If necessary, request an extension of functionality on https://root.cern") == 0) {
|
||||
+ std::cerr << "Warning in " << location << " " << msg << std::endl;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
FAIL() << "Received unexpected diagnostic of severity "
|
||||
<< level
|
||||
<< " at '" << location << "' reading '" << msg << "'.\n"
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
From 3bc55ece1db8b32c5e86fd6b85856addd67265fb Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 15 Jan 2022 06:35:58 +0100
|
||||
Subject: [PATCH] Fix compilation with gcc 12
|
||||
|
||||
Fixes error: use of deleted function
|
||||
|
||||
/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp: In member function 'std::string llvm::NVPTXAsmPrinter::getPTXFundamentalTypeStr(llvm::Type*, bool) const':
|
||||
/builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:1319:10: error: use of deleted function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::nullptr_t) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::nullptr_t = std::nullptr_t]'
|
||||
1319 | return nullptr;
|
||||
| ^~~~~~~
|
||||
In file included from /usr/include/c++/12/string:53,
|
||||
from /usr/include/c++/12/bits/locale_classes.h:40,
|
||||
from /usr/include/c++/12/bits/ios_base.h:41,
|
||||
from /usr/include/c++/12/streambuf:41,
|
||||
from /usr/include/c++/12/bits/streambuf_iterator.h:35,
|
||||
from /usr/include/c++/12/iterator:66,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/iterator_range.h:21,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:16,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/STLExtras.h:20,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/ADT/StringRef.h:12,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/include/llvm/Pass.h:31,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTX.h:17,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.h:17,
|
||||
from /builddir/build/BUILD/root-6.24.06/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:14:
|
||||
/usr/include/c++/12/bits/basic_string.h:732:7: note: declared here
|
||||
732 | basic_string(nullptr_t) = delete;
|
||||
| ^~~~~~~~~~~~
|
||||
|
||||
Fix backported from LLVM upstrea https://reviews.llvm.org/D87697
|
||||
---
|
||||
interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
|
||||
index 5f38b4a3c4..bfa74bd98f 100644
|
||||
--- a/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
|
||||
+++ b/interpreter/llvm/src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
|
||||
@@ -1281,9 +1281,6 @@ void NVPTXAsmPrinter::emitPTXAddressSpace(unsigned int AddressSpace,
|
||||
std::string
|
||||
NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
- default:
|
||||
- llvm_unreachable("unexpected type");
|
||||
- break;
|
||||
case Type::IntegerTyID: {
|
||||
unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth();
|
||||
if (NumBits == 1)
|
||||
@@ -1314,9 +1311,10 @@ NVPTXAsmPrinter::getPTXFundamentalTypeStr(Type *Ty, bool useB4PTR) const {
|
||||
return "b32";
|
||||
else
|
||||
return "u32";
|
||||
+ default:
|
||||
+ break;
|
||||
}
|
||||
llvm_unreachable("unexpected type");
|
||||
- return nullptr;
|
||||
}
|
||||
|
||||
void NVPTXAsmPrinter::emitPTXGlobalVariable(const GlobalVariable *GVar,
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 37ac6654194f90db625e760dcb2d48fd7938ba6d Mon Sep 17 00:00:00 2001
|
||||
From: scott snyder <sss@karma>
|
||||
Date: Tue, 29 Nov 2022 22:05:39 -0500
|
||||
Subject: [PATCH] Fix compilation with gcc13.
|
||||
|
||||
Missing #include <cstdint>.
|
||||
---
|
||||
math/mathcore/inc/Math/Random.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h
|
||||
index 87eaaee5af..23bfabc4a1 100644
|
||||
--- a/math/mathcore/inc/Math/Random.h
|
||||
+++ b/math/mathcore/inc/Math/Random.h
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
|
||||
namespace ROOT {
|
||||
--
|
||||
2.39.0
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From ddc155795baa9d4690717c204e54a7fd4600c688 Mon Sep 17 00:00:00 2001
|
||||
From 15f50c71b4d89bfbf06ce817dee38e843f0f55cd Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 17 Jan 2022 18:49:30 +0100
|
||||
Date: Mon, 17 Jan 2022 23:50:47 +0100
|
||||
Subject: [PATCH] Fix test failure on ppc64le and aarch64 with gcc 12
|
||||
|
||||
.../hist/hist/test/test_tprofile2poly.cxx:61: Failure
|
||||
|
|
@ -14,19 +14,19 @@ cont1 evaluates to 109868.61342004745,
|
|||
cont2 evaluates to 109868.61342004743.
|
||||
The abs_error parameter delta evaluates to 9.999999960041972e-12 which is smaller than the minimum distance between doubles for numbers of this magnitude which is 1.4551915228366852e-11, thus making this EXPECT_NEAR check equivalent to EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead.
|
||||
---
|
||||
hist/hist/test/test_tprofile2poly.cxx | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
hist/hist/test/test_tprofile2poly.cxx | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hist/hist/test/test_tprofile2poly.cxx b/hist/hist/test/test_tprofile2poly.cxx
|
||||
index 40cb3052a2..5150da0bea 100644
|
||||
index 40cb3052a2..ecf559a4b3 100644
|
||||
--- a/hist/hist/test/test_tprofile2poly.cxx
|
||||
+++ b/hist/hist/test/test_tprofile2poly.cxx
|
||||
@@ -58,14 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) {
|
||||
@@ -58,15 +58,14 @@ void binEntriesCompare(TProfile2D* tp2d, TProfile2Poly* tpp) {
|
||||
for(Double_t x=0.5; x<10; x+=2.0) {
|
||||
cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(x,y));
|
||||
cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(x,y));
|
||||
- ASSERT_NEAR(cont1, cont2, delta);
|
||||
+ ASSERT_NEAR(cont1, cont2, 2*delta);
|
||||
+ ASSERT_NEAR(cont1, cont2, 2 * delta);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -34,10 +34,11 @@ index 40cb3052a2..5150da0bea 100644
|
|||
cont1 = tp2d->GetBinEffectiveEntries(tp2d->FindBin(11,11));
|
||||
cont2 = tpp->GetBinEffectiveEntries(tpp->FindBin(11,11));
|
||||
- ASSERT_NEAR(cont1, cont2, delta);
|
||||
+ ASSERT_NEAR(cont1, cont2, 2*delta);
|
||||
|
||||
-
|
||||
+ ASSERT_NEAR(cont1, cont2, 2 * delta);
|
||||
}
|
||||
|
||||
void binErrorCompare(TProfile2D* tp2d, TProfile2Poly* tpp) {
|
||||
--
|
||||
2.34.1
|
||||
2.39.2
|
||||
|
||||
|
|
|
|||
185
root-fixes-for-32bit-builds.patch
Normal file
185
root-fixes-for-32bit-builds.patch
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
From 6f69a59010a60c949b1955e52275137e39a85b82 Mon Sep 17 00:00:00 2001
|
||||
From: Jakob Blomer <jblomer@cern.ch>
|
||||
Date: Thu, 9 Mar 2023 15:14:22 +0100
|
||||
Subject: [PATCH] [ntuple] fixes for 32bit / non-x86_64 builds
|
||||
|
||||
---
|
||||
tree/dataframe/src/RNTupleDS.cxx | 1 +
|
||||
tree/ntuple/v7/inc/ROOT/RField.hxx | 21 +++++++++++++++++++--
|
||||
tree/ntuple/v7/test/ntuple_extended.cxx | 8 ++++----
|
||||
3 files changed, 24 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tree/dataframe/src/RNTupleDS.cxx b/tree/dataframe/src/RNTupleDS.cxx
|
||||
index f7eb0ab5f284..aaea6df81622 100644
|
||||
--- a/tree/dataframe/src/RNTupleDS.cxx
|
||||
+++ b/tree/dataframe/src/RNTupleDS.cxx
|
||||
@@ -94,6 +94,7 @@ class RRDFCardinalityField : public ROOT::Experimental::Detail::RFieldBase {
|
||||
return ROOT::Experimental::Detail::RFieldValue(true /* captureFlag */, this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::size_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::size_t); }
|
||||
|
||||
/// Get the number of elements of the collection identified by globalIndex
|
||||
void
|
||||
diff --git a/tree/ntuple/v7/inc/ROOT/RField.hxx b/tree/ntuple/v7/inc/ROOT/RField.hxx
|
||||
index b05267d16030..9a85368a94e3 100644
|
||||
--- a/tree/ntuple/v7/inc/ROOT/RField.hxx
|
||||
+++ b/tree/ntuple/v7/inc/ROOT/RField.hxx
|
||||
@@ -270,8 +270,9 @@ public:
|
||||
virtual std::vector<RFieldValue> SplitValue(const RFieldValue &value) const;
|
||||
/// The number of bytes taken by a value of the appropriate type
|
||||
virtual size_t GetValueSize() const = 0;
|
||||
- /// For many types, the alignment requirement is equal to the size; otherwise override.
|
||||
- virtual size_t GetAlignment() const { return GetValueSize(); }
|
||||
+ /// As a rule of thumb, the alignment is equal to the size of the type. There are, however, various exceptions
|
||||
+ /// to this rule depending on OS and CPU architecture. So enforce the alignment to be explicitly spelled out.
|
||||
+ virtual size_t GetAlignment() const = 0;
|
||||
int GetTraits() const { return fTraits; }
|
||||
bool HasReadCallbacks() const { return !fReadCallbacks.empty(); }
|
||||
|
||||
@@ -383,6 +384,7 @@ public:
|
||||
Detail::RFieldValue GenerateValue(void*) override { return Detail::RFieldValue(); }
|
||||
Detail::RFieldValue CaptureValue(void*) final { return Detail::RFieldValue(); }
|
||||
size_t GetValueSize() const final { return 0; }
|
||||
+ size_t GetAlignment() const final { return 0; }
|
||||
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
@@ -889,6 +891,7 @@ public:
|
||||
Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(ClusterSize_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(ClusterSize_t); }
|
||||
void CommitCluster() final;
|
||||
};
|
||||
|
||||
@@ -990,6 +993,7 @@ public:
|
||||
Detail::RColumnElement<ClusterSize_t>(static_cast<ClusterSize_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(ClusterSize_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(ClusterSize_t); }
|
||||
|
||||
/// Special help for offset fields
|
||||
void GetCollectionInfo(NTupleSize_t globalIndex, RClusterIndex *collectionStart, ClusterSize_t *size) {
|
||||
@@ -1110,6 +1115,7 @@ public:
|
||||
Detail::RColumnElement<bool>(static_cast<bool*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(bool); }
|
||||
+ size_t GetAlignment() const final { return alignof(bool); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1162,6 +1168,7 @@ public:
|
||||
Detail::RColumnElement<float>(static_cast<float*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(float); }
|
||||
+ size_t GetAlignment() const final { return alignof(float); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1215,6 +1222,7 @@ public:
|
||||
Detail::RColumnElement<double>(static_cast<double*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(double); }
|
||||
+ size_t GetAlignment() const final { return alignof(double); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1267,6 +1275,7 @@ public:
|
||||
Detail::RColumnElement<char>(static_cast<char*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(char); }
|
||||
+ size_t GetAlignment() const final { return alignof(char); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1319,6 +1328,7 @@ public:
|
||||
Detail::RColumnElement<std::int8_t>(static_cast<std::int8_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::int8_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::int8_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1371,6 +1381,7 @@ public:
|
||||
Detail::RColumnElement<std::uint8_t>(static_cast<std::uint8_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::uint8_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::uint8_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1423,6 +1434,7 @@ public:
|
||||
Detail::RColumnElement<std::int16_t>(static_cast<std::int16_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::int16_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::int16_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1475,6 +1487,7 @@ public:
|
||||
Detail::RColumnElement<std::uint16_t>(static_cast<std::uint16_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::uint16_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::uint16_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1527,6 +1540,7 @@ public:
|
||||
Detail::RColumnElement<std::int32_t>(static_cast<std::int32_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::int32_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::int32_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1579,6 +1593,7 @@ public:
|
||||
Detail::RColumnElement<std::uint32_t>(static_cast<std::uint32_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::uint32_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::uint32_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1631,6 +1646,7 @@ public:
|
||||
Detail::RColumnElement<std::uint64_t>(static_cast<std::uint64_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::uint64_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::uint64_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
@@ -1683,6 +1699,7 @@ public:
|
||||
Detail::RColumnElement<std::int64_t>(static_cast<std::int64_t*>(where)), this, where);
|
||||
}
|
||||
size_t GetValueSize() const final { return sizeof(std::int64_t); }
|
||||
+ size_t GetAlignment() const final { return alignof(std::int64_t); }
|
||||
void AcceptVisitor(Detail::RFieldVisitor &visitor) const final;
|
||||
};
|
||||
|
||||
diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
index 91871e288e98..d3b6ee466359 100644
|
||||
--- a/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
+++ b/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
@@ -123,8 +123,8 @@ TEST(RNTuple, LargeFile1)
|
||||
RNTupleWriteOptions options;
|
||||
options.SetCompression(0);
|
||||
auto ntuple = RNTupleWriter::Recreate(std::move(modelWrite), "myNTuple", fileGuard.GetPath(), options);
|
||||
- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size
|
||||
- for (unsigned int i = 0; i < nEvents; ++i) {
|
||||
+ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size
|
||||
+ for (std::uint64_t i = 0; i < nEvents; ++i) {
|
||||
wrEnergy = rnd.Rndm();
|
||||
chksumWrite += wrEnergy;
|
||||
ntuple->Fill();
|
||||
@@ -195,8 +195,8 @@ TEST(RNTuple, LargeFile2)
|
||||
|
||||
TRandom3 rnd(42);
|
||||
double chksumWrite = 0.0;
|
||||
- constexpr unsigned long nEvents = 1024 * 1024 * 256; // Exceed 2GB file size
|
||||
- for (unsigned int i = 0; i < nEvents; ++i) {
|
||||
+ constexpr std::uint64_t nEvents = 1024 * 1024 * 256; // Exceed 2GB file size
|
||||
+ for (std::uint64_t i = 0; i < nEvents; ++i) {
|
||||
*E = rnd.Rndm();
|
||||
chksumWrite += *E;
|
||||
writer->Fill();
|
||||
|
|
@ -1,38 +1,38 @@
|
|||
diff -ur root-6.24.02.orig/core/base/src/TApplication.cxx root-6.24.02/core/base/src/TApplication.cxx
|
||||
--- root-6.24.02.orig/core/base/src/TApplication.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/core/base/src/TApplication.cxx 2021-08-11 10:49:08.583579248 +0200
|
||||
@@ -265,18 +265,11 @@
|
||||
LoadGraphicsLibs();
|
||||
diff -ur root-6.28.00.orig/core/base/src/TApplication.cxx root-6.28.00/core/base/src/TApplication.cxx
|
||||
--- root-6.28.00.orig/core/base/src/TApplication.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/core/base/src/TApplication.cxx 2023-02-04 12:47:19.757759982 +0100
|
||||
@@ -251,18 +251,11 @@
|
||||
LoadGraphicsLibs();
|
||||
|
||||
// Try to load TrueType font renderer. Only try to load if not in batch
|
||||
- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently
|
||||
+ // mode and Root.UseTTFonts is true. Abort silently
|
||||
// if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib.
|
||||
- const char *ttpath = gEnv->GetValue("Root.TTFontPath",
|
||||
- TROOT::GetTTFFontDir());
|
||||
- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission);
|
||||
- // Check for use of DFSG - fonts
|
||||
- if (!ttfont)
|
||||
- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission);
|
||||
// Try to load TrueType font renderer. Only try to load if not in batch
|
||||
- // mode and Root.UseTTFonts is true and Root.TTFontPath exists. Abort silently
|
||||
+ // mode and Root.UseTTFonts is true. Abort silently
|
||||
// if libttf or libGX11TTF are not found in $ROOTSYS/lib or $ROOTSYS/ttf/lib.
|
||||
- const char *ttpath = gEnv->GetValue("Root.TTFontPath",
|
||||
- TROOT::GetTTFFontDir());
|
||||
- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission);
|
||||
- // Check for use of DFSG - fonts
|
||||
- if (!ttfont)
|
||||
- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission);
|
||||
-
|
||||
#if !defined(R__WIN32)
|
||||
if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") &&
|
||||
- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
+ gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
if (gClassTable->GetDict("TGX11TTF")) {
|
||||
// in principle we should not have linked anything against libGX11TTF
|
||||
// but with ACLiC this can happen, initialize TGX11TTF by hand
|
||||
@@ -290,7 +283,6 @@
|
||||
#if !defined(R__WIN32)
|
||||
if (!gROOT->IsBatch() && !strcmp(gVirtualX->GetName(), "X11") &&
|
||||
- ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
+ gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
if (gClassTable->GetDict("TGX11TTF")) {
|
||||
// in principle we should not have linked anything against libGX11TTF
|
||||
// but with ACLiC this can happen, initialize TGX11TTF by hand
|
||||
@@ -276,7 +269,6 @@
|
||||
}
|
||||
}
|
||||
#endif
|
||||
- delete [] ttfont;
|
||||
}
|
||||
#endif
|
||||
- delete [] ttfont;
|
||||
|
||||
// Create WM dependent application environment
|
||||
if (fAppImp)
|
||||
diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asimage/CMakeLists.txt
|
||||
--- root-6.24.02.orig/graf2d/asimage/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/asimage/CMakeLists.txt 2021-08-11 10:49:08.583579248 +0200
|
||||
if (!only_web || !fAppImp) {
|
||||
diff -ur root-6.28.00.orig/graf2d/asimage/CMakeLists.txt root-6.28.00/graf2d/asimage/CMakeLists.txt
|
||||
--- root-6.28.00.orig/graf2d/asimage/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/asimage/CMakeLists.txt 2023-02-04 12:47:19.757759982 +0100
|
||||
@@ -30,6 +30,7 @@
|
||||
${FREETYPE_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
|
|
@ -41,10 +41,10 @@ diff -ur root-6.24.02.orig/graf2d/asimage/CMakeLists.txt root-6.24.02/graf2d/asi
|
|||
DEPENDENCIES
|
||||
Core
|
||||
Graf
|
||||
diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/asimage/src/TASImage.cxx
|
||||
--- root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/asimage/src/TASImage.cxx 2021-08-11 10:49:08.585579253 +0200
|
||||
@@ -112,6 +112,8 @@
|
||||
diff -ur root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx root-6.28.00/graf2d/asimage/src/TASImage.cxx
|
||||
--- root-6.28.00.orig/graf2d/asimage/src/TASImage.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/asimage/src/TASImage.cxx 2023-02-04 12:47:19.760759989 +0100
|
||||
@@ -115,6 +115,8 @@
|
||||
# include <draw.h>
|
||||
}
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a
|
|||
// auxiliary functions for general polygon filling
|
||||
#include "TASPolyUtils.c"
|
||||
|
||||
@@ -2595,14 +2597,120 @@
|
||||
@@ -2590,14 +2592,120 @@
|
||||
TString fn = font_name;
|
||||
fn.Strip();
|
||||
|
||||
|
|
@ -181,7 +181,7 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a
|
|||
|
||||
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) {
|
||||
ttfont = kTRUE;
|
||||
@@ -2626,14 +2734,11 @@
|
||||
@@ -2621,14 +2729,11 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -199,9 +199,9 @@ diff -ur root-6.24.02.orig/graf2d/asimage/src/TASImage.cxx root-6.24.02/graf2d/a
|
|||
}
|
||||
|
||||
get_text_size(text, font, (ASText3DType)type, &width, &height);
|
||||
diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/CMakeLists.txt
|
||||
--- root-6.24.02.orig/graf2d/graf/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/graf/CMakeLists.txt 2021-08-11 10:49:08.586579256 +0200
|
||||
diff -ur root-6.28.00.orig/graf2d/graf/CMakeLists.txt root-6.28.00/graf2d/graf/CMakeLists.txt
|
||||
--- root-6.28.00.orig/graf2d/graf/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/graf/CMakeLists.txt 2023-02-04 12:47:19.861760233 +0100
|
||||
@@ -91,6 +91,7 @@
|
||||
${FREETYPE_LIBRARIES}
|
||||
ZLIB::ZLIB
|
||||
|
|
@ -210,9 +210,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/CMakeLists.txt root-6.24.02/graf2d/graf/C
|
|||
DEPENDENCIES
|
||||
Hist
|
||||
Matrix
|
||||
diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TTF.h
|
||||
--- root-6.24.02.orig/graf2d/graf/inc/TTF.h 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/graf/inc/TTF.h 2021-08-11 10:49:08.586579256 +0200
|
||||
diff -ur root-6.28.00.orig/graf2d/graf/inc/TTF.h root-6.28.00/graf2d/graf/inc/TTF.h
|
||||
--- root-6.28.00.orig/graf2d/graf/inc/TTF.h 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/graf/inc/TTF.h 2023-02-04 12:47:19.862760235 +0100
|
||||
@@ -76,9 +76,8 @@
|
||||
static FT_BBox fgCBox; ///< string control box
|
||||
static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map
|
||||
|
|
@ -224,9 +224,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/inc/TTF.h root-6.24.02/graf2d/graf/inc/TT
|
|||
static FT_Face fgFace[kTTMaxFonts]; ///< font face
|
||||
static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs
|
||||
static Bool_t fgHinting; ///< use hinting (true by default)
|
||||
diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/TTF.cxx
|
||||
--- root-6.24.02.orig/graf2d/graf/src/TTF.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/graf/src/TTF.cxx 2021-08-11 10:49:08.587579259 +0200
|
||||
diff -ur root-6.28.00.orig/graf2d/graf/src/TTF.cxx root-6.28.00/graf2d/graf/src/TTF.cxx
|
||||
--- root-6.28.00.orig/graf2d/graf/src/TTF.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/graf/src/TTF.cxx 2023-02-04 12:47:19.863760238 +0100
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "TMath.h"
|
||||
#include "TError.h"
|
||||
|
|
@ -654,7 +654,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/
|
|||
+ FcPatternDestroy (pat);
|
||||
+ if (set) FcCharSetDestroy (set);
|
||||
+
|
||||
FT_Face tface = 0;
|
||||
FT_Face tface = (FT_Face) 0;
|
||||
|
||||
- if (FT_New_Face(fgLibrary, ttfont, 0, &tface)) {
|
||||
+ if (FT_New_Face(fgLibrary, ttfont, ttindex, &tface)) {
|
||||
|
|
@ -679,7 +679,7 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/
|
|||
+ fgFontID[fgFontCount] = fontid;
|
||||
fgCurFontIdx = fgFontCount;
|
||||
fgFace[fgCurFontIdx] = tface;
|
||||
fgCharMap[fgCurFontIdx] = 0;
|
||||
fgCharMap[fgCurFontIdx] = (FT_CharMap) 0;
|
||||
fgFontCount++;
|
||||
|
||||
if (italic) {
|
||||
|
|
@ -787,9 +787,9 @@ diff -ur root-6.24.02.orig/graf2d/graf/src/TTF.cxx root-6.24.02/graf2d/graf/src/
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/postscript/CMakeLists.txt
|
||||
--- root-6.24.02.orig/graf2d/postscript/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/postscript/CMakeLists.txt 2021-08-11 10:49:08.587579259 +0200
|
||||
diff -ur root-6.28.00.orig/graf2d/postscript/CMakeLists.txt root-6.28.00/graf2d/postscript/CMakeLists.txt
|
||||
--- root-6.28.00.orig/graf2d/postscript/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/postscript/CMakeLists.txt 2023-02-04 12:47:19.863760238 +0100
|
||||
@@ -27,6 +27,7 @@
|
||||
LIBRARIES
|
||||
ZLIB::ZLIB
|
||||
|
|
@ -798,9 +798,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/CMakeLists.txt root-6.24.02/graf2d/
|
|||
DEPENDENCIES
|
||||
Graf
|
||||
)
|
||||
diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/graf2d/postscript/src/TPostScript.cxx
|
||||
--- root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf2d/postscript/src/TPostScript.cxx 2021-08-11 10:49:08.588579261 +0200
|
||||
diff -ur root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.28.00/graf2d/postscript/src/TPostScript.cxx
|
||||
--- root-6.28.00.orig/graf2d/postscript/src/TPostScript.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf2d/postscript/src/TPostScript.cxx 2023-02-04 12:47:19.864760240 +0100
|
||||
@@ -234,6 +234,7 @@
|
||||
#include <cctype>
|
||||
#include <cwchar>
|
||||
|
|
@ -1060,9 +1060,9 @@ diff -ur root-6.24.02.orig/graf2d/postscript/src/TPostScript.cxx root-6.24.02/gr
|
|||
{ "Root.PSFont.STIXGen", "/STIXGeneral" },
|
||||
{ "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
|
||||
{ "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
|
||||
diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMakeLists.txt
|
||||
--- root-6.24.02.orig/graf3d/gl/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf3d/gl/CMakeLists.txt 2021-08-11 10:49:08.589579264 +0200
|
||||
diff -ur root-6.28.00.orig/graf3d/gl/CMakeLists.txt root-6.28.00/graf3d/gl/CMakeLists.txt
|
||||
--- root-6.28.00.orig/graf3d/gl/CMakeLists.txt 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf3d/gl/CMakeLists.txt 2023-02-04 12:47:19.867760247 +0100
|
||||
@@ -208,6 +208,7 @@
|
||||
${GL2PS_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
|
|
@ -1071,9 +1071,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/CMakeLists.txt root-6.24.02/graf3d/gl/CMake
|
|||
DEPENDENCIES
|
||||
Hist
|
||||
Gui
|
||||
diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/gl/src/TGLFontManager.cxx
|
||||
--- root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf3d/gl/src/TGLFontManager.cxx 2021-08-11 10:49:08.589579264 +0200
|
||||
diff -ur root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.28.00/graf3d/gl/src/TGLFontManager.cxx
|
||||
--- root-6.28.00.orig/graf3d/gl/src/TGLFontManager.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf3d/gl/src/TGLFontManager.cxx 2023-02-04 12:47:19.867760247 +0100
|
||||
@@ -36,6 +36,7 @@
|
||||
# include "FTGLBitmapFont.h"
|
||||
#endif
|
||||
|
|
@ -1329,9 +1329,9 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLFontManager.cxx root-6.24.02/graf3d/
|
|||
fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200
|
||||
fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210
|
||||
fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220
|
||||
diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/TGLText.cxx
|
||||
--- root-6.24.02.orig/graf3d/gl/src/TGLText.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/graf3d/gl/src/TGLText.cxx 2021-08-11 10:49:08.590579267 +0200
|
||||
diff -ur root-6.28.00.orig/graf3d/gl/src/TGLText.cxx root-6.28.00/graf3d/gl/src/TGLText.cxx
|
||||
--- root-6.28.00.orig/graf3d/gl/src/TGLText.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/graf3d/gl/src/TGLText.cxx 2023-02-04 12:47:19.868760250 +0100
|
||||
@@ -32,6 +32,8 @@
|
||||
# include "FTGLBitmapFont.h"
|
||||
#endif
|
||||
|
|
@ -1466,10 +1466,10 @@ diff -ur root-6.24.02.orig/graf3d/gl/src/TGLText.cxx root-6.24.02/graf3d/gl/src/
|
|||
Error("SetGLTextFont","Cannot set FTGL::FaceSize");
|
||||
- delete [] ttfont;
|
||||
}
|
||||
diff -ur root-6.24.02.orig/gui/gui/src/TGApplication.cxx root-6.24.02/gui/gui/src/TGApplication.cxx
|
||||
--- root-6.24.02.orig/gui/gui/src/TGApplication.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/gui/gui/src/TGApplication.cxx 2021-08-11 10:49:08.590579267 +0200
|
||||
@@ -80,20 +80,12 @@
|
||||
diff -ur root-6.28.00.orig/gui/gui/src/TGApplication.cxx root-6.28.00/gui/gui/src/TGApplication.cxx
|
||||
--- root-6.28.00.orig/gui/gui/src/TGApplication.cxx 2023-02-03 15:34:27.000000000 +0100
|
||||
+++ root-6.28.00/gui/gui/src/TGApplication.cxx 2023-02-04 12:47:19.868760250 +0100
|
||||
@@ -81,20 +81,12 @@
|
||||
gROOT->SetBatch(kFALSE);
|
||||
|
||||
if (strcmp(appClassName, "proofserv")) {
|
||||
|
|
|
|||
|
|
@ -1,245 +0,0 @@
|
|||
From 2dde3d060aa21ff9d4a0612b991bd300b7704bdc Mon Sep 17 00:00:00 2001
|
||||
From: Axel Naumann <Axel.Naumann@cern.ch>
|
||||
Date: Fri, 22 Jul 2022 15:54:03 +0200
|
||||
Subject: [PATCH] [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).
|
||||
---
|
||||
cmake/modules/RootCPack.cmake | 11 +++++++++--
|
||||
math/mathcore/test/stressGoFTest.cxx | 4 ----
|
||||
test/bench.cxx | 4 ----
|
||||
test/stress.cxx | 4 ----
|
||||
test/stressFit.cxx | 4 ----
|
||||
test/stressGUI.cxx | 4 ----
|
||||
test/stressGeometry.cxx | 4 ----
|
||||
test/stressGraphics.cxx | 4 ----
|
||||
test/stressHepix.cxx | 4 ----
|
||||
test/stressHistFactory.cxx | 4 ----
|
||||
test/stressLinear.cxx | 4 ----
|
||||
test/stressRooFit.cxx | 4 ----
|
||||
test/stressRooStats.cxx | 4 ----
|
||||
test/stressTMVA.cxx | 4 ----
|
||||
14 files changed, 9 insertions(+), 54 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/RootCPack.cmake b/cmake/modules/RootCPack.cmake
|
||||
index a960eb81fd..807eac6ef2 100644
|
||||
--- a/cmake/modules/RootCPack.cmake
|
||||
+++ b/cmake/modules/RootCPack.cmake
|
||||
@@ -107,8 +107,15 @@ elseif(WIN32)
|
||||
set(OS_NAME_VERSION win32)
|
||||
endif()
|
||||
else()
|
||||
- execute_process(COMMAND lsb_release -is OUTPUT_VARIABLE osid OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
- execute_process(COMMAND lsb_release -rs OUTPUT_VARIABLE osvers OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ if(EXISTS "/etc/os-release")
|
||||
+ file(STRINGS /etc/os-release osid REGEX "^NAME=")
|
||||
+ string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" osid "${osid}")
|
||||
+ file(STRINGS /etc/os-release osvers REGEX "^VERSION_ID=")
|
||||
+ string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" osvers "${osvers}")
|
||||
+ else()
|
||||
+ execute_process(COMMAND lsb_release -is OUTPUT_VARIABLE osid OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ execute_process(COMMAND lsb_release -rs OUTPUT_VARIABLE osvers OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ endif()
|
||||
if(osid MATCHES Ubuntu)
|
||||
string(REGEX REPLACE "([0-9]+)[.].*" "\\1" osvers "${osvers}")
|
||||
set(OS_NAME_VERSION Linux-ubuntu${osvers}-${arch})
|
||||
diff --git a/math/mathcore/test/stressGoFTest.cxx b/math/mathcore/test/stressGoFTest.cxx
|
||||
index a78ca99c90..5aa1b4ef70 100644
|
||||
--- a/math/mathcore/test/stressGoFTest.cxx
|
||||
+++ b/math/mathcore/test/stressGoFTest.cxx
|
||||
@@ -56,10 +56,6 @@ struct GoFTStress {
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/bench.cxx b/test/bench.cxx
|
||||
index 82bc537e05..e89024e9d9 100644
|
||||
--- a/test/bench.cxx
|
||||
+++ b/test/bench.cxx
|
||||
@@ -295,10 +295,6 @@ int main(int argc, char **argv)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stress.cxx b/test/stress.cxx
|
||||
index d3087fdd56..29dba1625d 100644
|
||||
--- a/test/stress.cxx
|
||||
+++ b/test/stress.cxx
|
||||
@@ -200,10 +200,6 @@ void stress(Int_t nevent, Int_t style = 1,
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressFit.cxx b/test/stressFit.cxx
|
||||
index 667142eff9..80bbd0200f 100644
|
||||
--- a/test/stressFit.cxx
|
||||
+++ b/test/stressFit.cxx
|
||||
@@ -646,10 +646,6 @@ Int_t stressFit(const char *type, const char *algo, Int_t N)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressGUI.cxx b/test/stressGUI.cxx
|
||||
index 1a92df5341..9daae5f5fe 100644
|
||||
--- a/test/stressGUI.cxx
|
||||
+++ b/test/stressGUI.cxx
|
||||
@@ -307,10 +307,6 @@ void stressGUI()
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx
|
||||
index 5e81f5f2ca..2dc366cbf8 100644
|
||||
--- a/test/stressGeometry.cxx
|
||||
+++ b/test/stressGeometry.cxx
|
||||
@@ -295,10 +295,6 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressGraphics.cxx b/test/stressGraphics.cxx
|
||||
index 5fe958774d..8b6aa9af9a 100644
|
||||
--- a/test/stressGraphics.cxx
|
||||
+++ b/test/stressGraphics.cxx
|
||||
@@ -419,10 +419,6 @@ void stressGraphics(Int_t verbose = 0)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressHepix.cxx b/test/stressHepix.cxx
|
||||
index d8d2a65a64..01dfc67a54 100644
|
||||
--- a/test/stressHepix.cxx
|
||||
+++ b/test/stressHepix.cxx
|
||||
@@ -143,10 +143,6 @@ int main(int argc, char **argv)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressHistFactory.cxx b/test/stressHistFactory.cxx
|
||||
index b84fa70f86..ec6deac031 100644
|
||||
--- a/test/stressHistFactory.cxx
|
||||
+++ b/test/stressHistFactory.cxx
|
||||
@@ -139,10 +139,6 @@ Int_t stressHistFactory(const char* refFile, Bool_t writeRef, Int_t verbose, Boo
|
||||
if (UNIX) {
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
cout << "* SYS: " << sp << endl;
|
||||
- if (strstr(gSystem->GetBuildNode(), "Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- cout << "* SYS: " << sp << endl;
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(), "Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressLinear.cxx b/test/stressLinear.cxx
|
||||
index ce2e1af23d..e34ddf85a2 100644
|
||||
--- a/test/stressLinear.cxx
|
||||
+++ b/test/stressLinear.cxx
|
||||
@@ -296,10 +296,6 @@ void stressLinear(Int_t maxSizeReq,Int_t verbose)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressRooFit.cxx b/test/stressRooFit.cxx
|
||||
index 18e214ec0c..4f7c5a3d83 100644
|
||||
--- a/test/stressRooFit.cxx
|
||||
+++ b/test/stressRooFit.cxx
|
||||
@@ -197,10 +197,6 @@ Int_t stressRooFit(const char* refFile, Bool_t writeRef, Int_t doVerbose, Int_t
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressRooStats.cxx b/test/stressRooStats.cxx
|
||||
index 35598b5919..adb3dc4cd8 100644
|
||||
--- a/test/stressRooStats.cxx
|
||||
+++ b/test/stressRooStats.cxx
|
||||
@@ -232,10 +232,6 @@ Int_t stressRooStats(const char* refFile, Bool_t writeRef, Int_t verbose, Bool_t
|
||||
if (UNIX) {
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
cout << "* SYS: " << sp << endl;
|
||||
- if (strstr(gSystem->GetBuildNode(), "Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- cout << "* SYS: " << sp << endl;
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(), "Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
diff --git a/test/stressTMVA.cxx b/test/stressTMVA.cxx
|
||||
index f7638a73f6..22e3feaf65 100644
|
||||
--- a/test/stressTMVA.cxx
|
||||
+++ b/test/stressTMVA.cxx
|
||||
@@ -3193,10 +3193,6 @@ int main(int argc, char **argv)
|
||||
TString sp = gSystem->GetFromPipe("uname -a");
|
||||
sp.Resize(60);
|
||||
printf("* SYS: %s\n",sp.Data());
|
||||
- if (strstr(gSystem->GetBuildNode(),"Linux")) {
|
||||
- sp = gSystem->GetFromPipe("lsb_release -d -s");
|
||||
- printf("* SYS: %s\n",sp.Data());
|
||||
- }
|
||||
if (strstr(gSystem->GetBuildNode(),"Darwin")) {
|
||||
sp = gSystem->GetFromPipe("sw_vers -productVersion");
|
||||
sp += " Mac OS X ";
|
||||
--
|
||||
2.37.1
|
||||
|
||||
85
root-gtest-compat.patch
Normal file
85
root-gtest-compat.patch
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
From 922290ebdc5e3363adfa82dd45208862bb01630a Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 8 Feb 2023 09:50:00 +0100
|
||||
Subject: [PATCH] Fix build with -Dbuiltin_gtest:BOOL=OFF on EPEL 8
|
||||
|
||||
---
|
||||
roofit/roofitcore/test/testRooBinSamplingPdf.cxx | 7 ++++++-
|
||||
roofit/roofitcore/test/testRooProdPdf.cxx | 5 +++++
|
||||
roofit/roofitcore/test/testRooRealIntegral.cxx | 5 +++++
|
||||
roofit/roofitcore/test/testTestStatistics.cxx | 2 +-
|
||||
4 files changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx
|
||||
index 823fef712f..116000f9f8 100644
|
||||
--- a/roofit/roofitcore/test/testRooBinSamplingPdf.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooBinSamplingPdf.cxx
|
||||
@@ -13,6 +13,11 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+// Backward compatibility for gtest version < 1.10.0
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <memory>
|
||||
|
||||
class ParamTest : public testing::TestWithParam<std::tuple<std::string>> {
|
||||
@@ -123,7 +128,7 @@ TEST(RooBinSamplingPdf, CheckConsistentNormalization)
|
||||
EXPECT_FLOAT_EQ(int2->getVal(), int3->getVal());
|
||||
}
|
||||
|
||||
-INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Combine(testing::Values("Off", "Cpu")),
|
||||
+INSTANTIATE_TEST_SUITE_P(RooBinSamplingPdf, ParamTest, testing::Values("Off", "Cpu"),
|
||||
[](testing::TestParamInfo<ParamTest::ParamType> const ¶mInfo) {
|
||||
std::stringstream ss;
|
||||
ss << "BatchMode" << std::get<0>(paramInfo.param);
|
||||
diff --git a/roofit/roofitcore/test/testRooProdPdf.cxx b/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
index 86bcf6eb48..d794fb415a 100644
|
||||
--- a/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooProdPdf.cxx
|
||||
@@ -16,6 +16,11 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+// Backward compatibility for gtest version < 1.10.0
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
diff --git a/roofit/roofitcore/test/testRooRealIntegral.cxx b/roofit/roofitcore/test/testRooRealIntegral.cxx
|
||||
index c33c6ae138..0ab6ab973f 100644
|
||||
--- a/roofit/roofitcore/test/testRooRealIntegral.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooRealIntegral.cxx
|
||||
@@ -20,6 +20,11 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+// Backward compatibility for gtest version < 1.10.0
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <memory>
|
||||
|
||||
namespace {
|
||||
diff --git a/roofit/roofitcore/test/testTestStatistics.cxx b/roofit/roofitcore/test/testTestStatistics.cxx
|
||||
index dc20b4e1c9..1623637653 100644
|
||||
--- a/roofit/roofitcore/test/testTestStatistics.cxx
|
||||
+++ b/roofit/roofitcore/test/testTestStatistics.cxx
|
||||
@@ -490,7 +490,7 @@ TEST_P(OffsetBinTest, CrossCheck)
|
||||
EXPECT_NEAR(nllVal1, 0.0, 1e-8) << "NLL with bin offsetting is " << nllVal1 << ", and " << nllVal0 << " without it.";
|
||||
}
|
||||
|
||||
-INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Combine(testing::Values("Off", "Cpu")),
|
||||
+INSTANTIATE_TEST_SUITE_P(RooNLLVar, TestStatisticTest, testing::Values("Off", "Cpu"),
|
||||
[](testing::TestParamInfo<TestStatisticTest::ParamType> const ¶mInfo) {
|
||||
std::stringstream ss;
|
||||
ss << "BatchMode" << std::get<0>(paramInfo.param);
|
||||
--
|
||||
2.39.1
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 1aa9231becda09a89ec576e4a17ca4d9b6e2f310 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 15 Mar 2022 14:55:37 +0100
|
||||
Subject: [PATCH] Link to the blas library found by cmake, not hardcoded
|
||||
"blas". Set ROOTIGNOREPREFIX=1 when running built binaries during build. Make
|
||||
sure PCH is created before running emitters.
|
||||
|
||||
---
|
||||
tmva/sofie/test/CMakeLists.txt | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tmva/sofie/test/CMakeLists.txt b/tmva/sofie/test/CMakeLists.txt
|
||||
index e4f9d28748..a3a2c9ae16 100644
|
||||
--- a/tmva/sofie/test/CMakeLists.txt
|
||||
+++ b/tmva/sofie/test/CMakeLists.txt
|
||||
@@ -51,7 +51,7 @@ foreach(onnx_file ${ONNX_FILES})
|
||||
get_filename_component(fname ${onnx_file} NAME_WE)
|
||||
get_filename_component(fdir ${onnx_file} DIRECTORY)
|
||||
add_custom_command(TARGET SofieCompileModels_ONNX POST_BUILD
|
||||
- COMMAND ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname}
|
||||
+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromONNX ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname}
|
||||
USES_TERMINAL
|
||||
)
|
||||
endforeach()
|
||||
@@ -100,7 +101,7 @@ foreach(onnx_file ${ONNX_FILES})
|
||||
get_filename_component(fname ${onnx_file} NAME_WE)
|
||||
get_filename_component(fdir ${onnx_file} DIRECTORY)
|
||||
add_custom_command(TARGET SofieCompileModels_ROOT POST_BUILD
|
||||
- COMMAND ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname}
|
||||
+ COMMAND ${CMAKE_COMMAND} -E env ROOTIGNOREPREFIX=1 ./emitFromROOT ${onnx_file} ${CMAKE_CURRENT_BINARY_DIR}/${fname}
|
||||
USES_TERMINAL
|
||||
)
|
||||
endforeach()
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 2aa02353663674a338c92fa4e72a0c0e529c410e Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Guiraud <enrico.guiraud@cern.ch>
|
||||
Date: Fri, 8 Apr 2022 17:52:18 +0200
|
||||
Subject: [PATCH] [DF] Fix long int + Snapshot test on 32 bit platforms
|
||||
|
||||
Co-authored-by: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
---
|
||||
tree/dataframe/test/dataframe_snapshot.cxx | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
index f41848e96a..ddbacaba0f 100644
|
||||
--- a/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
@@ -495,11 +495,14 @@ void ReadWriteCarray(const char *outFileNameBase)
|
||||
t.Branch("vb", vb, "vb[size]/O");
|
||||
t.Branch("vl", vl, "vl[size]/G");
|
||||
|
||||
+ // use 2**33 as a larger-than-int value on 64 bits, otherwise just something larger than short (2**30)
|
||||
+ static constexpr long int longintTestValue = sizeof(long int) == 8 ? 8589934592 : 1073741824;
|
||||
+
|
||||
// Size 1
|
||||
size = 1;
|
||||
v[0] = 12;
|
||||
vb[0] = true;
|
||||
- vl[0] = 8589934592; // 2**33
|
||||
+ vl[0] = longintTestValue;
|
||||
t.Fill();
|
||||
|
||||
// Size 0 (see ROOT-9860)
|
||||
@@ -546,7 +549,7 @@ void ReadWriteCarray(const char *outFileNameBase)
|
||||
EXPECT_EQ(rvb.GetSize(), 1u);
|
||||
EXPECT_TRUE(rvb[0]);
|
||||
EXPECT_EQ(rvl.GetSize(), 1u);
|
||||
- EXPECT_EQ(rvl[0], 8589934592);
|
||||
+ EXPECT_EQ(rvl[0], longintTestValue);
|
||||
|
||||
// Size 0
|
||||
EXPECT_TRUE(r.Next());
|
||||
--
|
||||
2.35.1
|
||||
|
||||
32
root-make-DistRDF-optional.patch
Normal file
32
root-make-DistRDF-optional.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
From 90e7f868bc115da821c0f04dbafd80ef72e7490a Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 2 Mar 2023 08:31:29 +0100
|
||||
Subject: [PATCH 2/2] Missing experimental add-on module
|
||||
ROOT.RDF.Experimental.Distributed (DistRDF) should not fail the loading of
|
||||
the rest of the ROOT.RDF namespace.
|
||||
|
||||
---
|
||||
bindings/pyroot/pythonizations/python/ROOT/_facade.py | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
index 865321e713..69046fc71c 100644
|
||||
--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
+++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
@@ -336,8 +336,11 @@ class ROOTFacade(types.ModuleType):
|
||||
ns.FromNumpy = MakeNumpyDataFrame
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
- # Inject Experimental.Distributed package into namespace RDF
|
||||
- ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental)
|
||||
+ try:
|
||||
+ # Inject Experimental.Distributed package into namespace RDF if available
|
||||
+ ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental)
|
||||
+ except ImportError:
|
||||
+ pass
|
||||
except:
|
||||
raise Exception('Failed to pythonize the namespace RDF')
|
||||
del type(self).RDF
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
From 6ae602bba7d33c900a117c9de0187ab5a28e14b8 Mon Sep 17 00:00:00 2001
|
||||
From: Vassil Vassilev <v.g.vassilev@gmail.com>
|
||||
Date: Mon, 21 Mar 2022 22:16:54 +0000
|
||||
Subject: [PATCH] Make the dyld-based library search behavior default for
|
||||
non-modules.
|
||||
|
||||
The dyld-based system was developed in the context on C++ modules but it turned
|
||||
into a modules-agnostic feature. Instead of having to maintain more code, we
|
||||
should rely on it even for non-modules build of ROOT.
|
||||
---
|
||||
core/metacling/src/TCling.cxx | 109 +++-------------------------------
|
||||
1 file changed, 8 insertions(+), 101 deletions(-)
|
||||
|
||||
diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
|
||||
index dec399cf2b..3eae1c8570 100644
|
||||
--- a/core/metacling/src/TCling.cxx
|
||||
+++ b/core/metacling/src/TCling.cxx
|
||||
@@ -6501,14 +6501,18 @@ bool TCling::LibraryLoadingFailed(const std::string& errmessage, const std::stri
|
||||
return false;
|
||||
}
|
||||
|
||||
-static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_name,
|
||||
- const cling::DynamicLibraryManager &DLM) {
|
||||
+////////////////////////////////////////////////////////////////////////////////
|
||||
+/// Autoload a library based on a missing symbol.
|
||||
+
|
||||
+void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) {
|
||||
+
|
||||
+ const cling::DynamicLibraryManager &DLM = *GetInterpreterImpl()->getDynamicLibraryManager();
|
||||
R__LOCKGUARD(gInterpreterMutex);
|
||||
|
||||
auto LibLoader = [](const std::string& LibName) -> bool {
|
||||
if (gSystem->Load(LibName.c_str(), "", false) < 0) {
|
||||
- Error("TCling__LazyFunctionCreatorAutoloadForModule",
|
||||
- "Failed to load library %s", LibName.c_str());
|
||||
+ ::Error("TCling__LazyFunctionCreatorAutoloadForModule",
|
||||
+ "Failed to load library %s", LibName.c_str());
|
||||
return false;
|
||||
}
|
||||
return true; //success.
|
||||
@@ -6536,103 +6540,6 @@ static void* LazyFunctionCreatorAutoloadForModule(const std::string &mangled_nam
|
||||
return nullptr;
|
||||
|
||||
return llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name);
|
||||
-
|
||||
-}
|
||||
-
|
||||
-////////////////////////////////////////////////////////////////////////////////
|
||||
-/// Autoload a library based on a missing symbol.
|
||||
-
|
||||
-void* TCling::LazyFunctionCreatorAutoload(const std::string& mangled_name) {
|
||||
- if (fCxxModulesEnabled)
|
||||
- return LazyFunctionCreatorAutoloadForModule(mangled_name,
|
||||
- *GetInterpreterImpl()->getDynamicLibraryManager());
|
||||
-
|
||||
- // First see whether the symbol is in the library that we are currently
|
||||
- // loading. It will have access to the symbols of its dependent libraries,
|
||||
- // thus checking "back()" is sufficient.
|
||||
- if (!fRegisterModuleDyLibs.empty()) {
|
||||
- if (void* addr = dlsym(fRegisterModuleDyLibs.back(),
|
||||
- mangled_name.c_str())) {
|
||||
- return addr;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- int err = 0;
|
||||
- char* demangled_name_c = TClassEdit::DemangleName(mangled_name.c_str(), err);
|
||||
- if (err) {
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- std::string name(demangled_name_c);
|
||||
- free(demangled_name_c);
|
||||
-
|
||||
- //fprintf(stderr, "demangled name: '%s'\n", demangled_name);
|
||||
- //
|
||||
- // Separate out the class or namespace part of the
|
||||
- // function name.
|
||||
- //
|
||||
-
|
||||
- std::string::size_type pos = name.find("__thiscall ");
|
||||
- if (pos != std::string::npos) {
|
||||
- name.erase(0, pos + sizeof("__thiscall ")-1);
|
||||
- }
|
||||
- pos = name.find("__cdecl ");
|
||||
- if (pos != std::string::npos) {
|
||||
- name.erase(0, pos + sizeof("__cdecl ")-1);
|
||||
- }
|
||||
- if (!strncmp(name.c_str(), "typeinfo for ", sizeof("typeinfo for ")-1)) {
|
||||
- name.erase(0, sizeof("typeinfo for ")-1);
|
||||
- } else if (!strncmp(name.c_str(), "vtable for ", sizeof("vtable for ")-1)) {
|
||||
- name.erase(0, sizeof("vtable for ")-1);
|
||||
- } else if (!strncmp(name.c_str(), "operator", sizeof("operator")-1)
|
||||
- && !isalnum(name[sizeof("operator")])) {
|
||||
- // operator...(A, B) - let's try with A!
|
||||
- name.erase(0, sizeof("operator")-1);
|
||||
- pos = name.rfind('(');
|
||||
- if (pos != std::string::npos) {
|
||||
- name.erase(0, pos + 1);
|
||||
- pos = name.find(",");
|
||||
- if (pos != std::string::npos) {
|
||||
- // remove next arg up to end, leaving only the first argument type.
|
||||
- name.erase(pos);
|
||||
- }
|
||||
- pos = name.rfind(" const");
|
||||
- if (pos != std::string::npos) {
|
||||
- name.erase(pos, strlen(" const"));
|
||||
- }
|
||||
- while (!name.empty() && strchr("&*", name.back()))
|
||||
- name.erase(name.length() - 1);
|
||||
- }
|
||||
- } else {
|
||||
- TClassEdit::FunctionSplitInfo fsi;
|
||||
- TClassEdit::SplitFunction(name, fsi);
|
||||
- name = fsi.fScopeName;
|
||||
- }
|
||||
- //fprintf(stderr, "name: '%s'\n", name.c_str());
|
||||
- // Now we have the class or namespace name, so do the lookup.
|
||||
- TString libs = GetClassSharedLibs(name.c_str());
|
||||
- if (libs.IsNull()) {
|
||||
- // Not found in the map, all done.
|
||||
- return 0;
|
||||
- }
|
||||
- //fprintf(stderr, "library: %s\n", iter->second.c_str());
|
||||
- // Now we have the name of the libraries to load, so load them.
|
||||
-
|
||||
- TString lib;
|
||||
- Ssiz_t posLib = 0;
|
||||
- while (libs.Tokenize(lib, posLib)) {
|
||||
- if (gSystem->Load(lib, "", kFALSE /*system*/) < 0) {
|
||||
- // The library load failed, all done.
|
||||
- //fprintf(stderr, "load failed: %s\n", errmsg.c_str());
|
||||
- return 0;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- //fprintf(stderr, "load succeeded.\n");
|
||||
- // Get the address of the function being called.
|
||||
- void* addr = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangled_name.c_str());
|
||||
- //fprintf(stderr, "addr: %016lx\n", reinterpret_cast<unsigned long>(addr));
|
||||
- return addr;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 0a969f5376af248e76cbcee45c9bdb6463e18c05 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 21:20:07 +0100
|
||||
Subject: [PATCH 3/3] Add namespaces to LinkDef
|
||||
|
||||
Fixes error:
|
||||
|
||||
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE7PyTorch5ParseENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS9_ImSaImEESaISB_EE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'!
|
||||
You are probably missing the definition of TMVA::Experimental::SOFIE::PyTorch::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >)
|
||||
Maybe you need to load the corresponding shared library?
|
||||
Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libPyMVA.so.6.26.00'?
|
||||
---
|
||||
tmva/pymva/inc/LinkDef.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/tmva/pymva/inc/LinkDef.h b/tmva/pymva/inc/LinkDef.h
|
||||
index 92da99a4f7..83145077dd 100644
|
||||
--- a/tmva/pymva/inc/LinkDef.h
|
||||
+++ b/tmva/pymva/inc/LinkDef.h
|
||||
@@ -15,6 +15,8 @@
|
||||
#pragma link C++ class TMVA::MethodPyGTB+;
|
||||
#pragma link C++ class TMVA::MethodPyKeras+;
|
||||
#pragma link C++ class TMVA::MethodPyTorch+;
|
||||
+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyKeras;
|
||||
#pragma link C++ function TMVA::Experimental::SOFIE::PyKeras::Parse+;
|
||||
+#pragma link C++ namespace TMVA::Experimental::SOFIE::PyTorch;
|
||||
#pragma link C++ function TMVA::Experimental::SOFIE::PyTorch::Parse+;
|
||||
#endif
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From 4a4df0190ad24c0a3636994c2c23cb6c22e04589 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 15:41:33 +0100
|
||||
Subject: [PATCH 2/3] Remove namespace RooFit from libRooFitCore's LinkDef
|
||||
|
||||
The namespace is listed in the LinkDef's for both libRooFit and libRooFitCore.
|
||||
|
||||
ROOT only autoloads one of the libraries, for some reason usually
|
||||
libRooFitCore. After this only symbols in the namespace from that
|
||||
library are present. By removing the namespace from liRooFitCore's
|
||||
LinkDef, only libRooFit can be chosen when autoloading. Since
|
||||
libRooFit depends on libRooFitCore, both libraries are loaded, and the
|
||||
symbols from the namespace in both libraries are available.
|
||||
|
||||
Fixes error:
|
||||
|
||||
IncrementalExecutor::executeFunction: symbol '_ZN6RooFit12bindFunctionEPKcPFddER10RooAbsReal' unresolved while linking function '_GLOBAL__sub_I_cling_module_217'!
|
||||
You are probably missing the definition of RooFit::bindFunction(char const*, double (*)(double), RooAbsReal&)
|
||||
Maybe you need to load the corresponding shared library?
|
||||
Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'?
|
||||
---
|
||||
roofit/roofitcore/inc/LinkDef.h | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/inc/LinkDef.h b/roofit/roofitcore/inc/LinkDef.h
|
||||
index d421fd95cd..72c66db33b 100644
|
||||
--- a/roofit/roofitcore/inc/LinkDef.h
|
||||
+++ b/roofit/roofitcore/inc/LinkDef.h
|
||||
@@ -105,7 +105,10 @@
|
||||
|
||||
|
||||
// Old LinkDef2.h
|
||||
-#pragma link C++ namespace RooFit ;
|
||||
+
|
||||
+// "namespace RooFit" is in roofit/roofit/inc/Linkdef1.h
|
||||
+// should not be in the dictionary for two different libraries
|
||||
+// #pragma link C++ namespace RooFit ;
|
||||
#pragma link C++ namespace RooFitShortHand ;
|
||||
#pragma link C++ class RooDouble+ ;
|
||||
#pragma link C++ class RooEffGenContext+ ;
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From c66ae9d9c035090584f465a41ce2e438e502be81 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 15:23:59 +0100
|
||||
Subject: [PATCH 1/3] Add namespace TMVA::Experimental::SOFIE to LinkDef
|
||||
|
||||
Fixes error:
|
||||
|
||||
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE19ConvertTypeToStringB5cxx11ENS1_11ETensorTypeE' unresolved while linking function '_GLOBAL__sub_I_cling_module_8'!
|
||||
You are probably missing the definition of TMVA::Experimental::SOFIE::ConvertTypeToString[abi:cxx11](TMVA::Experimental::SOFIE::ETensorType)
|
||||
Maybe you need to load the corresponding shared library?
|
||||
Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libROOTTMVASofie.so.6.26.00'?
|
||||
---
|
||||
tmva/sofie/inc/LinkDef.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tmva/sofie/inc/LinkDef.h b/tmva/sofie/inc/LinkDef.h
|
||||
index 715cf35560..3282ff22c1 100644
|
||||
--- a/tmva/sofie/inc/LinkDef.h
|
||||
+++ b/tmva/sofie/inc/LinkDef.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma link C++ nestedclass;
|
||||
|
||||
+#pragma link C++ namespace TMVA::Experimental::SOFIE;
|
||||
#pragma link C++ class TMVA::Experimental::SOFIE::RModel-;
|
||||
#pragma link C++ class TMVA::Experimental::SOFIE::ROperator+;
|
||||
#pragma link C++ struct TMVA::Experimental::SOFIE::InitializedTensor+;
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From 4ab2a1695a3f6350b454203c044db5d6f0c75dd2 Mon Sep 17 00:00:00 2001
|
||||
From: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch>
|
||||
Date: Mon, 13 Feb 2023 15:05:39 +0100
|
||||
Subject: [PATCH] [ntuple] RPageSinkBuf: add missing call to ReleasePage()
|
||||
|
||||
---
|
||||
tree/ntuple/v7/src/RPageSinkBuf.cxx | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tree/ntuple/v7/src/RPageSinkBuf.cxx b/tree/ntuple/v7/src/RPageSinkBuf.cxx
|
||||
index b22ef705ef..88babb456f 100644
|
||||
--- a/tree/ntuple/v7/src/RPageSinkBuf.cxx
|
||||
+++ b/tree/ntuple/v7/src/RPageSinkBuf.cxx
|
||||
@@ -106,8 +106,11 @@ ROOT::Experimental::Detail::RPageSinkBuf::CommitClusterImpl(ROOT::Experimental::
|
||||
}
|
||||
fInnerSink->CommitSealedPageV(toCommit);
|
||||
|
||||
- for (auto &bufColumn : fBufferedColumns)
|
||||
- bufColumn.DrainBufferedPages();
|
||||
+ for (auto &bufColumn : fBufferedColumns) {
|
||||
+ auto drained = bufColumn.DrainBufferedPages();
|
||||
+ for (auto &bufPage : std::get<std::deque<RColumnBuf::RPageZipItem>>(drained))
|
||||
+ ReleasePage(bufPage.fPage);
|
||||
+ }
|
||||
return fInnerSink->CommitCluster(nEntries);
|
||||
}
|
||||
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From ad043f8e3304aab4f0ee3ad9e0cf8480c4bbadf0 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 16:10:22 +0100
|
||||
Subject: [PATCH] Always call WaitForInFlightClusters before checking cluster
|
||||
IDs
|
||||
|
||||
---
|
||||
tree/ntuple/v7/test/ntuple_cluster.cxx | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/tree/ntuple/v7/test/ntuple_cluster.cxx b/tree/ntuple/v7/test/ntuple_cluster.cxx
|
||||
index afc2fc32e9..0c299d97de 100644
|
||||
--- a/tree/ntuple/v7/test/ntuple_cluster.cxx
|
||||
+++ b/tree/ntuple/v7/test/ntuple_cluster.cxx
|
||||
@@ -213,6 +213,7 @@ TEST(ClusterPool, GetClusterBasics)
|
||||
RPageSourceMock p1;
|
||||
RClusterPool c1(p1, 1);
|
||||
c1.GetCluster(3, {0});
|
||||
+ c1.WaitForInFlightClusters();
|
||||
ASSERT_EQ(2U, p1.fReqsClusterIds.size());
|
||||
EXPECT_EQ(3U, p1.fReqsClusterIds[0]);
|
||||
EXPECT_EQ(4U, p1.fReqsClusterIds[1]);
|
||||
@@ -267,11 +268,13 @@ TEST(ClusterPool, GetClusterIncrementally)
|
||||
RPageSourceMock p1;
|
||||
RClusterPool c1(p1, 1);
|
||||
c1.GetCluster(3, {0});
|
||||
+ c1.WaitForInFlightClusters();
|
||||
ASSERT_EQ(2U, p1.fReqsClusterIds.size());
|
||||
EXPECT_EQ(3U, p1.fReqsClusterIds[0]);
|
||||
EXPECT_EQ(RCluster::ColumnSet_t({0}), p1.fReqsColumns[0]);
|
||||
|
||||
c1.GetCluster(3, {1});
|
||||
+ c1.WaitForInFlightClusters();
|
||||
ASSERT_EQ(4U, p1.fReqsClusterIds.size());
|
||||
EXPECT_EQ(3U, p1.fReqsClusterIds[2]);
|
||||
EXPECT_EQ(RCluster::ColumnSet_t({1}), p1.fReqsColumns[2]);
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,477 +0,0 @@
|
|||
From 99e9ad9ea54369296537ceb012ccdcb333b5f513 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 26 Mar 2022 10:55:38 +0100
|
||||
Subject: [PATCH 2/2] Backward compatibility with older googletest versions in
|
||||
EPEL
|
||||
|
||||
---
|
||||
hist/hist/test/test_THBinIterator.cxx | 5 +++++
|
||||
math/mathcore/test/stress/testGenVector.cxx | 10 ++++++++++
|
||||
math/mathcore/test/stress/testSMatrix.cxx | 10 ++++++++++
|
||||
math/mathcore/test/stress/testVector.cxx | 10 ++++++++++
|
||||
math/mathcore/test/stress/testVector34.cxx | 10 ++++++++++
|
||||
math/mathcore/test/testGradient.cxx | 4 ++++
|
||||
math/mathcore/test/testGradientFitting.cxx | 10 ++++++++++
|
||||
math/mathmore/test/testStress.cxx | 10 ++++++++++
|
||||
roofit/histfactory/test/testHistFactory.cxx | 4 ++++
|
||||
roofit/multiprocess/test/test_Job.cxx | 5 +++++
|
||||
roofit/roofitZMQ/test/test_ZMQ.cpp | 4 ++++
|
||||
roofit/roofitcore/test/TestStatistics/RooRealL.cpp | 4 ++++
|
||||
.../test/TestStatistics/testLikelihoodGradientJob.cpp | 5 +++++
|
||||
roofit/roofitcore/test/testProxiesAndCategories.cxx | 3 +++
|
||||
roofit/roofitcore/test/testRooDataHist.cxx | 4 ++++
|
||||
roofit/roofitcore/test/testRooGradMinimizerFcn.cxx | 5 +++++
|
||||
tree/dataframe/test/dataframe_definepersample.cxx | 4 ++++
|
||||
tree/dataframe/test/dataframe_merge_results.cxx | 2 +-
|
||||
tree/dataframe/test/dataframe_regression.cxx | 4 ++++
|
||||
tree/dataframe/test/dataframe_samplecallback.cxx | 4 ++++
|
||||
tree/dataframe/test/dataframe_simple.cxx | 5 +++++
|
||||
tree/dataframe/test/dataframe_vary.cxx | 4 ++++
|
||||
tree/tree/test/TOffsetGeneration.cxx | 4 ++++
|
||||
23 files changed, 129 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hist/hist/test/test_THBinIterator.cxx b/hist/hist/test/test_THBinIterator.cxx
|
||||
index e30585b8cb..04f1e1487b 100644
|
||||
--- a/hist/hist/test/test_THBinIterator.cxx
|
||||
+++ b/hist/hist/test/test_THBinIterator.cxx
|
||||
@@ -1,5 +1,10 @@
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define SetUpTestSuite SetUpTestCase
|
||||
+#define TearDownTestSuite TearDownTestCase
|
||||
+#endif
|
||||
+
|
||||
// test iterating histogram bins and using the new THistRange and
|
||||
// THBinIterator classes
|
||||
|
||||
diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx
|
||||
index 93c0bb6aec..b3259158da 100644
|
||||
--- a/math/mathcore/test/stress/testGenVector.cxx
|
||||
+++ b/math/mathcore/test/stress/testGenVector.cxx
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "StatFunction.h"
|
||||
#include "TestHelper.h"
|
||||
#include "VectorTest.h"
|
||||
diff --git a/math/mathcore/test/stress/testSMatrix.cxx b/math/mathcore/test/stress/testSMatrix.cxx
|
||||
index a4d7fc4cd5..a35d88b7c2 100644
|
||||
--- a/math/mathcore/test/stress/testSMatrix.cxx
|
||||
+++ b/math/mathcore/test/stress/testSMatrix.cxx
|
||||
@@ -7,6 +7,16 @@
|
||||
#include "TestHelper.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "VectorTest.h"
|
||||
#include "TROOT.h"
|
||||
#include "TSystem.h"
|
||||
diff --git a/math/mathcore/test/stress/testVector.cxx b/math/mathcore/test/stress/testVector.cxx
|
||||
index 72e933f0d5..938e27d83c 100644
|
||||
--- a/math/mathcore/test/stress/testVector.cxx
|
||||
+++ b/math/mathcore/test/stress/testVector.cxx
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "StatFunction.h"
|
||||
#include "TestHelper.h"
|
||||
#include "VectorTest.h"
|
||||
diff --git a/math/mathcore/test/stress/testVector34.cxx b/math/mathcore/test/stress/testVector34.cxx
|
||||
index 4b31184559..80d6dd6314 100644
|
||||
--- a/math/mathcore/test/stress/testVector34.cxx
|
||||
+++ b/math/mathcore/test/stress/testVector34.cxx
|
||||
@@ -4,6 +4,16 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "StatFunction.h"
|
||||
#include "VectorTest.h"
|
||||
|
||||
diff --git a/math/mathcore/test/testGradient.cxx b/math/mathcore/test/testGradient.cxx
|
||||
index 49a5391b7b..271e89e43c 100644
|
||||
--- a/math/mathcore/test/testGradient.cxx
|
||||
+++ b/math/mathcore/test/testGradient.cxx
|
||||
@@ -22,6 +22,10 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE
|
||||
+#define TYPED_TEST_SUITE TYPED_TEST_CASE
|
||||
+#endif
|
||||
+
|
||||
#include <chrono>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
diff --git a/math/mathcore/test/testGradientFitting.cxx b/math/mathcore/test/testGradientFitting.cxx
|
||||
index f85f826d9f..1818d1c22f 100644
|
||||
--- a/math/mathcore/test/testGradientFitting.cxx
|
||||
+++ b/math/mathcore/test/testGradientFitting.cxx
|
||||
@@ -13,6 +13,16 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
diff --git a/math/mathmore/test/testStress.cxx b/math/mathmore/test/testStress.cxx
|
||||
index 47bcdd250f..5cf20e69a1 100644
|
||||
--- a/math/mathmore/test/testStress.cxx
|
||||
+++ b/math/mathmore/test/testStress.cxx
|
||||
@@ -26,6 +26,16 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef TYPED_TEST_SUITE_P
|
||||
+#define TYPED_TEST_SUITE_P TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef REGISTER_TYPED_TEST_SUITE_P
|
||||
+#define REGISTER_TYPED_TEST_SUITE_P REGISTER_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+#ifndef INSTANTIATE_TYPED_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TYPED_TEST_SUITE_P INSTANTIATE_TYPED_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
using ::testing::TestWithParam;
|
||||
using ::testing::Values;
|
||||
|
||||
diff --git a/roofit/histfactory/test/testHistFactory.cxx b/roofit/histfactory/test/testHistFactory.cxx
|
||||
index 71d7b632d2..9063e51070 100644
|
||||
--- a/roofit/histfactory/test/testHistFactory.cxx
|
||||
+++ b/roofit/histfactory/test/testHistFactory.cxx
|
||||
@@ -22,6 +22,10 @@
|
||||
#include "TCanvas.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <set>
|
||||
|
||||
using namespace RooStats;
|
||||
diff --git a/roofit/multiprocess/test/test_Job.cxx b/roofit/multiprocess/test/test_Job.cxx
|
||||
index 22e66fc73c..61cc11771d 100644
|
||||
--- a/roofit/multiprocess/test/test_Job.cxx
|
||||
+++ b/roofit/multiprocess/test/test_Job.cxx
|
||||
@@ -24,6 +24,11 @@
|
||||
#include "RooFit/MultiProcess/Queue.h" // ... JobManager::queue()
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
+
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "utils.h"
|
||||
|
||||
class xSquaredPlusBVectorSerial {
|
||||
diff --git a/roofit/roofitZMQ/test/test_ZMQ.cpp b/roofit/roofitZMQ/test/test_ZMQ.cpp
|
||||
index 6dcceaff08..73e75be147 100644
|
||||
--- a/roofit/roofitZMQ/test/test_ZMQ.cpp
|
||||
+++ b/roofit/roofitZMQ/test/test_ZMQ.cpp
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <unistd.h> // fork, usleep
|
||||
|
||||
#include <sstream>
|
||||
diff --git a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp
|
||||
index f8421613ac..3ae6285a12 100644
|
||||
--- a/roofit/roofitcore/test/TestStatistics/RooRealL.cpp
|
||||
+++ b/roofit/roofitcore/test/TestStatistics/RooRealL.cpp
|
||||
@@ -34,6 +34,10 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
class RooRealL
|
||||
: public ::testing::TestWithParam<std::tuple<std::size_t>> {
|
||||
};
|
||||
diff --git a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp
|
||||
index f4adf63eec..05164277f0 100644
|
||||
--- a/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp
|
||||
+++ b/roofit/roofitcore/test/TestStatistics/testLikelihoodGradientJob.cpp
|
||||
@@ -33,6 +33,11 @@
|
||||
#include <stdexcept> // runtime_error
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
+
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "../test_lib.h" // generate_1D_gaussian_pdf_nll
|
||||
|
||||
using RooFit::TestStatistics::LikelihoodWrapper;
|
||||
diff --git a/roofit/roofitcore/test/testProxiesAndCategories.cxx b/roofit/roofitcore/test/testProxiesAndCategories.cxx
|
||||
index bed3c399bb..550e0c5ac9 100644
|
||||
--- a/roofit/roofitcore/test/testProxiesAndCategories.cxx
|
||||
+++ b/roofit/roofitcore/test/testProxiesAndCategories.cxx
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
|
||||
TEST(RooCategory, CategoryDefineMultiState) {
|
||||
RooCategory myCat("myCat", "A category", { {"0Lep", 0}, {"1Lep", 1}, {"2Lep", 2}, {"3Lep", 3} });
|
||||
diff --git a/roofit/roofitcore/test/testRooDataHist.cxx b/roofit/roofitcore/test/testRooDataHist.cxx
|
||||
index 90782e0749..f6b5e087ae 100644
|
||||
--- a/roofit/roofitcore/test/testRooDataHist.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooDataHist.cxx
|
||||
@@ -18,6 +18,10 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
diff --git a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx
|
||||
index c1978ae47e..877ab1525f 100644
|
||||
--- a/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooGradMinimizerFcn.cxx
|
||||
@@ -22,6 +22,11 @@
|
||||
#include <stdio.h> // remove redundant workspace files
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
+
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include "test_lib.h"
|
||||
|
||||
#include <RooMsgService.h>
|
||||
diff --git a/tree/dataframe/test/dataframe_definepersample.cxx b/tree/dataframe/test/dataframe_definepersample.cxx
|
||||
index 772b8baa70..37da9f3f95 100644
|
||||
--- a/tree/dataframe/test/dataframe_definepersample.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_definepersample.cxx
|
||||
@@ -6,6 +6,10 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <atomic>
|
||||
#include <memory>
|
||||
#include <thread> // std::thread::hardware_concurrency
|
||||
diff --git a/tree/dataframe/test/dataframe_merge_results.cxx b/tree/dataframe/test/dataframe_merge_results.cxx
|
||||
index 9354b75a39..ea439ea006 100644
|
||||
--- a/tree/dataframe/test/dataframe_merge_results.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_merge_results.cxx
|
||||
@@ -340,7 +340,7 @@ TEST(RDataFrameMergeResults, Merge5Hists)
|
||||
EXPECT_FALSE(mh3);
|
||||
EXPECT_FALSE(mh4);
|
||||
EXPECT_FALSE(mh5);
|
||||
- EXPECT_TRUE(mergedptr);
|
||||
+ EXPECT_TRUE(!!mergedptr);
|
||||
|
||||
const auto &mh = mergedptr->GetValue();
|
||||
|
||||
diff --git a/tree/dataframe/test/dataframe_regression.cxx b/tree/dataframe/test/dataframe_regression.cxx
|
||||
index 9801067cf4..8a991f40c5 100644
|
||||
--- a/tree/dataframe/test/dataframe_regression.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_regression.cxx
|
||||
@@ -9,6 +9,10 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
// Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
|
||||
class RDFRegressionTests : public ::testing::TestWithParam<bool> {
|
||||
protected:
|
||||
diff --git a/tree/dataframe/test/dataframe_samplecallback.cxx b/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
index 188d58dd31..7734586eb3 100644
|
||||
--- a/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_samplecallback.cxx
|
||||
@@ -11,6 +11,10 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <algorithm> // std::min
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx
|
||||
index 6006f99017..b507edc13f 100644
|
||||
--- a/tree/dataframe/test/dataframe_simple.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_simple.cxx
|
||||
@@ -1,5 +1,10 @@
|
||||
/****** Run RDataFrame tests both with and without IMT enabled *******/
|
||||
#include <gtest/gtest.h>
|
||||
+
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <ROOTUnitTestSupport.h>
|
||||
#include <ROOT/RDataFrame.hxx>
|
||||
#include <ROOT/TSeq.hxx>
|
||||
diff --git a/tree/dataframe/test/dataframe_vary.cxx b/tree/dataframe/test/dataframe_vary.cxx
|
||||
index 2284b21f53..5a26c43cdc 100644
|
||||
--- a/tree/dataframe/test/dataframe_vary.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_vary.cxx
|
||||
@@ -7,6 +7,10 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
using ROOT::RDF::Experimental::VariationsFor;
|
||||
|
||||
class RDFVary : public ::testing::TestWithParam<bool> {
|
||||
diff --git a/tree/tree/test/TOffsetGeneration.cxx b/tree/tree/test/TOffsetGeneration.cxx
|
||||
index 7b6b7647aa..77f125ca60 100644
|
||||
--- a/tree/tree/test/TOffsetGeneration.cxx
|
||||
+++ b/tree/tree/test/TOffsetGeneration.cxx
|
||||
@@ -9,6 +9,10 @@
|
||||
#include "ROOTUnitTestSupport.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define SetUpTestSuite SetUpTestCase
|
||||
+#endif
|
||||
+
|
||||
#include "ElementStruct.h"
|
||||
|
||||
class TOffsetGeneration : public ::testing::Test {
|
||||
--
|
||||
2.35.1
|
||||
|
||||
From 33e5da8c1f678382ab2fd65d000d388bb0dbf3ab Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 17 Apr 2022 22:17:56 +0200
|
||||
Subject: [PATCH] Backward compatibility with older googletest versions in EPEL
|
||||
|
||||
---
|
||||
math/vecops/test/vecops_rvec.cxx | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx
|
||||
index 7b513a858b..bea39636ce 100644
|
||||
--- a/math/vecops/test/vecops_rvec.cxx
|
||||
+++ b/math/vecops/test/vecops_rvec.cxx
|
||||
@@ -13,6 +13,10 @@
|
||||
#include <sstream>
|
||||
#include <cmath>
|
||||
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
using namespace ROOT;
|
||||
using namespace ROOT::VecOps;
|
||||
using namespace ROOT::Detail::VecOps; // for `IsSmall` and `IsAdopting`
|
||||
--
|
||||
2.35.1
|
||||
|
||||
From cae450e0210fe584ef30d155a4217cfe2f5aa358 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 30 Jul 2022 17:05:31 +0200
|
||||
Subject: [PATCH] Backward compatibility with older googletest versions in EPEL
|
||||
|
||||
---
|
||||
tree/dataframe/test/dataframe_datasetspec.cxx | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/tree/dataframe/test/dataframe_datasetspec.cxx b/tree/dataframe/test/dataframe_datasetspec.cxx
|
||||
index b422dcf28b..14329102af 100644
|
||||
--- a/tree/dataframe/test/dataframe_datasetspec.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_datasetspec.cxx
|
||||
@@ -1,4 +1,9 @@
|
||||
#include <gtest/gtest.h>
|
||||
+
|
||||
+#ifndef INSTANTIATE_TEST_SUITE_P
|
||||
+#define INSTANTIATE_TEST_SUITE_P INSTANTIATE_TEST_CASE_P
|
||||
+#endif
|
||||
+
|
||||
#include <ROOT/RDataFrame.hxx>
|
||||
#include <ROOT/RVec.hxx>
|
||||
#include <ROOT/RDFHelpers.hxx>
|
||||
@@ -36,6 +41,7 @@ protected:
|
||||
|
||||
~RDatasetSpecTest() {}
|
||||
|
||||
+public:
|
||||
static void SetUpTestCase()
|
||||
{
|
||||
auto dfWriter0 = RDataFrame(5).Define("z", [](ULong64_t e) { return e + 100; }, {"rdfentry_"});
|
||||
--
|
||||
2.37.1
|
||||
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 23 Apr 2021 21:39:17 +0200
|
||||
Subject: [PATCH] Compat with no f-strings
|
||||
|
||||
---
|
||||
tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
index 7024112f03..5a314f86dd 100644
|
||||
--- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
+++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
|
||||
# print train statistics
|
||||
running_train_loss += train_loss.item()
|
||||
if i % 4 == 3: # print every 4 mini-batches
|
||||
- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}")
|
||||
+ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4))
|
||||
running_train_loss = 0.0
|
||||
|
||||
if schedule:
|
||||
@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
|
||||
|
||||
curr_val = running_val_loss / len(val_loader)
|
||||
if save_best:
|
||||
- if best_val==None:
|
||||
- best_val = curr_val
|
||||
- best_val = save_best(model, curr_val, best_val)
|
||||
+ if best_val is None:
|
||||
+ best_val = curr_val
|
||||
+ best_val = save_best(model, curr_val, best_val)
|
||||
|
||||
# print val statistics per epoch
|
||||
- print(f"[{epoch+1}] val loss: {curr_val :.3f}")
|
||||
+ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val))
|
||||
running_val_loss = 0.0
|
||||
|
||||
- print(f"Finished Training on {epoch+1} Epochs!")
|
||||
+ print("Finished Training on {} Epochs!".format(epoch+1))
|
||||
|
||||
return model
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From c4df90861879f45b281c2a8e55212b711cfdbfa0 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 29 Mar 2022 15:30:20 +0200
|
||||
Subject: [PATCH] Avoid crashes due to static initialization order
|
||||
|
||||
Most commonly seen on ppc64le. Backtrace:
|
||||
|
||||
===========================================================
|
||||
The lines below might hint at the cause of the crash.
|
||||
You may get help by asking at the ROOT forum https://root.cern/forum
|
||||
Only if you are really convinced it is a bug in ROOT then please submit a
|
||||
report at https://root.cern/bugs Please post the ENTIRE stack trace
|
||||
from above as an attachment in addition to anything else
|
||||
that might help us fixing this issue.
|
||||
===========================================================
|
||||
#11 ROOT::Experimental::RColor::toHex[abi:cxx11](unsigned char) (v=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:82
|
||||
#12 0x00007fff90c220ec in ROOT::Experimental::RColor::SetRGB (this=0x7fffeadf5d10, r=<optimized out>, g=<optimized out>, b=<optimized out>) at /usr/include/c++/11/ext/new_allocator.h:89
|
||||
---
|
||||
graf2d/gpadv7/src/RColor.cxx | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/graf2d/gpadv7/src/RColor.cxx b/graf2d/gpadv7/src/RColor.cxx
|
||||
index de325f1ea3..6878360073 100644
|
||||
--- a/graf2d/gpadv7/src/RColor.cxx
|
||||
+++ b/graf2d/gpadv7/src/RColor.cxx
|
||||
@@ -232,10 +232,10 @@ std::vector<uint8_t> RColor::AsRGBA() const
|
||||
|
||||
std::string RColor::toHex(uint8_t v)
|
||||
{
|
||||
- static const char *digits = "0123456789ABCDEF";
|
||||
+ auto digits = [](auto d) { return d < 10 ? '0' + d : 'A' - 10 + d; };
|
||||
std::string res(2,'0');
|
||||
- res[0] = digits[v >> 4];
|
||||
- res[1] = digits[v & 0xf];
|
||||
+ res[0] = digits(v >> 4);
|
||||
+ res[1] = digits(v & 0xf);
|
||||
return res;
|
||||
}
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
From 914e46f1c591f8b9b34115863ff31e42e19bfb97 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 28 Mar 2022 09:32:24 +0200
|
||||
Subject: [PATCH] Use calls from Python directly
|
||||
|
||||
The rf105_funcbinding.py tutorial used to trigger errors due to unknown
|
||||
symbols. In particular the custum new and delete operators used in RooFit
|
||||
were not autoloaded when needed.
|
||||
|
||||
In the tutorial there was a workaround implemented to call ProcessLine
|
||||
instead of making calls directly form Python, to make the autoloading
|
||||
from the C++ side of ROOT instead. This did not quite fix the problem,
|
||||
and the tutorial still randomly failed due to missing symbols.
|
||||
|
||||
After changing the algorthm used for autoloading in commit
|
||||
6ae602bba7d33c900a117c9de0187ab5a28e14b8 these problems were solved.
|
||||
|
||||
After this fix using the direct calls from Python also works, so this
|
||||
PR suggests updating the tutorial to do that.
|
||||
---
|
||||
tutorials/roofit/rf105_funcbinding.py | 30 ++++++---------------------
|
||||
1 file changed, 6 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/tutorials/roofit/rf105_funcbinding.py b/tutorials/roofit/rf105_funcbinding.py
|
||||
index 72d9cf62fc..b9de2a095a 100644
|
||||
--- a/tutorials/roofit/rf105_funcbinding.py
|
||||
+++ b/tutorials/roofit/rf105_funcbinding.py
|
||||
@@ -17,15 +17,8 @@ import ROOT
|
||||
# ---------------------------------------------------
|
||||
|
||||
# Bind one-dimensional ROOT.TMath.Erf function as ROOT.RooAbsReal function
|
||||
-# Directly trying this in python doesn't work:
|
||||
-# x = ROOT.RooRealVar("x", "x", -3, 3)
|
||||
-# erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x)
|
||||
-# Need to go through C interface
|
||||
-ROOT.gInterpreter.ProcessLine(
|
||||
- 'auto x = RooRealVar("x", "x", -3, 3); auto myerf = RooFit::bindFunction("erf", TMath::Erf, x)'
|
||||
-)
|
||||
-x = ROOT.x
|
||||
-erf = ROOT.myerf
|
||||
+x = ROOT.RooRealVar("x", "x", -3, 3)
|
||||
+erf = ROOT.RooFit.bindFunction("erf", ROOT.TMath.Erf, x)
|
||||
|
||||
# Print erf definition
|
||||
erf.Print()
|
||||
@@ -38,21 +31,10 @@ erf.plotOn(frame1)
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
# Bind pdf ROOT.Math.Beta with three variables as ROOT.RooAbsPdf function
|
||||
-# As above, this does not work directly in python
|
||||
-# x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999)
|
||||
-# a = ROOT.RooRealVar("a", "a", 5, 0, 10)
|
||||
-# b = ROOT.RooRealVar("b", "b", 2, 0, 10)
|
||||
-# beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b)
|
||||
-ROOT.gInterpreter.ProcessLine(
|
||||
- 'auto x2 = RooRealVar("x2", "x2", 0, 0.999);\
|
||||
- auto a = RooRealVar("a", "a", 5, 0, 10);\
|
||||
- auto b = RooRealVar("b", "b", 5, 0, 10);\
|
||||
- auto beta = RooFit::bindPdf("beta", ROOT::Math::beta_pdf, x2, a, b)'
|
||||
-)
|
||||
-x2 = ROOT.x2
|
||||
-a = ROOT.a
|
||||
-b = ROOT.b
|
||||
-beta = ROOT.beta
|
||||
+x2 = ROOT.RooRealVar("x2", "x2", 0, 0.999)
|
||||
+a = ROOT.RooRealVar("a", "a", 5, 0, 10)
|
||||
+b = ROOT.RooRealVar("b", "b", 2, 0, 10)
|
||||
+beta = ROOT.RooFit.bindPdf("beta", ROOT.Math.beta_pdf, x2, a, b)
|
||||
|
||||
# Perf beta definition
|
||||
beta.Print()
|
||||
--
|
||||
2.35.1
|
||||
|
||||
37
root-stressvector-test-fails-on-ix86.patch
Normal file
37
root-stressvector-test-fails-on-ix86.patch
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
From df2902f6c970aa903200a272fd6a79788da3df4f Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 28 Feb 2023 11:33:28 +0100
|
||||
Subject: [PATCH] The stressVector test fails on ix86 due to too strict check:
|
||||
|
||||
DeltaR TLorentzVector time = 0.2610929 (sec)
|
||||
DeltaR XYZTVector time = 0.22973299 (sec)
|
||||
DeltaR PtEtaPhiEVector time = 0.0016570091 (sec)
|
||||
-12823.3585955796 -12823.35859557827 -12823.35859557827
|
||||
Test DeltaR failed !!
|
||||
|
||||
The new value for the scale parameter (50) was calculated from the
|
||||
above values:
|
||||
|
||||
root [2] (-12823.3585955796 - (-12823.35859557827)) / -12823.3585955796 / std::numeric_limits<double>::epsilon() / 10
|
||||
(double) 46.762663
|
||||
---
|
||||
test/stressVector.cxx | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/stressVector.cxx b/test/stressVector.cxx
|
||||
index 83b86fb2b4..18dc97d421 100644
|
||||
--- a/test/stressVector.cxx
|
||||
+++ b/test/stressVector.cxx
|
||||
@@ -540,8 +540,7 @@ int main(int argc,const char *argv[]) {
|
||||
s1=a.testDeltaR (v1, t, t1, "DeltaR TLorentzVector " );
|
||||
s2=a.testDeltaR (v2, t, t2, "DeltaR XYZTVector " );
|
||||
s3=a.testDeltaR (v3, t, t3, "DeltaR PtEtaPhiEVector " );
|
||||
- a.check("DeltaR",s1,s2,s3,15);
|
||||
-
|
||||
+ a.check("DeltaR", s1, s2, s3, 50);
|
||||
|
||||
int n1, n2, n3;
|
||||
n1 = a.testAnalysis (v1, t, t1, "Analysis1 TLorentzVector " );
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From f99eedeb72644671cd584f48e4c136d47f6b0020 Mon Sep 17 00:00:00 2001
|
||||
From: Fangrui Song <maskray@google.com>
|
||||
Date: Thu, 12 Dec 2019 16:18:57 -0800
|
||||
Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set
|
||||
|
||||
Fix PR44284. This is probably not valid assembly but we should not crash.
|
||||
|
||||
Reviewed By: luporl, #powerpc, steven.zhang
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D71443
|
||||
---
|
||||
interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
|
||||
index 00df9e41fdae..5e91bdb2f8de 100644
|
||||
--- a/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
|
||||
+++ b/interpreter/llvm/src/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
|
||||
@@ -201,7 +201,8 @@ public:
|
||||
|
||||
void finish() override {
|
||||
for (auto *Sym : UpdateOther)
|
||||
- copyLocalEntry(Sym, Sym->getVariableValue());
|
||||
+ if (Sym->isVariable())
|
||||
+ copyLocalEntry(Sym, Sym->getVariableValue());
|
||||
}
|
||||
|
||||
private:
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
From 4d09235937ea29913cbf9a9b5bcd002b52557c0e Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 3 Jul 2022 08:18:57 +0200
|
||||
Subject: [PATCH] Increase test timeout
|
||||
|
||||
---
|
||||
cmake/modules/RootMacros.cmake | 14 +++++++-------
|
||||
tmva/tmva/test/DNN/CMakeLists.txt | 2 +-
|
||||
tree/tree/test/CMakeLists.txt | 2 +-
|
||||
tutorials/CMakeLists.txt | 4 ++--
|
||||
4 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake
|
||||
index cc61f4bbad..3e4559fc19 100644
|
||||
--- a/cmake/modules/RootMacros.cmake
|
||||
+++ b/cmake/modules/RootMacros.cmake
|
||||
@@ -1779,6 +1779,7 @@ endfunction()
|
||||
#----------------------------------------------------------------------------
|
||||
# function ROOT_ADD_GTEST(<testsuite> source1 source2...
|
||||
# [WILLFAIL] Negate output of test
|
||||
+# [TIMEOUT seconds]
|
||||
# [COPY_TO_BUILDDIR file1 file2] Copy listed files when ctest invokes the test.
|
||||
# [LIBRARIES lib1 lib2...] -- Libraries to link against
|
||||
# [LABELS label1 label2...] -- Labels to annotate the test
|
||||
@@ -1790,7 +1791,7 @@ endfunction()
|
||||
function(ROOT_ADD_GTEST test_suite)
|
||||
cmake_parse_arguments(ARG
|
||||
"WILLFAIL"
|
||||
- "REPEATS;FAILREGEX"
|
||||
+ "TIMEOUT;REPEATS;FAILREGEX"
|
||||
"COPY_TO_BUILDDIR;LIBRARIES;LABELS;INCLUDE_DIRS" ${ARGN})
|
||||
|
||||
ROOT_GET_SOURCES(source_files . ${ARG_UNPARSED_ARGUMENTS})
|
||||
@@ -1821,9 +1822,7 @@ function(ROOT_ADD_GTEST test_suite)
|
||||
if(ARG_WILLFAIL)
|
||||
set(willfail WILLFAIL)
|
||||
endif()
|
||||
- if(ARG_LABELS)
|
||||
- set(labels "LABELS ${ARG_LABELS}")
|
||||
- endif()
|
||||
+
|
||||
if(ARG_REPEATS)
|
||||
set(extra_command --gtest_repeat=${ARG_REPEATS} --gtest_break_on_failure)
|
||||
endif()
|
||||
@@ -1833,10 +1832,11 @@ function(ROOT_ADD_GTEST test_suite)
|
||||
gtest${mangled_name}
|
||||
COMMAND ${test_suite} ${extra_command}
|
||||
WORKING_DIR ${CMAKE_CURRENT_BINARY_DIR}
|
||||
- COPY_TO_BUILDDIR ${ARG_COPY_TO_BUILDDIR}
|
||||
+ COPY_TO_BUILDDIR "${ARG_COPY_TO_BUILDDIR}"
|
||||
${willfail}
|
||||
- ${labels}
|
||||
- FAILREGEX ${ARG_FAILREGEX}
|
||||
+ TIMEOUT "${ARG_TIMEOUT}"
|
||||
+ LABELS "${ARG_LABELS}"
|
||||
+ FAILREGEX "${ARG_FAILREGEX}"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
diff --git a/tmva/tmva/test/DNN/CMakeLists.txt b/tmva/tmva/test/DNN/CMakeLists.txt
|
||||
index a9233682f6..653540e9e3 100644
|
||||
--- a/tmva/tmva/test/DNN/CMakeLists.txt
|
||||
+++ b/tmva/tmva/test/DNN/CMakeLists.txt
|
||||
@@ -144,7 +144,7 @@ ROOT_ADD_TEST(TMVA-DNN-MethodDL-SGD-Optimization-Cpu COMMAND testMethodDLSGDOpti
|
||||
|
||||
# DNN - MethodDL Adam Optimization CPU
|
||||
ROOT_EXECUTABLE(testMethodDLAdamOptimizationCpu TestMethodDLAdamOptimizationCpu.cxx LIBRARIES ${Libraries})
|
||||
-ROOT_ADD_TEST(TMVA-DNN-MethodDL-Adam-Optimization-Cpu COMMAND testMethodDLAdamOptimizationCpu)
|
||||
+ROOT_ADD_TEST(TMVA-DNN-MethodDL-Adam-Optimization-Cpu COMMAND testMethodDLAdamOptimizationCpu TIMEOUT 1800)
|
||||
|
||||
# DNN - MethodDL Adagrad Optimization CPU
|
||||
ROOT_EXECUTABLE(testMethodDLAdagradOptimizationCpu TestMethodDLAdagradOptimizationCpu.cxx LIBRARIES ${Libraries})
|
||||
diff --git a/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt
|
||||
index dbe664f8a0..6284e3c4c5 100644
|
||||
--- a/tree/tree/test/CMakeLists.txt
|
||||
+++ b/tree/tree/test/CMakeLists.txt
|
||||
@@ -20,7 +20,7 @@ ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
target_include_directories(testTOffsetGeneration PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
ROOT_STANDARD_LIBRARY_PACKAGE(SillyStruct NO_INSTALL_HEADERS HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SillyStruct.h SOURCES SillyStruct.cxx LINKDEF SillyStructLinkDef.h DEPENDENCIES RIO)
|
||||
ROOT_ADD_GTEST(testBulkApi BulkApi.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
-ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000)
|
||||
ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct)
|
||||
ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree)
|
||||
diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
|
||||
index 6ae9be5869..982432fe15 100644
|
||||
--- a/tutorials/CMakeLists.txt
|
||||
+++ b/tutorials/CMakeLists.txt
|
||||
@@ -532,7 +532,7 @@ foreach(t ${tutorials})
|
||||
|
||||
# These tests on ARM64 need much more than 20 minutes - increase the timeout
|
||||
if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64)
|
||||
- set(thisTestTimeout 2400) # 40m
|
||||
+ set(thisTestTimeout 3000) # 50m
|
||||
else()
|
||||
set(thisTestTimeout 1200) # 20m
|
||||
endif()
|
||||
@@ -566,7 +566,7 @@ foreach(t ${mpi_tutorials})
|
||||
|
||||
# These tests on ARM64 need much more than 20 minutes - increase the timeout
|
||||
if(ROOT_ARCHITECTURE MATCHES arm64 OR ROOT_ARCHITECTURE MATCHES ppc64)
|
||||
- set(thisTestTimeout 2400) # 40m
|
||||
+ set(thisTestTimeout 3000) # 50m
|
||||
else()
|
||||
set(thisTestTimeout 1200) # 20m
|
||||
endif()
|
||||
--
|
||||
2.38.1
|
||||
|
||||
49
root-testRooAbsL-test-compares-two-doubles-and-fails.patch
Normal file
49
root-testRooAbsL-test-compares-two-doubles-and-fails.patch
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
From d6a11ace0d3d25c96dd20cef1436642b5caa102e Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 28 Feb 2023 11:02:03 +0100
|
||||
Subject: [PATCH] The testRooAbsL test compares two doubles and fails due to
|
||||
rounding errors. The failure happens on ppc64le and aarch64.
|
||||
|
||||
This PR changes EXPECT_EQ to EXPECT_DOUBLE_EQ in the affected test.
|
||||
|
||||
[ RUN ] SimBinnedConstrainedTest.SubEventSections
|
||||
/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:293: Failure
|
||||
Expected equality of these values:
|
||||
whole.Sum()
|
||||
Which is: -1263.796050661927
|
||||
N_events_total_parts.Sum()
|
||||
Which is: -1263.7960506619268
|
||||
/builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:303: Failure
|
||||
Expected equality of these values:
|
||||
whole.Sum()
|
||||
Which is: -1263.796050661927
|
||||
thrice_N_events_total_parts.Sum()
|
||||
Which is: -1263.7960506619268
|
||||
[ FAILED ] SimBinnedConstrainedTest.SubEventSections (199 ms)
|
||||
---
|
||||
roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx
|
||||
index 600f4da7be..05dcd6a241 100644
|
||||
--- a/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx
|
||||
+++ b/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx
|
||||
@@ -293,7 +293,7 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections)
|
||||
{static_cast<double>(ix) / N_events_total, static_cast<double>(ix + 1) / N_events_total}, 0,
|
||||
likelihood->getNComponents());
|
||||
}
|
||||
- EXPECT_EQ(whole.Sum(), N_events_total_parts.Sum());
|
||||
+ EXPECT_DOUBLE_EQ(whole.Sum(), N_events_total_parts.Sum());
|
||||
|
||||
// now let's do it again over a number of sections 3 times the number of events
|
||||
ROOT::Math::KahanSum<double> thrice_N_events_total_parts;
|
||||
@@ -303,5 +303,5 @@ TEST_F(SimBinnedConstrainedTest, SubEventSections)
|
||||
{static_cast<double>(ix) / (3 * N_events_total), static_cast<double>(ix + 1) / (3 * N_events_total)}, 0,
|
||||
likelihood->getNComponents());
|
||||
}
|
||||
- EXPECT_EQ(whole.Sum(), thrice_N_events_total_parts.Sum());
|
||||
+ EXPECT_DOUBLE_EQ(whole.Sum(), thrice_N_events_total_parts.Sum());
|
||||
}
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
From 493c4210168fa475aa4130c12e8fdff3b7d85c09 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Canal <pcanal@fnal.gov>
|
||||
Date: Mon, 7 Mar 2022 13:32:37 -0600
|
||||
Subject: [PATCH] threadsh1: Avoid heap-use-after-free.
|
||||
|
||||
Previously, the Canvas `Close` signal which triggers a call to the local function `close` which
|
||||
was unconditionally call `Kill` on its associated thread would call it on an already deleted
|
||||
object if the `TThread` was deleted before the `TCanvas`.
|
||||
|
||||
This fix #10015 (detected by using ASAN).
|
||||
---
|
||||
tutorials/legacy/thread/threadsh1.C | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tutorials/legacy/thread/threadsh1.C b/tutorials/legacy/thread/threadsh1.C
|
||||
index b819f5d020..d6abc67e36 100644
|
||||
--- a/tutorials/legacy/thread/threadsh1.C
|
||||
+++ b/tutorials/legacy/thread/threadsh1.C
|
||||
@@ -67,7 +67,8 @@ void *joiner(void *)
|
||||
void closed(Int_t id)
|
||||
{
|
||||
// kill the thread matching the canvas being closed
|
||||
- t[id]->Kill();
|
||||
+ if (t[id])
|
||||
+ t[id]->Kill();
|
||||
// and set the canvas pointer to 0
|
||||
c[id] = 0;
|
||||
}
|
||||
@@ -142,11 +143,11 @@ void threadsh1()
|
||||
t[4]->Join();
|
||||
TThread::Ps();
|
||||
|
||||
- delete t[0];
|
||||
- delete t[1];
|
||||
- delete t[2];
|
||||
- delete t[3];
|
||||
- delete t[4];
|
||||
+ delete t[0]; t[0] = nullptr; // Prevents after deletion access.
|
||||
+ delete t[1]; t[1] = nullptr;
|
||||
+ delete t[2]; t[2] = nullptr;
|
||||
+ delete t[3]; t[3] = nullptr;
|
||||
+ delete t[4]; t[4] = nullptr;
|
||||
|
||||
delete rng[0];
|
||||
delete rng[1];
|
||||
--
|
||||
2.35.1
|
||||
|
||||
239
root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch
Normal file
239
root-tmva-Speed-up-TMVA-CNN-and-RNN-tutorials.patch
Normal file
|
|
@ -0,0 +1,239 @@
|
|||
From 54a05a995bef827413d69b63559494a78ed56946 Mon Sep 17 00:00:00 2001
|
||||
From: moneta <lorenzo.moneta@cern.ch>
|
||||
Date: Tue, 14 Feb 2023 11:00:44 +0100
|
||||
Subject: [PATCH] [tmva] Speed up TMVA CNN and RNN tutorials
|
||||
|
||||
Run tutorials with a amximum of 4 threads to avoid MT problems on some machines.
|
||||
Disable also OpenMP when running in MT in ROOT
|
||||
|
||||
Reduce also by a factor of 5 the number of input events
|
||||
---
|
||||
tutorials/tmva/TMVA_CNN_Classification.C | 25 +++++++++++++++-------
|
||||
tutorials/tmva/TMVA_CNN_Classification.py | 12 +++++------
|
||||
tutorials/tmva/TMVA_RNN_Classification.C | 11 +++++-----
|
||||
tutorials/tmva/TMVA_RNN_Classification.py | 26 ++++++++++-------------
|
||||
4 files changed, 39 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
index 0966017ae2..cc6829a24d 100644
|
||||
--- a/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
+++ b/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
@@ -107,7 +107,16 @@ void MakeImagesTree(int n, int nh, int nw)
|
||||
f.Close();
|
||||
}
|
||||
|
||||
-void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
+/// @brief Run the TMVA CNN Classification example
|
||||
+/// @param nevts : number of signal/background events. Use by default a low value (1000)
|
||||
+/// but increase to at least 5000 to get a good result
|
||||
+/// @param opt : vector of bool with method used (default all on if available). The order is:
|
||||
+/// - TMVA CNN
|
||||
+/// - Keras CNN
|
||||
+/// - TMVA DNN
|
||||
+/// - TMVA BDT
|
||||
+/// - PyTorch CNN
|
||||
+void TMVA_CNN_Classification(int nevts = 1000, std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
{
|
||||
|
||||
bool useTMVACNN = (opt.size() > 0) ? opt[0] : false;
|
||||
@@ -125,17 +134,17 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
|
||||
bool writeOutputFile = true;
|
||||
|
||||
- int num_threads = 0; // use default threads
|
||||
+ int num_threads = 4; // use by default 4 threads if value is not set before
|
||||
+ // switch off MT in OpenBLAS to avoid conflict with tbb
|
||||
+ gSystem->Setenv("OMP_NUM_THREADS", "1");
|
||||
|
||||
TMVA::Tools::Instance();
|
||||
|
||||
// do enable MT running
|
||||
if (num_threads >= 0) {
|
||||
ROOT::EnableImplicitMT(num_threads);
|
||||
- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads));
|
||||
}
|
||||
- else
|
||||
- gSystem->Setenv("OMP_NUM_THREADS", "1");
|
||||
+
|
||||
|
||||
std::cout << "Running with nthreads = " << ROOT::GetThreadPoolSize() << std::endl;
|
||||
|
||||
@@ -161,7 +170,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
The factory is the major TMVA object you have to interact with. Here is the list of parameters you need to pass
|
||||
|
||||
- The first argument is the base of the name of all the output
|
||||
- weightfiles in the directory weight/ that will be created with the
|
||||
+ weight files in the directory weight/ that will be created with the
|
||||
method parameters
|
||||
|
||||
- The second argument is the output file for the training results
|
||||
@@ -208,7 +217,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
|
||||
// if file does not exists create it
|
||||
if (!fileExist) {
|
||||
- MakeImagesTree(5000, 16, 16);
|
||||
+ MakeImagesTree(nevts, 16, 16);
|
||||
}
|
||||
|
||||
// TString inputFileName = "tmva_class_example.root";
|
||||
@@ -289,7 +298,7 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
// Boosted Decision Trees
|
||||
if (useTMVABDT) {
|
||||
factory.BookMethod(loader, TMVA::Types::kBDT, "BDT",
|
||||
- "!V:NTrees=400:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:"
|
||||
+ "!V:NTrees=200:MinNodeSize=2.5%:MaxDepth=2:BoostType=AdaBoost:AdaBoostBeta=0.5:"
|
||||
"UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20");
|
||||
}
|
||||
/**
|
||||
diff --git a/tutorials/tmva/TMVA_CNN_Classification.py b/tutorials/tmva/TMVA_CNN_Classification.py
|
||||
index 0760bacfd9..85fde20763 100644
|
||||
--- a/tutorials/tmva/TMVA_CNN_Classification.py
|
||||
+++ b/tutorials/tmva/TMVA_CNN_Classification.py
|
||||
@@ -25,6 +25,9 @@
|
||||
|
||||
import ROOT
|
||||
|
||||
+#switch off MT in OpenMP (BLAS)
|
||||
+ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1")
|
||||
+
|
||||
TMVA = ROOT.TMVA
|
||||
TFile = ROOT.TFile
|
||||
|
||||
@@ -105,6 +108,7 @@ def MakeImagesTree(n, nh, nw):
|
||||
hasGPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-gpu") == "yes"
|
||||
hasCPU = ROOT.gSystem.GetFromPipe("root-config --has-tmva-cpu") == "yes"
|
||||
|
||||
+nevt = 1000 # use a larger value to get better results
|
||||
opt = [1, 1, 1, 1, 1]
|
||||
useTMVACNN = opt[0] if len(opt) > 0 else False
|
||||
useKerasCNN = opt[1] if len(opt) > 1 else False
|
||||
@@ -141,17 +145,13 @@ if not useTMVACNN:
|
||||
|
||||
writeOutputFile = True
|
||||
|
||||
-num_threads = 0 # use default threads
|
||||
+num_threads = 4 # use default threads
|
||||
max_epochs = 10 # maximum number of epochs used for training
|
||||
|
||||
|
||||
# do enable MT running
|
||||
if num_threads >= 0:
|
||||
ROOT.EnableImplicitMT(num_threads)
|
||||
- if (num_threads > 0) :
|
||||
- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads))
|
||||
-else:
|
||||
- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1")
|
||||
|
||||
print("Running with nthreads = ", ROOT.GetThreadPoolSize())
|
||||
|
||||
@@ -218,7 +218,7 @@ inputFileName = "images_data_16x16.root"
|
||||
|
||||
# if the input file does not exist create it
|
||||
if ROOT.gSystem.AccessPathName(inputFileName):
|
||||
- MakeImagesTree(5000, 16, 16)
|
||||
+ MakeImagesTree(nevt, 16, 16)
|
||||
|
||||
inputFile = TFile.Open(inputFileName)
|
||||
if inputFile is None:
|
||||
diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
index 2711673ec9..8701ba6c19 100644
|
||||
--- a/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
+++ b/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
@@ -136,13 +136,14 @@ void MakeTimeData(int n, int ntime, int ndim )
|
||||
}
|
||||
}
|
||||
/// macro for performing a classification using a Recurrent Neural Network
|
||||
+/// @param nevts = 2000 Number of events used. (increase for better classification results)
|
||||
/// @param use_type
|
||||
/// use_type = 0 use Simple RNN network
|
||||
/// use_type = 1 use LSTM network
|
||||
/// use_type = 2 use GRU
|
||||
/// use_type = 3 build 3 different networks with RNN, LSTM and GRU
|
||||
|
||||
-void TMVA_RNN_Classification(int use_type = 1)
|
||||
+void TMVA_RNN_Classification(int nevts = 2000, int use_type = 1)
|
||||
{
|
||||
|
||||
const int ninput = 30;
|
||||
@@ -150,7 +151,7 @@ void TMVA_RNN_Classification(int use_type = 1)
|
||||
const int batchSize = 100;
|
||||
const int maxepochs = 20;
|
||||
|
||||
- int nTotEvts = 10000; // total events to be generated for signal or background
|
||||
+ int nTotEvts = nevts; // total events to be generated for signal or background
|
||||
|
||||
bool useKeras = true;
|
||||
|
||||
@@ -190,14 +191,12 @@ void TMVA_RNN_Classification(int use_type = 1)
|
||||
useKeras = false;
|
||||
#endif
|
||||
|
||||
- int num_threads = 0; // use by default all threads
|
||||
+ int num_threads = 4; // use by default all threads
|
||||
+ gSystem->Setenv("OMP_NUM_THREADS", "1"); // switch off MT in OpenBLAS
|
||||
// do enable MT running
|
||||
if (num_threads >= 0) {
|
||||
ROOT::EnableImplicitMT(num_threads);
|
||||
- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads));
|
||||
}
|
||||
- else
|
||||
- gSystem->Setenv("OMP_NUM_THREADS", "1");
|
||||
|
||||
TMVA::Config::Instance();
|
||||
|
||||
diff --git a/tutorials/tmva/TMVA_RNN_Classification.py b/tutorials/tmva/TMVA_RNN_Classification.py
|
||||
index 88280a5849..625a120b3d 100644
|
||||
--- a/tutorials/tmva/TMVA_RNN_Classification.py
|
||||
+++ b/tutorials/tmva/TMVA_RNN_Classification.py
|
||||
@@ -22,6 +22,16 @@
|
||||
|
||||
import ROOT
|
||||
|
||||
+num_threads = 4 # use max 4 threads
|
||||
+# do enable MT running
|
||||
+if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes":
|
||||
+ ROOT.EnableImplicitMT(num_threads)
|
||||
+ ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1") # switch OFF MT in OpenBLAS
|
||||
+ print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize()))
|
||||
+else:
|
||||
+ print("Running in serail mode since ROOT does not support MT")
|
||||
+
|
||||
+
|
||||
TMVA = ROOT.TMVA
|
||||
TFile = ROOT.TFile
|
||||
|
||||
@@ -141,7 +151,7 @@ ntime = 10
|
||||
batchSize = 100
|
||||
maxepochs = 10
|
||||
|
||||
-nTotEvts = 10000 # total events to be generated for signal or background
|
||||
+nTotEvts = 2000 # total events to be generated for signal or background
|
||||
|
||||
useKeras = True
|
||||
|
||||
@@ -184,22 +194,8 @@ if ROOT.gSystem.GetFromPipe("root-config --has-tmva-pymva") == "yes":
|
||||
else:
|
||||
useKeras = False
|
||||
|
||||
-num_threads = 0 # use by default all threads
|
||||
-# do enable MT running
|
||||
-if ROOT.gSystem.GetFromPipe("root-config --has-imt") == "yes":
|
||||
- if num_threads >= 0:
|
||||
- ROOT.EnableImplicitMT(num_threads)
|
||||
- if num_threads > 0:
|
||||
- ROOT.gSystem.Setenv("OMP_NUM_THREADS", str(num_threads))
|
||||
- else:
|
||||
- ROOT.gSystem.Setenv("OMP_NUM_THREADS", "1")
|
||||
|
||||
|
||||
- print("Running with nthreads = {}".format(ROOT.GetThreadPoolSize()))
|
||||
-
|
||||
-else:
|
||||
- print("Running in serail mode since ROOT does not support MT")
|
||||
-
|
||||
inputFileName = "time_data_t10_d30.root"
|
||||
|
||||
fileDoesNotExist = ROOT.gSystem.AccessPathName(inputFileName)
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
From 589ac491519446191b7d480a476ab831dc09b5f9 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 30 Mar 2022 15:51:07 +0200
|
||||
Subject: [PATCH] Limit the number of threads in TMVA CNN/DNN test to save
|
||||
memory
|
||||
|
||||
Processing /builddir/build/BUILD/root-6.26.00/tutorials/tmva/TMVA_CNN_Classification.C...
|
||||
Running with nthreads = 224
|
||||
|
||||
[ ... ]
|
||||
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.
|
||||
*** Break *** segmentation violation
|
||||
*** Break *** segmentation violation
|
||||
*** Break *** segmentation violation
|
||||
*** Break *** segmentation violation
|
||||
*** Break *** segmentation violation
|
||||
*** Break *** segmentation violation
|
||||
---
|
||||
tutorials/tmva/TMVA_CNN_Classification.C | 6 ++++--
|
||||
tutorials/tmva/TMVA_RNN_Classification.C | 6 ++++--
|
||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tutorials/tmva/TMVA_CNN_Classification.C b/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
index 3e590c5958..b748fcee6c 100644
|
||||
--- a/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
+++ b/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
@@ -125,14 +125,16 @@ void TMVA_CNN_Classification(std::vector<bool> opt = {1, 1, 1, 1, 1})
|
||||
|
||||
bool writeOutputFile = true;
|
||||
|
||||
- int num_threads = 0; // use default threads
|
||||
+ int num_threads = 32;
|
||||
|
||||
TMVA::Tools::Instance();
|
||||
|
||||
// do enable MT running
|
||||
if (num_threads >= 0) {
|
||||
ROOT::EnableImplicitMT(num_threads);
|
||||
- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads));
|
||||
+ if (ROOT::GetThreadPoolSize() > 0)
|
||||
+ gSystem->Setenv("OMP_NUM_THREADS",
|
||||
+ TString::Format("%u", ROOT::GetThreadPoolSize()));
|
||||
}
|
||||
else
|
||||
gSystem->Setenv("OMP_NUM_THREADS", "1");
|
||||
diff --git a/tutorials/tmva/TMVA_RNN_Classification.C b/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
index 5be80824f9..f902025875 100644
|
||||
--- a/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
+++ b/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
@@ -190,11 +190,13 @@ void TMVA_RNN_Classification(int use_type = 1)
|
||||
useKeras = false;
|
||||
#endif
|
||||
|
||||
- int num_threads = 0; // use by default all threads
|
||||
+ int num_threads = 32;
|
||||
// do enable MT running
|
||||
if (num_threads >= 0) {
|
||||
ROOT::EnableImplicitMT(num_threads);
|
||||
- if (num_threads > 0) gSystem->Setenv("OMP_NUM_THREADS", TString::Format("%d",num_threads));
|
||||
+ if (ROOT::GetThreadPoolSize() > 0)
|
||||
+ gSystem->Setenv("OMP_NUM_THREADS",
|
||||
+ TString::Format("%u", ROOT::GetThreadPoolSize()));
|
||||
}
|
||||
else
|
||||
gSystem->Setenv("OMP_NUM_THREADS", "1");
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,202 +0,0 @@
|
|||
From 29884ae01fde27204d92f554da4e92227a2ed1e6 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 26 Mar 2022 10:22:07 +0100
|
||||
Subject: [PATCH 1/2] Implement builtin_gtest option
|
||||
|
||||
By setting the option to OFF the system gtest and gmock are used.
|
||||
This allows doing tests without network available, e.g. during a
|
||||
package build for Fedora/EPEL.
|
||||
---
|
||||
cmake/modules/FindGTest.cmake | 81 +++++++++++++++++++++
|
||||
cmake/modules/RootBuildOptions.cmake | 2 +
|
||||
cmake/modules/RootMacros.cmake | 2 +-
|
||||
cmake/modules/SearchInstalledSoftware.cmake | 44 ++++++++---
|
||||
4 files changed, 118 insertions(+), 11 deletions(-)
|
||||
create mode 100644 cmake/modules/FindGTest.cmake
|
||||
|
||||
diff --git a/cmake/modules/FindGTest.cmake b/cmake/modules/FindGTest.cmake
|
||||
new file mode 100644
|
||||
index 0000000000..438ec501c2
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/FindGTest.cmake
|
||||
@@ -0,0 +1,81 @@
|
||||
+# Find the gtest and gmock includes and library.
|
||||
+#
|
||||
+# This module defines
|
||||
+# GTEST_LIBRARIES
|
||||
+# GTEST_MAIN_LIBRARIES
|
||||
+# GTEST_INCLUDE_DIRS
|
||||
+# GMOCK_LIBRARIES
|
||||
+# GMOCK_MAIN_LIBRARIES
|
||||
+# GMOCK_INCLUDE_DIRS
|
||||
+#
|
||||
+# GTEST_FOUND true if all libraries present
|
||||
+
|
||||
+find_package(Threads QUIET)
|
||||
+
|
||||
+find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h)
|
||||
+find_library(GTEST_LIBRARIES NAMES gtest)
|
||||
+find_library(GTEST_MAIN_LIBRARIES NAMES gtest_main)
|
||||
+
|
||||
+find_path(GMOCK_INCLUDE_DIRS NAMES gmock/gmock.h)
|
||||
+find_library(GMOCK_LIBRARIES NAMES gmock)
|
||||
+find_library(GMOCK_MAIN_LIBRARIES NAMES gmock_main)
|
||||
+
|
||||
+# Special for EPEL 7's gmock
|
||||
+if(NOT GMOCK_LIBRARIES)
|
||||
+ find_path(GMOCK_SRC_DIR NAMES gmock-all.cc PATHS /usr/src/gmock)
|
||||
+endif()
|
||||
+
|
||||
+if(NOT GMOCK_MAIN_LIBRARIES)
|
||||
+ find_path(GMOCK_MAIN_SRC_DIR NAMES gmock_main.cc PATHS /usr/src/gmock)
|
||||
+endif()
|
||||
+
|
||||
+if (GTEST_INCLUDE_DIRS AND
|
||||
+ GTEST_LIBRARIES AND
|
||||
+ GTEST_MAIN_LIBRARIES AND
|
||||
+ GMOCK_INCLUDE_DIRS AND
|
||||
+ (GMOCK_LIBRARIES OR GMOCK_SRC_DIR) AND
|
||||
+ (GMOCK_MAIN_LIBRARIES OR GMOCK_MAIN_SRC_DIR))
|
||||
+
|
||||
+ add_library(gtest UNKNOWN IMPORTED)
|
||||
+ set_target_properties(gtest PROPERTIES
|
||||
+ IMPORTED_LOCATION ${GTEST_LIBRARIES}
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS})
|
||||
+ target_link_libraries(gtest INTERFACE Threads::Threads)
|
||||
+
|
||||
+ add_library(gtest_main UNKNOWN IMPORTED)
|
||||
+ set_target_properties(gtest_main PROPERTIES
|
||||
+ IMPORTED_LOCATION ${GTEST_MAIN_LIBRARIES})
|
||||
+ target_link_libraries(gtest_main INTERFACE gtest Threads::Threads)
|
||||
+
|
||||
+ if(GMOCK_LIBRARIES)
|
||||
+ add_library(gmock UNKNOWN IMPORTED)
|
||||
+ set_target_properties(gmock PROPERTIES
|
||||
+ IMPORTED_LOCATION ${GMOCK_LIBRARIES}
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS})
|
||||
+ else()
|
||||
+ add_library(gmock STATIC ${GMOCK_SRC_DIR}/gmock-all.cc)
|
||||
+ target_include_directories(gmock PUBLIC ${GMOCK_INCLUDE_DIRS})
|
||||
+ set(GMOCK_LIBRARIES gmock)
|
||||
+ endif()
|
||||
+ target_link_libraries(gmock INTERFACE gtest Threads::Threads)
|
||||
+
|
||||
+ if(GMOCK_MAIN_LIBRARIES)
|
||||
+ add_library(gmock_main UNKNOWN IMPORTED)
|
||||
+ set_target_properties(gmock_main PROPERTIES
|
||||
+ IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARIES})
|
||||
+ else()
|
||||
+ add_library(gmock_main STATIC ${GMOCK_MAIN_SRC_DIR}/gmock_main.cc)
|
||||
+ set(GMOCK_MAIN_LIBRARIES gmock_main)
|
||||
+ endif()
|
||||
+ target_link_libraries(gmock_main INTERFACE gmock Threads::Threads)
|
||||
+
|
||||
+endif()
|
||||
+
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+find_package_handle_standard_args(GTest DEFAULT_MSG
|
||||
+ GTEST_LIBRARIES
|
||||
+ GTEST_MAIN_LIBRARIES
|
||||
+ GTEST_INCLUDE_DIRS
|
||||
+ GMOCK_LIBRARIES
|
||||
+ GMOCK_MAIN_LIBRARIES
|
||||
+ GMOCK_INCLUDE_DIRS)
|
||||
diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake
|
||||
index 7886c5f3e9..01108a18c9 100644
|
||||
--- a/cmake/modules/RootBuildOptions.cmake
|
||||
+++ b/cmake/modules/RootBuildOptions.cmake
|
||||
@@ -94,6 +94,7 @@ ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL")
|
||||
ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps")
|
||||
ROOT_BUILD_OPTION(builtin_glew OFF "Build bundled copy of GLEW")
|
||||
ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL internally (requires network)")
|
||||
+ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest internally (requires network)")
|
||||
ROOT_BUILD_OPTION(builtin_llvm ON "Build bundled copy of LLVM")
|
||||
ROOT_BUILD_OPTION(builtin_lz4 OFF "Build bundled copy of lz4")
|
||||
ROOT_BUILD_OPTION(builtin_lzma OFF "Build bundled copy of lzma")
|
||||
@@ -293,6 +294,7 @@ if(builtin_all)
|
||||
set(builtin_gl2ps_defvalue ON)
|
||||
set(builtin_glew_defvalue ON)
|
||||
set(builtin_gsl_defvalue ON)
|
||||
+ set(builtin_gtest_defvalue ON)
|
||||
set(builtin_llvm_defvalue ON)
|
||||
set(builtin_lz4_defvalue ON)
|
||||
set(builtin_lzma_defvalue ON)
|
||||
diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake
|
||||
index cb75c0b1da..38fd5d6baf 100644
|
||||
--- a/cmake/modules/RootMacros.cmake
|
||||
+++ b/cmake/modules/RootMacros.cmake
|
||||
@@ -1671,7 +1671,7 @@ function(ROOT_ADD_TEST test)
|
||||
|
||||
set_property(TEST ${test} APPEND PROPERTY ENVIRONMENT ROOT_HIST=0)
|
||||
|
||||
- #- Handle TIMOUT and DEPENDS arguments
|
||||
+ #- Handle TIMEOUT and DEPENDS arguments
|
||||
if(ARG_TIMEOUT)
|
||||
set_property(TEST ${test} PROPERTY TIMEOUT ${ARG_TIMEOUT})
|
||||
endif()
|
||||
diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
|
||||
index fe40898d12..b6a3cc4c76 100644
|
||||
--- a/cmake/modules/SearchInstalledSoftware.cmake
|
||||
+++ b/cmake/modules/SearchInstalledSoftware.cmake
|
||||
@@ -1860,15 +1860,6 @@ if (mpi)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(testing AND NO_CONNECTION)
|
||||
- if(fail-on-missing)
|
||||
- message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access")
|
||||
- else()
|
||||
- message(STATUS "No internet connection, disabling 'testing' option")
|
||||
- set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE)
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
#---Check for ZeroMQ when building RooFit::MultiProcess--------------------------------------------
|
||||
|
||||
if (roofit_multiprocess)
|
||||
@@ -1942,8 +1933,41 @@ if (roofit_multiprocess)
|
||||
target_compile_definitions(cppzmq INTERFACE ZMQ_NO_EXPORT)
|
||||
endif (roofit_multiprocess)
|
||||
|
||||
-#---Download googletest--------------------------------------------------------------
|
||||
+#---Check for googletest---------------------------------------------------------------
|
||||
if (testing)
|
||||
+ if (NOT builtin_gtest)
|
||||
+ if(fail-on-missing)
|
||||
+ find_package(GTest REQUIRED)
|
||||
+ else()
|
||||
+ find_package(GTest)
|
||||
+ if(NOT GTEST_FOUND)
|
||||
+ if(NO_CONNECTION)
|
||||
+ if(fail-on-missing)
|
||||
+ message(FATAL_ERROR "No internet connection and GTest was not found. Please check your connection, or either disable the 'testing' option or the 'fail-on-missing' to automatically disable options requiring internet access")
|
||||
+ else()
|
||||
+ message(STATUS "GTest not found, and no internet connection. Disabing the 'testing' option.")
|
||||
+ set(testing OFF CACHE BOOL "Disabled because testing requested and GTest not found (${builtin_gtest_description}) and there is no internet connection" FORCE)
|
||||
+ endif()
|
||||
+ else()
|
||||
+ message(STATUS "GTest not found, switching ON 'builtin_gtest' option.")
|
||||
+ set(builtin_gtest ON CACHE BOOL "Enabled because testing requested and GTest not found (${builtin_gtest_description})" FORCE)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ else()
|
||||
+ if(NO_CONNECTION)
|
||||
+ if(fail-on-missing)
|
||||
+ message(FATAL_ERROR "No internet connection. Please check your connection, or either disable the 'testing' option or the 'builtin_gtest' option or the 'fail-on-missing' option to automatically disable options requiring internet access")
|
||||
+ else()
|
||||
+ message(STATUS "No internet connection, disabling the 'testing' and 'builtin_gtest' options")
|
||||
+ set(testing OFF CACHE BOOL "Disabled because there is no internet connection" FORCE)
|
||||
+ set(builtin_gtest OFF CACHE BOOL "Disabled because there is no internet connection" FORCE)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
+if (builtin_gtest)
|
||||
# FIXME: Remove our version of gtest in roottest. We can reuse this one.
|
||||
# Add googletest
|
||||
# http://stackoverflow.com/questions/9689183/cmake-googletest
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From 580fcf8fe95c45e337d222a7fd2338fdef2f52c5 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 24 Mar 2022 16:18:57 +0100
|
||||
Subject: [PATCH 1/2] Ignore warnings about uring failing during test
|
||||
|
||||
---
|
||||
tree/ntuple/v7/test/ntuple_extended.cxx | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/tree/ntuple/v7/test/ntuple_extended.cxx b/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
index 8e3998996c..98d65ef319 100644
|
||||
--- a/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
+++ b/tree/ntuple/v7/test/ntuple_extended.cxx
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "TROOT.h"
|
||||
|
||||
+#include "ROOTUnitTestSupport.h"
|
||||
+
|
||||
TEST(RNTuple, RealWorld1)
|
||||
{
|
||||
ROOT::EnableImplicitMT();
|
||||
@@ -111,6 +113,17 @@ TEST(RNTuple, RandomAccess)
|
||||
#if !defined(_MSC_VER) || defined(R__ENABLE_BROKEN_WIN_TESTS)
|
||||
TEST(RNTuple, LargeFile)
|
||||
{
|
||||
+ ROOTUnitTestSupport::CheckDiagsRAII raii;
|
||||
+ raii.optionalDiag(kWarning, "RIoUring",
|
||||
+ "io_uring is unexpectedly not available because:", false);
|
||||
+ raii.optionalDiag(kWarning, "RRawFileUnix",
|
||||
+ "io_uring setup failed, falling back to blocking I/O in ReadV", true);
|
||||
+
|
||||
+ raii.optionalDiag(kWarning, "ROOT.NTuple",
|
||||
+ "The RNTuple file format will change. Do not store real data with this version of RNTuple!", true);
|
||||
+ raii.optionalDiag(kWarning, "ROOT.NTuple",
|
||||
+ "Pre-release format version: ", false);
|
||||
+
|
||||
ROOT::EnableImplicitMT();
|
||||
FileRaii fileGuard("test_large_file.root");
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
||||
27
root-use-consistent-minimum-python-version-for-DistRDF.patch
Normal file
27
root-use-consistent-minimum-python-version-for-DistRDF.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From 8624d1c7eb4f532d6843118251d9564650f89924 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 2 Mar 2023 08:25:36 +0100
|
||||
Subject: [PATCH 1/2] Use consistent minimum Python version for DistRDF The
|
||||
minimum version was changed in bindings/CMakeLists.txt but not in the check
|
||||
in the code.
|
||||
|
||||
---
|
||||
bindings/pyroot/pythonizations/python/ROOT/_facade.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
index 7370a234d1..865321e713 100644
|
||||
--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
+++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
|
||||
@@ -335,7 +335,7 @@ class ROOTFacade(types.ModuleType):
|
||||
ns.MakeNumpyDataFrame = DeprecatedMakeNumpy
|
||||
ns.FromNumpy = MakeNumpyDataFrame
|
||||
|
||||
- if sys.version_info >= (3, 7):
|
||||
+ if sys.version_info >= (3, 8):
|
||||
# Inject Experimental.Distributed package into namespace RDF
|
||||
ns.Experimental.Distributed = _create_rdf_experimental_distributed_module(ns.Experimental)
|
||||
except:
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From b781f954ac80cc227777992dcb4fbe1837c7e351 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 29 Mar 2022 15:44:17 +0200
|
||||
Subject: [PATCH] Use unique filenames in fillrandom.py and fillrandom.C
|
||||
|
||||
---
|
||||
tutorials/hist/fillrandom.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tutorials/hist/fillrandom.py b/tutorials/hist/fillrandom.py
|
||||
index d5eb3f6f38..4b1a94a37e 100644
|
||||
--- a/tutorials/hist/fillrandom.py
|
||||
+++ b/tutorials/hist/fillrandom.py
|
||||
@@ -41,7 +41,7 @@ h1f.FillRandom("sqroot",10000)
|
||||
h1f.Draw()
|
||||
c1.Update()
|
||||
|
||||
-f = ROOT.TFile("fillrandom.root","RECREATE")
|
||||
+f = ROOT.TFile("fillrandom-py.root","RECREATE")
|
||||
form1.Write()
|
||||
sqroot.Write()
|
||||
h1f.Write()
|
||||
--
|
||||
2.35.1
|
||||
|
||||
66
root-veto-tests-using-clad-when-clad-is-disabled.patch
Normal file
66
root-veto-tests-using-clad-when-clad-is-disabled.patch
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
From 6583668f3e5f1b4e1d219a5a92a19da31d8d5494 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 1 Mar 2023 18:32:45 +0100
|
||||
Subject: [PATCH] Veto tests using clad when clad is disabled
|
||||
|
||||
---
|
||||
math/minuit2/test/CMakeLists.txt | 8 ++++----
|
||||
tutorials/CMakeLists.txt | 9 ++++++---
|
||||
2 files changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/math/minuit2/test/CMakeLists.txt b/math/minuit2/test/CMakeLists.txt
|
||||
index 7ecf30350c..8951ac0a84 100644
|
||||
--- a/math/minuit2/test/CMakeLists.txt
|
||||
+++ b/math/minuit2/test/CMakeLists.txt
|
||||
@@ -11,10 +11,10 @@ if(NOT DEFINED ROOT_SOURCE_DIR)
|
||||
include(${ROOT_USE_FILE})
|
||||
endif()
|
||||
|
||||
-set(TestSource
|
||||
- testMinimizer.cxx
|
||||
- testADMinim.cxx
|
||||
-)
|
||||
+set(TestSource testMinimizer.cxx)
|
||||
+if (clad)
|
||||
+ list(APPEND TestSource testADMinim.cxx)
|
||||
+endif()
|
||||
|
||||
set(TestSourceMnTutorial
|
||||
MnTutorial/Quad1FMain.cxx
|
||||
diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
|
||||
index bf7c1d4089..deb5f67d23 100644
|
||||
--- a/tutorials/CMakeLists.txt
|
||||
+++ b/tutorials/CMakeLists.txt
|
||||
@@ -65,16 +65,18 @@ endfunction()
|
||||
|
||||
#---Tutorials disabled depending on the build components-------------
|
||||
if(NOT ROOT_minuit2_FOUND)
|
||||
- set(minuit2_veto fit/fit2dHist.C fit/fit2dHist.C
|
||||
- fit/fitCircle.C fit/minuit2FitBench2D.C
|
||||
+ set(minuit2_veto fit/fit2dHist.C fit/fitCircle.C
|
||||
fit/minuit2FitBench2D.C fit/minuit2FitBench.C
|
||||
- fit/minuit2FitBench.C fit/minuit2GausFit.C
|
||||
fit/minuit2GausFit.C fit/NumericalMinimization.C
|
||||
fit/combinedFit.C fit/TestBinomial.C
|
||||
fit/fitNormSum.C fit/vectorizedFit.C
|
||||
tutorials/roostats/rs_bernsteinCorrection.C)
|
||||
endif()
|
||||
|
||||
+if(NOT clad)
|
||||
+ set(clad_veto fit/minuit2GausFit.C)
|
||||
+endif()
|
||||
+
|
||||
if (NOT dataframe)
|
||||
# RDataFrame
|
||||
list(APPEND dataframe_veto dataframe/*.C dataframe/*.py)
|
||||
@@ -457,6 +459,7 @@ set(all_veto hsimple.C
|
||||
${spectrum_veto}
|
||||
${dataframe_veto}
|
||||
${macm1_veto}
|
||||
+ ${clad_veto}
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE tutorials RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.C)
|
||||
--
|
||||
2.39.2
|
||||
|
||||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (root-6.26.10.tar.xz) = 896727ce6da68871a52894a0a3c1b749fece9f08c8cefe62f5beac505710d579c41b84832a727a2ba39dab09e4456773c05b5b23a0fd859ace8062470653bbdb
|
||||
SHA512 (root-6.28.00.tar.xz) = 57e5e111e41d3942b63a9e038198e6cc91457d7724cc9dcf9673679b12b13acb6980e7786828a8527a292c018bd13af51854e83f99301f6bc5e4455cdc23c30e
|
||||
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue