Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-40514: Drop EXPERIMENTAL_ISOLATED_SUBINTERPRETERS #93185

Merged
merged 5 commits into from
May 27, 2022

Conversation

ericsnowcurrently
Copy link
Member

This was added for bpo-40514 (gh-84694) to test out a per-interpreter GIL. However, it has since proven unnecessary to keep the experiment in the repo. (It can be done as a branch in a fork like normal.) So here we are removing:

  • the configure option
  • the macro
  • the code enabled by the macro

@vstinner
Copy link
Member

I expected that this conditional code would become the default quickly, but I got way more technical issues than expected. I managed to fix many issues: https://vstinner.github.io/isolate-subinterpreters.html

But there are still multiple big issues like static types, singletons or getting the thread state ("tstate") from a thread local storage (TLS). Hopefully, immortal objects may fix static types and singletons, and it seems possible to fix #84702 (tstate).

This experiment was useful to discover all issues and have a better plan to fully implement the feature ("per-interpreter GIL").

Copy link
Member

@corona10 corona10 left a comment

Choose a reason for hiding this comment

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

If we decide to remove this flag, I would like to recommend adding the entry for What's NEWS.
Although this flag was not intended to expose to the public user, this flag was spread out to users who have interests in the multi-core sub interpreter project.

example: https://stackoverflow.com/a/65995393

@kumaraditya303
Copy link
Contributor

This is also broken on main branch and 3.11 as it won't even compile with this option. See #90988

@markshannon
Copy link
Member

Yes, please.
EXPERIMENTAL_ISOLATED_SUBINTERPRETERS was an interesting experiment, but it's done.

@ericsnowcurrently
Copy link
Member Author

@pablogsal, would it be okay to backport this to 3.11? (It already doesn't work on 3.11 currently.)

@pablogsal
Copy link
Member

Yep, I'm ok backporting this 👍

@ericsnowcurrently ericsnowcurrently merged commit caa279d into python:main May 27, 2022
@ericsnowcurrently ericsnowcurrently deleted the remove-experiment branch May 27, 2022 23:38
@ericsnowcurrently ericsnowcurrently added the needs backport to 3.11 only security fixes label May 27, 2022
@miss-islington
Copy link
Contributor

Thanks @ericsnowcurrently for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Sorry, @ericsnowcurrently, I could not cleanly backport this to 3.11 due to a conflict.
Please backport using cherry_picker on command line.
cherry_picker caa279d6fd5f151e57f891cd4f6ba51b532501c6 3.11

ericsnowcurrently added a commit to ericsnowcurrently/cpython that referenced this pull request May 28, 2022
…-93185)

This was added for bpo-40514 (pythongh-84694) to test out a per-interpreter GIL. However, it has since proven unnecessary to keep the experiment in the repo. (It can be done as a branch in a fork like normal.) So here we are removing:

* the configure option
* the macro
* the code enabled by the macro
miss-islington pushed a commit that referenced this pull request May 28, 2022
… (GH-93306)

(cherry picked from commit caa279d)

This was added for bpo-40514 (gh-84694) to test out a per-interpreter GIL.  However, it has since proven unnecessary to keep the experiment in the repo.  (It can be done as a branch in a fork like normal.)  So here we are removing:

* the configure option
* the macro
* the code enabled by the macro

Automerge-Triggered-By: GH:ericsnowcurrently
CAM-Gerlach added a commit to CAM-Gerlach/cpython that referenced this pull request Oct 16, 2022
 / pythongh-93306

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
miss-islington pushed a commit that referenced this pull request Oct 17, 2022
Part of #95913
Forward port of #93306, which was a backport of #93185, to address #84694

This adds the What's New entry for the removal of the subinterpreter-related env variable, build-time flag, etc. As @ericsnowcurrently  was author of the original changes, I added him as a co-author to the commit.

This addition to the Python 3.11 What's New document were only made to the Python 3.11 branch during the backport process, and not added to the version in `main`. Forward-porting it ensures the docs retain these additions for the future, rather than being lost in a legacy Python versions, allows it to be be edited as part of #95913 , and avoids merge conflicts with routine back-ports of PRs touching it.

I've pulled in the addition exactly as-is with no modifications; any editing will be done in future PRs (and therefore can be reviewed and backported accordingly).

The one other such addition is forward-ported in #98344
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs backport to 3.11 only security fixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants