Compare commits
No commits in common. "rawhide" and "f35" have entirely different histories.
52 changed files with 5127 additions and 2797 deletions
170
root-32bit-dataframe.patch
Normal file
170
root-32bit-dataframe.patch
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
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,7 +1,7 @@
|
|||
From 55446dcd6eabc1fff218f266c11f31697fe99f09 Mon Sep 17 00:00:00 2001
|
||||
From 70d941cd6ebbc3726e08ef7f52d0135453f0b840 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 13 Mar 2020 16:21:55 +0100
|
||||
Subject: [PATCH] Run tests on 32 bit
|
||||
Subject: [PATCH 2/3] Run tests on 32 bit
|
||||
|
||||
---
|
||||
test/stressGeometry.cxx | 8 --------
|
||||
|
|
@ -9,7 +9,7 @@ Subject: [PATCH] Run tests on 32 bit
|
|||
2 files changed, 3 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx
|
||||
index f8d78f4f54..617b9e1644 100644
|
||||
index 5e81f5f2ca..18e41a6f45 100644
|
||||
--- a/test/stressGeometry.cxx
|
||||
+++ b/test/stressGeometry.cxx
|
||||
@@ -257,14 +257,6 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg
|
||||
|
|
@ -28,26 +28,26 @@ index f8d78f4f54..617b9e1644 100644
|
|||
TString fname;
|
||||
for (i=0; i<NG; i++) {
|
||||
diff --git a/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt
|
||||
index 5bb222edc5..f29a17801d 100644
|
||||
index 0c1a39d01e..3bafe47934 100644
|
||||
--- a/tree/tree/test/CMakeLists.txt
|
||||
+++ b/tree/tree/test/CMakeLists.txt
|
||||
@@ -17,13 +17,9 @@ endif()
|
||||
@@ -12,13 +12,9 @@ ROOT_ADD_GTEST(testTOffsetGeneration TOffsetGeneration.cxx ElementStruct.cxx Ele
|
||||
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)
|
||||
-#FIXME: tests are having timeout on 32bit CERN VM (in docker container everything is fine),
|
||||
-# to be reverted after investigation.
|
||||
-if(NOT CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
- ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000)
|
||||
- ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
- ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
- ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct)
|
||||
-endif()
|
||||
+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000)
|
||||
+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
+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)
|
||||
ROOT_ADD_GTEST(testTBranch TBranch.cxx LIBRARIES RIO Tree MathCore)
|
||||
ROOT_ADD_GTEST(testTIOFeatures TIOFeatures.cxx LIBRARIES RIO Tree)
|
||||
--
|
||||
2.45.1
|
||||
2.24.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,49 +0,0 @@
|
|||
From f7bfa429deb9dbae9058998888bbcaa84af0ca08 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 2 Dec 2025 05:33:31 +0100
|
||||
Subject: [PATCH] Adjust test/stressGraphics.ref
|
||||
|
||||
---
|
||||
test/stressGraphics.ref | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref
|
||||
index 2498ec6d755..4520a5ab113 100644
|
||||
--- a/test/stressGraphics.ref
|
||||
+++ b/test/stressGraphics.ref
|
||||
@@ -10,11 +10,11 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN
|
||||
9 9253 100 14377 150 19851 2400 12199 900 9283 100
|
||||
10 8863 70 13645 100 24343 1100 23278 1700 8894 70
|
||||
11 12971 100 14750 50 34063 2000 32033 1200 13070 150
|
||||
- 12 7674 100 13533 50 83557 3000 38505 4000 7720 150
|
||||
- 13 5600 400 13242 300 16881 400 15063 800 5638 400
|
||||
+ 12 7674 100 13533 100 83557 3000 38505 4000 7720 150
|
||||
+ 13 5600 400 13242 400 16881 400 15063 800 5638 400
|
||||
14 14190539 4000000 12926 100 23076 9500 25987 3000 14190704 4000000
|
||||
15 15690 5000 17179 200 23076 9500 14232 1500 10437 5000
|
||||
- 16 28072 400 23520 200 44462 11000 30062 5000 38007 400
|
||||
+ 16 28072 400 23520 250 44462 11000 30062 5000 38007 400
|
||||
17 20444 400 21520 150 27511 11000 16867 600 20721 400
|
||||
18 15894 100 19305 200 27187 10300 15925 350 15925 100
|
||||
19 22521 300 42926 250 43868 17000 19232 11000 22729 300
|
||||
@@ -44,7 +44,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN
|
||||
43 207729 750 87126 750 76094 38000 54717 11000 210497 800
|
||||
44 401670 6500 156361 2000 62719 34100 45592 14000 410114 6500
|
||||
45 566142 5000 225206 2000 65828 31800 53934 6500 573396 5000
|
||||
- 46 3738751 35000 1292739 12000 60580 9900 133547 3500 3783013 35000
|
||||
+ 46 3738751 35000 1292739 13000 60580 9900 133547 3500 3783013 35000
|
||||
47 1466028 9000 853193 50000 38425 13500 91242 18100 1463263 7500
|
||||
48 38312 200 56877 750 36524 11800 119641 8000 38121 200
|
||||
49 19556 1000 31967 1000 36859 10000 37602 8000 19900 3000
|
||||
@@ -53,7 +53,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN
|
||||
52 270825 10000 115500 1000 45496 11000 34685 5000 272950 10000
|
||||
53 15025 3000 29289 500 42525 11300 33336 3900 14787 4000
|
||||
54 254604 5000 383258 7000 55666 30400 46534 6500 259594 7000
|
||||
- 55 4846 150 14075 150 33239 600 25303 500 4877 150
|
||||
+ 55 4846 150 14075 200 33239 600 25303 500 4877 150
|
||||
56 1435879 150000 12837 100 25830 100 365000 15000 1085792 250000
|
||||
57 5884 500 16577 200 40706 14000 30026 4000 5884 500
|
||||
58 5723 700 15720 200 32236 11000 16916 3200 5670 800
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 40f8cd0adeb7257778c789e1ae639f260780402b Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 7 Dec 2025 19:30:55 +0100
|
||||
Subject: [PATCH] Fix a numpy test for 32 bit archs
|
||||
|
||||
The default dtype used in numpy array is "int". This type has
|
||||
different sizes on 32 and 64 bit architectures. The test tries to use
|
||||
the numpy array as a Long64_t dataframe. On 32 bit architectures this
|
||||
results in an error.
|
||||
|
||||
This commit explicitly changes the numpy array's dtype to "int64" to
|
||||
match the Long64_t dataframe type on all architectyres.
|
||||
---
|
||||
bindings/pyroot/pythonizations/test/rdataframe_misc.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rdataframe_misc.py b/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
index 1a1efd21b3e..150828613b3 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
@@ -132,7 +132,7 @@ class RDataFrameMisc(unittest.TestCase):
|
||||
return
|
||||
out_path = "dataframe_misc_regression_gh20291.root"
|
||||
try:
|
||||
- x, y = numpy.array([1, 2, 3]), numpy.array([4, 5, 6])
|
||||
+ x, y = numpy.array([1, 2, 3], dtype='int64'), numpy.array([4, 5, 6], dtype='int64')
|
||||
df = ROOT.RDF.FromNumpy({"x": x, "y": y})
|
||||
|
||||
df.Snapshot("tree", out_path)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
From 0e1e1f0ba1908ae1020337ed7ec0565bf979b92c Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 2 Dec 2025 04:57:30 +0100
|
||||
Subject: [PATCH] [Geom] Add missing includes of TMath.h
|
||||
|
||||
---
|
||||
geom/geombuilder/src/TGeoParaEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoPconEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoPgonEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoTrapEditor.cxx | 1 +
|
||||
4 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/geom/geombuilder/src/TGeoParaEditor.cxx b/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
index fdc344ba4d2..bd173607d2c 100644
|
||||
--- a/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPara.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoPconEditor.cxx b/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
index a66359853be..50598d2cb90 100644
|
||||
--- a/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPcon.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGCanvas.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoPgonEditor.cxx b/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
index 949d0045a66..33638d66b2b 100644
|
||||
--- a/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPgon.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
#include "TGLabel.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoTrapEditor.cxx b/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
index d9c2916d075..459e0191117 100644
|
||||
--- a/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoTrap.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From f09b4ce027b31dcd19ea8a398c35c5dfbcc0507f Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 18 Dec 2025 11:49:12 +0100
|
||||
Subject: [PATCH] [PyROOT] Don't install the python modules twice
|
||||
|
||||
The binary python modules were moved one directory level down into the
|
||||
ROOT and cppyy directories, so that they reside alongside the python
|
||||
files in the same directories. The install rule for the python files
|
||||
must therefore be extended to exclude the binary modules (PATTERN *.so
|
||||
EXCLUDE) so that these are not installed a second time overwriting the
|
||||
files installed by the install rule for the binary modules with another
|
||||
copy with the wrong file permissions.
|
||||
|
||||
Also use the no-version option for the cppyy binary module as is
|
||||
already done for the pythonization binary module, since it is now
|
||||
installed in the python directory. Before it was installed in the
|
||||
library directory with an unversioned symlink in the python directory.
|
||||
---
|
||||
bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 2 +-
|
||||
bindings/pyroot/cppyy/cppyy/CMakeLists.txt | 5 +++--
|
||||
bindings/pyroot/pythonizations/CMakeLists.txt | 3 ++-
|
||||
3 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
index bb48c032974..065a89348ff 100644
|
||||
--- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
@@ -73,7 +73,7 @@ endif()
|
||||
add_library(cppyy SHARED src/CPyCppyyPyModule.cxx)
|
||||
|
||||
# Set the suffix to '.so' and the prefix to 'lib'
|
||||
-set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES}
|
||||
+set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES_NO_VERSION}
|
||||
LIBRARY_OUTPUT_DIRECTORY ${localruntimedir}/cppyy)
|
||||
if(MSVC)
|
||||
target_link_libraries(cppyy PRIVATE CPyCppyy)
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
index 3a29b4525f7..842ad12df97 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
@@ -31,8 +31,9 @@ endforeach()
|
||||
# Install Python sources and bytecode
|
||||
install(DIRECTORY ${localruntimedir}/cppyy
|
||||
DESTINATION ${CMAKE_INSTALL_PYTHONDIR}
|
||||
- COMPONENT libraries)
|
||||
+ COMPONENT libraries
|
||||
+ PATTERN *.so EXCLUDE)
|
||||
|
||||
if(NOT MSVC)
|
||||
ROOT_ADD_TEST_SUBDIRECTORY(test)
|
||||
-endif()
|
||||
\ No newline at end of file
|
||||
+endif()
|
||||
diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
index 1230f18ca47..b415ba13697 100644
|
||||
--- a/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
@@ -239,7 +239,8 @@ install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
# Install Python sources and bytecode
|
||||
install(DIRECTORY ${localruntimedir}/ROOT
|
||||
DESTINATION ${CMAKE_INSTALL_PYTHONDIR}
|
||||
- COMPONENT libraries)
|
||||
+ COMPONENT libraries
|
||||
+ PATTERN *.so EXCLUDE)
|
||||
|
||||
# Install headers required by pythonizations
|
||||
install(FILES ${PYROOT_EXTRA_HEADERS}
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
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
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
From d5135f7869406396b3ba8e944c71dbdd67d3ea01 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Tue, 23 Dec 2025 19:04:45 +0100
|
||||
Subject: [PATCH] [Python] Fix TF1 Pythonization test for NumPy 2.4.0
|
||||
|
||||
The new NumPy 2.4.0 is more strict when implicitly converting 1-element
|
||||
arrays to scalars. It doesn't do that anymore, causing the TF1
|
||||
Pythonization tests to fail (see log below).
|
||||
|
||||
This actually pointed to a real mistake in setting up the test, where a
|
||||
2D array was used to define the TFormula parameters while it should be a
|
||||
1D array.
|
||||
|
||||
```txt
|
||||
962/3718 Test #93: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..............................***Failed 3.05 sec
|
||||
test_callable (tf_pycallables.TF1.test_callable)
|
||||
Test function provided as callable ... ok
|
||||
test_evalpar (tf_pycallables.TF1.test_evalpar)
|
||||
Test the 2D Numpy array pythonizations for TF1::EvalPar ... ERROR
|
||||
test_evalpar_dynamic (tf_pycallables.TF1.test_evalpar_dynamic)
|
||||
Test the 2D NumPy pythonizations with dynamic TF1 data dimensions ... ok
|
||||
test_fitgauss (tf_pycallables.TF1.test_fitgauss)
|
||||
Test fitting a histogram to a Python function ... ok
|
||||
test_identity (tf_pycallables.TF1.test_identity)
|
||||
Test simple function without parameters ... ok
|
||||
test_params (tf_pycallables.TF1.test_params)
|
||||
Test function with parameters ... ok
|
||||
test_params (tf_pycallables.TF2.test_params)
|
||||
Test function with parameters ... ok
|
||||
test_params (tf_pycallables.TF3.test_params)
|
||||
Test function with parameters ... ok
|
||||
|
||||
======================================================================
|
||||
ERROR: test_evalpar (tf_pycallables.TF1.test_evalpar)
|
||||
Test the 2D Numpy array pythonizations for TF1::EvalPar
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 129, in test_evalpar
|
||||
expected_value = pyf_tf1_coulomb(x[i, ::2], params)
|
||||
File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 33, in pyf_tf1_coulomb
|
||||
return p[1] * x[0] * x[1] / (p[0]**2) * math.exp(-p[2] / p[0])
|
||||
~~~~~~~~^^^^^^^^^^^^^^
|
||||
TypeError: only 0-dimensional arrays can be converted to Python scalars
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 1.469s
|
||||
|
||||
FAILED (errors=1)
|
||||
CMake Error at /github/home/ROOT-CI/src/cmake/modules/RootTestDriver.cmake:232 (message):
|
||||
error code: 1
|
||||
|
||||
```
|
||||
---
|
||||
.../pyroot/pythonizations/test/tf_pycallables.py | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/tf_pycallables.py b/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
index 2a7d6b72462..5a223030ec9 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
@@ -116,11 +116,13 @@ class TF1(unittest.TestCase):
|
||||
[3.0, 10, 4.0]
|
||||
])
|
||||
|
||||
- params = np.array([
|
||||
- [1.0], # Distance between charges r
|
||||
- [8.99e9], # Coulomb constant k (in N·m²/C²)
|
||||
- [0.1] # Additional factor for modulation
|
||||
- ])
|
||||
+ params = np.array(
|
||||
+ [
|
||||
+ 1.0, # Distance between charges r
|
||||
+ 8.99e9, # Coulomb constant k (in N·m²/C²)
|
||||
+ 0.1, # Additional factor for modulation
|
||||
+ ]
|
||||
+ )
|
||||
|
||||
# Slice to avoid the dummy column of 10's
|
||||
res = rtf1_coulomb.EvalPar(x[:, ::2], params)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From e1f42658629ad67ce7cb224a1379d133f61f2e35 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Sun, 11 Jan 2026 10:25:51 +0100
|
||||
Subject: [PATCH] [RF] Use TRandom3 in test RooFuncWrapper
|
||||
|
||||
Use TRandom3 instead of the `<random>` to get compiler-independent,
|
||||
reproducible behavior.
|
||||
---
|
||||
roofit/roofitcore/test/testRooFuncWrapper.cxx | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/test/testRooFuncWrapper.cxx b/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
index 2ebdf95333f..189e8f2e266 100644
|
||||
--- a/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
@@ -34,12 +34,12 @@
|
||||
#include <RooWorkspace.h>
|
||||
|
||||
#include <ROOT/StringUtils.hxx>
|
||||
+#include <TMath.h>
|
||||
#include <TROOT.h>
|
||||
+#include <TRandom3.h>
|
||||
#include <TSystem.h>
|
||||
-#include <TMath.h>
|
||||
|
||||
#include <functional>
|
||||
-#include <random>
|
||||
|
||||
#include "gtest_wrapper.h"
|
||||
|
||||
@@ -66,13 +66,13 @@ double getNumDerivative(const RooAbsReal &pdf, RooRealVar &var, const RooArgSet
|
||||
|
||||
void randomizeParameters(const RooArgSet ¶meters)
|
||||
{
|
||||
+ TRandom3 rng(1337);
|
||||
+
|
||||
double lowerBound = -0.1;
|
||||
double upperBound = 0.1;
|
||||
- std::uniform_real_distribution<double> unif(lowerBound, upperBound);
|
||||
- std::default_random_engine re;
|
||||
|
||||
for (auto *param : parameters) {
|
||||
- double mul = unif(re);
|
||||
+ double mul = rng.Uniform(lowerBound, upperBound);
|
||||
|
||||
auto par = dynamic_cast<RooAbsRealLValue *>(param);
|
||||
if (!par)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
From 4da50ef374cd231163dff77493f9367cd62583d9 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 30 Mar 2025 21:23:14 +0200
|
||||
Subject: [PATCH] Revert "[test] Fetch the geometries from EOS and not from the
|
||||
website"
|
||||
|
||||
This reverts commit a8a879ce252e45405452db38d9178c7883582a7d.
|
||||
---
|
||||
test/stressGeometry.cxx | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx
|
||||
index 7fb6bf97e7..f8d78f4f54 100644
|
||||
--- a/test/stressGeometry.cxx
|
||||
+++ b/test/stressGeometry.cxx
|
||||
@@ -1,6 +1,6 @@
|
||||
// Program to check a TGeo geometry
|
||||
// The first time you run this program, the geometry files will be taken
|
||||
-// from /eos/root-eos/testfiles/ (previously from http://root.cern/files)
|
||||
+// from http://root.cern/files
|
||||
//
|
||||
// How the program works
|
||||
// If the file <geom_name>_ref.root does not exist, it is generated. The file
|
||||
@@ -274,13 +274,13 @@ void stressGeometry(const char *exp="*", Bool_t generate_ref=kFALSE, Bool_t vecg
|
||||
delete gGeoManager;
|
||||
gGeoManager = 0;
|
||||
}
|
||||
- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles/%s",fname.Data()));
|
||||
+ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data()));
|
||||
if (!gGeoManager) return;
|
||||
if (vecgeom) TVirtualGeoConverter::Instance()->ConvertGeometry();
|
||||
|
||||
fname = TString::Format("files/%s_ref_%d.root", exps[i],versions[i]);
|
||||
|
||||
- if (gen_ref || !TFile::Open(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) {
|
||||
+ if (gen_ref || !TFile::Open(Form("http://root.cern/files/%s_ref_%d.root",exps[i],versions[i]),"CACHEREAD")) {
|
||||
if (!gen_ref) fprintf(stderr,"File: %s does not exist, generating it\n", fname.Data());
|
||||
else fprintf(stderr,"Generating reference file %s\n", fname.Data());
|
||||
WriteRef(i);
|
||||
@@ -320,7 +320,7 @@ void ReadRef(Int_t kexp) {
|
||||
TFile *f = 0;
|
||||
//use ref_[version[i]] files
|
||||
if (!gen_ref)
|
||||
- fname = TString::Format("root://eospublic.cern.ch//eos/root-eos/testfiles//%s_ref_%d.root", exps[kexp],versions[kexp]);
|
||||
+ fname = TString::Format("http://root.cern/files/%s_ref_%d.root", exps[kexp],versions[kexp]);
|
||||
else
|
||||
fname.Format("files/%s_ref_%d.root", exps[kexp],versions[kexp]);
|
||||
|
||||
@@ -546,7 +546,7 @@ void InspectDiff(const char* exp="alice",Long64_t ientry=-1) {
|
||||
Float_t rad = 0.;
|
||||
TString fname(TString::Format("%s.root",exp));
|
||||
if (gSystem->AccessPathName(fname)) {
|
||||
- TGeoManager::Import(Form("root://eospublic.cern.ch//eos/root-eos/testfiles//%s",fname.Data()));
|
||||
+ TGeoManager::Import(Form("http://root.cern/files/%s",fname.Data()));
|
||||
} else {
|
||||
TGeoManager::Import(fname);
|
||||
}
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From 98a5042a02dd7c1aaa9fbd5e54c8620c6b72484f Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 2 Jun 2025 21:22:39 +0200
|
||||
Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel
|
||||
|
||||
---
|
||||
core/clingutils/test/CMakeLists.txt | 3 +++
|
||||
interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt | 6 ++++++
|
||||
2 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/core/clingutils/test/CMakeLists.txt b/core/clingutils/test/CMakeLists.txt
|
||||
index a6c7aedac99..90ac0139c24 100644
|
||||
--- a/core/clingutils/test/CMakeLists.txt
|
||||
+++ b/core/clingutils/test/CMakeLists.txt
|
||||
@@ -36,3 +36,6 @@ if(NOT builtin_clang)
|
||||
endif()
|
||||
|
||||
ROOT_ADD_UNITTEST_DIR(Core ${CLING_LIBRARIES} $<TARGET_OBJECTS:ClingUtils>)
|
||||
+
|
||||
+# Save memory. Do not link to LLVM libraries in parallel
|
||||
+add_dependencies(coreclingutilstestUnit CppInterOpTests)
|
||||
diff --git a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt
|
||||
index 4b4b43bdd29..a028802fedc 100644
|
||||
--- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt
|
||||
+++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt
|
||||
@@ -66,6 +66,9 @@ target_link_libraries(CppInterOpTests
|
||||
clangCppInterOp
|
||||
)
|
||||
|
||||
+# Save memory. Do not link to LLVM libraries in parallel
|
||||
+add_dependencies(CppInterOpTests DynamicLibraryManagerTests)
|
||||
+
|
||||
set_output_directory(CppInterOpTests
|
||||
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES}
|
||||
LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${EXTRA_PATH_TEST_BINARIES}
|
||||
@@ -129,5 +132,8 @@ set_output_directory(DynamicLibraryManagerTests
|
||||
|
||||
add_dependencies(DynamicLibraryManagerTests TestSharedLib)
|
||||
|
||||
+# Save memory. Do not link to LLVM libraries in parallel
|
||||
+add_dependencies(DynamicLibraryManagerTests Cling)
|
||||
+
|
||||
#export_executable_symbols_for_plugins(TestSharedLib)
|
||||
add_subdirectory(TestSharedLib)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From fd18e83ae79760f7e8cca6f28b6d0f89d912b152 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Wed, 26 Nov 2025 12:40:03 +0100
|
||||
Subject: [PATCH] [VecOps] Remove outdated `IsSmall` helper function in tests
|
||||
|
||||
The commit 2605710bea7b1 changed from using the `ROOT::Detail::VecOps::`
|
||||
namespace explicitly for `IsSmall` to a `using` statement. However,
|
||||
there was also a remnant `IsSmall` function with an outdated
|
||||
implementation in the test file itself, which we can now remove.
|
||||
---
|
||||
math/vecops/test/vecops_rvec.cxx | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx
|
||||
index 034f06ca211..432c673a553 100644
|
||||
--- a/math/vecops/test/vecops_rvec.cxx
|
||||
+++ b/math/vecops/test/vecops_rvec.cxx
|
||||
@@ -1493,13 +1493,6 @@ TEST(VecOps, Construct)
|
||||
EXPECT_TRUE(fourVects[2] == ref2);
|
||||
}
|
||||
|
||||
-bool IsSmall(const RVec<int> &v)
|
||||
-{
|
||||
- // the first array element is right after the 3 data members of SmallVectorBase
|
||||
- return reinterpret_cast<std::uintptr_t>(v.begin()) - reinterpret_cast<std::uintptr_t>(&v) ==
|
||||
- sizeof(void *) + 2 * sizeof(int);
|
||||
-}
|
||||
-
|
||||
// this is a regression test for https://github.com/root-project/root/issues/6796
|
||||
TEST(VecOps, MemoryAdoptionAndClear)
|
||||
{
|
||||
--
|
||||
2.52.0
|
||||
|
||||
37
root-avoid-deleting-TFormulas-twice.patch
Normal file
37
root-avoid-deleting-TFormulas-twice.patch
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
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
|
||||
|
||||
50
root-avoid-race-condition-tutorial-roofit-rf512.patch
Normal file
50
root-avoid-race-condition-tutorial-roofit-rf512.patch
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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
|
||||
|
||||
40
root-big-endian-byte-swap.patch
Normal file
40
root-big-endian-byte-swap.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
From d9e03aad7a5132fe9db9992eecb47ee4e91c354c 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(-)
|
||||
|
||||
diff --git a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
index 3b0a30cdb0..23e41d746f 100644
|
||||
--- a/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
+++ b/tmva/sofie_parsers/src/RModelParser_ONNX.cxx
|
||||
@@ -1,3 +1,4 @@
|
||||
+#include "Byteswap.h"
|
||||
#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);
|
||||
|
||||
- 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));
|
||||
+#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]);
|
||||
+#endif
|
||||
}else{
|
||||
tensorproto->mutable_float_data()->ExtractSubrange(0, tensorproto->float_data_size(), static_cast<float*>(data.get()));
|
||||
}
|
||||
--
|
||||
2.35.1
|
||||
|
||||
31
root-core-base-test.patch
Normal file
31
root-core-base-test.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
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,109 +0,0 @@
|
|||
From 251de0f8b237ce041df4960f831fe4a1fade6d92 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Sat, 6 Dec 2025 17:39:40 +0100
|
||||
Subject: [PATCH] [cppyy] Remove code related to finding CPyCppyy API header
|
||||
path
|
||||
|
||||
This is not needed for ROOT, because the CPyCppyy API headers are
|
||||
installed with the other ROOT headers anyway, and ROOT knows where to
|
||||
find them already.
|
||||
---
|
||||
.../cppyy/cppyy/python/cppyy/__init__.py | 82 -------------------
|
||||
1 file changed, 82 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
index 68e3c49e5fe..c8dd458bfdd 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
@@ -297,88 +297,6 @@ elif ispypy:
|
||||
if os.path.exists(apipath) and os.path.exists(os.path.join(apipath, 'Python.h')):
|
||||
add_include_path(apipath)
|
||||
|
||||
-# add access to extra headers for dispatcher (CPyCppyy only (?))
|
||||
-if not ispypy:
|
||||
- try:
|
||||
- apipath_extra = os.environ['CPPYY_API_PATH']
|
||||
- if os.path.basename(apipath_extra) == 'CPyCppyy':
|
||||
- apipath_extra = os.path.dirname(apipath_extra)
|
||||
- except KeyError:
|
||||
- apipath_extra = None
|
||||
-
|
||||
- if apipath_extra is None:
|
||||
- try:
|
||||
- if 0x30a0000 <= sys.hexversion:
|
||||
- import importlib.metadata as m
|
||||
-
|
||||
- for p in m.files('CPyCppyy'):
|
||||
- if p.match('API.h'):
|
||||
- ape = p.locate()
|
||||
- break
|
||||
- del p, m
|
||||
- else:
|
||||
- import pkg_resources as pr
|
||||
-
|
||||
- d = pr.get_distribution('CPyCppyy')
|
||||
- for line in d.get_metadata_lines('RECORD'):
|
||||
- if 'API.h' in line:
|
||||
- ape = os.path.join(d.location, line[0:line.find(',')])
|
||||
- break
|
||||
- del line, d, pr
|
||||
-
|
||||
- if os.path.exists(ape):
|
||||
- apipath_extra = os.path.dirname(os.path.dirname(ape))
|
||||
- del ape
|
||||
- except Exception:
|
||||
- pass
|
||||
-
|
||||
- if apipath_extra is None:
|
||||
- ldversion = sysconfig.get_config_var('LDVERSION')
|
||||
- if not ldversion:
|
||||
- ldversion = sys.version[:3]
|
||||
-
|
||||
- apipath_extra = os.path.join(os.path.dirname(apipath), 'site', 'python'+ldversion)
|
||||
- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
|
||||
- import glob
|
||||
- import platform
|
||||
-
|
||||
- if platform.system() == "Windows":
|
||||
- # Install locations are handled differently on Windows
|
||||
- import libcppyy
|
||||
-
|
||||
- ape = os.path.dirname(libcppyy.__file__)
|
||||
- else:
|
||||
- import cppyy.libcppyy as libcppyy
|
||||
-
|
||||
- ape = os.path.dirname(libcppyy.__file__)
|
||||
- # a "normal" structure finds the include directory up to 3 levels up,
|
||||
- # ie. dropping lib/pythonx.y[md]/site-packages
|
||||
- for i in range(3):
|
||||
- if os.path.exists(os.path.join(ape, 'include')):
|
||||
- break
|
||||
- ape = os.path.dirname(ape)
|
||||
-
|
||||
- ape = os.path.join(ape, 'include')
|
||||
- if os.path.exists(os.path.join(ape, 'CPyCppyy')):
|
||||
- apipath_extra = ape
|
||||
- else:
|
||||
- # add back pythonx.y or site/pythonx.y if present
|
||||
- for p in glob.glob(os.path.join(ape, 'python'+sys.version[:3]+'*'))+\
|
||||
- glob.glob(os.path.join(ape, '*', 'python'+sys.version[:3]+'*')):
|
||||
- if os.path.exists(os.path.join(p, 'CPyCppyy')):
|
||||
- apipath_extra = p
|
||||
- break
|
||||
-
|
||||
- if apipath_extra.lower() != 'none':
|
||||
- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
|
||||
- warnings.warn("CPyCppyy API not found (tried: %s); "
|
||||
- "set CPPYY_API_PATH envar to the 'CPyCppyy' API directory to fix"
|
||||
- % apipath_extra)
|
||||
- else:
|
||||
- add_include_path(apipath_extra)
|
||||
-
|
||||
- del apipath_extra
|
||||
-
|
||||
if os.getenv('CONDA_PREFIX'):
|
||||
# MacOS, Linux
|
||||
include_path = os.path.join(os.getenv('CONDA_PREFIX'), 'include')
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From f4577e76a5dc23842d6be0a82df804f71fc820ef Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Mon, 1 Dec 2025 16:51:36 +0100
|
||||
Subject: [PATCH] [cppyy] Remove now irrelevant `load_cpp_backend()` call
|
||||
|
||||
As we don't have a separate `cppyy_backend` anymore (neither as a Python
|
||||
package, nor as a shared library), trying to load the backend library
|
||||
will always give an exception that will be caught as an `ImportError`.
|
||||
|
||||
It would be cleaner if this code branch is not even taken.
|
||||
---
|
||||
.../cppyy/cppyy/python/cppyy/_cpython_cppyy.py | 12 ------------
|
||||
1 file changed, 12 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
index bac078ea7c9..f98a34a697c 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
@@ -19,24 +19,12 @@ __all__ = [
|
||||
'_end_capture_stderr'
|
||||
]
|
||||
|
||||
-# First load the dependency libraries of the backend, then pull in the libcppyy
|
||||
-# extension module. If the backed can't be loaded, it was probably linked
|
||||
-# statically into the extension module, so we don't error out at this point.
|
||||
-try:
|
||||
- from cppyy_backend import loader
|
||||
- c = loader.load_cpp_backend()
|
||||
-except ImportError:
|
||||
- c = None
|
||||
-
|
||||
if platform.system() == "Windows":
|
||||
# On Windows, the library has to be searched without prefix
|
||||
import libcppyy as _backend
|
||||
else:
|
||||
import cppyy.libcppyy as _backend
|
||||
|
||||
-if c is not None:
|
||||
- _backend._cpp_backend = c
|
||||
-
|
||||
# explicitly expose APIs from libcppyy
|
||||
_w = ctypes.CDLL(_backend.__file__, ctypes.RTLD_GLOBAL)
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
45
root-dataframe-callback.patch
Normal file
45
root-dataframe-callback.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
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
|
||||
|
||||
48
root-different-filename.patch
Normal file
48
root-different-filename.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
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
|
||||
|
||||
33
root-endian-warn.patch
Normal file
33
root-endian-warn.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
|
||||
63
root-fix-compilation-with-gcc-12.patch
Normal file
63
root-fix-compilation-with-gcc-12.patch
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
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
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From ddc155795baa9d4690717c204e54a7fd4600c688 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 17 Jan 2022 18:49:30 +0100
|
||||
Subject: [PATCH] Fix test failure on ppc64le and aarch64 with gcc 12
|
||||
|
||||
.../hist/hist/test/test_tprofile2poly.cxx:61: Failure
|
||||
The difference between cont1 and cont2 is 1.4551915228366852e-11, which exceeds delta, where
|
||||
cont1 evaluates to 54886.064319363642,
|
||||
cont2 evaluates to 54886.064319363628, and
|
||||
delta evaluates to 9.999999960041972e-12.
|
||||
.../hist/hist/test/test_tprofile2poly.cxx:61: Failure
|
||||
The difference between cont1 and cont2 is 1.4551915228366852e-11, where
|
||||
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(-)
|
||||
|
||||
diff --git a/hist/hist/test/test_tprofile2poly.cxx b/hist/hist/test/test_tprofile2poly.cxx
|
||||
index 40cb3052a2..5150da0bea 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) {
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
// test overflow
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,32 +0,0 @@
|
|||
From 7b1632f5602a1bb6e6278d66c25640349c852ab1 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 9 Jan 2026 00:32:27 +0100
|
||||
Subject: [PATCH] Starting with gcc 16, libstdc++ links to libatomic. Add to
|
||||
whitelist.
|
||||
|
||||
$ ldd /lib64/libstdc++.so.6
|
||||
linux-vdso.so.1 (0x00007f3cb4c13000)
|
||||
libm.so.6 => /lib64/libm.so.6 (0x00007f3cb4afc000)
|
||||
libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f3cb4af1000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x00007f3cb460d000)
|
||||
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3cb4ac5000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007f3cb4c15000)
|
||||
---
|
||||
bindings/pyroot/pythonizations/test/import_load_libs.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/import_load_libs.py b/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
index 63feeca89ba..18906ff921e 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
@@ -77,6 +77,7 @@ class ImportLoadLibs(unittest.TestCase):
|
||||
"ld.*",
|
||||
"libffi",
|
||||
"libgcc_s",
|
||||
+ "libatomic",
|
||||
# AddressSanitizer runtime and ROOT configuration
|
||||
"libclang_rt.asan-.*",
|
||||
"libROOTSanitizerConfig",
|
||||
--
|
||||
2.52.0
|
||||
|
||||
245
root-get-rid-of-lsb_release.patch
Normal file
245
root-get-rid-of-lsb_release.patch
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
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
|
||||
|
||||
36
root-ignore-prefix.patch
Normal file
36
root-ignore-prefix.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
|
||||
36
root-jsmva-static.patch
Normal file
36
root-jsmva-static.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
diff -ur root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py
|
||||
--- root-6.24.02.orig/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/bindings/jsmva/python/JsMVA/JPyInterface.py 2021-08-11 09:06:21.894746090 +0200
|
||||
@@ -188,7 +188,7 @@
|
||||
## Class for creating the output scripts and inserting them to cell output
|
||||
class JsDraw:
|
||||
## Base repository
|
||||
- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest"
|
||||
+ __jsMVARepo = "/static/JsMVA"
|
||||
|
||||
## String containing the link to JavaScript files
|
||||
__jsMVASourceDir = __jsMVARepo + "/js"
|
||||
diff -ur root-6.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py
|
||||
--- root-6.24.02.orig/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/bindings/pyroot_legacy/JsMVA/JPyInterface.py 2021-08-11 09:06:21.925746168 +0200
|
||||
@@ -188,7 +188,7 @@
|
||||
## Class for creating the output scripts and inserting them to cell output
|
||||
class JsDraw:
|
||||
## Base repository
|
||||
- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest"
|
||||
+ __jsMVARepo = "/static/JsMVA"
|
||||
|
||||
## String containing the link to JavaScript files
|
||||
__jsMVASourceDir = __jsMVARepo + "/js"
|
||||
diff -ur root-6.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js
|
||||
--- root-6.24.02.orig/etc/notebook/JsMVA/js/JsMVA.js 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/etc/notebook/JsMVA/js/JsMVA.js 2021-08-11 09:10:45.638410266 +0200
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
(function(factory){
|
||||
|
||||
- var JSROOT_source_dir = "https://root.cern/js/5.9.1/scripts/";
|
||||
+ var JSROOT_source_dir = "/static/scripts/";
|
||||
|
||||
var url = "";
|
||||
if (requirejs.s.contexts.hasOwnProperty("_")) {
|
||||
42
root-longlong.patch
Normal file
42
root-longlong.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
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
|
||||
|
||||
147
root-make-dyld-based-library-search-behavior-default.patch
Normal file
147
root-make-dyld-based-library-search-behavior-default.patch
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
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
|
||||
|
||||
30
root-memory-usage.patch
Normal file
30
root-memory-usage.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
From 5618a02bd7ca4107f545e07a19b8a0762f31e45a Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Mon, 16 Aug 2021 19:45:00 +0200
|
||||
Subject: [PATCH] Reduce memory usage for all builds - not only debug builds
|
||||
|
||||
---
|
||||
core/metacling/src/CMakeLists.txt | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
|
||||
index 8cbbe4ba08..f205b24602 100644
|
||||
--- a/core/metacling/src/CMakeLists.txt
|
||||
+++ b/core/metacling/src/CMakeLists.txt
|
||||
@@ -107,11 +107,8 @@ ROOT_LINKER_LIBRARY(Cling
|
||||
$<TARGET_OBJECTS:MetaCling>
|
||||
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
|
||||
|
||||
-string(TOUPPER "${LLVM_BUILD_TYPE}" THE_BUILD_TYPE)
|
||||
-if("${THE_BUILD_TYPE}" STREQUAL DEBUG OR "${THE_BUILD_TYPE}" STREQUAL RELWITHDEBINFO)
|
||||
- # When these two link at the same time, they can exhaust the RAM on many machines, since they both link against llvm.
|
||||
- add_dependencies(Cling rootcling_stage1)
|
||||
-endif()
|
||||
+# When these two link at the same time, they can exhaust the RAM on many machines, since they both link against llvm.
|
||||
+add_dependencies(Cling rootcling_stage1)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
--
|
||||
2.35.1
|
||||
|
||||
31
root-namespace-pymva.patch
Normal file
31
root-namespace-pymva.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
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
|
||||
|
||||
43
root-namespace-roofit.patch
Normal file
43
root-namespace-roofit.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
|
||||
30
root-namespace-sofie.patch
Normal file
30
root-namespace-sofie.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,53 +1,30 @@
|
|||
From b4e57c8ccd59d69fe61fa5f6470b3a99ba52aeeb Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 4 Dec 2025 23:13:28 +0100
|
||||
Subject: [PATCH] Dont export Python modules
|
||||
|
||||
---
|
||||
bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 3 +--
|
||||
bindings/pyroot/pythonizations/CMakeLists.txt | 8 +-------
|
||||
2 files changed, 2 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
index bb48c032974..c34069855b2 100644
|
||||
--- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
@@ -119,8 +119,7 @@ install(TARGETS CPyCppyy EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
||||
diff -ur root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt root-6.24.02/bindings/jupyroot/CMakeLists.txt
|
||||
--- root-6.24.02.orig/bindings/jupyroot/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/bindings/jupyroot/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
|
||||
@@ -70,8 +70,7 @@
|
||||
endforeach()
|
||||
|
||||
-install(TARGETS cppyy EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
- RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries # Windows
|
||||
+install(TARGETS cppyy RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries # Windows
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR}/cppyy COMPONENT libraries)
|
||||
# Install library
|
||||
- install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
|
||||
+ install(TARGETS ${libname} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
index 1230f18ca47..2df4b733320 100644
|
||||
--- a/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
@@ -202,11 +202,6 @@ foreach(py_source ${py_sources})
|
||||
COMMENT "Compiling PyROOT source ${py_source} for Python ${Python3_VERSION}")
|
||||
endforeach()
|
||||
diff -ur root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
--- root-6.24.02.orig/bindings/pyroot/pythonizations/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/bindings/pyroot/pythonizations/CMakeLists.txt 2021-08-11 10:53:03.272202496 +0200
|
||||
@@ -137,11 +137,10 @@
|
||||
# Create meta-target PyROOT2 and PyROOT3 (INTERFACE library)
|
||||
# Export of targets are not supported for custom targets(add_custom_targets())
|
||||
add_library(PyROOT${python_major_version_string} INTERFACE)
|
||||
- target_link_libraries(PyROOT${python_major_version_string} INTERFACE cppyy_backend${python_under_version_string} cppyy${python_under_version_string} ROOTPythonizations${python_under_version_string})
|
||||
+ target_link_libraries(PyROOT${python_major_version_string} INTERFACE cppyy_backend${python_under_version_string} cppyy${python_under_version_string})
|
||||
|
||||
-# Create meta-target PyROOT3 (INTERFACE library)
|
||||
-# Export of targets are not supported for custom targets(add_custom_targets())
|
||||
-add_library(PyROOT INTERFACE)
|
||||
-target_link_libraries(PyROOT INTERFACE cppyy_backend cppyy ROOTPythonizations)
|
||||
-
|
||||
# Define library output directories for build and install trees
|
||||
set(pymoduledir_build "${localruntimedir}/ROOT")
|
||||
set(pymoduledir_install "${CMAKE_INSTALL_PYTHONDIR}/ROOT")
|
||||
@@ -231,8 +226,7 @@ if(NOT MSVC)
|
||||
endif()
|
||||
# Install library
|
||||
- install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
|
||||
+ install(TARGETS ${libname} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
|
||||
|
||||
# Install library
|
||||
-install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
- RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries
|
||||
+install(TARGETS ${libname} RUNTIME DESTINATION ${pymoduledir_install} COMPONENT libraries
|
||||
LIBRARY DESTINATION ${pymoduledir_install} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${pymoduledir_install} COMPONENT libraries)
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
|
|||
39
root-ntuplewait.patch
Normal file
39
root-ntuplewait.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
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
|
||||
|
||||
477
root-old-gtest-compat.patch
Normal file
477
root-old-gtest-compat.patch
Normal file
|
|
@ -0,0 +1,477 @@
|
|||
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
|
||||
|
||||
46
root-older-python.patch
Normal file
46
root-older-python.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
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
|
||||
|
||||
42
root-rcolor-static-init.patch
Normal file
42
root-rcolor-static-init.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
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
|
||||
|
||||
74
root-roofit-tutorial.patch
Normal file
74
root-roofit-tutorial.patch
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
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
|
||||
|
||||
31
root-symbol-rewrite.patch
Normal file
31
root-symbol-rewrite.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
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
|
||||
|
||||
110
root-test-timeout.patch
Normal file
110
root-test-timeout.patch
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
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 2400)
|
||||
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
|
||||
|
||||
|
|
@ -72,7 +72,14 @@ wget -N ${SITE}/tesla.root
|
|||
wget -N ${SITE}/wa91_ref_3.root
|
||||
wget -N ${SITE}/wa91.root
|
||||
|
||||
wget -N ${SITE}/AtlasGraphs.root
|
||||
wget -N ${SITE}/europe.root
|
||||
wget -N ${SITE}/Higgs_data.root
|
||||
wget -N ${SITE}/linearIO.root
|
||||
wget -N ${SITE}/stressHistogram.5.18.00.root
|
||||
wget -N ${SITE}/tmva_class_example.root
|
||||
wget -N ${SITE}/tmva_multiclass_example.root
|
||||
wget -N ${SITE}/tmva_reg_example.root
|
||||
wget -N ${SITE}/usa.root
|
||||
|
||||
for f in *.root ; do ln -s $f $f.ROOT.cachefile ; done
|
||||
|
|
|
|||
48
root-threadsh1-avoid-heap-use-after-free.patch
Normal file
48
root-threadsh1-avoid-heap-use-after-free.patch
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
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
|
||||
|
||||
79
root-tmva-threads.patch
Normal file
79
root-tmva-threads.patch
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
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
|
||||
|
||||
202
root-unbundle-gtest.patch
Normal file
202
root-unbundle-gtest.patch
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
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
|
||||
|
||||
43
root-uring-warn.patch
Normal file
43
root-uring-warn.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
|
||||
25
root-use-unique-filenames-in-fillrandom-tutorials.patch
Normal file
25
root-use-unique-filenames-in-fillrandom-tutorials.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
From 44c501ac9fdb9049783d9738a9603eec572f52f0 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Wed, 26 Nov 2025 18:11:25 +0100
|
||||
Subject: [PATCH] [vecops] Adaptive size of long RVec instances in RVec test
|
||||
|
||||
For the tests to make sense, some vectors need to be longer than the
|
||||
maximum small vector size. This maximum size is compiler and
|
||||
architecture dependent. For `RVec<int>` on ARM64 with gcc 14, the
|
||||
small vector capacity turns out to be 60, which is larger than the
|
||||
current test vector size of 18.
|
||||
|
||||
Therefore, the test is refactored to adapt the large vector size
|
||||
automatically, according to the maximum small vector size.
|
||||
---
|
||||
math/vecops/test/vecops_rvec.cxx | 81 +++++++++++++++++++++++++-------
|
||||
1 file changed, 63 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx
|
||||
index 432c673a553..8cbe36ee6d8 100644
|
||||
--- a/math/vecops/test/vecops_rvec.cxx
|
||||
+++ b/math/vecops/test/vecops_rvec.cxx
|
||||
@@ -1672,15 +1672,35 @@ TEST_P(VecOpsSwap, BothSmallVectors)
|
||||
|
||||
TEST_P(VecOpsSwap, BothRegularVectors)
|
||||
{
|
||||
- RVec<int> fixed_vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3};
|
||||
- RVec<int> fixed_vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- RVec<int> fixed_vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7};
|
||||
+ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize<int>::value;
|
||||
+
|
||||
+ // The number of elemens in the large RVecs will be the smallest multiple of
|
||||
+ // three that larger than smallVecSize.
|
||||
+ constexpr int nCycle = 3;
|
||||
+ constexpr std::size_t nElems = ((smallVecSize / nCycle) + 1) * nCycle;
|
||||
+
|
||||
+ RVec<int> fixed_vreg1(nElems);
|
||||
+ RVec<int> fixed_vreg2(nElems);
|
||||
+ RVec<int> fixed_vreg3(nElems + 1);
|
||||
RVec<int> fixed_vmocksmall{0, 7};
|
||||
|
||||
- RVec<int> vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3};
|
||||
- RVec<int> vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- RVec<int> vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7};
|
||||
- RVec<int> vmocksmall{0, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 7, 8, 9, 7, 8, 9};
|
||||
+ RVec<int> vreg1(nElems);
|
||||
+ RVec<int> vreg2(nElems);
|
||||
+ RVec<int> vreg3(nElems + 1);
|
||||
+ RVec<int> vmocksmall(nElems + 1);
|
||||
+
|
||||
+ for (std::size_t i = 0; i < nElems; ++i) {
|
||||
+ vreg1[i] = (i % nCycle) + 1;
|
||||
+ vreg2[i] = vreg1[i] + nCycle;
|
||||
+ vreg3[i] = vreg2[i] + nCycle;
|
||||
+ fixed_vreg1[i] = vreg1[i];
|
||||
+ fixed_vreg2[i] = vreg2[i];
|
||||
+ fixed_vreg3[i] = vreg3[i];
|
||||
+ vmocksmall[i + 1] = vreg3[i];
|
||||
+ }
|
||||
+ fixed_vreg3[nElems] = fixed_vreg3[0];
|
||||
+ vreg3[nElems] = vreg3[0];
|
||||
+
|
||||
vmocksmall.erase(vmocksmall.begin() + 2, vmocksmall.end());
|
||||
// vmocksmall is a regular vector of size 2
|
||||
|
||||
@@ -1798,11 +1818,22 @@ TEST_P(VecOpsSwap, BothAdoptingVectors)
|
||||
// in cases where ROOT::VecOps::swap produces 1 regular and 1 adopting vector
|
||||
TEST_P(VecOpsSwap, SmallRegularVectors)
|
||||
{
|
||||
+ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize<int>::value;
|
||||
+
|
||||
+ // The number of elemens in the large RVecs will be the smallest multiple of
|
||||
+ // three that larger than smallVecSize.
|
||||
+ constexpr int nCycle = 3;
|
||||
+ constexpr std::size_t nElems1 = ((smallVecSize / nCycle) + 1) * nCycle;
|
||||
+ constexpr std::size_t nElems2 = nElems1 + nCycle; // some vectors should be larger than others
|
||||
+
|
||||
RVec<int> fixed_vsmall{1, 2, 3};
|
||||
RVec<int> fixed_vreg1{4, 5, 6};
|
||||
RVec<int> fixed_vreg2{7, 8};
|
||||
RVec<int> fixed_vreg3{9, 10, 11, 12, 13, 14};
|
||||
- RVec<int> fixed_vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
|
||||
+ RVec<int> fixed_vreg4(nElems1);
|
||||
+ for (std::size_t i = 0; i < nElems1; ++i) {
|
||||
+ fixed_vreg4[i] = i + 15;
|
||||
+ }
|
||||
|
||||
// need multiple hard copies since after swap of a small and a regular,
|
||||
// there is no fixed policy whether 2 regular vectors are produced or 1 small and 1 regular
|
||||
@@ -1815,19 +1846,33 @@ TEST_P(VecOpsSwap, SmallRegularVectors)
|
||||
RVec<int> vsmall7{1, 2, 3};
|
||||
RVec<int> vsmall8{1, 2, 3};
|
||||
|
||||
- RVec<int> vreg1{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3
|
||||
- RVec<int> vreg10{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ RVec<int> vreg1;
|
||||
+ RVec<int> vreg10;
|
||||
+ RVec<int> vreg2{7, 8};
|
||||
+ RVec<int> vreg20{7, 8};
|
||||
+ RVec<int> vreg3{9, 10, 11, 12, 13, 14};
|
||||
+ RVec<int> vreg30{9, 10, 11, 12, 13, 14};
|
||||
+ RVec<int> vreg4(nElems1);
|
||||
+
|
||||
+ for (std::size_t i = 0; i < nElems2; ++i) {
|
||||
+ double val = (i % nCycle) + 4;
|
||||
+ vreg1.push_back(val);
|
||||
+ vreg10.push_back(vreg1.back());
|
||||
+ vreg2.push_back(val);
|
||||
+ vreg20.push_back(vreg2.back());
|
||||
+ vreg3.push_back(val);
|
||||
+ vreg30.push_back(vreg3.back());
|
||||
+ }
|
||||
+ for (std::size_t i = 0; i < nElems1; ++i) {
|
||||
+ vreg4[i] = i + 15;
|
||||
+ }
|
||||
+
|
||||
+ vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3
|
||||
vreg10.erase(vreg10.begin() + 3, vreg10.end()); // regular vector of size 3
|
||||
- RVec<int> vreg2{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2
|
||||
- RVec<int> vreg20{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2
|
||||
vreg20.erase(vreg20.begin() + 2, vreg20.end()); // regular vector of size 2
|
||||
- RVec<int> vreg3{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6
|
||||
- RVec<int> vreg30{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6
|
||||
vreg30.erase(vreg30.begin() + 6, vreg30.end()); // regular vector of size 6
|
||||
- RVec<int> vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
|
||||
// vreg4 is a regular vector that cannot "fit" to small vector
|
||||
|
||||
// verify that initially vectors are not small
|
||||
--
|
||||
2.52.0
|
||||
|
||||
5
sources
5
sources
|
|
@ -1,3 +1,2 @@
|
|||
SHA512 (root-6.38.00.tar.xz) = 7c452b509e8171a0cbb7c102a3d4c07333fc8535f1b2c2ab0b9f7434604f098989a78bb71c41039dd41dbbd3438ea8703939826092f075d9d730b6b53c84ac55
|
||||
SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670
|
||||
SHA512 (clad-2.2.tar.gz) = 6f76d706a829901fc0fcdb38b5ddad6ea8ad9186ea48a4b6b585fc62974a2cda11b96a448c25daaba0586962d6428773e7ab751236c6afa72a91d12f30f2d05e
|
||||
SHA512 (root-6.26.10.tar.xz) = 896727ce6da68871a52894a0a3c1b749fece9f08c8cefe62f5beac505710d579c41b84832a727a2ba39dab09e4456773c05b5b23a0fd859ace8062470653bbdb
|
||||
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue