Compare commits
No commits in common. "rawhide" and "epel10.0" have entirely different histories.
23 changed files with 797 additions and 1050 deletions
|
|
@ -1,49 +1,33 @@
|
|||
From f7bfa429deb9dbae9058998888bbcaa84af0ca08 Mon Sep 17 00:00:00 2001
|
||||
From 81286803e7791377ae75f40e9c65f8928ad8fe31 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 2 Dec 2025 05:33:31 +0100
|
||||
Date: Fri, 30 May 2025 05:31:08 +0200
|
||||
Subject: [PATCH] Adjust test/stressGraphics.ref
|
||||
|
||||
Test 37: TScatter with TPolyMarker test............................ OK
|
||||
PDF output......................................... 37 FAILED
|
||||
Result = 22236
|
||||
Reference = 22560
|
||||
Error = 324 (was 300)
|
||||
JPG output................................................ OK
|
||||
PNG output................................................ OK
|
||||
C file result............................................. OK
|
||||
---
|
||||
test/stressGraphics.ref | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
test/stressGraphics.ref | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref
|
||||
index 2498ec6d755..4520a5ab113 100644
|
||||
index a894796951..a8746db4df 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
|
||||
@@ -35,7 +35,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# JPGRef# JPGErr# PNGRef# PN
|
||||
34 3304592 100 712308 3000 62688 19000 123056 7000 3396789 1000
|
||||
35 3954 100 14654 300 17378 7800 9629 2000 3794 200
|
||||
36 9073 100 22150 300 27691 7800 20712 2000 9157 200
|
||||
- 37 17800 200 22560 300 28599 7800 42618 2000 17600 200
|
||||
+ 37 17800 200 22560 400 28599 7800 42618 2000 17600 200
|
||||
38 12926 200 24304 300 24021 6800 12637 2000 12584 200
|
||||
39 29664 200 19354 300 23024 6500 12821 2000 31317 200
|
||||
40 46000 400 23482 300 38792 8500 30458 4000 46000 400
|
||||
--
|
||||
2.52.0
|
||||
2.49.0
|
||||
|
||||
|
|
|
|||
41
root-Avoid-OverflowError-from-RDF-pythonization.patch
Normal file
41
root-Avoid-OverflowError-from-RDF-pythonization.patch
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
From c3a9293a08fecb288cdd09b399c9c2808923e617 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 27 Aug 2025 17:09:12 +0200
|
||||
Subject: [PATCH] Avoid OverflowError from RDF pythonization
|
||||
|
||||
Fixes test failures on 32 bit intel ix86.
|
||||
|
||||
The following tests FAILED:
|
||||
62 - pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-rdataframe-makenumpy (Failed) python python_runtime_deps
|
||||
1257 - tutorial-analysis-dataframe-df032_RDFFromNumpy-py (Failed) python_runtime_deps tutorial
|
||||
|
||||
1259/1470 Test #1257: tutorial-analysis-dataframe-df032_RDFFromNumpy-py .............................................***Failed 1.14 sec
|
||||
Traceback (most recent call last):
|
||||
File ".../tutorials/analysis/dataframe/df032_RDFFromNumpy.py", line 23, in <module>
|
||||
df = ROOT.RDF.FromNumpy({'x': x, 'y': y})
|
||||
File ".../redhat-linux-build/lib/ROOT/_facade.py", line 349, in MakeNumpyDataFrameCopy
|
||||
return _MakeNumpyDataFrame(np_dict)
|
||||
File ".../redhat-linux-build/lib/ROOT/_pythonization/_rdataframe.py", line 601, in _MakeNumpyDataFrame
|
||||
return ROOT.Internal.RDF.MakeRVecDataFrame(ROOT.__ROOT_Internal.MakePyDeleter(key), *args)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
|
||||
OverflowError: Python int too large to convert to C long
|
||||
---
|
||||
.../pythonizations/python/ROOT/_pythonization/_rdataframe.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
index d5cade59805..f9bb2771a73 100644
|
||||
--- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
+++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_rdataframe.py
|
||||
@@ -584,7 +584,7 @@ def _MakeNumpyDataFrame(np_dict):
|
||||
|
||||
namespace __ROOT_Internal {
|
||||
|
||||
- inline std::function<void()> MakePyDeleter(std::intptr_t ptr) {
|
||||
+ inline std::function<void()> MakePyDeleter(std::uintptr_t ptr) {
|
||||
PyObject *obj = reinterpret_cast<PyObject*>(ptr);
|
||||
Py_INCREF(obj);
|
||||
return [obj](){ Py_DECREF(obj); };
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 40f8cd0adeb7257778c789e1ae639f260780402b Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sun, 7 Dec 2025 19:30:55 +0100
|
||||
Subject: [PATCH] Fix a numpy test for 32 bit archs
|
||||
|
||||
The default dtype used in numpy array is "int". This type has
|
||||
different sizes on 32 and 64 bit architectures. The test tries to use
|
||||
the numpy array as a Long64_t dataframe. On 32 bit architectures this
|
||||
results in an error.
|
||||
|
||||
This commit explicitly changes the numpy array's dtype to "int64" to
|
||||
match the Long64_t dataframe type on all architectyres.
|
||||
---
|
||||
bindings/pyroot/pythonizations/test/rdataframe_misc.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rdataframe_misc.py b/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
index 1a1efd21b3e..150828613b3 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rdataframe_misc.py
|
||||
@@ -132,7 +132,7 @@ class RDataFrameMisc(unittest.TestCase):
|
||||
return
|
||||
out_path = "dataframe_misc_regression_gh20291.root"
|
||||
try:
|
||||
- x, y = numpy.array([1, 2, 3]), numpy.array([4, 5, 6])
|
||||
+ x, y = numpy.array([1, 2, 3], dtype='int64'), numpy.array([4, 5, 6], dtype='int64')
|
||||
df = ROOT.RDF.FromNumpy({"x": x, "y": y})
|
||||
|
||||
df.Snapshot("tree", out_path)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
57
root-Fix-test-for-32-bit-architectures.patch
Normal file
57
root-Fix-test-for-32-bit-architectures.patch
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
From 8f08aac1c5d356352d2bd24b05dcdd092d3ca864 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 19 Jun 2025 13:28:24 +0200
|
||||
Subject: [PATCH] Fix test for 32 bit architectures
|
||||
|
||||
[ RUN ] TypeReflectionTest.GetSizeOfType
|
||||
/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp:79: Failure
|
||||
Expected equality of these values:
|
||||
Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4]))
|
||||
Which is: 12
|
||||
16
|
||||
[ FAILED ] TypeReflectionTest.GetSizeOfType (23 ms)
|
||||
|
||||
[ RUN ] ScopeReflectionTest.SizeOf
|
||||
/builddir/build/BUILD/root-6.36.00-build/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp:161: Failure
|
||||
Expected equality of these values:
|
||||
Cpp::SizeOf(Decls[7])
|
||||
Which is: 12
|
||||
(size_t)16
|
||||
Which is: 16
|
||||
[ FAILED ] ScopeReflectionTest.SizeOf (26 ms)
|
||||
---
|
||||
.../CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp | 3 ++-
|
||||
.../CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp | 3 ++-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp
|
||||
index 0b39080859..d490d0833c 100644
|
||||
--- a/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp
|
||||
+++ b/interpreter/CppInterOp/unittests/CppInterOp/ScopeReflectionTest.cpp
|
||||
@@ -158,7 +158,8 @@ TEST(ScopeReflectionTest, SizeOf) {
|
||||
EXPECT_EQ(Cpp::SizeOf(Decls[4]), (size_t)0);
|
||||
EXPECT_EQ(Cpp::SizeOf(Decls[5]), (size_t)1);
|
||||
EXPECT_EQ(Cpp::SizeOf(Decls[6]), (size_t)4);
|
||||
- EXPECT_EQ(Cpp::SizeOf(Decls[7]), (size_t)16);
|
||||
+ struct B {short a; double b;};
|
||||
+ EXPECT_EQ(Cpp::SizeOf(Decls[7]), sizeof(B));
|
||||
}
|
||||
|
||||
|
||||
diff --git a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp
|
||||
index a3e482596d..28cc32f166 100644
|
||||
--- a/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp
|
||||
+++ b/interpreter/CppInterOp/unittests/CppInterOp/TypeReflectionTest.cpp
|
||||
@@ -77,7 +77,8 @@ TEST(TypeReflectionTest, GetSizeOfType) {
|
||||
EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[1])), 1);
|
||||
EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[2])), 4);
|
||||
EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[3])), 8);
|
||||
- EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), 16);
|
||||
+ struct B {int a; double b;};
|
||||
+ EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[4])), sizeof(B));
|
||||
EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetTypeFromScope(Decls[5])), 0);
|
||||
EXPECT_EQ(Cpp::GetSizeOfType(Cpp::GetVariableType(Decls[6])),
|
||||
sizeof(intptr_t));
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
From 0e1e1f0ba1908ae1020337ed7ec0565bf979b92c Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 2 Dec 2025 04:57:30 +0100
|
||||
Subject: [PATCH] [Geom] Add missing includes of TMath.h
|
||||
|
||||
---
|
||||
geom/geombuilder/src/TGeoParaEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoPconEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoPgonEditor.cxx | 1 +
|
||||
geom/geombuilder/src/TGeoTrapEditor.cxx | 1 +
|
||||
4 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/geom/geombuilder/src/TGeoParaEditor.cxx b/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
index fdc344ba4d2..bd173607d2c 100644
|
||||
--- a/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoParaEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPara.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoPconEditor.cxx b/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
index a66359853be..50598d2cb90 100644
|
||||
--- a/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoPconEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPcon.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGCanvas.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoPgonEditor.cxx b/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
index 949d0045a66..33638d66b2b 100644
|
||||
--- a/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoPgonEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoPgon.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
#include "TGLabel.h"
|
||||
diff --git a/geom/geombuilder/src/TGeoTrapEditor.cxx b/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
index d9c2916d075..459e0191117 100644
|
||||
--- a/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
+++ b/geom/geombuilder/src/TGeoTrapEditor.cxx
|
||||
@@ -27,6 +27,7 @@ Editor for a TGeoTrap.
|
||||
#include "TVirtualGeoPainter.h"
|
||||
#include "TVirtualPad.h"
|
||||
#include "TView.h"
|
||||
+#include "TMath.h"
|
||||
#include "TGButton.h"
|
||||
#include "TGTextEntry.h"
|
||||
#include "TGNumberEntry.h"
|
||||
--
|
||||
2.52.0
|
||||
|
||||
62
root-Ignore-warnings-from-uring-IO.patch
Normal file
62
root-Ignore-warnings-from-uring-IO.patch
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
From f4ac6bf20278c19c88cf98f6062ecfad86b87378 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 19 Jun 2025 14:02:31 +0200
|
||||
Subject: [PATCH] Ignore warnings from uring IO
|
||||
|
||||
Tests randomly fail because the uring memory is exhausted.
|
||||
|
||||
Here are some examples:
|
||||
|
||||
[ RUN ] RNTuple.RandomAccess
|
||||
.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure
|
||||
Failed
|
||||
Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because:
|
||||
Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'.
|
||||
Suppress those using ROOT/TestSupport.hxx
|
||||
.../root-6.36.00/core/testsupport/src/TestSupport.cxx:79: Failure
|
||||
Failed
|
||||
Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'.
|
||||
Suppress those using ROOT/TestSupport.hxx
|
||||
[ FAILED ] RNTuple.RandomAccess (20472 ms)
|
||||
|
||||
[ RUN ] RNTupleDSTest.ChainMT
|
||||
.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure
|
||||
Failed
|
||||
Received unexpected diagnostic of severity 2000 at 'RIoUring' reading 'io_uring is unexpectedly not available because:
|
||||
Failed to allocate memory for the smallest possible io_uring instance. 'memlock' memory has been exhausted for this user'.
|
||||
Suppress those using ROOT/TestSupport.hxx
|
||||
.../root-6.34.08/core/testsupport/src/TestSupport.cxx:79: Failure
|
||||
Failed
|
||||
Received unexpected diagnostic of severity 2000 at 'RRawFileUnix' reading 'io_uring setup failed, falling back to blocking I/O in ReadV'.
|
||||
Suppress those using ROOT/TestSupport.hxx
|
||||
[ FAILED ] RNTupleDSTest.ChainMT (1004 ms)
|
||||
---
|
||||
core/testsupport/src/TestSupport.cxx | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/core/testsupport/src/TestSupport.cxx b/core/testsupport/src/TestSupport.cxx
|
||||
index 9889a432f4..4c3395ef16 100644
|
||||
--- a/core/testsupport/src/TestSupport.cxx
|
||||
+++ b/core/testsupport/src/TestSupport.cxx
|
||||
@@ -76,6 +76,18 @@ static struct ForbidDiagnostics {
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (level == kWarning && strcmp(location, "RIoUring") == 0 &&
|
||||
+ strstr(msg, "io_uring is unexpectedly not available because:") != nullptr) {
|
||||
+ std::cerr << "Warning in " << location << " " << msg << std::endl;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (level == kWarning && strcmp(location, "RRawFileUnix") == 0 &&
|
||||
+ strcmp(msg, "io_uring setup failed, falling back to blocking I/O in ReadV") == 0) {
|
||||
+ std::cerr << "Warning in " << location << " " << msg << std::endl;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
FAIL() << "Received unexpected diagnostic of severity "
|
||||
<< level
|
||||
<< " at '" << location << "' reading '" << msg << "'.\n"
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From f09b4ce027b31dcd19ea8a398c35c5dfbcc0507f Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Thu, 18 Dec 2025 11:49:12 +0100
|
||||
Subject: [PATCH] [PyROOT] Don't install the python modules twice
|
||||
|
||||
The binary python modules were moved one directory level down into the
|
||||
ROOT and cppyy directories, so that they reside alongside the python
|
||||
files in the same directories. The install rule for the python files
|
||||
must therefore be extended to exclude the binary modules (PATTERN *.so
|
||||
EXCLUDE) so that these are not installed a second time overwriting the
|
||||
files installed by the install rule for the binary modules with another
|
||||
copy with the wrong file permissions.
|
||||
|
||||
Also use the no-version option for the cppyy binary module as is
|
||||
already done for the pythonization binary module, since it is now
|
||||
installed in the python directory. Before it was installed in the
|
||||
library directory with an unversioned symlink in the python directory.
|
||||
---
|
||||
bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt | 2 +-
|
||||
bindings/pyroot/cppyy/cppyy/CMakeLists.txt | 5 +++--
|
||||
bindings/pyroot/pythonizations/CMakeLists.txt | 3 ++-
|
||||
3 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
index bb48c032974..065a89348ff 100644
|
||||
--- a/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
|
||||
@@ -73,7 +73,7 @@ endif()
|
||||
add_library(cppyy SHARED src/CPyCppyyPyModule.cxx)
|
||||
|
||||
# Set the suffix to '.so' and the prefix to 'lib'
|
||||
-set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES}
|
||||
+set_target_properties(cppyy PROPERTIES ${ROOT_LIBRARY_PROPERTIES_NO_VERSION}
|
||||
LIBRARY_OUTPUT_DIRECTORY ${localruntimedir}/cppyy)
|
||||
if(MSVC)
|
||||
target_link_libraries(cppyy PRIVATE CPyCppyy)
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
index 3a29b4525f7..842ad12df97 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/CMakeLists.txt
|
||||
@@ -31,8 +31,9 @@ endforeach()
|
||||
# Install Python sources and bytecode
|
||||
install(DIRECTORY ${localruntimedir}/cppyy
|
||||
DESTINATION ${CMAKE_INSTALL_PYTHONDIR}
|
||||
- COMPONENT libraries)
|
||||
+ COMPONENT libraries
|
||||
+ PATTERN *.so EXCLUDE)
|
||||
|
||||
if(NOT MSVC)
|
||||
ROOT_ADD_TEST_SUBDIRECTORY(test)
|
||||
-endif()
|
||||
\ No newline at end of file
|
||||
+endif()
|
||||
diff --git a/bindings/pyroot/pythonizations/CMakeLists.txt b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
index 1230f18ca47..b415ba13697 100644
|
||||
--- a/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
+++ b/bindings/pyroot/pythonizations/CMakeLists.txt
|
||||
@@ -239,7 +239,8 @@ install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
|
||||
# Install Python sources and bytecode
|
||||
install(DIRECTORY ${localruntimedir}/ROOT
|
||||
DESTINATION ${CMAKE_INSTALL_PYTHONDIR}
|
||||
- COMPONENT libraries)
|
||||
+ COMPONENT libraries
|
||||
+ PATTERN *.so EXCLUDE)
|
||||
|
||||
# Install headers required by pythonizations
|
||||
install(FILES ${PYROOT_EXTRA_HEADERS}
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
From d5135f7869406396b3ba8e944c71dbdd67d3ea01 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Tue, 23 Dec 2025 19:04:45 +0100
|
||||
Subject: [PATCH] [Python] Fix TF1 Pythonization test for NumPy 2.4.0
|
||||
|
||||
The new NumPy 2.4.0 is more strict when implicitly converting 1-element
|
||||
arrays to scalars. It doesn't do that anymore, causing the TF1
|
||||
Pythonization tests to fail (see log below).
|
||||
|
||||
This actually pointed to a real mistake in setting up the test, where a
|
||||
2D array was used to define the TFormula parameters while it should be a
|
||||
1D array.
|
||||
|
||||
```txt
|
||||
962/3718 Test #93: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..............................***Failed 3.05 sec
|
||||
test_callable (tf_pycallables.TF1.test_callable)
|
||||
Test function provided as callable ... ok
|
||||
test_evalpar (tf_pycallables.TF1.test_evalpar)
|
||||
Test the 2D Numpy array pythonizations for TF1::EvalPar ... ERROR
|
||||
test_evalpar_dynamic (tf_pycallables.TF1.test_evalpar_dynamic)
|
||||
Test the 2D NumPy pythonizations with dynamic TF1 data dimensions ... ok
|
||||
test_fitgauss (tf_pycallables.TF1.test_fitgauss)
|
||||
Test fitting a histogram to a Python function ... ok
|
||||
test_identity (tf_pycallables.TF1.test_identity)
|
||||
Test simple function without parameters ... ok
|
||||
test_params (tf_pycallables.TF1.test_params)
|
||||
Test function with parameters ... ok
|
||||
test_params (tf_pycallables.TF2.test_params)
|
||||
Test function with parameters ... ok
|
||||
test_params (tf_pycallables.TF3.test_params)
|
||||
Test function with parameters ... ok
|
||||
|
||||
======================================================================
|
||||
ERROR: test_evalpar (tf_pycallables.TF1.test_evalpar)
|
||||
Test the 2D Numpy array pythonizations for TF1::EvalPar
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 129, in test_evalpar
|
||||
expected_value = pyf_tf1_coulomb(x[i, ::2], params)
|
||||
File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 33, in pyf_tf1_coulomb
|
||||
return p[1] * x[0] * x[1] / (p[0]**2) * math.exp(-p[2] / p[0])
|
||||
~~~~~~~~^^^^^^^^^^^^^^
|
||||
TypeError: only 0-dimensional arrays can be converted to Python scalars
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 1.469s
|
||||
|
||||
FAILED (errors=1)
|
||||
CMake Error at /github/home/ROOT-CI/src/cmake/modules/RootTestDriver.cmake:232 (message):
|
||||
error code: 1
|
||||
|
||||
```
|
||||
---
|
||||
.../pyroot/pythonizations/test/tf_pycallables.py | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/tf_pycallables.py b/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
index 2a7d6b72462..5a223030ec9 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/tf_pycallables.py
|
||||
@@ -116,11 +116,13 @@ class TF1(unittest.TestCase):
|
||||
[3.0, 10, 4.0]
|
||||
])
|
||||
|
||||
- params = np.array([
|
||||
- [1.0], # Distance between charges r
|
||||
- [8.99e9], # Coulomb constant k (in N·m²/C²)
|
||||
- [0.1] # Additional factor for modulation
|
||||
- ])
|
||||
+ params = np.array(
|
||||
+ [
|
||||
+ 1.0, # Distance between charges r
|
||||
+ 8.99e9, # Coulomb constant k (in N·m²/C²)
|
||||
+ 0.1, # Additional factor for modulation
|
||||
+ ]
|
||||
+ )
|
||||
|
||||
# Slice to avoid the dummy column of 10's
|
||||
res = rtf1_coulomb.EvalPar(x[:, ::2], params)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
From f26668d48bfc75e9c176f7981e51ddc3b5ed7895 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Wed, 11 Jun 2025 14:15:07 +0200
|
||||
Subject: [PATCH] [Python] Update reference refcount values for Python 3.14
|
||||
compatibility
|
||||
|
||||
Closes: #18988.
|
||||
---
|
||||
.../pyroot/pythonizations/test/rdataframe_makenumpy.py | 9 ++++++++-
|
||||
bindings/pyroot/pythonizations/test/rvec_asrvec.py | 10 +++++++---
|
||||
2 files changed, 15 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
index 072148aeb6..c7da723523 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
@@ -75,10 +75,17 @@ class DataFrameFromNumpy(unittest.TestCase):
|
||||
def test_refcount(self):
|
||||
"""
|
||||
Check refcounts of associated PyObjects
|
||||
+
|
||||
+ In case of Python <=3.14, we expect a refcount of 2 for the data dict,
|
||||
+ because the call to sys.getrefcount creates a second reference by
|
||||
+ itself. Starting from Python 3.14, we expect a refcount of 1 because
|
||||
+ there were changes to the interpreter to avoid some unnecessary ref
|
||||
+ counts. See also:
|
||||
+ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount
|
||||
"""
|
||||
data = {"x": np.array([1, 2, 3], dtype="float32")}
|
||||
gc.collect()
|
||||
- self.assertEqual(sys.getrefcount(data), 2)
|
||||
+ self.assertEqual(sys.getrefcount(data), 1 + int(sys.version_info < (3, 14)))
|
||||
self.assertEqual(sys.getrefcount(data["x"]), 2)
|
||||
|
||||
df = ROOT.RDF.FromNumpy(data)
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
index 5e6c820705..9d3a294bf1 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
@@ -123,8 +123,12 @@ class AsRVec(unittest.TestCase):
|
||||
"""
|
||||
Test reference count of returned RVec
|
||||
|
||||
- We expect a refcount of 2 for the RVec because the call to sys.getrefcount
|
||||
- creates a second reference by itself.
|
||||
+ In case of Python <=3.14, we expect a refcount of 2 for the RVec
|
||||
+ because the call to sys.getrefcount creates a second reference by
|
||||
+ itself. Starting from Python 3.14, we expect a refcount of 1 because
|
||||
+ there were changes to the interpreter to avoid some unnecessary ref
|
||||
+ counts. See also:
|
||||
+ https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-refcount
|
||||
We attach the adopted pyobject to the RVec and increase the refcount of the
|
||||
numpy array. After deletion of the rvec, the refcount of the numpy array
|
||||
is decreased.
|
||||
@@ -132,7 +136,7 @@ class AsRVec(unittest.TestCase):
|
||||
np_obj = np.array([1, 2])
|
||||
rvec = ROOT.VecOps.AsRVec(np_obj)
|
||||
gc.collect()
|
||||
- self.assertEqual(sys.getrefcount(rvec), 2)
|
||||
+ self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14)))
|
||||
self.assertEqual(sys.getrefcount(np_obj), 3)
|
||||
del rvec
|
||||
gc.collect()
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From 530d925f9832fe5fd1469ebf145f85227cfce1d4 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 20 Jun 2025 07:21:05 +0200
|
||||
Subject: [PATCH] [Python] Update reference refcount values for Python 3.14
|
||||
compatibility
|
||||
|
||||
---
|
||||
bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py | 2 +-
|
||||
bindings/pyroot/pythonizations/test/rvec_asrvec.py | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
index c7da723523..fc0f88155a 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rdataframe_makenumpy.py
|
||||
@@ -90,7 +90,7 @@ class DataFrameFromNumpy(unittest.TestCase):
|
||||
|
||||
df = ROOT.RDF.FromNumpy(data)
|
||||
gc.collect()
|
||||
- self.assertEqual(sys.getrefcount(df), 2)
|
||||
+ self.assertEqual(sys.getrefcount(df), 1 + int(sys.version_info < (3, 14)))
|
||||
|
||||
self.assertEqual(sys.getrefcount(data["x"]), 3)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/rvec_asrvec.py b/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
index 9d3a294bf1..f489da826e 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/rvec_asrvec.py
|
||||
@@ -137,10 +137,10 @@ class AsRVec(unittest.TestCase):
|
||||
rvec = ROOT.VecOps.AsRVec(np_obj)
|
||||
gc.collect()
|
||||
self.assertEqual(sys.getrefcount(rvec), 1 + int(sys.version_info < (3, 14)))
|
||||
- self.assertEqual(sys.getrefcount(np_obj), 3)
|
||||
+ self.assertEqual(sys.getrefcount(np_obj), 2 + int(sys.version_info < (3, 14)))
|
||||
del rvec
|
||||
gc.collect()
|
||||
- self.assertEqual(sys.getrefcount(np_obj), 2)
|
||||
+ self.assertEqual(sys.getrefcount(np_obj), 1 + int(sys.version_info < (3, 14)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From e1f42658629ad67ce7cb224a1379d133f61f2e35 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Sun, 11 Jan 2026 10:25:51 +0100
|
||||
Subject: [PATCH] [RF] Use TRandom3 in test RooFuncWrapper
|
||||
|
||||
Use TRandom3 instead of the `<random>` to get compiler-independent,
|
||||
reproducible behavior.
|
||||
---
|
||||
roofit/roofitcore/test/testRooFuncWrapper.cxx | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/roofit/roofitcore/test/testRooFuncWrapper.cxx b/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
index 2ebdf95333f..189e8f2e266 100644
|
||||
--- a/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
+++ b/roofit/roofitcore/test/testRooFuncWrapper.cxx
|
||||
@@ -34,12 +34,12 @@
|
||||
#include <RooWorkspace.h>
|
||||
|
||||
#include <ROOT/StringUtils.hxx>
|
||||
+#include <TMath.h>
|
||||
#include <TROOT.h>
|
||||
+#include <TRandom3.h>
|
||||
#include <TSystem.h>
|
||||
-#include <TMath.h>
|
||||
|
||||
#include <functional>
|
||||
-#include <random>
|
||||
|
||||
#include "gtest_wrapper.h"
|
||||
|
||||
@@ -66,13 +66,13 @@ double getNumDerivative(const RooAbsReal &pdf, RooRealVar &var, const RooArgSet
|
||||
|
||||
void randomizeParameters(const RooArgSet ¶meters)
|
||||
{
|
||||
+ TRandom3 rng(1337);
|
||||
+
|
||||
double lowerBound = -0.1;
|
||||
double upperBound = 0.1;
|
||||
- std::uniform_real_distribution<double> unif(lowerBound, upperBound);
|
||||
- std::default_random_engine re;
|
||||
|
||||
for (auto *param : parameters) {
|
||||
- double mul = unif(re);
|
||||
+ double mul = rng.Uniform(lowerBound, upperBound);
|
||||
|
||||
auto par = dynamic_cast<RooAbsRealLValue *>(param);
|
||||
if (!par)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 98a5042a02dd7c1aaa9fbd5e54c8620c6b72484f Mon Sep 17 00:00:00 2001
|
||||
From e59ece55e4eead85b2b6fd8c6ddc2dfa179f0d09 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
|
||||
|
|
@ -9,21 +9,21 @@ Subject: [PATCH] Save memory. Do not link to LLVM libraries in parallel
|
|||
2 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/core/clingutils/test/CMakeLists.txt b/core/clingutils/test/CMakeLists.txt
|
||||
index a6c7aedac99..90ac0139c24 100644
|
||||
index 15cc3ff48a..f62735e972 100644
|
||||
--- a/core/clingutils/test/CMakeLists.txt
|
||||
+++ b/core/clingutils/test/CMakeLists.txt
|
||||
@@ -36,3 +36,6 @@ if(NOT builtin_clang)
|
||||
@@ -31,3 +31,6 @@ if(NOT builtin_clang)
|
||||
endif()
|
||||
|
||||
ROOT_ADD_UNITTEST_DIR(Core ${CLING_LIBRARIES} $<TARGET_OBJECTS:ClingUtils>)
|
||||
ROOT_ADD_UNITTEST_DIR(Core RIO ${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
|
||||
index 0ba35053fd..c6440cf301 100644
|
||||
--- a/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt
|
||||
+++ b/interpreter/CppInterOp/unittests/CppInterOp/CMakeLists.txt
|
||||
@@ -66,6 +66,9 @@ target_link_libraries(CppInterOpTests
|
||||
@@ -65,6 +65,9 @@ target_link_libraries(CppInterOpTests
|
||||
clangCppInterOp
|
||||
)
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ index 4b4b43bdd29..a028802fedc 100644
|
|||
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
|
||||
@@ -116,5 +119,8 @@ set_output_directory(DynamicLibraryManagerTests
|
||||
|
||||
add_dependencies(DynamicLibraryManagerTests TestSharedLib)
|
||||
|
||||
|
|
@ -43,5 +43,5 @@ index 4b4b43bdd29..a028802fedc 100644
|
|||
#export_executable_symbols_for_plugins(TestSharedLib)
|
||||
add_subdirectory(TestSharedLib)
|
||||
--
|
||||
2.52.0
|
||||
2.49.0
|
||||
|
||||
|
|
|
|||
60
root-Use-size_t-for-offset.patch
Normal file
60
root-Use-size_t-for-offset.patch
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
From 7bfd27ac478356e7c718b18b5eb3a3b277b833d1 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Tue, 3 Jun 2025 06:49:27 +0200
|
||||
Subject: [PATCH] Use size_t for offset
|
||||
|
||||
[ RUN ] VariableReflectionTest.StaticConstExprDatamember
|
||||
/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:545: Failure
|
||||
Expected equality of these values:
|
||||
3
|
||||
*(int*)offset
|
||||
Which is: 0
|
||||
/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:561: Failure
|
||||
Expected equality of these values:
|
||||
5
|
||||
*(int*)offset
|
||||
Which is: 0
|
||||
/builddir/build/BUILD/root-6.36.00/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp:580: Failure
|
||||
Expected equality of these values:
|
||||
2
|
||||
*(int*)offset
|
||||
Which is: 0
|
||||
[ FAILED ] VariableReflectionTest.StaticConstExprDatamember (9 ms)
|
||||
---
|
||||
.../unittests/CppInterOp/VariableReflectionTest.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp
|
||||
index 26dad4f25c..571ae5cd5d 100644
|
||||
--- a/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp
|
||||
+++ b/interpreter/CppInterOp/unittests/CppInterOp/VariableReflectionTest.cpp
|
||||
@@ -552,7 +552,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) {
|
||||
EXPECT_EQ(datamembers.size(), 1);
|
||||
|
||||
intptr_t offset = Cpp::GetVariableOffset(datamembers[0]);
|
||||
- EXPECT_EQ(3, *(int*)offset);
|
||||
+ EXPECT_EQ(3, *(size_t*)offset);
|
||||
|
||||
ASTContext& C = Interp->getCI()->getASTContext();
|
||||
std::vector<Cpp::TemplateArgInfo> template_args = {
|
||||
@@ -568,7 +568,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) {
|
||||
EXPECT_EQ(datamembers.size(), 1);
|
||||
|
||||
offset = Cpp::GetVariableOffset(datamembers[0]);
|
||||
- EXPECT_EQ(5, *(int*)offset);
|
||||
+ EXPECT_EQ(5, *(size_t*)offset);
|
||||
|
||||
std::vector<Cpp::TemplateArgInfo> ele_template_args = {
|
||||
{C.IntTy.getAsOpaquePtr()}, {C.FloatTy.getAsOpaquePtr()}};
|
||||
@@ -587,7 +587,7 @@ TEST(VariableReflectionTest, StaticConstExprDatamember) {
|
||||
EXPECT_EQ(datamembers.size(), 1);
|
||||
|
||||
offset = Cpp::GetVariableOffset(datamembers[0]);
|
||||
- EXPECT_EQ(2, *(int*)offset);
|
||||
+ EXPECT_EQ(2, *(size_t*)offset);
|
||||
}
|
||||
|
||||
TEST(VariableReflectionTest, GetEnumConstantDatamembers) {
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From fd18e83ae79760f7e8cca6f28b6d0f89d912b152 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Wed, 26 Nov 2025 12:40:03 +0100
|
||||
Subject: [PATCH] [VecOps] Remove outdated `IsSmall` helper function in tests
|
||||
|
||||
The commit 2605710bea7b1 changed from using the `ROOT::Detail::VecOps::`
|
||||
namespace explicitly for `IsSmall` to a `using` statement. However,
|
||||
there was also a remnant `IsSmall` function with an outdated
|
||||
implementation in the test file itself, which we can now remove.
|
||||
---
|
||||
math/vecops/test/vecops_rvec.cxx | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx
|
||||
index 034f06ca211..432c673a553 100644
|
||||
--- a/math/vecops/test/vecops_rvec.cxx
|
||||
+++ b/math/vecops/test/vecops_rvec.cxx
|
||||
@@ -1493,13 +1493,6 @@ TEST(VecOps, Construct)
|
||||
EXPECT_TRUE(fourVects[2] == ref2);
|
||||
}
|
||||
|
||||
-bool IsSmall(const RVec<int> &v)
|
||||
-{
|
||||
- // the first array element is right after the 3 data members of SmallVectorBase
|
||||
- return reinterpret_cast<std::uintptr_t>(v.begin()) - reinterpret_cast<std::uintptr_t>(&v) ==
|
||||
- sizeof(void *) + 2 * sizeof(int);
|
||||
-}
|
||||
-
|
||||
// this is a regression test for https://github.com/root-project/root/issues/6796
|
||||
TEST(VecOps, MemoryAdoptionAndClear)
|
||||
{
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
From 251de0f8b237ce041df4960f831fe4a1fade6d92 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Sat, 6 Dec 2025 17:39:40 +0100
|
||||
Subject: [PATCH] [cppyy] Remove code related to finding CPyCppyy API header
|
||||
path
|
||||
|
||||
This is not needed for ROOT, because the CPyCppyy API headers are
|
||||
installed with the other ROOT headers anyway, and ROOT knows where to
|
||||
find them already.
|
||||
---
|
||||
.../cppyy/cppyy/python/cppyy/__init__.py | 82 -------------------
|
||||
1 file changed, 82 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
index 68e3c49e5fe..c8dd458bfdd 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
|
||||
@@ -297,88 +297,6 @@ elif ispypy:
|
||||
if os.path.exists(apipath) and os.path.exists(os.path.join(apipath, 'Python.h')):
|
||||
add_include_path(apipath)
|
||||
|
||||
-# add access to extra headers for dispatcher (CPyCppyy only (?))
|
||||
-if not ispypy:
|
||||
- try:
|
||||
- apipath_extra = os.environ['CPPYY_API_PATH']
|
||||
- if os.path.basename(apipath_extra) == 'CPyCppyy':
|
||||
- apipath_extra = os.path.dirname(apipath_extra)
|
||||
- except KeyError:
|
||||
- apipath_extra = None
|
||||
-
|
||||
- if apipath_extra is None:
|
||||
- try:
|
||||
- if 0x30a0000 <= sys.hexversion:
|
||||
- import importlib.metadata as m
|
||||
-
|
||||
- for p in m.files('CPyCppyy'):
|
||||
- if p.match('API.h'):
|
||||
- ape = p.locate()
|
||||
- break
|
||||
- del p, m
|
||||
- else:
|
||||
- import pkg_resources as pr
|
||||
-
|
||||
- d = pr.get_distribution('CPyCppyy')
|
||||
- for line in d.get_metadata_lines('RECORD'):
|
||||
- if 'API.h' in line:
|
||||
- ape = os.path.join(d.location, line[0:line.find(',')])
|
||||
- break
|
||||
- del line, d, pr
|
||||
-
|
||||
- if os.path.exists(ape):
|
||||
- apipath_extra = os.path.dirname(os.path.dirname(ape))
|
||||
- del ape
|
||||
- except Exception:
|
||||
- pass
|
||||
-
|
||||
- if apipath_extra is None:
|
||||
- ldversion = sysconfig.get_config_var('LDVERSION')
|
||||
- if not ldversion:
|
||||
- ldversion = sys.version[:3]
|
||||
-
|
||||
- apipath_extra = os.path.join(os.path.dirname(apipath), 'site', 'python'+ldversion)
|
||||
- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
|
||||
- import glob
|
||||
- import platform
|
||||
-
|
||||
- if platform.system() == "Windows":
|
||||
- # Install locations are handled differently on Windows
|
||||
- import libcppyy
|
||||
-
|
||||
- ape = os.path.dirname(libcppyy.__file__)
|
||||
- else:
|
||||
- import cppyy.libcppyy as libcppyy
|
||||
-
|
||||
- ape = os.path.dirname(libcppyy.__file__)
|
||||
- # a "normal" structure finds the include directory up to 3 levels up,
|
||||
- # ie. dropping lib/pythonx.y[md]/site-packages
|
||||
- for i in range(3):
|
||||
- if os.path.exists(os.path.join(ape, 'include')):
|
||||
- break
|
||||
- ape = os.path.dirname(ape)
|
||||
-
|
||||
- ape = os.path.join(ape, 'include')
|
||||
- if os.path.exists(os.path.join(ape, 'CPyCppyy')):
|
||||
- apipath_extra = ape
|
||||
- else:
|
||||
- # add back pythonx.y or site/pythonx.y if present
|
||||
- for p in glob.glob(os.path.join(ape, 'python'+sys.version[:3]+'*'))+\
|
||||
- glob.glob(os.path.join(ape, '*', 'python'+sys.version[:3]+'*')):
|
||||
- if os.path.exists(os.path.join(p, 'CPyCppyy')):
|
||||
- apipath_extra = p
|
||||
- break
|
||||
-
|
||||
- if apipath_extra.lower() != 'none':
|
||||
- if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
|
||||
- warnings.warn("CPyCppyy API not found (tried: %s); "
|
||||
- "set CPPYY_API_PATH envar to the 'CPyCppyy' API directory to fix"
|
||||
- % apipath_extra)
|
||||
- else:
|
||||
- add_include_path(apipath_extra)
|
||||
-
|
||||
- del apipath_extra
|
||||
-
|
||||
if os.getenv('CONDA_PREFIX'):
|
||||
# MacOS, Linux
|
||||
include_path = os.path.join(os.getenv('CONDA_PREFIX'), 'include')
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From f4577e76a5dc23842d6be0a82df804f71fc820ef Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Mon, 1 Dec 2025 16:51:36 +0100
|
||||
Subject: [PATCH] [cppyy] Remove now irrelevant `load_cpp_backend()` call
|
||||
|
||||
As we don't have a separate `cppyy_backend` anymore (neither as a Python
|
||||
package, nor as a shared library), trying to load the backend library
|
||||
will always give an exception that will be caught as an `ImportError`.
|
||||
|
||||
It would be cleaner if this code branch is not even taken.
|
||||
---
|
||||
.../cppyy/cppyy/python/cppyy/_cpython_cppyy.py | 12 ------------
|
||||
1 file changed, 12 deletions(-)
|
||||
|
||||
diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
index bac078ea7c9..f98a34a697c 100644
|
||||
--- a/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
+++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/_cpython_cppyy.py
|
||||
@@ -19,24 +19,12 @@ __all__ = [
|
||||
'_end_capture_stderr'
|
||||
]
|
||||
|
||||
-# First load the dependency libraries of the backend, then pull in the libcppyy
|
||||
-# extension module. If the backed can't be loaded, it was probably linked
|
||||
-# statically into the extension module, so we don't error out at this point.
|
||||
-try:
|
||||
- from cppyy_backend import loader
|
||||
- c = loader.load_cpp_backend()
|
||||
-except ImportError:
|
||||
- c = None
|
||||
-
|
||||
if platform.system() == "Windows":
|
||||
# On Windows, the library has to be searched without prefix
|
||||
import libcppyy as _backend
|
||||
else:
|
||||
import cppyy.libcppyy as _backend
|
||||
|
||||
-if c is not None:
|
||||
- _backend._cpp_backend = c
|
||||
-
|
||||
# explicitly expose APIs from libcppyy
|
||||
_w = ctypes.CDLL(_backend.__file__, ctypes.RTLD_GLOBAL)
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
44
root-df-Support-libarrow-21.patch
Normal file
44
root-df-Support-libarrow-21.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
From 4bfc8d1ff53b398c8e5bd879ca32ead4321b844a Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Wed, 20 Aug 2025 08:17:16 +0200
|
||||
Subject: [PATCH] [df] Support libarrow 21
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
arrow::internal::GenericToStatus → arrow::ToStatus
|
||||
---
|
||||
tree/dataframe/test/datasource_arrow.cxx | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/tree/dataframe/test/datasource_arrow.cxx b/tree/dataframe/test/datasource_arrow.cxx
|
||||
index 05493baa3d4..73749b59afc 100644
|
||||
--- a/tree/dataframe/test/datasource_arrow.cxx
|
||||
+++ b/tree/dataframe/test/datasource_arrow.cxx
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <arrow/record_batch.h>
|
||||
#include <arrow/table.h>
|
||||
#include <arrow/type.h>
|
||||
+#include <arrow/util/config.h>
|
||||
#if defined(__GNUC__)
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
@@ -21,9 +22,15 @@
|
||||
#include <iostream>
|
||||
using namespace arrow;
|
||||
|
||||
+#if ARROW_VERSION_MAJOR >= 21
|
||||
+#define ASSERT_OK(expr) \
|
||||
+ for (::arrow::Status _st = ::arrow::ToStatus((expr)); !_st.ok();) \
|
||||
+ FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString()
|
||||
+#else
|
||||
#define ASSERT_OK(expr) \
|
||||
for (::arrow::Status _st = ::arrow::internal::GenericToStatus((expr)); !_st.ok();) \
|
||||
FAIL() << "'" ARROW_STRINGIFY(expr) "' failed with " << _st.ToString()
|
||||
+#endif
|
||||
|
||||
// Copied from arrow/testing/builder.h
|
||||
template <typename TYPE, typename C_TYPE = typename TYPE::c_type>
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 4d450f306a8ab8220f43675c70f399d89e5a4a03 Mon Sep 17 00:00:00 2001
|
||||
From c5f13cb25c3b803346d1a6cac483badbcf2ced62 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Sat, 11 May 2024 20:09:47 +0200
|
||||
Subject: [PATCH] Use system fonts via fontconfig
|
||||
|
|
@ -9,19 +9,20 @@ Subject: [PATCH] Use system fonts via fontconfig
|
|||
graf2d/asimage/src/TASImage.cxx | 91 +++++++-
|
||||
graf2d/graf/CMakeLists.txt | 1 +
|
||||
graf2d/graf/inc/TTF.h | 3 +-
|
||||
graf2d/graf/src/TTF.cxx | 295 +++++++++++++++++---------
|
||||
graf2d/graf/src/TTF.cxx | 291 +++++++++++++++++---------
|
||||
graf2d/postscript/CMakeLists.txt | 1 +
|
||||
graf2d/postscript/src/TPostScript.cxx | 106 ++++-----
|
||||
graf2d/postscript/src/TPostScript.cxx | 106 +++++-----
|
||||
graf3d/gl/CMakeLists.txt | 1 +
|
||||
graf3d/gl/src/TGLFontManager.cxx | 123 ++++++++++-
|
||||
graf3d/gl/src/TGLText.cxx | 56 +++--
|
||||
11 files changed, 495 insertions(+), 194 deletions(-)
|
||||
gui/gui/src/TGApplication.cxx | 10 +-
|
||||
12 files changed, 494 insertions(+), 201 deletions(-)
|
||||
|
||||
diff --git a/core/base/src/TApplication.cxx b/core/base/src/TApplication.cxx
|
||||
index f0d2124a8f6..41ad4c73020 100644
|
||||
index 992713264a..32bfc0bbb9 100644
|
||||
--- a/core/base/src/TApplication.cxx
|
||||
+++ b/core/base/src/TApplication.cxx
|
||||
@@ -253,18 +253,12 @@ void TApplication::InitializeGraphics(Bool_t only_web)
|
||||
@@ -251,18 +251,12 @@ void TApplication::InitializeGraphics(Bool_t only_web)
|
||||
LoadGraphicsLibs();
|
||||
|
||||
// Try to load TrueType font renderer. Only try to load if not in batch
|
||||
|
|
@ -42,7 +43,7 @@ index f0d2124a8f6..41ad4c73020 100644
|
|||
if (gClassTable->GetDict("TGX11TTF")) {
|
||||
// in principle we should not have linked anything against libGX11TTF
|
||||
// but with ACLiC this can happen, initialize TGX11TTF by hand
|
||||
@@ -278,7 +272,6 @@ void TApplication::InitializeGraphics(Bool_t only_web)
|
||||
@@ -276,7 +270,6 @@ void TApplication::InitializeGraphics(Bool_t only_web)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -51,10 +52,10 @@ index f0d2124a8f6..41ad4c73020 100644
|
|||
|
||||
if (!only_web || !fAppImp) {
|
||||
diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt
|
||||
index b5ccf983473..8ee57c1fac0 100644
|
||||
index 31114ad45d..be95419491 100644
|
||||
--- a/graf2d/asimage/CMakeLists.txt
|
||||
+++ b/graf2d/asimage/CMakeLists.txt
|
||||
@@ -28,6 +28,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage
|
||||
@@ -30,6 +30,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ASImage
|
||||
${FREETYPE_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
ZLIB::ZLIB
|
||||
|
|
@ -63,7 +64,7 @@ index b5ccf983473..8ee57c1fac0 100644
|
|||
Core
|
||||
Graf
|
||||
diff --git a/graf2d/asimage/src/TASImage.cxx b/graf2d/asimage/src/TASImage.cxx
|
||||
index 6ea60a78801..e85d804b7ec 100644
|
||||
index 7e046f4724..137265bd4a 100644
|
||||
--- a/graf2d/asimage/src/TASImage.cxx
|
||||
+++ b/graf2d/asimage/src/TASImage.cxx
|
||||
@@ -117,6 +117,8 @@ extern "C" {
|
||||
|
|
@ -75,7 +76,7 @@ index 6ea60a78801..e85d804b7ec 100644
|
|||
// auxiliary functions for general polygon filling
|
||||
#include "TASPolyUtils.c"
|
||||
|
||||
@@ -2620,11 +2622,88 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size,
|
||||
@@ -2595,11 +2597,88 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size,
|
||||
// This is for backward compatibility...
|
||||
if (fn.Last('/') == 0) fn = fn(1, fn.Length() - 1);
|
||||
|
||||
|
|
@ -169,7 +170,7 @@ index 6ea60a78801..e85d804b7ec 100644
|
|||
|
||||
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) {
|
||||
ttfont = kTRUE;
|
||||
@@ -2648,7 +2727,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size,
|
||||
@@ -2623,7 +2702,7 @@ void TASImage::DrawText(Int_t x, Int_t y, const char *text, Int_t size,
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -179,7 +180,7 @@ index 6ea60a78801..e85d804b7ec 100644
|
|||
if (!font) {
|
||||
font = get_asfont(gFontManager, "fixed", 0, size, ASF_GuessWho);
|
||||
diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt
|
||||
index d7d1b77c21a..c4ebb994a4a 100644
|
||||
index d7d1b77c21..c4ebb994a4 100644
|
||||
--- a/graf2d/graf/CMakeLists.txt
|
||||
+++ b/graf2d/graf/CMakeLists.txt
|
||||
@@ -91,6 +91,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Graf
|
||||
|
|
@ -191,7 +192,7 @@ index d7d1b77c21a..c4ebb994a4a 100644
|
|||
Hist
|
||||
Matrix
|
||||
diff --git a/graf2d/graf/inc/TTF.h b/graf2d/graf/inc/TTF.h
|
||||
index 864ce06b4f0..050796d1ded 100644
|
||||
index 0bef9dcb95..ea96fe47ce 100644
|
||||
--- a/graf2d/graf/inc/TTF.h
|
||||
+++ b/graf2d/graf/inc/TTF.h
|
||||
@@ -76,9 +76,10 @@ protected:
|
||||
|
|
@ -207,7 +208,7 @@ index 864ce06b4f0..050796d1ded 100644
|
|||
static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs
|
||||
static Bool_t fgHinting; ///< use hinting (true by default)
|
||||
diff --git a/graf2d/graf/src/TTF.cxx b/graf2d/graf/src/TTF.cxx
|
||||
index 758bb98c192..c90d0ac70a9 100644
|
||||
index ca38ed1f9c..8f1d62686b 100644
|
||||
--- a/graf2d/graf/src/TTF.cxx
|
||||
+++ b/graf2d/graf/src/TTF.cxx
|
||||
@@ -25,6 +25,8 @@ Interface to the freetype 2 library.
|
||||
|
|
@ -232,7 +233,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
FT_Matrix *TTF::fgRotMatrix = nullptr;
|
||||
FT_Library TTF::fgLibrary;
|
||||
FT_BBox TTF::fgCBox;
|
||||
@@ -71,6 +74,11 @@ void TTF::Init()
|
||||
@@ -72,6 +75,11 @@ void TTF::Init()
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -244,7 +245,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
// load default font (arialbd)
|
||||
SetTextFont(62);
|
||||
}
|
||||
@@ -108,12 +116,15 @@ Short_t TTF::CharToUnicode(UInt_t code)
|
||||
@@ -109,12 +117,15 @@ Short_t TTF::CharToUnicode(UInt_t code)
|
||||
charmap = fgFace[fgCurFontIdx]->charmaps[i];
|
||||
platform = charmap->platform_id;
|
||||
encoding = charmap->encoding_id;
|
||||
|
|
@ -264,7 +265,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
{
|
||||
fgCharMap[fgCurFontIdx] = charmap;
|
||||
if (FT_Set_Charmap(fgFace[fgCurFontIdx], fgCharMap[fgCurFontIdx]))
|
||||
@@ -392,21 +403,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
@@ -387,21 +398,145 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
}
|
||||
const char *basename = gSystem->BaseName(fontname);
|
||||
|
||||
|
|
@ -422,7 +423,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
}
|
||||
}
|
||||
|
||||
@@ -416,28 +551,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
@@ -411,28 +546,13 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
kTTMaxFonts);
|
||||
Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]);
|
||||
fgCurFontIdx = 0; // use font 0 (default font, set in ctor)
|
||||
|
|
@ -436,7 +437,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
- char *ttfont = gSystem->Which(ttpath, fontname, kReadPermission);
|
||||
-
|
||||
- if (!ttfont) {
|
||||
- Error("TTF::SetTextFont", "font file %s not found in path %s", fontname, ttpath);
|
||||
- Error("TTF::SetTextFont", "font file %s not found in path", fontname);
|
||||
- if (fgFontCount) {
|
||||
- Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]);
|
||||
- fgCurFontIdx = 0; // use font 0 (default font, set in ctor)
|
||||
|
|
@ -453,12 +454,9 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
Error("TTF::SetTextFont", "error loading font %s", ttfont);
|
||||
delete [] ttfont;
|
||||
if (tface) FT_Done_Face(tface);
|
||||
@@ -450,24 +570,25 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
}
|
||||
}
|
||||
@@ -448,19 +568,20 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
delete [] ttfont;
|
||||
|
||||
- delete [] ttfont;
|
||||
-
|
||||
fgFontName[fgFontCount] = StrDup(basename);
|
||||
+ fgFontIdx[fgFontCount] = ttindex;
|
||||
+ fgFontIta[fgFontCount] = italic;
|
||||
|
|
@ -479,12 +477,8 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
+ FT_Set_Transform( fgFace[fgCurFontIdx], &slantMat, nullptr );
|
||||
}
|
||||
|
||||
+ delete [] ttfont;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -494,70 +615,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
@@ -489,70 +610,50 @@ Int_t TTF::SetTextFont(const char *fontname, Int_t italic)
|
||||
|
||||
void TTF::SetTextFont(Font_t fontnumber)
|
||||
{
|
||||
|
|
@ -594,7 +588,7 @@ index 758bb98c192..c90d0ac70a9 100644
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt
|
||||
index eb091bbb396..a05023a3f41 100644
|
||||
index eb091bbb39..a05023a3f4 100644
|
||||
--- a/graf2d/postscript/CMakeLists.txt
|
||||
+++ b/graf2d/postscript/CMakeLists.txt
|
||||
@@ -27,6 +27,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Postscript
|
||||
|
|
@ -606,7 +600,7 @@ index eb091bbb396..a05023a3f41 100644
|
|||
Graf
|
||||
)
|
||||
diff --git a/graf2d/postscript/src/TPostScript.cxx b/graf2d/postscript/src/TPostScript.cxx
|
||||
index df9e3ae16ea..1e353e1ca53 100644
|
||||
index 09ea7ffa9c..180fd5e3c1 100644
|
||||
--- a/graf2d/postscript/src/TPostScript.cxx
|
||||
+++ b/graf2d/postscript/src/TPostScript.cxx
|
||||
@@ -234,6 +234,7 @@ To change the color model use `gStyle->SetColorModelPS(c)`.
|
||||
|
|
@ -617,7 +611,7 @@ index df9e3ae16ea..1e353e1ca53 100644
|
|||
|
||||
#include "strlcpy.h"
|
||||
#include "snprintf.h"
|
||||
@@ -1584,56 +1585,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename)
|
||||
@@ -1585,56 +1586,60 @@ Bool_t TPostScript::FontEmbedType42(const char *filename)
|
||||
|
||||
void TPostScript::FontEmbed(void)
|
||||
{
|
||||
|
|
@ -721,7 +715,7 @@ index df9e3ae16ea..1e353e1ca53 100644
|
|||
} else {
|
||||
if (FontEmbedType2(ttfont)) {
|
||||
// nothing
|
||||
@@ -1642,12 +1647,13 @@ void TPostScript::FontEmbed(void)
|
||||
@@ -1643,12 +1648,13 @@ void TPostScript::FontEmbed(void)
|
||||
} else if(FontEmbedType42(ttfont)) {
|
||||
// nothing
|
||||
} else {
|
||||
|
|
@ -739,7 +733,7 @@ index df9e3ae16ea..1e353e1ca53 100644
|
|||
}
|
||||
}
|
||||
PrintStr("%%IncludeResource: font Times-Roman@");
|
||||
@@ -2836,10 +2842,10 @@ void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars)
|
||||
@@ -2837,10 +2843,10 @@ void TPostScript::Text(Double_t xx, Double_t yy, const wchar_t *chars)
|
||||
{ "Root.PSFont.9", "/FreeMonoOblique" },
|
||||
{ "Root.PSFont.10", "/FreeMonoBold" },
|
||||
{ "Root.PSFont.11", "/FreeMonoBoldOblique" },
|
||||
|
|
@ -754,10 +748,10 @@ index df9e3ae16ea..1e353e1ca53 100644
|
|||
{ "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" },
|
||||
{ "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" },
|
||||
diff --git a/graf3d/gl/CMakeLists.txt b/graf3d/gl/CMakeLists.txt
|
||||
index e759473ca0f..c453397fc52 100644
|
||||
index a874da9e1d..5454469606 100644
|
||||
--- a/graf3d/gl/CMakeLists.txt
|
||||
+++ b/graf3d/gl/CMakeLists.txt
|
||||
@@ -211,6 +211,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL
|
||||
@@ -208,6 +208,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RGL
|
||||
${GL2PS_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
RGlew
|
||||
|
|
@ -766,7 +760,7 @@ index e759473ca0f..c453397fc52 100644
|
|||
Hist
|
||||
Gui
|
||||
diff --git a/graf3d/gl/src/TGLFontManager.cxx b/graf3d/gl/src/TGLFontManager.cxx
|
||||
index 58ea1188d59..647642de615 100644
|
||||
index 776e9d286f..c4134c5980 100644
|
||||
--- a/graf3d/gl/src/TGLFontManager.cxx
|
||||
+++ b/graf3d/gl/src/TGLFontManager.cxx
|
||||
@@ -36,6 +36,7 @@
|
||||
|
|
@ -777,7 +771,7 @@ index 58ea1188d59..647642de615 100644
|
|||
|
||||
/** \class TGLFont
|
||||
\ingroup opengl
|
||||
@@ -448,16 +449,120 @@ void TGLFontManager::RegisterFont(Int_t sizeIn, Int_t fileID, TGLFont::EMode mod
|
||||
@@ -450,16 +451,120 @@ void TGLFontManager::RegisterFont(Int_t sizeIn, Int_t fileID, TGLFont::EMode mod
|
||||
FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode));
|
||||
if (it == fFontMap.end())
|
||||
{
|
||||
|
|
@ -908,7 +902,7 @@ index 58ea1188d59..647642de615 100644
|
|||
FTFont* ftfont = 0;
|
||||
switch (mode)
|
||||
diff --git a/graf3d/gl/src/TGLText.cxx b/graf3d/gl/src/TGLText.cxx
|
||||
index 2ed3ee0917a..03feb0ee0a4 100644
|
||||
index f84f5193d2..8a672c787c 100644
|
||||
--- a/graf3d/gl/src/TGLText.cxx
|
||||
+++ b/graf3d/gl/src/TGLText.cxx
|
||||
@@ -32,6 +32,8 @@
|
||||
|
|
@ -920,7 +914,7 @@ index 2ed3ee0917a..03feb0ee0a4 100644
|
|||
#define FTGL_BITMAP 0
|
||||
#define FTGL_PIXMAP 1
|
||||
#define FTGL_OUTLINE 2
|
||||
@@ -175,27 +177,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber)
|
||||
@@ -176,27 +178,35 @@ void TGLText::SetGLTextFont(Font_t fontnumber)
|
||||
{
|
||||
int fontid = fontnumber / 10;
|
||||
|
||||
|
|
@ -977,7 +971,7 @@ index 2ed3ee0917a..03feb0ee0a4 100644
|
|||
|
||||
if (fGLTextFont) delete fGLTextFont;
|
||||
|
||||
@@ -203,7 +213,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber)
|
||||
@@ -204,7 +214,9 @@ void TGLText::SetGLTextFont(Font_t fontnumber)
|
||||
|
||||
fGLTextFont = new FTGLPolygonFont(ttfont);
|
||||
|
||||
|
|
@ -988,6 +982,32 @@ index 2ed3ee0917a..03feb0ee0a4 100644
|
|||
Error("SetGLTextFont","Cannot set FTGL::FaceSize");
|
||||
- delete [] ttfont;
|
||||
}
|
||||
diff --git a/gui/gui/src/TGApplication.cxx b/gui/gui/src/TGApplication.cxx
|
||||
index 72d7dbbf95..73a44fdd7f 100644
|
||||
--- a/gui/gui/src/TGApplication.cxx
|
||||
+++ b/gui/gui/src/TGApplication.cxx
|
||||
@@ -81,20 +81,12 @@ TGApplication::TGApplication(const char *appClassName,
|
||||
gROOT->SetBatch(kFALSE);
|
||||
|
||||
if (strcmp(appClassName, "proofserv")) {
|
||||
- const char *ttpath = gEnv->GetValue("Root.TTFontPath",
|
||||
- TROOT::GetTTFFontDir());
|
||||
- char *ttfont = gSystem->Which(ttpath, "arialbd.ttf", kReadPermission);
|
||||
- // Added by cholm for use of DFSG - fonts - based on fix by Kevin
|
||||
- if (!ttfont)
|
||||
- ttfont = gSystem->Which(ttpath, "FreeSansBold.ttf", kReadPermission);
|
||||
- if (ttfont && gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
+ if (gEnv->GetValue("Root.UseTTFonts", 1)) {
|
||||
TPluginHandler *h;
|
||||
if ((h = gROOT->GetPluginManager()->FindHandler("TVirtualX", "x11ttf")))
|
||||
if (h->LoadPlugin() == -1)
|
||||
Info("TGApplication", "no TTF support");
|
||||
}
|
||||
-
|
||||
- delete [] ttfont;
|
||||
}
|
||||
|
||||
// Create the canvas colors early so they are allocated before
|
||||
--
|
||||
2.52.0
|
||||
2.45.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
From 7b1632f5602a1bb6e6278d66c25640349c852ab1 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
||||
Date: Fri, 9 Jan 2026 00:32:27 +0100
|
||||
Subject: [PATCH] Starting with gcc 16, libstdc++ links to libatomic. Add to
|
||||
whitelist.
|
||||
|
||||
$ ldd /lib64/libstdc++.so.6
|
||||
linux-vdso.so.1 (0x00007f3cb4c13000)
|
||||
libm.so.6 => /lib64/libm.so.6 (0x00007f3cb4afc000)
|
||||
libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f3cb4af1000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x00007f3cb460d000)
|
||||
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3cb4ac5000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007f3cb4c15000)
|
||||
---
|
||||
bindings/pyroot/pythonizations/test/import_load_libs.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/bindings/pyroot/pythonizations/test/import_load_libs.py b/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
index 63feeca89ba..18906ff921e 100644
|
||||
--- a/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
+++ b/bindings/pyroot/pythonizations/test/import_load_libs.py
|
||||
@@ -77,6 +77,7 @@ class ImportLoadLibs(unittest.TestCase):
|
||||
"ld.*",
|
||||
"libffi",
|
||||
"libgcc_s",
|
||||
+ "libatomic",
|
||||
# AddressSanitizer runtime and ROOT configuration
|
||||
"libclang_rt.asan-.*",
|
||||
"libROOTSanitizerConfig",
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,53 +1,16 @@
|
|||
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(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 --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()
|
||||
|
||||
-# Create meta-target PyROOT3 (INTERFACE library)
|
||||
-# Export of targets are not supported for custom targets(add_custom_targets())
|
||||
-add_library(PyROOT INTERFACE)
|
||||
--- root-6.32.00/bindings/pyroot/pythonizations/CMakeLists.txt 2024-05-28 06:06:46.000000000 +0200
|
||||
+++ root-6.32.00/bindings/pyroot/pythonizations/CMakeLists.txt 2024-05-29 09:47:08.960324940 +0200
|
||||
@@ -189,11 +189,10 @@
|
||||
# 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()
|
||||
+target_link_libraries(PyROOT INTERFACE cppyy_backend cppyy)
|
||||
|
||||
# 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)
|
||||
- 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)
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,135 +0,0 @@
|
|||
From 44c501ac9fdb9049783d9738a9603eec572f52f0 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Rembser <jonas.rembser@cern.ch>
|
||||
Date: Wed, 26 Nov 2025 18:11:25 +0100
|
||||
Subject: [PATCH] [vecops] Adaptive size of long RVec instances in RVec test
|
||||
|
||||
For the tests to make sense, some vectors need to be longer than the
|
||||
maximum small vector size. This maximum size is compiler and
|
||||
architecture dependent. For `RVec<int>` on ARM64 with gcc 14, the
|
||||
small vector capacity turns out to be 60, which is larger than the
|
||||
current test vector size of 18.
|
||||
|
||||
Therefore, the test is refactored to adapt the large vector size
|
||||
automatically, according to the maximum small vector size.
|
||||
---
|
||||
math/vecops/test/vecops_rvec.cxx | 81 +++++++++++++++++++++++++-------
|
||||
1 file changed, 63 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/math/vecops/test/vecops_rvec.cxx b/math/vecops/test/vecops_rvec.cxx
|
||||
index 432c673a553..8cbe36ee6d8 100644
|
||||
--- a/math/vecops/test/vecops_rvec.cxx
|
||||
+++ b/math/vecops/test/vecops_rvec.cxx
|
||||
@@ -1672,15 +1672,35 @@ TEST_P(VecOpsSwap, BothSmallVectors)
|
||||
|
||||
TEST_P(VecOpsSwap, BothRegularVectors)
|
||||
{
|
||||
- RVec<int> fixed_vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3};
|
||||
- RVec<int> fixed_vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- RVec<int> fixed_vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7};
|
||||
+ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize<int>::value;
|
||||
+
|
||||
+ // The number of elemens in the large RVecs will be the smallest multiple of
|
||||
+ // three that larger than smallVecSize.
|
||||
+ constexpr int nCycle = 3;
|
||||
+ constexpr std::size_t nElems = ((smallVecSize / nCycle) + 1) * nCycle;
|
||||
+
|
||||
+ RVec<int> fixed_vreg1(nElems);
|
||||
+ RVec<int> fixed_vreg2(nElems);
|
||||
+ RVec<int> fixed_vreg3(nElems + 1);
|
||||
RVec<int> fixed_vmocksmall{0, 7};
|
||||
|
||||
- RVec<int> vreg1{1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3};
|
||||
- RVec<int> vreg2{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- RVec<int> vreg3{7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7};
|
||||
- RVec<int> vmocksmall{0, 7, 8, 9, 7, 8, 9, 7, 8, 9, 7, 8, 7, 8, 9, 7, 8, 9};
|
||||
+ RVec<int> vreg1(nElems);
|
||||
+ RVec<int> vreg2(nElems);
|
||||
+ RVec<int> vreg3(nElems + 1);
|
||||
+ RVec<int> vmocksmall(nElems + 1);
|
||||
+
|
||||
+ for (std::size_t i = 0; i < nElems; ++i) {
|
||||
+ vreg1[i] = (i % nCycle) + 1;
|
||||
+ vreg2[i] = vreg1[i] + nCycle;
|
||||
+ vreg3[i] = vreg2[i] + nCycle;
|
||||
+ fixed_vreg1[i] = vreg1[i];
|
||||
+ fixed_vreg2[i] = vreg2[i];
|
||||
+ fixed_vreg3[i] = vreg3[i];
|
||||
+ vmocksmall[i + 1] = vreg3[i];
|
||||
+ }
|
||||
+ fixed_vreg3[nElems] = fixed_vreg3[0];
|
||||
+ vreg3[nElems] = vreg3[0];
|
||||
+
|
||||
vmocksmall.erase(vmocksmall.begin() + 2, vmocksmall.end());
|
||||
// vmocksmall is a regular vector of size 2
|
||||
|
||||
@@ -1798,11 +1818,22 @@ TEST_P(VecOpsSwap, BothAdoptingVectors)
|
||||
// in cases where ROOT::VecOps::swap produces 1 regular and 1 adopting vector
|
||||
TEST_P(VecOpsSwap, SmallRegularVectors)
|
||||
{
|
||||
+ constexpr std::size_t smallVecSize = ROOT::Internal::VecOps::RVecInlineStorageSize<int>::value;
|
||||
+
|
||||
+ // The number of elemens in the large RVecs will be the smallest multiple of
|
||||
+ // three that larger than smallVecSize.
|
||||
+ constexpr int nCycle = 3;
|
||||
+ constexpr std::size_t nElems1 = ((smallVecSize / nCycle) + 1) * nCycle;
|
||||
+ constexpr std::size_t nElems2 = nElems1 + nCycle; // some vectors should be larger than others
|
||||
+
|
||||
RVec<int> fixed_vsmall{1, 2, 3};
|
||||
RVec<int> fixed_vreg1{4, 5, 6};
|
||||
RVec<int> fixed_vreg2{7, 8};
|
||||
RVec<int> fixed_vreg3{9, 10, 11, 12, 13, 14};
|
||||
- RVec<int> fixed_vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
|
||||
+ RVec<int> fixed_vreg4(nElems1);
|
||||
+ for (std::size_t i = 0; i < nElems1; ++i) {
|
||||
+ fixed_vreg4[i] = i + 15;
|
||||
+ }
|
||||
|
||||
// need multiple hard copies since after swap of a small and a regular,
|
||||
// there is no fixed policy whether 2 regular vectors are produced or 1 small and 1 regular
|
||||
@@ -1815,19 +1846,33 @@ TEST_P(VecOpsSwap, SmallRegularVectors)
|
||||
RVec<int> vsmall7{1, 2, 3};
|
||||
RVec<int> vsmall8{1, 2, 3};
|
||||
|
||||
- RVec<int> vreg1{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3
|
||||
- RVec<int> vreg10{4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ RVec<int> vreg1;
|
||||
+ RVec<int> vreg10;
|
||||
+ RVec<int> vreg2{7, 8};
|
||||
+ RVec<int> vreg20{7, 8};
|
||||
+ RVec<int> vreg3{9, 10, 11, 12, 13, 14};
|
||||
+ RVec<int> vreg30{9, 10, 11, 12, 13, 14};
|
||||
+ RVec<int> vreg4(nElems1);
|
||||
+
|
||||
+ for (std::size_t i = 0; i < nElems2; ++i) {
|
||||
+ double val = (i % nCycle) + 4;
|
||||
+ vreg1.push_back(val);
|
||||
+ vreg10.push_back(vreg1.back());
|
||||
+ vreg2.push_back(val);
|
||||
+ vreg20.push_back(vreg2.back());
|
||||
+ vreg3.push_back(val);
|
||||
+ vreg30.push_back(vreg3.back());
|
||||
+ }
|
||||
+ for (std::size_t i = 0; i < nElems1; ++i) {
|
||||
+ vreg4[i] = i + 15;
|
||||
+ }
|
||||
+
|
||||
+ vreg1.erase(vreg1.begin() + 3, vreg1.end()); // regular vector of size 3
|
||||
vreg10.erase(vreg10.begin() + 3, vreg10.end()); // regular vector of size 3
|
||||
- RVec<int> vreg2{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2
|
||||
- RVec<int> vreg20{7, 8, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ vreg2.erase(vreg2.begin() + 2, vreg2.end()); // regular vector of size 2
|
||||
vreg20.erase(vreg20.begin() + 2, vreg20.end()); // regular vector of size 2
|
||||
- RVec<int> vreg3{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
- vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6
|
||||
- RVec<int> vreg30{9, 10, 11, 12, 13, 14, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6};
|
||||
+ vreg3.erase(vreg3.begin() + 6, vreg3.end()); // regular vector of size 6
|
||||
vreg30.erase(vreg30.begin() + 6, vreg30.end()); // regular vector of size 6
|
||||
- RVec<int> vreg4{15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
|
||||
// vreg4 is a regular vector that cannot "fit" to small vector
|
||||
|
||||
// verify that initially vectors are not small
|
||||
--
|
||||
2.52.0
|
||||
|
||||
4
sources
4
sources
|
|
@ -1,3 +1,3 @@
|
|||
SHA512 (root-6.38.00.tar.xz) = 7c452b509e8171a0cbb7c102a3d4c07333fc8535f1b2c2ab0b9f7434604f098989a78bb71c41039dd41dbbd3438ea8703939826092f075d9d730b6b53c84ac55
|
||||
SHA512 (root-6.36.04.tar.xz) = d8798d777f308e59ebb3429323895757ca9538499dbb1989d70b3a01c2122b2a01911b0e7da673d7a9fc40acd49fdbf6a5b4341266c1b68a8a88d9f904e7919b
|
||||
SHA512 (root-testfiles.tar.xz) = 4bb7f8ca00b1427ba49f6428e9cfe5908a2ffdd2ce4134d3bc169a0629198352b5500fe0cf92c121d148e5af41f7016c96038a77794a4d37d94e6ec0a9d75670
|
||||
SHA512 (clad-2.2.tar.gz) = 6f76d706a829901fc0fcdb38b5ddad6ea8ad9186ea48a4b6b585fc62974a2cda11b96a448c25daaba0586962d6428773e7ab751236c6afa72a91d12f30f2d05e
|
||||
SHA512 (clad-1.9.tar.gz) = df0569f12e3381e9285639eee927d9effb2812765caad2d281c41f6673828ab28b7bf8143ae9686090649cf889e757cfead58baa47e907de468185125a4d772c
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue