Skip to content

Conversation

@vstinner
Copy link
Member

@vstinner vstinner commented Nov 10, 2025

  • _io module: add "Py" prefix to "spec" variables. For example, rename bufferedrandom_spec to _Py_bufferedrandom_spec.
  • typevarobject.c: add "static" to "spec" and "slots" variables.
  • import.c: add "static" to "pkgcontext" variable.

* _io module: add "_Py_" prefix to "spec" variables. For example,
  rename bufferedrandom_spec to _Py_bufferedrandom_spec.
* typevarobject.c: add "static" to "spec" and "slots" variables.
* import.c: add "static" to "pkgcontext" variable.
@vstinner
Copy link
Member Author

With this patch:

diff --git a/Tools/build/smelly.py b/Tools/build/smelly.py
index 9a360412a73..0b694392583 100755
--- a/Tools/build/smelly.py
+++ b/Tools/build/smelly.py
@@ -37,7 +37,7 @@ def is_local_symbol_type(symtype):
     # Ignore the initialized data section (d and D) and the BSS data
     # section. For example, ignore "__bss_start (type: B)"
     # and "_edata (type: D)".
-    if symtype in "bBdD":
+    if symtype in "bB":
         return True
 
     return False

make smelly detects fixed export issues, but also this symbol:

+ nm --no-sort libpython3.15d.a
Ignore 15820 local symbols

Smelly symbol: _AsyncioDebug (type: D)

ERROR: Found 1 smelly symbols!

Copy link
Contributor

@cmaloney cmaloney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most modules don't need the extern PyType_Spec pieces that the _io module currently uses; 👍 for this change and I added to my I/O rework notes that it would be nice to reduce the need for these.

@encukou encukou merged commit 8435a22 into python:main Nov 11, 2025
48 checks passed
@vstinner vstinner deleted the fix_exports branch November 11, 2025 10:15
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 CentOS9 NoGIL Refleaks 3.x (tier-1) has failed when building commit 8435a22.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/1610/builds/2396) and take a look at the build logs.
  4. Check if the failure is related to this commit (8435a22) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/1610/builds/2396

Failed tests:

  • test_free_threading

Test leaking resources:

  • test_free_threading: file descriptors

Summary of the results of the build (if available):

==

Click to see traceback logs
remote: Enumerating objects: 17, done.        
remote: Counting objects:   6% (1/16)        
remote: Counting objects:  12% (2/16)        
remote: Counting objects:  18% (3/16)        
remote: Counting objects:  25% (4/16)        
remote: Counting objects:  31% (5/16)        
remote: Counting objects:  37% (6/16)        
remote: Counting objects:  43% (7/16)        
remote: Counting objects:  50% (8/16)        
remote: Counting objects:  56% (9/16)        
remote: Counting objects:  62% (10/16)        
remote: Counting objects:  68% (11/16)        
remote: Counting objects:  75% (12/16)        
remote: Counting objects:  81% (13/16)        
remote: Counting objects:  87% (14/16)        
remote: Counting objects:  93% (15/16)        
remote: Counting objects: 100% (16/16)        
remote: Counting objects: 100% (16/16), done.        
remote: Compressing objects:  33% (1/3)        
remote: Compressing objects:  66% (2/3)        
remote: Compressing objects: 100% (3/3)        
remote: Compressing objects: 100% (3/3), done.        
remote: Total 17 (delta 13), reused 13 (delta 13), pack-reused 1 (from 1)        
From https://github.com/python/cpython
 * branch                    main       -> FETCH_HEAD
Note: switching to '8435a2278f964f48d36edbc5092be5ebecfcb120'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 8435a2278f9 gh-141376: Fix exported symbols (GH-141377)
Switched to and reset branch 'main'

configure: WARNING: no system libmpdec found; falling back to pure-Python version for the decimal module

make: *** [Makefile:2493: buildbottest] Error 2

@encukou
Copy link
Member

encukou commented Nov 11, 2025

(The noGIL failure is a known issue, #120158.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants