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

Add support for Python 3.14.0-alpha1 #1599

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Add support for Python 3.14.0-alpha1 #1599

wants to merge 6 commits into from

Conversation

progval
Copy link
Owner

@progval progval commented Oct 19, 2024

No description provided.

@progval
Copy link
Owner Author

progval commented Oct 19, 2024

This is tough: Python 3.14 switches multiprocessing's default start method from fork to forkserver, which requires target functions to be picklable.

The above commits fix the low-hanging fruits, but there is still the issue of plugins using target=self._some_method, because methods reference their plugin class, which can only be unpickled if the module containing the plugin class can be imported. And generally it can't, because plugin modules are not on Python's import path, as they are imported with this:

https://github.com/progval/Limnoria/blob/54c09809786db7a6468c48dedc788287fbcded72/src/plugin.py

after the forkserver is started

Of course we can change the start method back to fork when Limnoria starts, but it doesn't solve the issue that it is unsafe in threaded programs (which Limnoria is)

This is unsafe, but we strongly depend on it
@progval
Copy link
Owner Author

progval commented Oct 19, 2024

Of course we can change the start method back to fork when Limnoria starts, but it doesn't solve the issue that it is unsafe in threaded programs (which Limnoria is)

Let's do that. I opened #1600 about this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant