Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-numba for openSUSE:Factory 
checked in at 2026-04-25 21:37:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-numba (Old)
 and      /work/SRC/openSUSE:Factory/.python-numba.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-numba"

Sat Apr 25 21:37:58 2026 rev:59 rq:1349199 version:0.65.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-numba/python-numba.changes        
2026-04-07 16:51:57.188103644 +0200
+++ /work/SRC/openSUSE:Factory/.python-numba.new.11940/python-numba.changes     
2026-04-25 21:42:30.442374443 +0200
@@ -1,0 +2,11 @@
+Sat Apr 25 08:30:44 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.65.1:
+  * Python 3.14.4 changed interpreter internals Numba relied on for
+   ``sys.monitoring``
+   The feature is disabled from 3.14.4 onward;
+   ``NUMBA_ENABLE_SYS_MONITORING`` has no
+   effect and a ``UserWarning`` will be emitted if this variable is
+   set to a non-zero value.
+
+-------------------------------------------------------------------

Old:
----
  numba-0.65.0.tar.gz

New:
----
  numba-0.65.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-numba.spec ++++++
--- /var/tmp/diff_new_pack.ok5F48/_old  2026-04-25 21:42:31.150403356 +0200
+++ /var/tmp/diff_new_pack.ok5F48/_new  2026-04-25 21:42:31.154403520 +0200
@@ -54,7 +54,7 @@
 %endif
 %endif
 Name:           python-numba%{?psuffix}
-Version:        0.65.0
+Version:        0.65.1
 Release:        0
 Summary:        NumPy-aware optimizing compiler for Python using LLVM
 License:        BSD-2-Clause

++++++ numba-0.65.0.tar.gz -> numba-0.65.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/PKG-INFO new/numba-0.65.1/PKG-INFO
--- old/numba-0.65.0/PKG-INFO   2026-04-01 02:29:09.891693800 +0200
+++ new/numba-0.65.1/PKG-INFO   2026-04-24 00:28:43.700457000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: numba
-Version: 0.65.0
+Version: 0.65.1
 Summary: compiling Python code using LLVM
 Home-page: https://numba.pydata.org
 License: BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/numba-0.65.0/docs/source/developer/sys_monitoring.rst 
new/numba-0.65.1/docs/source/developer/sys_monitoring.rst
--- old/numba-0.65.0/docs/source/developer/sys_monitoring.rst   2026-04-01 
02:27:58.000000000 +0200
+++ new/numba-0.65.1/docs/source/developer/sys_monitoring.rst   2026-04-24 
00:27:50.000000000 +0200
@@ -7,6 +7,11 @@
           versions of Python may behave differently. It is however hoped that
           most of the concepts herein will remain relevant.
 
+.. note:: From Python 3.14.4 onward the dispatcher behaviour described below is
+          disabled (`#10538 <https://github.com/numba/numba/issues/10538>`_).
+          ``NUMBA_ENABLE_SYS_MONITORING`` has no effect on those versions and a
+          ``UserWarning`` is emitted if this variable is set to a non-zero 
value.
+
 Python 3.12 introduced a new monitoring system under ``sys.monitoring``. This
 system lets users monitor a selection of events that may be interesting for 
e.g.
 performance profiling or debugging purposes. Event monitoring is set "per 
tool",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/docs/source/reference/envvars.rst 
new/numba-0.65.1/docs/source/reference/envvars.rst
--- old/numba-0.65.0/docs/source/reference/envvars.rst  2026-04-01 
02:27:58.000000000 +0200
+++ new/numba-0.65.1/docs/source/reference/envvars.rst  2026-04-24 
00:27:50.000000000 +0200
@@ -181,6 +181,12 @@
 
    Only available for Python 3.12 and above. Otherwise, it has no effect.
 
