-
Notifications
You must be signed in to change notification settings - Fork 248
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
Restore compatibility with Python 3.11 #280
Restore compatibility with Python 3.11 #280
Conversation
Thank you. I confirm this fixes the new
Because the build is still broken, may I assume there's no urgency to merge some variant of this? |
Yep, this can wait until the frame stuff is figured out. Thanks for the quick response! |
recursion_depth
usage for Python 3.11recursion_depth
and exc_state
usage for Python 3.11
(Updated with the latest |
recursion_depth
and exc_state
usage for Python 3.11
This works on all 3.11 alphas now! Just waiting for some feedback on the BPO issue regarding the Also, my C++ is pretty rough (and I'm not too familiar with the inner workings of |
Okay, I've reworked this to use the changes in python/cpython#30234. I've tested it with those changes, but we'll probably want to wait to merge this until after that lands. (I assume it's okay to just not support the first three 3.11 alphas.) |
python/cpython#30234 is now merged. |
Thank you! |
Thanks! Any idea when we can expect a release with this support included? |
Organize them a bit better as well.
2.0a1 is going to PyPI now. |
Sync to 2.0 development where the test does not fail, at least on Linux. * master: (219 commits) Another TODO comment [skip ci] Back to development: 2.0.0a2 Preparing release 2.0.0a1 Update MANIFEST.in to exclude results from benchmarks Update CHANGES for python-greenlet#280. Bump GHA Python 3.11 from a2 to a4 Refactor for NULL datastack support Restore compatibility with Python 3.11 Add back missing members Fix compatibility macro Revert unrelated change Fix exc_state usage for Python 3.11 Add change note for python-greenlet#283. [skip ci] Add musllinux wheels Specify the python needed. Seems to not be running the compiler? Guess the language. Building like normal failed to find source; try autobuild. Try adding CodeQL analysis. Add 3.11 to tox.ini and tests.yml ...
Great, thanks! |
* PyFrameObjects are now lazily allocated and no longer part of the PyThreadState. Therefore switch the _PyCFrame instead, but keep the PyFrameObject* for GC. python/cpython@ae0a2b7 * The recursion_depth is no longer stored directly in the PyThreadState and needs to be calculated from recursion_remaining and recursion_limit. python/cpython@b931077 * The exc_state was also simplified (no more exc_type and exc_traceback). python/cpython@396b583 * Finally the frame "data stack" needs to be saved and restored. How this was done in python-greenlet was used as a reference. python-greenlet/greenlet#280 * Add new test test_clean_callstack to check that the call stack from the creation of the Fiber doesn't leak into it (i.e. `tstate->cframe->current_frame = NULL;` in `stacklet__callback`; `tstate->frame = NULL;` in older Python versions).
* PyFrameObjects are now lazily allocated and no longer part of the PyThreadState. Therefore switch the _PyCFrame instead, but keep the PyFrameObject* for GC. python/cpython@ae0a2b7 * The recursion_depth is no longer stored directly in the PyThreadState and needs to be calculated from recursion_remaining and recursion_limit. python/cpython@b931077 * The exc_state was also simplified (no more exc_type and exc_traceback). python/cpython@396b583 * Finally the frame "data stack" needs to be saved and restored. How this was done in python-greenlet was used as a reference. python-greenlet/greenlet#280 * Add new test test_clean_callstack to check that the call stack from the creation of the Fiber doesn't leak into it (i.e. `tstate->cframe->current_frame = NULL;` in `stacklet__callback`; `tstate->frame = NULL;` in older Python versions).
* PyFrameObjects are now lazily allocated and no longer part of the PyThreadState. Therefore switch the _PyCFrame instead, but keep the PyFrameObject* for GC. python/cpython@ae0a2b7 * The recursion_depth is no longer stored directly in the PyThreadState and needs to be calculated from recursion_remaining and recursion_limit. python/cpython@b931077 * The exc_state was also simplified (no more exc_type and exc_traceback). python/cpython@396b583 * Finally the frame "data stack" needs to be saved and restored. How this was done in python-greenlet was used as a reference. python-greenlet/greenlet#280 * Add new test test_clean_callstack to check that the call stack from the creation of the Fiber doesn't leak into it (i.e. `tstate->cframe->current_frame = NULL;` in `stacklet__callback`; `tstate->frame = NULL;` in older Python versions).
* PyFrameObjects are now lazily allocated and no longer part of the PyThreadState. Therefore switch the _PyCFrame instead, but keep the PyFrameObject* for GC. python/cpython@ae0a2b7 * The recursion_depth is no longer stored directly in the PyThreadState and needs to be calculated from recursion_remaining and recursion_limit. python/cpython@b931077 * The exc_state was also simplified (no more exc_type and exc_traceback). python/cpython@396b583 * Finally the frame "data stack" needs to be saved and restored. How this was done in python-greenlet was used as a reference. python-greenlet/greenlet#280 * Add new test test_clean_callstack to check that the call stack from the creation of the Fiber doesn't leak into it (i.e. `tstate->cframe->current_frame = NULL;` in `stacklet__callback`; `tstate->frame = NULL;` in older Python versions).
Closes #281.