Compare commits
114 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8626580cf | ||
|
|
27b349be2a | ||
|
|
732511f3a6 | ||
|
|
64acc88ed1 | ||
|
|
bdcedb0537 | ||
|
|
bbcab50659 | ||
|
|
32ec236e95 |
||
|
|
f287293ea9 | ||
|
|
84f092c91d | ||
|
|
da1ca8ff8f | ||
|
|
66c113fcb0 | ||
|
|
18473dc6e6 | ||
|
|
895043f78c | ||
|
|
c3014d3347 | ||
|
|
cb90d9590d | ||
|
|
3d242ce025 | ||
|
|
146af48801 | ||
|
|
e4856607de | ||
|
|
f25bdb0931 | ||
|
|
e076764de0 | ||
|
|
3a74b8b610 | ||
|
|
2726b64fa0 | ||
|
|
0afdff9fae | ||
|
|
6edd65804f | ||
|
|
5a76613429 | ||
|
|
593e746266 | ||
|
|
ab1aa62b45 | ||
|
|
aaf51a11c7 | ||
|
|
920e7b2575 | ||
|
|
fe8a030c52 | ||
|
|
450c67721a | ||
|
|
40be88f67c | ||
|
|
71b6707207 | ||
|
|
b1bbc0fadf | ||
|
|
02870ffba1 |
||
|
|
3487b3a060 | ||
|
|
2ad57ba760 | ||
|
|
745e82c601 | ||
|
|
8d9fc44478 | ||
|
|
75f062bccd | ||
|
|
cac5562c15 | ||
|
|
6b314d2ebb | ||
|
|
5498e74caf | ||
|
|
59f38a443a | ||
|
|
1617973423 | ||
|
|
dafa5d9be6 | ||
|
|
c960d44c7d | ||
|
|
8bc319c318 | ||
|
|
82f076284e | ||
|
|
c1e2a7a6b3 | ||
|
|
ea27f7093b | ||
|
|
4946c86aea | ||
|
|
48045b2bdf | ||
|
|
559fe2b850 | ||
|
|
95f73fc33a | ||
|
|
4d9bac3891 | ||
|
|
0f2b684662 | ||
|
|
518c033b52 | ||
|
|
fbaff99ab6 | ||
|
|
d22cdf6344 | ||
|
|
29328ac08b | ||
|
|
c2cd7682c3 | ||
|
|
a5b9453dc4 | ||
|
|
65481a9244 | ||
|
|
277c592ff2 | ||
|
|
40040121b9 | ||
|
|
63c341633f | ||
|
|
b4f122310f | ||
|
|
735b7a8692 | ||
|
|
9875b6b48a | ||
|
|
6d457ab71f | ||
|
|
59989efa5f | ||
|
|
ae0a791925 | ||
|
|
fb5c22a14d | ||
|
|
85ea672407 | ||
|
|
79c12df5ba | ||
|
|
d58a4c22ba | ||
|
|
879bb250d3 | ||
|
|
c3f7b6f7f1 | ||
|
|
08cf4b36a2 | ||
|
|
c39df0d6ce | ||
|
|
0de23e866b | ||
|
|
3365b50fc9 | ||
|
|
088e995d07 | ||
|
|
b75f082179 | ||
|
|
a08fcbc5ad | ||
|
|
e41288dd18 | ||
|
|
1801745923 | ||
|
|
635da91690 | ||
|
|
6d31b558ee | ||
|
|
bcb1ddcccf |
||
|
|
ab5d41c627 | ||
|
|
75d8984496 | ||
|
|
78faffb6b8 | ||
|
|
521c5af35f | ||
|
|
21a93fdb32 | ||
|
|
7fb47abbc9 | ||
|
|
ee45de2db7 | ||
|
|
4a05ecac34 | ||
|
|
ddfa4e1c9b | ||
|
|
b2e4c897d2 | ||
|
|
dacf8d779a | ||
|
|
9505e4b28a | ||
|
|
a9b86f482f | ||
|
|
44203f1d1d | ||
|
|
51dd64e002 | ||
|
|
4a99ec915c | ||
|
|
2f8e3d96d1 | ||
|
|
65aa8a7075 | ||
|
|
1ca8ad1517 | ||
|
|
d28cfab6db | ||
|
|
79bc80ed33 | ||
|
|
530bdfbe23 | ||
|
|
f57d1d575e |
40 changed files with 3082 additions and 4153 deletions
|
|
@ -1,142 +0,0 @@
|
|||
diff -ur root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py root-6.24.02/bindings/pyroot_legacy/ROOT.py
|
||||
--- root-6.24.02.orig/bindings/pyroot_legacy/ROOT.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/bindings/pyroot_legacy/ROOT.py 2021-08-11 10:44:16.895804556 +0200
|
||||
@@ -438,9 +438,7 @@
|
||||
# This function is injected as method to the respective classes in Pythonize.cxx.
|
||||
_root._RDataFrameAsNumpy = _RDataFrameAsNumpy
|
||||
|
||||
-# This Pythonisation is there only for 64 bits builds
|
||||
-if (sys.maxsize > 2**32): # https://docs.python.org/3/library/platform.html#cross-platform
|
||||
- _root.CreateScopeProxy( "TTree" ).AsMatrix = _TTreeAsMatrix
|
||||
+_root.CreateScopeProxy( "TTree" ).AsMatrix = _TTreeAsMatrix
|
||||
|
||||
|
||||
### RINT command emulation ------------------------------------------------------
|
||||
diff -ur root-6.24.02.orig/build/unix/makepchinput.py root-6.24.02/build/unix/makepchinput.py
|
||||
--- root-6.24.02.orig/build/unix/makepchinput.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/build/unix/makepchinput.py 2021-08-11 10:44:16.926804638 +0200
|
||||
@@ -252,9 +252,6 @@
|
||||
"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 -ur root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx root-6.24.02/tree/dataframe/test/dataframe_cache.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/dataframe_cache.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/dataframe_cache.cxx 2021-08-11 10:44:16.927804641 +0200
|
||||
@@ -224,8 +224,6 @@
|
||||
|
||||
}
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(Cache, Regex)
|
||||
{
|
||||
|
||||
@@ -335,8 +333,6 @@
|
||||
gSystem->Unlink(fileName);
|
||||
}
|
||||
|
||||
-#endif // R__B64
|
||||
-
|
||||
// ROOT-10563
|
||||
TEST(Cache, Alias)
|
||||
{
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx root-6.24.02/tree/dataframe/test/datasource_arrow.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/datasource_arrow.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/datasource_arrow.cxx 2021-08-11 10:44:16.927804641 +0200
|
||||
@@ -177,8 +177,6 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(RArrowDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RArrowDS(createTestTable(), {}));
|
||||
@@ -250,5 +248,3 @@
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx root-6.24.02/tree/dataframe/test/datasource_csv.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/datasource_csv.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/datasource_csv.cxx 2021-08-11 10:44:16.927804641 +0200
|
||||
@@ -207,8 +207,6 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(RCsvDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RCsvDS(fileName0));
|
||||
@@ -321,5 +319,3 @@
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx root-6.24.02/tree/dataframe/test/datasource_root.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/datasource_root.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/datasource_root.cxx 2021-08-11 10:44:16.928804644 +0200
|
||||
@@ -117,8 +117,6 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef R__B64
|
||||
-
|
||||
TEST(TRootTDS, FromARDF)
|
||||
{
|
||||
std::unique_ptr<RDataSource> tds(new RRootDS(treeName, fileGlob));
|
||||
@@ -190,5 +188,3 @@
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx root-6.24.02/tree/dataframe/test/datasource_trivial.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/datasource_trivial.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/datasource_trivial.cxx 2021-08-11 10:44:16.928804644 +0200
|
||||
@@ -141,8 +141,6 @@
|
||||
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 @@
|
||||
}
|
||||
|
||||
#endif // R__USE_IMT
|
||||
-
|
||||
-#endif // R__B64
|
||||
diff -ur root-6.24.02.orig/tutorials/CMakeLists.txt root-6.24.02/tutorials/CMakeLists.txt
|
||||
--- root-6.24.02.orig/tutorials/CMakeLists.txt 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/CMakeLists.txt 2021-08-11 10:44:16.974804766 +0200
|
||||
@@ -279,10 +279,6 @@
|
||||
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()
|
||||
-
|
||||
#---These ones are disabled !!! ------------------------------------
|
||||
set(extra_veto
|
||||
legacy/benchmarks.C
|
||||
@@ -335,7 +331,6 @@
|
||||
${classic_veto}
|
||||
${pythia_veto}
|
||||
${root7_veto}
|
||||
- ${bits32_veto}
|
||||
${xrootd_veto}
|
||||
${mlp_veto}
|
||||
${spectrum_veto}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 70d941cd6ebbc3726e08ef7f52d0135453f0b840 Mon Sep 17 00:00:00 2001
|
||||
From 55446dcd6eabc1fff218f266c11f31697fe99f09 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 2/3] Run tests on 32 bit
|
||||
Subject: [PATCH] Run tests on 32 bit
|
||||
|
||||
---
|
||||
test/stressGeometry.cxx | 8 --------
|
||||
|
|
@ -9,7 +9,7 @@ Subject: [PATCH 2/3] Run tests on 32 bit
|
|||
2 files changed, 3 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/test/stressGeometry.cxx b/test/stressGeometry.cxx
|
||||
index 5e81f5f2ca..18e41a6f45 100644
|
||||
index f8d78f4f54..617b9e1644 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 5e81f5f2ca..18e41a6f45 100644
|
|||
TString fname;
|
||||
for (i=0; i<NG; i++) {
|
||||
diff --git a/tree/tree/test/CMakeLists.txt b/tree/tree/test/CMakeLists.txt
|
||||
index 0c1a39d01e..3bafe47934 100644
|
||||
index 5bb222edc5..f29a17801d 100644
|
||||
--- a/tree/tree/test/CMakeLists.txt
|
||||
+++ b/tree/tree/test/CMakeLists.txt
|
||||
@@ -12,13 +12,9 @@ ROOT_ADD_GTEST(testTOffsetGeneration TOffsetGeneration.cxx ElementStruct.cxx Ele
|
||||
@@ -17,13 +17,9 @@ endif()
|
||||
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)
|
||||
- ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000)
|
||||
- ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
- ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct)
|
||||
-endif()
|
||||
+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
+ROOT_ADD_GTEST(testBulkApiMultiple BulkApiMultiple.cxx LIBRARIES RIO Tree TreePlayer TIMEOUT 3000)
|
||||
+ROOT_ADD_GTEST(testBulkApiVarLength BulkApiVarLength.cxx LIBRARIES RIO Tree TreePlayer)
|
||||
+ROOT_ADD_GTEST(testBulkApiSillyStruct BulkApiSillyStruct.cxx LIBRARIES RIO Tree TreePlayer SillyStruct)
|
||||
ROOT_ADD_GTEST(testTBasket TBasket.cxx LIBRARIES RIO Tree)
|
||||
ROOT_ADD_GTEST(testTBranch TBranch.cxx LIBRARIES RIO Tree MathCore)
|
||||
ROOT_ADD_GTEST(testTIOFeatures TIOFeatures.cxx LIBRARIES RIO Tree)
|
||||
--
|
||||
2.24.1
|
||||
2.45.1
|
||||
|
||||
|
|
|
|||
49
root-Adjust-test-stressGraphics.ref.patch
Normal file
49
root-Adjust-test-stressGraphics.ref.patch
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
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
|
||||
|
||||
32
root-Fix-a-numpy-test-for-32-bit-archs.patch
Normal file
32
root-Fix-a-numpy-test-for-32-bit-archs.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
|
||||
63
root-Geom-Add-missing-includes-of-TMath.h.patch
Normal file
63
root-Geom-Add-missing-includes-of-TMath.h.patch
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
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
|
||||
|
||||
70
root-PyROOT-Don-t-install-the-python-modules-twice.patch
Normal file
70
root-PyROOT-Don-t-install-the-python-modules-twice.patch
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
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
|
||||
|
||||
82
root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch
Normal file
82
root-Python-Fix-TF1-Pythonization-test-for-NumPy-2.4.0.patch
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
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
|
||||
|
||||
50
root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch
Normal file
50
root-RF-Use-TRandom3-in-test-RooFuncWrapper.patch
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
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
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
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
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 2e3fabbe5423f50ee98ce848d8e85ec7a2a2106d Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Guiraud <enrico.guiraud@cern.ch>
|
||||
Date: Thu, 15 Jul 2021 12:17:56 +0200
|
||||
Subject: [PATCH] [DF] Add RCutFlowReport to LinkDef
|
||||
|
||||
This should fix some sporadic failures in cling's symbol resolution
|
||||
in builds without runtime cxx modules.
|
||||
---
|
||||
tree/dataframe/inc/LinkDef.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
|
||||
index 8103468082..684fc3b6f1 100644
|
||||
--- a/tree/dataframe/inc/LinkDef.h
|
||||
+++ b/tree/dataframe/inc/LinkDef.h
|
||||
@@ -58,6 +58,7 @@
|
||||
#pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile>+;
|
||||
#pragma link C++ class ROOT::Detail::RDF::RMergeableValue<TProfile2D>+;
|
||||
#pragma link C++ class TNotifyLink<ROOT::Internal::RDF::RDataBlockFlag>;
|
||||
+#pragma link C++ class ROOT::RDF::RCutFlowReport;
|
||||
|
||||
#endif
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From d9e15857c189edcfa75af5c6244ff68fac74f06f Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Guiraud <enrico.guiraud@cern.ch>
|
||||
Date: Thu, 10 Jun 2021 10:00:32 +0200
|
||||
Subject: [PATCH] [DF] Add RDisplay to LinkDef
|
||||
|
||||
To help cling autoloading.
|
||||
---
|
||||
tree/dataframe/inc/LinkDef.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tree/dataframe/inc/LinkDef.h b/tree/dataframe/inc/LinkDef.h
|
||||
index 3879ac8d5d..8103468082 100644
|
||||
--- a/tree/dataframe/inc/LinkDef.h
|
||||
+++ b/tree/dataframe/inc/LinkDef.h
|
||||
@@ -20,6 +20,7 @@
|
||||
#pragma link C++ namespace ROOT::Internal::RDF::GraphDrawing;
|
||||
#pragma link C++ namespace ROOT::Detail::RDF;
|
||||
#pragma link C++ namespace ROOT::RDF;
|
||||
+#pragma link C++ class ROOT::RDF::RDisplay-;
|
||||
#pragma link C++ class ROOT::Internal::RDF::RActionBase-;
|
||||
#pragma link C++ class ROOT::Internal::RDF::RJittedAction-;
|
||||
#pragma link C++ class ROOT::Detail::RDF::RFilterBase-;
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 56d52ccf2fad2736e49d3cfc4c9df22492e1dbfc Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 8 Jun 2021 02:46:18 +0200
|
||||
Subject: [PATCH] Add TTreeProcessorMP to LinkDef
|
||||
|
||||
This fixes test failure:
|
||||
|
||||
745/1157 Test #729: tutorial-multicore-mp102_readNtuplesFillHistosAndFit ................***Failed 1.55 sec
|
||||
Processing /builddir/build/BUILD/root-6.25.01/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C...
|
||||
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMPC1Ej' unresolved while linking [cling interface function]!
|
||||
You are probably missing the definition of ROOT::TTreeProcessorMP::TTreeProcessorMP(unsigned int)
|
||||
Maybe you need to load the corresponding shared library?
|
||||
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT16TTreeProcessorMP11ReplyToIdleEP7TSocket' unresolved while linking [cling interface function]!
|
||||
You are probably missing the definition of ROOT::TTreeProcessorMP::ReplyToIdle(TSocket*)
|
||||
Maybe you need to load the corresponding shared library?
|
||||
CMake Error at /builddir/build/BUILD/root-6.25.01/x86_64-redhat-linux-gnu/RootTestDriver.cmake:237 (message):
|
||||
error code: 1
|
||||
---
|
||||
tree/treeplayer/inc/LinkDef.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tree/treeplayer/inc/LinkDef.h b/tree/treeplayer/inc/LinkDef.h
|
||||
index e7fdd7c9bf..d195536a40 100644
|
||||
--- a/tree/treeplayer/inc/LinkDef.h
|
||||
+++ b/tree/treeplayer/inc/LinkDef.h
|
||||
@@ -30,6 +30,7 @@
|
||||
#pragma link C++ class TSimpleAnalysis+;
|
||||
#ifndef _MSC_VER
|
||||
#pragma link C++ class TMPWorkerTree+;
|
||||
+#pragma link C++ class ROOT::TTreeProcessorMP-;
|
||||
#endif
|
||||
#ifdef R__USE_IMT
|
||||
#pragma link C++ class ROOT::TTreeProcessorMT-;
|
||||
--
|
||||
2.31.1
|
||||
|
||||
109
root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch
Normal file
109
root-cppyy-Remove-code-related-to-finding-CPyCppyy-API-he.patch
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
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
|
||||
|
||||
46
root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch
Normal file
46
root-cppyy-Remove-now-irrelevant-load_cpp_backend-call.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
diff -ur root-6.20.02.orig/documentation/doxygen/filter.cxx root-6.20.02/documentation/doxygen/filter.cxx
|
||||
--- root-6.20.02.orig/documentation/doxygen/filter.cxx 2020-03-15 16:21:25.000000000 +0100
|
||||
+++ root-6.20.02/documentation/doxygen/filter.cxx 2020-03-15 20:05:59.047270429 +0100
|
||||
@@ -378,16 +378,7 @@
|
||||
|
||||
// notebook found
|
||||
if (gLineString.find("\\notebook") != string::npos) {
|
||||
- ExecuteCommand(StringFormat("%s converttonotebook.py %s %s/notebooks/",
|
||||
- gPythonExec.c_str(),
|
||||
- gFileName.c_str(), gOutDir.c_str()));
|
||||
- if (gPython){
|
||||
- gLineString = "## ";
|
||||
- }
|
||||
- else{
|
||||
- gLineString = "/// ";
|
||||
- }
|
||||
- gLineString += StringFormat( "\\htmlonly <a href=\"https://nbviewer.jupyter.org/url/root.cern/doc/master/notebooks/%s.nbconvert.ipynb\" target=\"_blank\"><img src= notebook.gif alt=\"View in nbviewer\" style=\"height:1em\" ></a> <a href=\"https://cern.ch/swanserver/cgi-bin/go?projurl=https://root.cern/doc/master/notebooks/%s.nbconvert.ipynb\" target=\"_blank\"><img src=\"https://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png\" alt=\"Open in SWAN\" style=\"height:1em\" ></a> \\endhtmlonly \n", gMacroName.c_str() , gMacroName.c_str());
|
||||
+ gLineString = "";
|
||||
}
|
||||
|
||||
// \macro_output found
|
||||
|
|
@ -1,275 +0,0 @@
|
|||
diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C root-6.24.02/tutorials/dataframe/df002_dataModel.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df002_dataModel.C 2021-08-11 03:55:11.021149115 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
/// complex than flat ntuples with RDataFrame
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date December 2016
|
||||
/// \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py root-6.24.02/tutorials/dataframe/df002_dataModel.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df002_dataModel.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df002_dataModel.py 2021-08-11 03:55:11.084149272 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
## complex than flat ntuples with RDataFrame
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date May 2017
|
||||
## \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.C root-6.24.02/tutorials/dataframe/df003_profiles.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df003_profiles.C 2021-08-11 03:55:11.148149432 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
/// RDataFrame. See the documentation of TProfile and TProfile2D to better
|
||||
/// understand the analogy of this code with the example one.
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_code
|
||||
///
|
||||
/// \date February 2017
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df003_profiles.py root-6.24.02/tutorials/dataframe/df003_profiles.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df003_profiles.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df003_profiles.py 2021-08-11 03:55:11.211149590 +0200
|
||||
@@ -8,7 +8,6 @@
|
||||
## understand the analogy of this code with the example one.
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date February 2017
|
||||
## \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df005_fillAnyObject.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df005_fillAnyObject.C 2021-08-11 03:55:11.275149750 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
/// `Fill` method.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date March 2017
|
||||
/// \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C root-6.24.02/tutorials/dataframe/df007_snapshot.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df007_snapshot.C 2021-08-11 03:55:11.338149907 +0200
|
||||
@@ -5,7 +5,6 @@
|
||||
///
|
||||
/// This tutorial shows how to write out datasets in ROOT format using the RDataFrame
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_code
|
||||
///
|
||||
/// \date April 2017
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py root-6.24.02/tutorials/dataframe/df007_snapshot.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df007_snapshot.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df007_snapshot.py 2021-08-11 03:55:11.402150067 +0200
|
||||
@@ -5,7 +5,6 @@
|
||||
##
|
||||
## This tutorial shows how to write out datasets in ROOT format using the RDataFrame
|
||||
##
|
||||
-## \macro_image
|
||||
## \macro_code
|
||||
##
|
||||
## \date April 2017
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.C 2021-08-11 03:55:11.465150225 +0200
|
||||
@@ -14,7 +14,6 @@
|
||||
/// DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date October 2017
|
||||
/// \author Enric Tejedor (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df014_CSVDataSource.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df014_CSVDataSource.py 2021-08-11 03:55:11.529150385 +0200
|
||||
@@ -14,7 +14,6 @@
|
||||
## DOI: [10.7483/OPENDATA.CMS.CB8H.MFFA](http://opendata.cern.ch/record/700).
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date October 2017
|
||||
## \author Enric Tejedor (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df015_LazyDataSource.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df015_LazyDataSource.C 2021-08-11 03:55:11.593150545 +0200
|
||||
@@ -14,7 +14,6 @@
|
||||
/// From the ROOT website: https://root.cern.ch/files/tutorials/tdf014_CsvDataSource_MuRun2010B.csv
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date February 2018
|
||||
/// \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C root-6.24.02/tutorials/dataframe/df016_vecOps.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df016_vecOps.C 2021-08-11 03:55:11.656150702 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
/// stored in datasets, a situation very common in HEP data analysis.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date February 2018
|
||||
/// \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py root-6.24.02/tutorials/dataframe/df016_vecOps.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df016_vecOps.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df016_vecOps.py 2021-08-11 03:55:11.720150862 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
## This tutorial shows the potential of the VecOps approach for treating collections
|
||||
## stored in datasets, a situation very common in HEP data analysis.
|
||||
##
|
||||
-## \macro_image
|
||||
## \macro_code
|
||||
##
|
||||
## \date February 2018
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.C 2021-08-11 03:55:11.783151020 +0200
|
||||
@@ -11,7 +11,6 @@
|
||||
/// greater than 100.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date March 2018
|
||||
/// \authors Danilo Piparo (CERN), Andre Vieira Silva
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df017_vecOpsHEP.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df017_vecOpsHEP.py 2021-08-11 03:55:11.846151177 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
## model typically adopted in HEP for analysis.
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date March 2018
|
||||
## \authors Danilo Piparo (CERN), Andre Vieira Silva
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.C root-6.24.02/tutorials/dataframe/df019_Cache.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df019_Cache.C 2021-08-11 03:55:11.910151337 +0200
|
||||
@@ -18,7 +18,6 @@
|
||||
/// only when the event loop is triggered on it.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date June 2018
|
||||
/// \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df019_Cache.py root-6.24.02/tutorials/dataframe/df019_Cache.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df019_Cache.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df019_Cache.py 2021-08-11 03:55:11.973151495 +0200
|
||||
@@ -18,7 +18,6 @@
|
||||
## only when the event loop is triggered on it.
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date June 2018
|
||||
## \author Danilo Piparo (CERN)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C root-6.24.02/tutorials/dataframe/df021_createTGraph.C
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df021_createTGraph.C 2021-08-11 03:55:12.037151655 +0200
|
||||
@@ -4,7 +4,6 @@
|
||||
/// Fill a TGraph using RDataFrame.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_image
|
||||
///
|
||||
/// \date July 2018
|
||||
/// \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
|
||||
diff -ur root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py root-6.24.02/tutorials/dataframe/df021_createTGraph.py
|
||||
--- root-6.24.02.orig/tutorials/dataframe/df021_createTGraph.py 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/dataframe/df021_createTGraph.py 2021-08-11 03:55:12.100151813 +0200
|
||||
@@ -4,7 +4,6 @@
|
||||
## Fill a TGraph using RDataFrame.
|
||||
##
|
||||
## \macro_code
|
||||
-## \macro_image
|
||||
##
|
||||
## \date July 2018
|
||||
## \authors Enrico Guiraud, Danilo Piparo (CERN), Massimo Tumolo (Politecnico di Torino)
|
||||
diff -ur root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C root-6.24.02/tutorials/tmva/tmva003_RReader.C
|
||||
--- root-6.24.02.orig/tutorials/tmva/tmva003_RReader.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/tmva/tmva003_RReader.C 2021-08-11 04:16:33.833359421 +0200
|
||||
@@ -5,7 +5,6 @@
|
||||
/// TMVA XML files.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_output
|
||||
///
|
||||
/// \date July 2019
|
||||
/// \author Stefan Wunsch
|
||||
diff -ur root-6.24.02.orig/tutorials/tmva/tmva103_Application.C root-6.24.02/tutorials/tmva/tmva103_Application.C
|
||||
--- root-6.24.02.orig/tutorials/tmva/tmva103_Application.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/tmva/tmva103_Application.C 2021-08-11 21:56:49.387390340 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
/// event-by-event inference, batch inference and pipelines with RDataFrame.
|
||||
///
|
||||
/// \macro_code
|
||||
-/// \macro_output
|
||||
///
|
||||
/// \date December 2018
|
||||
/// \author Stefan Wunsch
|
||||
diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C
|
||||
--- root-6.24.02.orig/tutorials/tmva/TMVA_CNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/tmva/TMVA_CNN_Classification.C 2021-08-10 15:21:03.306171069 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
/// This is an example of using a CNN in TMVA. We do classification using a toy image data set
|
||||
/// that is generated when running the example macro
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_output
|
||||
/// \macro_code
|
||||
///
|
||||
diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C
|
||||
--- root-6.24.02.orig/tutorials/tmva/TMVA_Higgs_Classification.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/tmva/TMVA_Higgs_Classification.C 2021-08-10 15:21:33.974251559 +0200
|
||||
@@ -7,7 +7,6 @@
|
||||
/// used in this paper: Baldi, P., P. Sadowski, and D. Whiteson. “Searching for Exotic Particles in High-energy Physics
|
||||
/// with Deep Learning.” Nature Communications 5 (July 2, 2014).
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_output
|
||||
/// \macro_code
|
||||
///
|
||||
diff -ur root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C
|
||||
--- root-6.24.02.orig/tutorials/tmva/TMVA_RNN_Classification.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/tmva/TMVA_RNN_Classification.C 2021-08-10 15:21:15.657203486 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
/// This is an example of using a RNN in TMVA. We do classification using a toy time dependent data set
|
||||
/// that is generated when running this example macro
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_output
|
||||
/// \macro_code
|
||||
///
|
||||
diff -ur root-6.24.02.orig/tutorials/v7/line.cxx root-6.24.02/tutorials/v7/line.cxx
|
||||
--- root-6.24.02.orig/tutorials/v7/line.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/v7/line.cxx 2021-08-16 14:25:32.528867781 +0200
|
||||
@@ -6,7 +6,6 @@
|
||||
/// "normal" coordinates' system and changing the line color linearly from black
|
||||
/// to red.
|
||||
///
|
||||
-/// \macro_image (line.png)
|
||||
/// \macro_code
|
||||
///
|
||||
/// \date 2018-03-18
|
||||
diff -ur root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C
|
||||
--- root-6.24.02.orig/tutorials/v7/ntuple/ntpl005_introspection.C 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tutorials/v7/ntuple/ntpl005_introspection.C 2021-08-10 15:22:06.504336763 +0200
|
||||
@@ -4,7 +4,6 @@
|
||||
/// Write and read an RNTuple from a user-defined class. Adapted from tv3.C
|
||||
/// Illustrates various RNTuple introspection methods.
|
||||
///
|
||||
-/// \macro_image
|
||||
/// \macro_code
|
||||
///
|
||||
/// \date April 2020
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
diff -ur root-6.22.04.orig/bindings/pyroot/pythonizations/python/ROOT/__init__.py root-6.22.04/bindings/pyroot/pythonizations/python/ROOT/__init__.py
|
||||
--- root-6.22.04.orig/bindings/pyroot/pythonizations/python/ROOT/__init__.py 2020-11-13 11:42:09.000000000 +0100
|
||||
+++ root-6.22.04/bindings/pyroot/pythonizations/python/ROOT/__init__.py 2020-11-14 15:38:24.462463625 +0100
|
||||
@@ -19,6 +19,12 @@
|
||||
# Prevent cppyy from filtering ROOT libraries
|
||||
environ['CPPYY_NO_ROOT_FILTER'] = '1'
|
||||
|
||||
+try:
|
||||
+ from ctypes import cdll
|
||||
+ libCore = cdll.LoadLibrary("libCore.so")
|
||||
+except:
|
||||
+ print("An exception occurred while loading libCore.so with ctypes")
|
||||
+
|
||||
import cppyy
|
||||
if not 'ROOTSYS' in environ:
|
||||
# Revert setting made by cppyy
|
||||
|
|
@ -1,168 +0,0 @@
|
|||
From 153f1c3de0e24f5678fd3a706f902ac12b11048e Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 18 Apr 2021 07:28:41 +0200
|
||||
Subject: [PATCH] Fix multicore tests when running on machines with few cores
|
||||
|
||||
When running on machines with few cores, enabling multithreading can
|
||||
give you fewer cores than requested. For most of the tests this does
|
||||
not matter. However, some tests verify the number of threads used.
|
||||
This commit adapts those tests for this situation.
|
||||
---
|
||||
tree/dataframe/test/dataframe_concurrency.cxx | 18 +++++++++-------
|
||||
tree/dataframe/test/dataframe_interface.cxx | 7 +++++--
|
||||
tree/dataframe/test/dataframe_simple.cxx | 2 +-
|
||||
tree/dataframe/test/dataframe_snapshot.cxx | 6 ++++--
|
||||
.../test/treeprocmt/treeprocessormt.cxx | 21 +++++++++++++++----
|
||||
5 files changed, 37 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/tree/dataframe/test/dataframe_concurrency.cxx b/tree/dataframe/test/dataframe_concurrency.cxx
|
||||
index d1b25493e5..a4bce595f8 100644
|
||||
--- a/tree/dataframe/test/dataframe_concurrency.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_concurrency.cxx
|
||||
@@ -57,33 +57,35 @@ TEST(RDFConcurrency, NestedParallelismBetweenDefineCalls)
|
||||
// [DF] Warn on mismatch between slot pool size and effective number of slots
|
||||
TEST(RDFSimpleTests, ThrowOnPoolSizeMismatch)
|
||||
{
|
||||
+ const unsigned int nslots = std::min(3u, std::thread::hardware_concurrency());
|
||||
+
|
||||
// pool created after RDF
|
||||
- {
|
||||
+ if (nslots > 1) {
|
||||
ROOT::RDataFrame df(1);
|
||||
- ROOT::EnableImplicitMT(3);
|
||||
+ ROOT::EnableImplicitMT(nslots);
|
||||
try {
|
||||
df.Count().GetValue();
|
||||
} catch (const std::runtime_error &e) {
|
||||
const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
|
||||
- "was 1, but when starting the event loop it was 3. Maybe EnableImplicitMT() was "
|
||||
+ "was 1, but when starting the event loop it was " + std::to_string(nslots) + ". Maybe EnableImplicitMT() was "
|
||||
"called after the RDataFrame was constructed?";
|
||||
- EXPECT_STREQ(e.what(), expected_msg);
|
||||
+ EXPECT_STREQ(e.what(), expected_msg.c_str());
|
||||
}
|
||||
ROOT::DisableImplicitMT();
|
||||
}
|
||||
|
||||
// pool deleted after RDF creation
|
||||
- {
|
||||
- ROOT::EnableImplicitMT(3);
|
||||
+ if (nslots > 1) {
|
||||
+ ROOT::EnableImplicitMT(nslots);
|
||||
ROOT::RDataFrame df(1);
|
||||
ROOT::DisableImplicitMT();
|
||||
try {
|
||||
df.Count().GetValue();
|
||||
} catch (const std::runtime_error &e) {
|
||||
const auto expected_msg = "RLoopManager::Run: when the RDataFrame was constructed the number of slots required "
|
||||
- "was 3, but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
|
||||
+ "was " + std::to_string(nslots) + ", but when starting the event loop it was 1. Maybe DisableImplicitMT() was "
|
||||
"called after the RDataFrame was constructed?";
|
||||
- EXPECT_STREQ(e.what(), expected_msg);
|
||||
+ EXPECT_STREQ(e.what(), expected_msg.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/tree/dataframe/test/dataframe_interface.cxx b/tree/dataframe/test/dataframe_interface.cxx
|
||||
index afdd8360ef..90e052f1a7 100644
|
||||
--- a/tree/dataframe/test/dataframe_interface.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_interface.cxx
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#include <thread>
|
||||
+
|
||||
using namespace ROOT;
|
||||
using namespace ROOT::RDF;
|
||||
|
||||
@@ -351,9 +353,10 @@ TEST(RDataFrameInterface, GetNSlots)
|
||||
ROOT::RDataFrame df0(1);
|
||||
EXPECT_EQ(1U, df0.GetNSlots());
|
||||
#ifdef R__USE_IMT
|
||||
- ROOT::EnableImplicitMT(3);
|
||||
+ unsigned int nslots = std::min(3U, std::thread::hardware_concurrency());
|
||||
+ ROOT::EnableImplicitMT(nslots);
|
||||
ROOT::RDataFrame df3(1);
|
||||
- EXPECT_EQ(3U, df3.GetNSlots());
|
||||
+ EXPECT_EQ(nslots, df3.GetNSlots());
|
||||
ROOT::DisableImplicitMT();
|
||||
ROOT::RDataFrame df1(1);
|
||||
EXPECT_EQ(1U, df1.GetNSlots());
|
||||
diff --git a/tree/dataframe/test/dataframe_simple.cxx b/tree/dataframe/test/dataframe_simple.cxx
|
||||
index c6aba48b3e..e6b92be776 100644
|
||||
--- a/tree/dataframe/test/dataframe_simple.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_simple.cxx
|
||||
@@ -26,7 +26,7 @@ using namespace ROOT::VecOps;
|
||||
// Fixture for all tests in this file. If parameter is true, run with implicit MT, else run sequentially
|
||||
class RDFSimpleTests : public ::testing::TestWithParam<bool> {
|
||||
protected:
|
||||
- RDFSimpleTests() : NSLOTS(GetParam() ? 4u : 1u)
|
||||
+ RDFSimpleTests() : NSLOTS(GetParam() ? std::min(4u, std::thread::hardware_concurrency()) : 1u)
|
||||
{
|
||||
if (GetParam())
|
||||
ROOT::EnableImplicitMT(NSLOTS);
|
||||
diff --git a/tree/dataframe/test/dataframe_snapshot.cxx b/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
index 3ce9254442..92444feff1 100644
|
||||
--- a/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
+++ b/tree/dataframe/test/dataframe_snapshot.cxx
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "gtest/gtest.h"
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
+#include <thread>
|
||||
using namespace ROOT; // RDataFrame
|
||||
using namespace ROOT::RDF; // RInterface
|
||||
using namespace ROOT::VecOps; // RVec
|
||||
@@ -1041,9 +1042,10 @@ TEST(RDFSnapshotMore, EmptyBuffersMT)
|
||||
{
|
||||
const auto fname = "emptybuffersmt.root";
|
||||
const auto treename = "t";
|
||||
- ROOT::EnableImplicitMT(4);
|
||||
+ const unsigned int nslots = std::min(4U, std::thread::hardware_concurrency());
|
||||
+ ROOT::EnableImplicitMT(nslots);
|
||||
ROOT::RDataFrame d(10);
|
||||
- auto dd = d.DefineSlot("x", [](unsigned int s) { return s == 3 ? 0 : 1; })
|
||||
+ auto dd = d.DefineSlot("x", [&](unsigned int s) { return s == nslots - 1 ? 0 : 1; })
|
||||
.Filter([](int x) { return x == 0; }, {"x"}, "f");
|
||||
auto r = dd.Report();
|
||||
dd.Snapshot<int>(treename, fname, {"x"});
|
||||
diff --git a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
|
||||
index 5d5b2cbf42..963ce8a1b1 100644
|
||||
--- a/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
|
||||
+++ b/tree/treeplayer/test/treeprocmt/treeprocessormt.cxx
|
||||
@@ -294,14 +294,27 @@ TEST(TreeProcessorMT, LimitNTasks_CheckEntries)
|
||||
}
|
||||
};
|
||||
|
||||
- ROOT::EnableImplicitMT(4);
|
||||
+ const unsigned int nslots = std::min(4U, std::thread::hardware_concurrency());
|
||||
+ ROOT::EnableImplicitMT(nslots);
|
||||
|
||||
ROOT::TTreeProcessorMT p(filename, treename);
|
||||
p.Process(f);
|
||||
|
||||
- EXPECT_EQ(nTasks, 96U) << "Wrong number of tasks generated!\n";
|
||||
- EXPECT_EQ(nEntriesCountsMap[10], 65U) << "Wrong number of tasks with 10 clusters each!\n";
|
||||
- EXPECT_EQ(nEntriesCountsMap[11], 31U) << "Wrong number of tasks with 11 clusters each!\n";
|
||||
+ if (nslots == 4) {
|
||||
+ EXPECT_EQ(nTasks, 96U) << "Wrong number of tasks generated!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[10], 65U) << "Wrong number of tasks with 10 clusters each!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[11], 31U) << "Wrong number of tasks with 11 clusters each!\n";
|
||||
+ }
|
||||
+ else if (nslots == 2) {
|
||||
+ EXPECT_EQ(nTasks, 48U) << "Wrong number of tasks generated!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[20], 17U) << "Wrong number of tasks with 20 clusters each!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[21], 31U) << "Wrong number of tasks with 21 clusters each!\n";
|
||||
+ }
|
||||
+ else if (nslots == 1) {
|
||||
+ EXPECT_EQ(nTasks, 24U) << "Wrong number of tasks generated!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[41], 17U) << "Wrong number of tasks with 41 clusters each!\n";
|
||||
+ EXPECT_EQ(nEntriesCountsMap[42], 7U) << "Wrong number of tasks with 42 clusters each!\n";
|
||||
+ }
|
||||
|
||||
gSystem->Unlink(filename);
|
||||
ROOT::DisableImplicitMT();
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From 5b8e969ca045aa238c685009e0aa48d74cbdbf22 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 13 Mar 2020 17:09:03 +0100
|
||||
Subject: [PATCH 1/2] Fix ppc64le compilation with gcc 10
|
||||
|
||||
Reapply fix lost in the LLVM 9 upgrade. This fix is in LLVM 10.
|
||||
|
||||
Backported from llvm upstream
|
||||
https://reviews.llvm.org/D74129
|
||||
---
|
||||
interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
|
||||
index c8ed42d266..16bb00d2e9 100644
|
||||
--- a/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
|
||||
+++ b/interpreter/llvm/src/tools/clang/lib/Lex/Lexer.cpp
|
||||
@@ -2546,7 +2546,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr,
|
||||
'/', '/', '/', '/', '/', '/', '/', '/'
|
||||
};
|
||||
while (CurPtr+16 <= BufferEnd &&
|
||||
- !vec_any_eq(*(const vector unsigned char*)CurPtr, Slashes))
|
||||
+ !vec_any_eq(*(const __vector unsigned char*)CurPtr, Slashes))
|
||||
CurPtr += 16;
|
||||
#else
|
||||
// Scan for '/' quickly. Many block comments are very large.
|
||||
--
|
||||
2.30.2
|
||||
|
||||
File diff suppressed because it is too large
Load diff
32
root-gcc-16-libstdc-links-to-libatomic.patch
Normal file
32
root-gcc-16-libstdc-links-to-libatomic.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
|
||||
6
root-get-src.sh
Executable file
6
root-get-src.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
VERSION=$1
|
||||
wget -N https://root.cern/download/root_v${VERSION}.source.tar.gz
|
||||
tar -z -x -f root_v${VERSION}.source.tar.gz
|
||||
find root-${VERSION}/fonts -type f -a '!' -name 'STIX*' -exec rm {} ';'
|
||||
tar -J -c --group root --owner root -f root-${VERSION}.tar.xz root-${VERSION}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
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.ch/js/notebook/scripts/";
|
||||
+ var JSROOT_source_dir = "/static/scripts/";
|
||||
|
||||
var url = "";
|
||||
if (requirejs.s.contexts.hasOwnProperty("_")) {
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From 21395b23947df7e2b5e0c93626453aeacdee026c Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 16 Jan 2018 10:25:50 +0100
|
||||
Subject: [PATCH] Reduce the needed memory for compilation
|
||||
|
||||
The linking of rootcling_stage1 and libCling requires a lot of memory.
|
||||
Since these are linked from mostly the same objects, the build is
|
||||
ready to link them at the same time. If you make a parallel build this
|
||||
means that the two targets that require the most amount of memory are
|
||||
being linked in parallel. This exhausts the available memory, and the
|
||||
computer starts swapping.
|
||||
|
||||
This commit adds a dependency of one of the targets to the other. The
|
||||
dependency is not really there since it is not needed for building,
|
||||
but it prevents the two memory consuming targets to be built in
|
||||
parallel.
|
||||
|
||||
A similar dependency existed before the latest code changes (see
|
||||
commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between
|
||||
rootcling and libCling.
|
||||
---
|
||||
core/metacling/src/CMakeLists.txt | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
|
||||
index 2923345f7c..b44a4d4115 100644
|
||||
--- a/core/metacling/src/CMakeLists.txt
|
||||
+++ b/core/metacling/src/CMakeLists.txt
|
||||
@@ -114,6 +114,11 @@ ROOT_LINKER_LIBRARY(Cling
|
||||
$<TARGET_OBJECTS:MetaCling>
|
||||
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
|
||||
|
||||
+# The dependency on rootcling_stage1 was added to prevent Cling (libCling) and
|
||||
+# rootcling_stage1 from being linked in parallel.
|
||||
+# This avoids doing two memory consuming operations in parallel.
|
||||
+add_dependencies(Cling rootcling_stage1)
|
||||
+
|
||||
if(MSVC)
|
||||
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
set(cling_exports
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
|
@ -1,30 +1,53 @@
|
|||
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()
|
||||
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)
|
||||
|
||||
# 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(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)
|
||||
|
||||
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})
|
||||
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()
|
||||
|
||||
# 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)
|
||||
-# 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 ${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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,215 +0,0 @@
|
|||
diff -ur root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx root-6.24.02/hist/hist/test/test_THBinIterator.cxx
|
||||
--- root-6.24.02.orig/hist/hist/test/test_THBinIterator.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/hist/hist/test/test_THBinIterator.cxx 2021-08-06 22:59:45.039518775 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx root-6.24.02/math/mathcore/test/stress/testGenVector.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/stress/testGenVector.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/stress/testGenVector.cxx 2021-08-06 09:31:38.795835283 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/stress/testSMatrix.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/stress/testSMatrix.cxx 2021-08-06 09:31:38.796835286 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx root-6.24.02/math/mathcore/test/stress/testVector34.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/stress/testVector34.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/stress/testVector34.cxx 2021-08-06 09:31:38.796835286 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx root-6.24.02/math/mathcore/test/stress/testVector.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/stress/testVector.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/stress/testVector.cxx 2021-08-06 09:31:38.796835286 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/testGradient.cxx root-6.24.02/math/mathcore/test/testGradient.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/testGradient.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/testGradient.cxx 2021-08-06 09:31:38.796835286 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx root-6.24.02/math/mathcore/test/testGradientFitting.cxx
|
||||
--- root-6.24.02.orig/math/mathcore/test/testGradientFitting.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathcore/test/testGradientFitting.cxx 2021-08-06 09:31:38.797835288 +0200
|
||||
@@ -12,6 +12,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 -ur root-6.24.02.orig/math/mathmore/test/testStress.cxx root-6.24.02/math/mathmore/test/testStress.cxx
|
||||
--- root-6.24.02.orig/math/mathmore/test/testStress.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/math/mathmore/test/testStress.cxx 2021-08-06 09:31:38.797835288 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx
|
||||
--- root-6.24.02.orig/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/roofit/roofitcore/test/testProxiesAndCategories.cxx 2021-08-06 09:31:38.798835290 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/dataframe_datablockcallback.cxx 2021-08-06 09:31:38.801835298 +0200
|
||||
@@ -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 <thread> // std::hardware_concurrency
|
||||
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/dataframe_merge_results.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/dataframe_merge_results.cxx 2021-08-06 09:31:38.802835300 +0200
|
||||
@@ -308,7 +308,7 @@
|
||||
EXPECT_FALSE(mh3);
|
||||
EXPECT_FALSE(mh4);
|
||||
EXPECT_FALSE(mh5);
|
||||
- EXPECT_TRUE(mergedptr);
|
||||
+ EXPECT_TRUE(!!mergedptr);
|
||||
|
||||
const auto &mh = mergedptr->GetValue();
|
||||
|
||||
diff -ur root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx root-6.24.02/tree/dataframe/test/dataframe_regression.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/dataframe_regression.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/dataframe_regression.cxx 2021-08-06 09:31:38.802835300 +0200
|
||||
@@ -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 -ur root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx root-6.24.02/tree/dataframe/test/dataframe_simple.cxx
|
||||
--- root-6.24.02.orig/tree/dataframe/test/dataframe_simple.cxx 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/tree/dataframe/test/dataframe_simple.cxx 2021-08-06 09:31:38.803835303 +0200
|
||||
@@ -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>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From 61116151cce8fe5b397555a65f7b55001b8e416b Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 23 Apr 2021 21:39:17 +0200
|
||||
Subject: [PATCH] Compat with no f-strings
|
||||
|
||||
---
|
||||
tutorials/tmva/PyTorch_Generate_CNN_Model.py | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tutorials/tmva/PyTorch_Generate_CNN_Model.py b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
index 7024112f03..5a314f86dd 100644
|
||||
--- a/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
+++ b/tutorials/tmva/PyTorch_Generate_CNN_Model.py
|
||||
@@ -56,7 +56,7 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
|
||||
# print train statistics
|
||||
running_train_loss += train_loss.item()
|
||||
if i % 4 == 3: # print every 4 mini-batches
|
||||
- print(f"[{epoch+1}, {i+1}] train loss: {running_train_loss / 4 :.3f}")
|
||||
+ print("[{}, {}] train loss: {:.3f}".format(epoch+1, i+1, running_train_loss / 4))
|
||||
running_train_loss = 0.0
|
||||
|
||||
if schedule:
|
||||
@@ -75,15 +75,15 @@ def fit(model, train_loader, val_loader, num_epochs, batch_size, optimizer, crit
|
||||
|
||||
curr_val = running_val_loss / len(val_loader)
|
||||
if save_best:
|
||||
- if best_val==None:
|
||||
- best_val = curr_val
|
||||
- best_val = save_best(model, curr_val, best_val)
|
||||
+ if best_val is None:
|
||||
+ best_val = curr_val
|
||||
+ best_val = save_best(model, curr_val, best_val)
|
||||
|
||||
# print val statistics per epoch
|
||||
- print(f"[{epoch+1}] val loss: {curr_val :.3f}")
|
||||
+ print("[{}] val loss: {:.3f}".format(epoch+1, curr_val))
|
||||
running_val_loss = 0.0
|
||||
|
||||
- print(f"Finished Training on {epoch+1} Epochs!")
|
||||
+ print("Finished Training on {} Epochs!".format(epoch+1))
|
||||
|
||||
return model
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 23 Apr 2021 21:40:14 +0200
|
||||
Subject: [PATCH 2/2] Actually request the use of the large code model for
|
||||
ppc64/ppc64le
|
||||
|
||||
Instead of erroring out with an assert.
|
||||
---
|
||||
interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
index 46771aa8c0..93a48f31f3 100644
|
||||
--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
+++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
@@ -73,14 +73,14 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
|
||||
JTMB->getOptions().EmulatedTLS = false;
|
||||
#endif // _WIN32
|
||||
|
||||
- std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
|
||||
-
|
||||
#if defined(__powerpc64__) || defined(__PPC64__)
|
||||
// We have to use large code model for PowerPC64 because TOC and text sections
|
||||
// can be more than 2GB apart.
|
||||
- assert(TM->getCodeModel() >= CodeModel::Large);
|
||||
+ JTMB->setCodeModel(CodeModel::Large);
|
||||
#endif
|
||||
|
||||
+ std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
|
||||
+
|
||||
// Forcefully disable GlobalISel, it might be enabled on AArch64 without
|
||||
// optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this
|
||||
// new instruction selection framework emits branches / calls that expect all
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
index c98a3be0ed..f77d4adec2 100644
|
||||
--- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
+++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp
|
||||
@@ -77,7 +77,7 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) {
|
||||
#if defined(__powerpc64__) || defined(__PPC64__)
|
||||
// We have to use large code model for PowerPC64 because TOC and text sections
|
||||
// can be more than 2GB apart.
|
||||
- JTMB->setCodeModel(CodeModel::Large);
|
||||
+ //JTMB->setCodeModel(CodeModel::Large);
|
||||
#endif
|
||||
|
||||
std::unique_ptr<TargetMachine> TM = cantFail(JTMB->createTargetMachine());
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
From c65f3d96f3f4433bff9d40fa9cf1dec100867a07 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 8 Jun 2021 10:12:37 +0200
|
||||
Subject: [PATCH] Fix 'this' pointer is null warnings
|
||||
|
||||
.../roofit/roofitcore/src/RooDataHist.cxx: In member function 'void RooDataHist::_adjustBinning(RooRealVar&, const TAxis&, RooRealVar*, Int_t*)':
|
||||
.../roofit/roofitcore/src/RooDataHist.cxx:595:122: warning: 'this' pointer is null [-Wnonnull]
|
||||
595 | coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
|
||||
| ^~~~~~~~~~~~~~~
|
||||
|
||||
.../roofit/roofitcore/src/RooRealSumFunc.cxx: In constructor 'RooRealSumFunc::RooRealSumFunc(const char*, const char*, const RooArgList&, const RooArgList&)':
|
||||
.../roofit/roofitcore/src/RooRealSumFunc.cxx:156:35: warning: 'this' pointer is null [-Wnonnull]
|
||||
156 | << " is not of type RooAbsReal, fatal error" << endl;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx: In member function 'void TMVA::DNN::TDataLoader<AData, TMVA::DNN::TReference<AReal> >::CopyInput(TMatrixT<AReal>&, TMVA::DNN::IndexIterator_t) [with AData = std::tuple<const std::vector<TMVA::Event*, std::allocator<TMVA::Event*> >&, const TMVA::DataSetInfo&>; AReal = float]':
|
||||
.../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:131:34: warning: 'this' pointer is null [-Wnonnull]
|
||||
131 | Int_t n = event->GetNVariables();
|
||||
| ~~~~~~~~~~~~~~~~~~~~^~
|
||||
In file included from .../tmva/tmva/inc/TMVA/VariableTransformBase.h:48,
|
||||
from .../tmva/tmva/inc/TMVA/Tools.h:58,
|
||||
from .../tmva/tmva/inc/TMVA/DNN/GeneralLayer.h:36,
|
||||
from .../tmva/tmva/inc/TMVA/DNN/CNN/ConvLayer.h:32,
|
||||
from .../tmva/tmva/inc/TMVA/DNN/Architectures/Reference.h:24,
|
||||
from .../tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx:17:
|
||||
.../tmva/tmva/inc/TMVA/Event.h:88:16: note: in a call to non-static member function 'UInt_t TMVA::Event::GetNVariables() const'
|
||||
88 | UInt_t GetNVariables() const;
|
||||
| ^~~~~~~~~~~~~
|
||||
---
|
||||
roofit/roofitcore/src/RooDataHist.cxx | 2 +-
|
||||
roofit/roofitcore/src/RooRealSumFunc.cxx | 4 ++--
|
||||
tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx | 2 +-
|
||||
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/src/RooDataHist.cxx b/roofit/roofitcore/src/RooDataHist.cxx
|
||||
index 84cf2c0f68..8dddb88e2b 100644
|
||||
--- a/roofit/roofitcore/src/RooDataHist.cxx
|
||||
+++ b/roofit/roofitcore/src/RooDataHist.cxx
|
||||
@@ -591,7 +591,7 @@ void RooDataHist::importDHistSet(const RooArgList& /*vars*/, RooCategory& indexC
|
||||
void RooDataHist::_adjustBinning(RooRealVar &theirVar, const TAxis &axis,
|
||||
RooRealVar *ourVar, Int_t *offset)
|
||||
{
|
||||
- if (!dynamic_cast<RooRealVar*>(ourVar)) {
|
||||
+ if (!dynamic_cast<RooRealVar*>(static_cast<RooAbsArg*>(ourVar))) {
|
||||
coutE(InputArguments) << "RooDataHist::adjustBinning(" << GetName() << ") ERROR: dimension " << ourVar->GetName() << " must be real" << endl ;
|
||||
assert(0) ;
|
||||
}
|
||||
diff --git a/roofit/roofitcore/src/RooRealSumFunc.cxx b/roofit/roofitcore/src/RooRealSumFunc.cxx
|
||||
index 3f78020acd..a1625d7e35 100644
|
||||
--- a/roofit/roofitcore/src/RooRealSumFunc.cxx
|
||||
+++ b/roofit/roofitcore/src/RooRealSumFunc.cxx
|
||||
@@ -149,10 +149,10 @@ RooRealSumFunc::RooRealSumFunc(const char *name, const char *title, const RooArg
|
||||
_coefList.add(*coef);
|
||||
}
|
||||
|
||||
- func = (RooAbsReal *)funcIter->Next();
|
||||
+ func = (RooAbsArg *)funcIter->Next();
|
||||
if (func) {
|
||||
if (!dynamic_cast<RooAbsReal *>(func)) {
|
||||
- coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << coef->GetName()
|
||||
+ coutE(InputArguments) << "RooRealSumFunc::RooRealSumFunc(" << GetName() << ") last func " << func->GetName()
|
||||
<< " is not of type RooAbsReal, fatal error" << endl;
|
||||
assert(0);
|
||||
}
|
||||
diff --git a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
|
||||
index 2465abf308..24a09d1fc0 100644
|
||||
--- a/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
|
||||
+++ b/tmva/tmva/src/DNN/Architectures/Reference/DataLoader.cxx
|
||||
@@ -128,7 +128,7 @@ void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &m
|
||||
Event *event = nullptr;
|
||||
|
||||
Int_t m = matrix.GetNrows();
|
||||
- Int_t n = event->GetNVariables();
|
||||
+ Int_t n = matrix.GetNcols();
|
||||
|
||||
// Copy input variables.
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 1ca221f010fdcfb6249ae7b1cac77fbe29b86214 Mon Sep 17 00:00:00 2001
|
||||
From: Enrico Guiraud <enrico.guiraud@cern.ch>
|
||||
Date: Mon, 7 Jun 2021 11:02:48 +0200
|
||||
Subject: [PATCH] [io] Avoid nullptr deref when printing warning in
|
||||
TStreamerInfo
|
||||
|
||||
---
|
||||
io/io/src/TStreamerInfo.cxx | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx
|
||||
index d545ab7be8..a026635890 100644
|
||||
--- a/io/io/src/TStreamerInfo.cxx
|
||||
+++ b/io/io/src/TStreamerInfo.cxx
|
||||
@@ -1109,12 +1109,12 @@ void TStreamerInfo::BuildCheck(TFile *file /* = 0 */, Bool_t load /* = kTRUE */)
|
||||
fClassVersion, GetName(), GetName(), GetName(), fClassVersion);
|
||||
} else {
|
||||
Warning("BuildCheck", "\n\
|
||||
- The StreamerInfo from %s does not match existing one (%s:%d)\n\
|
||||
+ The StreamerInfo does not match existing one (%s:%d)\n\
|
||||
The existing one has not been used yet and will be discarded.\n\
|
||||
Reading should work properly, however writing object of\n\
|
||||
type %s will not work properly. Most likely the version number\n\
|
||||
of the class was not properly updated [See ClassDef(%s,%d)].",
|
||||
- file->GetName(), GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
|
||||
+ GetName(), fClassVersion, GetName(), GetName(), fClassVersion);
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From 30cbc0d44364586ac64a3ac0fd6641e338549bbe Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 10 Aug 2021 06:33:17 +0200
|
||||
Subject: [PATCH] Adjust tests for s390x
|
||||
|
||||
---
|
||||
math/mathcore/test/stress/testGenVector.cxx | 2 +-
|
||||
test/stressMathCore.cxx | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/math/mathcore/test/stress/testGenVector.cxx b/math/mathcore/test/stress/testGenVector.cxx
|
||||
index 8da429c395..df9061c88e 100644
|
||||
--- a/math/mathcore/test/stress/testGenVector.cxx
|
||||
+++ b/math/mathcore/test/stress/testGenVector.cxx
|
||||
@@ -79,7 +79,7 @@ TYPED_TEST_P(GenVectorTest, TestGenVectors)
|
||||
scale = this->fDim * 20;
|
||||
if (this->fDim == 3 && this->V2Name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
|
||||
if (this->fDim == 4 && ( this->V2Name() == "PtEtaPhiMVector" || this->V2Name() == "PxPyPzMVector")) {
|
||||
-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
|
||||
+#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
|
||||
scale *= 1.E7;
|
||||
#else
|
||||
scale *= 10;
|
||||
diff --git a/test/stressMathCore.cxx b/test/stressMathCore.cxx
|
||||
index 4d4695a8a0..b6d2d2c9e7 100644
|
||||
--- a/test/stressMathCore.cxx
|
||||
+++ b/test/stressMathCore.cxx
|
||||
@@ -1120,7 +1120,7 @@ int testVector(int ngen, bool testio=false) {
|
||||
scale = Dim*20;
|
||||
if (Dim==3 && VecType<V2>::name() == "RhoEtaPhiVector") scale *= 12; // for problem with RhoEtaPhi
|
||||
if (Dim==4 && ( VecType<V2>::name() == "PtEtaPhiMVector" || VecType<V2>::name() == "PxPyPzMVector")) {
|
||||
-#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__))
|
||||
+#if (defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(__s390x__))
|
||||
scale *= 1.E7;
|
||||
#else
|
||||
scale *= 10;
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
|
@ -72,14 +72,7 @@ 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
|
||||
|
|
|
|||
|
|
@ -1,111 +0,0 @@
|
|||
diff -ur root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake
|
||||
--- root-6.24.02.orig/cmake/modules/SearchInstalledSoftware.cmake 2021-06-28 11:17:14.000000000 +0200
|
||||
+++ root-6.24.02/cmake/modules/SearchInstalledSoftware.cmake 2021-08-11 10:56:26.680731609 +0200
|
||||
@@ -1699,102 +1699,17 @@
|
||||
|
||||
#---Download googletest--------------------------------------------------------------
|
||||
if (testing)
|
||||
- # FIXME: Remove our version of gtest in roottest. We can reuse this one.
|
||||
- # Add googletest
|
||||
- # http://stackoverflow.com/questions/9689183/cmake-googletest
|
||||
+ # Workaround for missing libraries in Fedora's gmock packaging < 1.8.0
|
||||
+ if(EXISTS ${CMAKE_SOURCE_DIR}/googlemock)
|
||||
+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock)
|
||||
|
||||
- set(_gtest_byproduct_binary_dir
|
||||
- ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build)
|
||||
- set(_gtest_byproducts
|
||||
- ${_gtest_byproduct_binary_dir}/lib/libgtest.a
|
||||
- ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a
|
||||
- ${_gtest_byproduct_binary_dir}/lib/libgmock.a
|
||||
- ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a
|
||||
- )
|
||||
-
|
||||
- if(MSVC)
|
||||
- set(EXTRA_GTEST_OPTS
|
||||
- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/
|
||||
- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/
|
||||
- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/
|
||||
- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/
|
||||
- -Dgtest_force_shared_crt=ON
|
||||
- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release)
|
||||
- endif()
|
||||
- if(APPLE)
|
||||
- set(EXTRA_GTEST_OPTS
|
||||
- -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT})
|
||||
- endif()
|
||||
-
|
||||
- ExternalProject_Add(
|
||||
- googletest
|
||||
- GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
- GIT_SHALLOW 1
|
||||
- GIT_TAG release-1.10.0
|
||||
- UPDATE_COMMAND ""
|
||||
- # TIMEOUT 10
|
||||
- # # Force separate output paths for debug and release builds to allow easy
|
||||
- # # identification of correct lib in subsequent TARGET_LINK_LIBRARIES commands
|
||||
- # CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=DebugLibs
|
||||
- # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs
|
||||
- # -Dgtest_force_shared_crt=ON
|
||||
- CMAKE_ARGS -G ${CMAKE_GENERATOR}
|
||||
- -DCMAKE_BUILD_TYPE=Release
|
||||
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
- -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS}
|
||||
- -DCMAKE_AR=${CMAKE_AR}
|
||||
- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
||||
- ${EXTRA_GTEST_OPTS}
|
||||
- # Disable install step
|
||||
- INSTALL_COMMAND ""
|
||||
- BUILD_BYPRODUCTS ${_gtest_byproducts}
|
||||
- # Wrap download, configure and build steps in a script to log output
|
||||
- LOG_DOWNLOAD ON
|
||||
- LOG_CONFIGURE ON
|
||||
- LOG_BUILD ON
|
||||
- TIMEOUT 600
|
||||
- )
|
||||
-
|
||||
- # Specify include dirs for gtest and gmock
|
||||
- ExternalProject_Get_Property(googletest source_dir)
|
||||
- set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
|
||||
- set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include)
|
||||
- # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052
|
||||
- file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR})
|
||||
-
|
||||
- # Libraries
|
||||
- ExternalProject_Get_Property(googletest binary_dir)
|
||||
- set(_G_LIBRARY_PATH ${binary_dir}/lib/)
|
||||
-
|
||||
- # Use gmock_main instead of gtest_main because it initializes gtest as well.
|
||||
- # Note: The libraries are listed in reverse order of their dependancies.
|
||||
- foreach(lib gtest gtest_main gmock gmock_main)
|
||||
+ foreach(lib gmock gmock_main)
|
||||
add_library(${lib} IMPORTED STATIC GLOBAL)
|
||||
- set_target_properties(${lib} PROPERTIES
|
||||
- IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
|
||||
- )
|
||||
- add_dependencies(${lib} googletest)
|
||||
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND
|
||||
- ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9)
|
||||
- target_compile_options(${lib} INTERFACE -Wno-deprecated-copy)
|
||||
- endif()
|
||||
endforeach()
|
||||
- # Once we require at least cmake 3.11, target_include_directories will work for imported targets
|
||||
- # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264
|
||||
- # We need this workaround:
|
||||
- SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR})
|
||||
- SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR})
|
||||
- #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR})
|
||||
- #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR})
|
||||
-
|
||||
- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
#------------------------------------------------------------------------------------
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
diff --git a/io/io/src/RRawFileUnix.cxx b/io/io/src/RRawFileUnix.cxx
|
||||
index 829c5e4cb6..417c3adf30 100644
|
||||
--- a/io/io/src/RRawFileUnix.cxx
|
||||
+++ b/io/io/src/RRawFileUnix.cxx
|
||||
@@ -115,26 +115,33 @@ void ROOT::Internal::RRawFileUnix::OpenImpl()
|
||||
void ROOT::Internal::RRawFileUnix::ReadVImpl(RIOVec *ioVec, unsigned int nReq)
|
||||
{
|
||||
#ifdef R__HAS_URING
|
||||
- if (RIoUring::IsAvailable()) {
|
||||
- RIoUring ring;
|
||||
- std::vector<RIoUring::RReadEvent> reads;
|
||||
- reads.reserve(nReq);
|
||||
- for (std::size_t i = 0; i < nReq; ++i) {
|
||||
- RIoUring::RReadEvent ev;
|
||||
- ev.fBuffer = ioVec[i].fBuffer;
|
||||
- ev.fOffset = ioVec[i].fOffset;
|
||||
- ev.fSize = ioVec[i].fSize;
|
||||
- ev.fFileDes = fFileDes;
|
||||
- reads.push_back(ev);
|
||||
+ thread_local bool uring_failed = false;
|
||||
+ if (!uring_failed) {
|
||||
+ try {
|
||||
+ RIoUring ring; // throws std::runtime_error
|
||||
+ std::vector<RIoUring::RReadEvent> reads;
|
||||
+ reads.reserve(nReq);
|
||||
+ for (std::size_t i = 0; i < nReq; ++i) {
|
||||
+ RIoUring::RReadEvent ev;
|
||||
+ ev.fBuffer = ioVec[i].fBuffer;
|
||||
+ ev.fOffset = ioVec[i].fOffset;
|
||||
+ ev.fSize = ioVec[i].fSize;
|
||||
+ ev.fFileDes = fFileDes;
|
||||
+ reads.push_back(ev);
|
||||
+ }
|
||||
+ ring.SubmitReadsAndWait(reads.data(), nReq);
|
||||
+ for (std::size_t i = 0; i < nReq; ++i) {
|
||||
+ ioVec[i].fOutBytes = reads.at(i).fOutBytes;
|
||||
+ }
|
||||
+ return;
|
||||
}
|
||||
- ring.SubmitReadsAndWait(reads.data(), nReq);
|
||||
- for (std::size_t i = 0; i < nReq; ++i) {
|
||||
- ioVec[i].fOutBytes = reads.at(i).fOutBytes;
|
||||
+ catch(const std::runtime_error &e) {
|
||||
+ Warning("RIoUring", "io_uring is unexpectedly not available because:\n%s", e.what());
|
||||
+ Warning("RRawFileUnix",
|
||||
+ "io_uring setup failed, falling back to blocking I/O in ReadV");
|
||||
+ uring_failed = true;
|
||||
}
|
||||
- return;
|
||||
}
|
||||
- Warning("RRawFileUnix",
|
||||
- "io_uring setup failed, falling back to default ReadV implementation");
|
||||
#endif
|
||||
RRawFile::ReadVImpl(ioVec, nReq);
|
||||
}
|
||||
135
root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch
Normal file
135
root-vecops-Adaptive-size-of-long-RVec-instances-in-RVec-.patch
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
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,2 +1,3 @@
|
|||
SHA512 (root-6.24.06.tar.xz) = fe316283503dae60acb26d2ae3e838e6f9c01e1f89ff9973aa2b666a30c00f99f5e0df02b54e3744cd14a45a49ca2fc7d1f19fbac6b69071b9c9e0c98f2e0645
|
||||
SHA512 (root-testfiles.tar.xz) = 945aef1a0cf5af672d4ab84b0ac00b76118e93008ff72447658ee82d9e955a1540af3ff7126e701418872f1d91b92ee96d4985840a519036c42732023a13f00f
|
||||
SHA512 (root-6.38.00.tar.xz) = 7c452b509e8171a0cbb7c102a3d4c07333fc8535f1b2c2ab0b9f7434604f098989a78bb71c41039dd41dbbd3438ea8703939826092f075d9d730b6b53c84ac55
|
||||
SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670
|
||||
SHA512 (clad-2.2.tar.gz) = 6f76d706a829901fc0fcdb38b5ddad6ea8ad9186ea48a4b6b585fc62974a2cda11b96a448c25daaba0586962d6428773e7ab751236c6afa72a91d12f30f2d05e
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue