Skip to content

Commit ecc86c3

Browse files
committed
Merge branch 'main' into docs/pep750-first-pass
2 parents 1c0ed70 + 698bab5 commit ecc86c3

36 files changed

Lines changed: 412 additions & 142 deletions

Doc/c-api/capsule.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,19 @@ Refer to :ref:`using-capsules` for more information on using these objects.
105105
``module.attribute``. The *name* stored in the capsule must match this
106106
string exactly.
107107
108+
This function splits *name* on the ``.`` character, and imports the first
109+
element. It then processes further elements using attribute lookups.
110+
108111
Return the capsule's internal *pointer* on success. On failure, set an
109112
exception and return ``NULL``.
110113
114+
.. note::
115+
116+
If *name* points to an attribute of some submodule or subpackage, this
117+
submodule or subpackage must be previously imported using other means
118+
(for example, by using :c:func:`PyImport_ImportModule`) for the
119+
attribute lookups to succeed.
120+
111121
.. versionchanged:: 3.3
112122
*no_block* has no effect anymore.
113123

Doc/library/faulthandler.rst

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,41 @@ handler:
228228
Fatal Python error: Segmentation fault
229229
230230
Current thread 0x00007fb899f39700 (most recent call first):
231-
File "/home/python/cpython/Lib/ctypes/__init__.py", line 486 in string_at
231+
File "/opt/python/Lib/ctypes/__init__.py", line 486 in string_at
232232
File "<stdin>", line 1 in <module>
233+
234+
Current thread's C stack trace (most recent call first):
235+
Binary file "/opt/python/python", at _Py_DumpStack+0x42 [0x5b27f7d7147e]
236+
Binary file "/opt/python/python", at +0x32dcbd [0x5b27f7d85cbd]
237+
Binary file "/opt/python/python", at +0x32df8a [0x5b27f7d85f8a]
238+
Binary file "/usr/lib/libc.so.6", at +0x3def0 [0x77b73226bef0]
239+
Binary file "/usr/lib/libc.so.6", at +0x17ef9c [0x77b7323acf9c]
240+
Binary file "/opt/python/build/lib.linux-x86_64-3.15/_ctypes.cpython-315d-x86_64-linux-gnu.so", at +0xcdf6 [0x77b7315dddf6]
241+
Binary file "/usr/lib/libffi.so.8", at +0x7976 [0x77b73158f976]
242+
Binary file "/usr/lib/libffi.so.8", at +0x413c [0x77b73158c13c]
243+
Binary file "/usr/lib/libffi.so.8", at ffi_call+0x12e [0x77b73158ef0e]
244+
Binary file "/opt/python/build/lib.linux-x86_64-3.15/_ctypes.cpython-315d-x86_64-linux-gnu.so", at +0x15a33 [0x77b7315e6a33]
245+
Binary file "/opt/python/build/lib.linux-x86_64-3.15/_ctypes.cpython-315d-x86_64-linux-gnu.so", at +0x164fa [0x77b7315e74fa]
246+
Binary file "/opt/python/build/lib.linux-x86_64-3.15/_ctypes.cpython-315d-x86_64-linux-gnu.so", at +0xc624 [0x77b7315dd624]
247+
Binary file "/opt/python/python", at _PyObject_MakeTpCall+0xce [0x5b27f7b73883]
248+
Binary file "/opt/python/python", at +0x11bab6 [0x5b27f7b73ab6]
249+
Binary file "/opt/python/python", at PyObject_Vectorcall+0x23 [0x5b27f7b73b04]
250+
Binary file "/opt/python/python", at _PyEval_EvalFrameDefault+0x490c [0x5b27f7cbb302]
251+
Binary file "/opt/python/python", at +0x2818e6 [0x5b27f7cd98e6]
252+
Binary file "/opt/python/python", at +0x281aab [0x5b27f7cd9aab]
253+
Binary file "/opt/python/python", at PyEval_EvalCode+0xc5 [0x5b27f7cd9ba3]
254+
Binary file "/opt/python/python", at +0x255957 [0x5b27f7cad957]
255+
Binary file "/opt/python/python", at +0x255ab4 [0x5b27f7cadab4]
256+
Binary file "/opt/python/python", at _PyEval_EvalFrameDefault+0x6c3e [0x5b27f7cbd634]
257+
Binary file "/opt/python/python", at +0x2818e6 [0x5b27f7cd98e6]
258+
Binary file "/opt/python/python", at +0x281aab [0x5b27f7cd9aab]
259+
Binary file "/opt/python/python", at +0x11b6e1 [0x5b27f7b736e1]
260+
Binary file "/opt/python/python", at +0x11d348 [0x5b27f7b75348]
261+
Binary file "/opt/python/python", at +0x11d626 [0x5b27f7b75626]
262+
Binary file "/opt/python/python", at PyObject_Call+0x20 [0x5b27f7b7565e]
263+
Binary file "/opt/python/python", at +0x32a67a [0x5b27f7d8267a]
264+
Binary file "/opt/python/python", at +0x32a7f8 [0x5b27f7d827f8]
265+
Binary file "/opt/python/python", at +0x32ac1b [0x5b27f7d82c1b]
266+
Binary file "/opt/python/python", at Py_RunMain+0x31 [0x5b27f7d82ebe]
267+
<truncated rest of calls>
233268
Segmentation fault