+   It also has no effect on Python 3.14.4 and newer: dispatcher support for
+   ``sys.monitoring`` is disabled, see this issue for more details
+   (`#10538 <https://github.com/numba/numba/issues/10538>`_). A
+   ``UserWarning`` is emitted if this variable is set to a
+   non-zero value.
+
 .. envvar:: NUMBA_ENABLE_PROFILING
 
    Enables JIT events of LLVM in order to support profiling of jitted 
functions.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/docs/source/release/0.65.1-notes.rst 
new/numba-0.65.1/docs/source/release/0.65.1-notes.rst
--- old/numba-0.65.0/docs/source/release/0.65.1-notes.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/numba-0.65.1/docs/source/release/0.65.1-notes.rst       2026-04-24 
00:27:50.000000000 +0200
@@ -0,0 +1,27 @@
+Version 0.65.1 (23 April 2026)
+==============================
+
+This is a patch release of Numba that disables JIT ``sys.monitoring`` 
integration
+on Python 3.14.4 and later (`#10538 
<https://github.com/numba/numba/issues/10538>`_).
+
+Changes
+~~~~~~~
+
+Disable JIT ``sys.monitoring`` on Python 3.14.4 and later
+---------------------------------------------------------
+
+Python 3.14.4 changed interpreter internals Numba relied on for
+``sys.monitoring`` (`#10538 <https://github.com/numba/numba/issues/10538>`_).
+The feature is disabled from 3.14.4 onward; ``NUMBA_ENABLE_SYS_MONITORING`` 
has no
+effect and a ``UserWarning`` will be emitted if this variable is set to a 
non-zero value.
+
+(`PR-#10547 <https://github.com/numba/numba/pull/10547>`_)
+
+Pull-Requests:
+
+* PR `#10547 <https://github.com/numba/numba/pull/10547>`_: Disable 
`NUMBA_ENABLE_SYS_MONITORING` on python 3.14.4+ (`swap357 
<https://github.com/swap357>`_)
+* PR `#10562 <https://github.com/numba/numba/pull/10562>`_: Cherry pick and 
changelog update for 0.65.1 (`swap357 <https://github.com/swap357>`_)
+
+Authors:
+
+* `swap357 <https://github.com/swap357>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/docs/source/user/installing.rst 
new/numba-0.65.1/docs/source/user/installing.rst
--- old/numba-0.65.0/docs/source/user/installing.rst    2026-04-01 
02:27:58.000000000 +0200
+++ new/numba-0.65.1/docs/source/user/installing.rst    2026-04-24 
00:27:50.000000000 +0200
@@ -245,6 +245,9 @@
 
+----------++--------------+---------------------------+---------------------------------------------+------------------------------+-------------------+-----------------------------+
 | Numba     | Release date | Python                    | NumPy                 
                      | llvmlite                     | LLVM              | TBB  
                       |
 
+===========+==============+===========================+=============================================+==============================+===================+=============================+
+| 0.65.1    | 2026-04-23   | 3.10.x <= version < 3.15  | 1.22 <= version < 
1.27 ;                    | 0.47.x                       | 20.x              | 
2021.6 <= version           |
+|           |              |                           | 2.0 <= version < 2.5 
;                      |                              |                   |     
                        |
++-----------+--------------+---------------------------+---------------------------------------------+------------------------------+-------------------+-----------------------------+
 | 0.65.0    | 2026-03-31   | 3.10.x <= version < 3.15  | 1.22 <= version < 
1.27 ;                    | 0.47.x                       | 20.x              | 
2021.6 <= version           |
 |           |              |                           | 2.0 <= version < 2.5 
;                      |                              |                   |     
                        |
 
+-----------+--------------+---------------------------+---------------------------------------------+------------------------------+-------------------+-----------------------------+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba/_dispatcher.cpp 
new/numba-0.65.1/numba/_dispatcher.cpp
--- old/numba-0.65.0/numba/_dispatcher.cpp      2026-04-01 02:27:58.000000000 
+0200
+++ new/numba-0.65.1/numba/_dispatcher.cpp      2026-04-24 00:27:50.000000000 
+0200
@@ -812,6 +812,43 @@
     return MOST_SIG_BIT[bits];
 }
 
+/*
+ * On Python 3.14.4+, skip JIT sys.monitoring (#10538).
+ * https://github.com/numba/numba/issues/10538
+ */
+static int
+jit_sysmon_supported(void)
+{
+    // support_flag states: -1 unknown, 0 unsupported (warn once), 1 supported
+    static int support_flag = -1;
+    unsigned long v;
+    int major, minor, micro;
+
+    if (support_flag != -1) {
+        return support_flag;
+    }
+
+    v = Py_Version;
+    major = (int)((v >> 24) & 0xFF);
+    minor = (int)((v >> 16) & 0xFF);
+    micro = (int)((v >> 8) & 0xFF);
+
+    // Exclude anything beyond 3.14.3.
+    support_flag = !(major == 3 && (minor > 14 || (minor == 14 && micro > 3)));
+
+    if (!support_flag) {
+        PyErr_WarnEx(PyExc_UserWarning,
+            "Numba: JIT sys.monitoring integration is disabled on "
+            "Python 3.14.4+ (https://github.com/numba/numba/";
+            "issues/10538). "
+            "Unset NUMBA_ENABLE_SYS_MONITORING to suppress this warning.",
+            1
+        );
+    }
+
+    return support_flag;
+}
+
 
 static int invoke_monitoring(PyThreadState * tstate, int event, Dispatcher 
*self, PyObject* retval)
 {
@@ -903,6 +940,10 @@
     // 
https://github.com/python/cpython/blob/0ab2384c5f56625e99bb35417cadddfe24d347e1/Python/instrumentation.c#L1010-L1026
     // 
https://github.com/python/cpython/blob/0ab2384c5f56625e99bb35417cadddfe24d347e1/Python/instrumentation.c#L839-L861
 
+    if (!jit_sysmon_supported()) {
+        return 0;
+    }
+
     // TODO: check this, call_instrumentation_vector has this at the top.
     if (tstate->tracing){
         return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba/_version.py 
new/numba-0.65.1/numba/_version.py
--- old/numba-0.65.0/numba/_version.py  2026-04-01 02:29:09.892780500 +0200
+++ new/numba-0.65.1/numba/_version.py  2026-04-24 00:28:43.700998300 +0200
@@ -8,11 +8,11 @@
 
 version_json = '''
 {
- "date": "2026-03-31T12:27:00-0700",
+ "date": "2026-04-23T07:41:24-0700",
  "dirty": false,
  "error": null,
- "full-revisionid": "6ebcd9ef0a0372b6c124a6917c39498ffc923868",
- "version": "0.65.0"
+ "full-revisionid": "9e3087a69e5b7cca224cf932970d627e60920763",
+ "version": "0.65.1"
 }
 '''  # END VERSION_JSON
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba/tests/support.py 
new/numba-0.65.1/numba/tests/support.py
--- old/numba-0.65.0/numba/tests/support.py     2026-04-01 02:27:58.000000000 
+0200
+++ new/numba-0.65.1/numba/tests/support.py     2026-04-24 00:27:50.000000000 
+0200
@@ -143,6 +143,11 @@
                                          "free-threading is enabled."))
 
 
+skip_if_sysmon_unsupported = unittest.skipIf(
+    sys.version_info[:3] >= (3, 14, 4),
+    "JIT sys.monitoring is not supported on Python 3.14.4+")
+
+
 def expected_failure_py311(fn):
     if utils.PYVERSION == (3, 11):
         return unittest.expectedFailure(fn)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba/tests/test_profiler.py 
new/numba-0.65.1/numba/tests/test_profiler.py
--- old/numba-0.65.0/numba/tests/test_profiler.py       2026-04-01 
02:27:58.000000000 +0200
+++ new/numba-0.65.1/numba/tests/test_profiler.py       2026-04-24 
00:27:50.000000000 +0200
@@ -7,7 +7,7 @@
 import numpy as np
 
 from numba import jit, types
-from numba.tests.support import needs_blas
+from numba.tests.support import needs_blas, skip_if_sysmon_unsupported
 import unittest
 
 
@@ -86,10 +86,12 @@
         if caller is not cfunc:
             check_stats_for_key(stats, caller.__code__, n_calls)
 
+    @skip_if_sysmon_unsupported
     def test_profiler(self):
         dot, _ = generate_standard_dot_case()
         self.check_profiler_dot(dot, dot)
 
+    @skip_if_sysmon_unsupported
     def test_profiler_for_raising_function(self):
         raising_dot, call_raising_dot = generate_raising_dot_case()
         self.check_profiler_dot(call_raising_dot, raising_dot)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba/tests/test_sys_monitoring.py 
new/numba-0.65.1/numba/tests/test_sys_monitoring.py
--- old/numba-0.65.0/numba/tests/test_sys_monitoring.py 2026-04-01 
02:27:58.000000000 +0200
+++ new/numba-0.65.1/numba/tests/test_sys_monitoring.py 2026-04-24 
00:27:50.000000000 +0200
@@ -4,9 +4,10 @@
 import threading
 import traceback
 import unittest
+import warnings
 from collections import Counter
 from unittest.mock import Mock, call
-from numba.tests.support import TestCase
+from numba.tests.support import TestCase, skip_if_sysmon_unsupported
 from numba import jit, objmode
 from numba.core.utils import PYVERSION
 from numba.core.serialize import _numba_unpickle
@@ -178,6 +179,7 @@
             sys.monitoring.free_tool_id(_tool_id)
         return callbacks
 
+    @skip_if_sysmon_unsupported
     def test_start_event(self):
         # test event PY_START
         cb = self.run_with_events(self.call_foo, (self.arg,), (PY_START,))
@@ -185,6 +187,7 @@
         self.assertEqual(len(cb), 1)
         self.check_py_start_calls(cb)
 
+    @skip_if_sysmon_unsupported
     def test_return_event(self):
         # test event PY_RETURN
         cb = self.run_with_events(self.call_foo, (self.arg,), (PY_RETURN,))
@@ -192,6 +195,7 @@
         self.assertEqual(len(cb), 1)
         self.check_py_return_calls(cb)
 
+    @skip_if_sysmon_unsupported
     def test_call_event_chain(self):
         # test event PY_START and PY_RETURN monitored at the same time
         cb = self.run_with_events(self.call_foo, (self.arg,),
@@ -313,6 +317,7 @@
             sys.monitoring.set_events(tool_id, NO_EVENTS)
             sys.monitoring.free_tool_id(tool_id)
 
+    @skip_if_sysmon_unsupported
     def test_disable_from_callback(self):
         # Event callbacks can disable a _local_ event at a specific location to
         # prevent it triggering in the future by returning
@@ -349,6 +354,7 @@
             sys.monitoring.set_events(tool_id, NO_EVENTS)
             sys.monitoring.free_tool_id(tool_id)
 
+    @skip_if_sysmon_unsupported
     def test_mutation_from_objmode(self):
         try:
             # Check that it's possible to enable an event (mutate the event
@@ -391,6 +397,7 @@
             sys.monitoring.register_callback(tool_id, event, None)
             sys.monitoring.free_tool_id(tool_id)
 
+    @skip_if_sysmon_unsupported
     def test_multiple_tool_id(self):
         # Check that multiple tools will work across different combinations of
         # events that Numba dispatcher supports, namely:
@@ -456,6 +463,7 @@
         self.check_py_start_calls(opt_tool)
         self.check_py_return_calls(opt_tool)
 
+    @skip_if_sysmon_unsupported
     def test_raising_under_monitoring(self):
         # Check that Numba can raise an exception whilst monitoring is running
         # and that 1. `RAISE` is issued 2. `PY_UNWIND` is issued, 3. that
@@ -523,6 +531,7 @@
 
         self.assertIn(msg, str(store_raised))
 
+    @skip_if_sysmon_unsupported
     def test_stop_iteration_under_monitoring(self):
         # Check that Numba can raise an StopIteration exception whilst
         # monitoring is running and that:
@@ -605,6 +614,7 @@
 
         self.assertIn(msg, str(store_raised))
 
+    @skip_if_sysmon_unsupported
     def test_raising_callback_unwinds_from_jit_on_success_path(self):
         # An event callback can legitimately raise an exception, this test
         # makes sure Numba's dispatcher handles it ok on the "successful path",
@@ -632,6 +642,7 @@
         callback.assert_called_once()
         self.assertIn(msg, str(store_raised))
 
+    @skip_if_sysmon_unsupported
     def test_raising_callback_unwinds_from_jit_on_raising_path(self):
         # An event callback can legitimately raise an exception, this test
         # makes sure Numba's dispatcher handles it ok on the
@@ -691,6 +702,7 @@
         # check the stored exception is the expected exception
         self.assertIs(store_raised, callback.side_effect)
 
+    @skip_if_sysmon_unsupported
     def test_raising_callback_unwinds_from_jit_on_unwind_path(self):
         # An event callback can legitimately raise an exception, this test
         # makes sure Numba's dispatcher handles it ok on the
@@ -739,6 +751,7 @@
         # check the stored_raise
         self.assertIs(store_raised, callback.side_effect)
 
+    @skip_if_sysmon_unsupported
     def test_monitoring_multiple_threads(self):
         # Two threads, different tools and events registered on each thread.
         # Each test creates a global event capturing. The threads use barriers
@@ -841,6 +854,31 @@
 
         self.assertTrue(foo._enable_sysmon)
 
+    @unittest.skipUnless(
+        sys.version_info[:3] >= (3, 14, 4),
+        "needs Python 3.14.4+",
+    )
+    @TestCase.run_test_in_subprocess(
+        envvars={"NUMBA_ENABLE_SYS_MONITORING": '1'})
+    def test_userwarning_when_jit_sysmon_unavailable(self):
+        # C dispatcher warns once when hooks are off on 3.14.4+ (#10538).
+        from numba import jit
+
+        with warnings.catch_warnings(record=True) as w:
+            warnings.simplefilter("always", UserWarning)
+
+            @jit(nopython=True)
+            def foo(x):
+                return x + 1
+
+            self.assertTrue(foo._enable_sysmon)
+            self.assertEqual(foo(1), 2)
+            self.assertEqual(foo(2), 3)
+
+        self.assertEqual(len(w), 1)
+        msg = str(w[0].message)
+        self.assertIn("sys.monitoring", msg)
+
 
 if __name__ == '__main__':
     unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba.egg-info/PKG-INFO 
new/numba-0.65.1/numba.egg-info/PKG-INFO
--- old/numba-0.65.0/numba.egg-info/PKG-INFO    2026-04-01 02:29:09.000000000 
+0200
+++ new/numba-0.65.1/numba.egg-info/PKG-INFO    2026-04-24 00:28:43.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: numba
-Version: 0.65.0
+Version: 0.65.1
 Summary: compiling Python code using LLVM
 Home-page: https://numba.pydata.org
 License: BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numba-0.65.0/numba.egg-info/SOURCES.txt 
new/numba-0.65.1/numba.egg-info/SOURCES.txt
--- old/numba-0.65.0/numba.egg-info/SOURCES.txt 2026-04-01 02:29:09.000000000 
+0200
+++ new/numba-0.65.1/numba.egg-info/SOURCES.txt 2026-04-24 00:28:43.000000000 
+0200
@@ -118,6 +118,7 @@
 docs/source/release/0.63.1-notes.rst
 docs/source/release/0.64.0-notes.rst
 docs/source/release/0.65.0-notes.rst
+docs/source/release/0.65.1-notes.rst
 docs/source/user/5minguide.rst
 docs/source/user/cfunc.rst
 docs/source/user/cli.rst

Reply via email to