Doc/library/math.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ noted otherwise, all return values are floats.
5959
:func:`isnan(x) <isnan>` Check if *x* is a NaN (not a number)
6060
:func:`ldexp(x, i) <ldexp>` ``x * (2**i)``, inverse of function :func:`frexp`
6161
:func:`nextafter(x, y, steps) <nextafter>` Floating-point value *steps* steps after *x* towards *y*
62+
:func:`signbit(x) <signbit>` Check if *x* is a negative number
6263
:func:`ulp(x) <ulp>` Value of the least significant bit of *x*
6364

6465
**Power, exponential and logarithmic functions**
@@ -431,6 +432,15 @@ Floating point manipulation functions
431432
Added the *steps* argument.
432433

433434

435+
.. function:: signbit(x)
436+
437+
Return ``True`` if the sign of *x* is negative and ``False`` otherwise.
438+
439+
This is useful to detect the sign bit of zeroes, infinities and NaNs.
440+
441+
.. versionadded:: next
442+
443+
434444
.. function:: ulp(x)
435445

436446
Return the value of the least significant bit of the float *x*:

Doc/whatsnew/3.14.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2640,7 +2640,9 @@ pty
26402640
sqlite3
26412641
-------
26422642

2643-
* Remove :data:`!version` and :data:`!version_info` from :mod:`sqlite3`.
2643+
* Remove :data:`!version` and :data:`!version_info` from :mod:`sqlite3`;
2644+
use :data:`~sqlite3.sqlite_version` and :data:`~sqlite3.sqlite_version_info`
2645+
for the actual version number of the runtime SQLite library.
26442646
(Contributed by Hugo van Kemenade in :gh:`118924`.)
26452647

26462648
* Disallow using a sequence of parameters with named placeholders.

Doc/whatsnew/3.15.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ math
115115
* Add :func:`math.isnormal` and :func:`math.issubnormal` functions.
116116
(Contributed by Sergey B Kirpichev in :gh:`132908`.)
117117

118+
* Add :func:`math.signbit` function.
119+
(Contributed by Bénédikt Tran in :gh:`135853`.)
120+
118121

119122
os.path
120123
-------

Include/internal/mimalloc/mimalloc/types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ void _mi_stat_counter_increase(mi_stat_counter_t* stat, size_t amount);
705705
// Thread Local data
706706
// ------------------------------------------------------
707707

708-
// A "span" is is an available range of slices. The span queues keep
708+
// A "span" is an available range of slices. The span queues keep
709709
// track of slice spans of at most the given `slice_count` (but more than the previous size class).
710710
typedef struct mi_span_queue_s {
711711
mi_slice_t* first;

Include/internal/pycore_global_objects_fini_generated.h

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_global_strings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,7 @@ struct _Py_global_strings {
627627
STRUCT_FOR_ID(offset_src)
628628
STRUCT_FOR_ID(on_type_read)
629629
STRUCT_FOR_ID(onceregistry)
630+
STRUCT_FOR_ID(only_active_thread)
630631
STRUCT_FOR_ID(only_keys)
631632
STRUCT_FOR_ID(oparg)
632633
STRUCT_FOR_ID(opcode)

Include/internal/pycore_runtime_init_generated.h

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_unicodeobject_generated.h

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)