-
-
Notifications
You must be signed in to change notification settings - Fork 341
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
New Python versions for CI #2514
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #2514 +/- ##
=======================================
Coverage 92.45% 92.45%
=======================================
Files 118 118
Lines 16351 16351
Branches 3156 3156
=======================================
Hits 15118 15118
Misses 1104 1104
Partials 129 129 |
3.12 segfault is cause: import sys
def test_reproduction():
sys.unraisablehook = sys.__unraisablehook__
def finalizer(j):
raise Exception("h")
sys.set_asyncgen_hooks(finalizer=finalizer)
async def agen_fn():
yield
agen = agen_fn()
anext(agen)
test_reproduction(**{}) I will raise an issue upstream (and maybe fix it myself) YES. EVERY BIT OF THAT IS NECESSARY. From There's another GC thing but that's minor. |
The segfault was fixed in python/cpython#100613 Waiting on 3.12a4 for next look. That will be ... today. |
GC is different. import weakref
import trio
import gc
async def f():
async with trio.open_nursery() as nursery:
nursery.cancel_scope.cancel()
h = weakref.ref(nursery)
del nursery
await trio.lowlevel.checkpoint()
print(h(), gc.get_referrers(h()) if h() is not None else [])
trio.run(f) Under 3.10 this prints
Under 3.12a3+ this prints
I will try minimizing this more. Bisected to python/cpython@1e197e6 Rough idea of CPython issue I should file: "Should shim frames keep strong references?" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some requests:
- rebase on master!
- remove pypy nightlies, including in ci.sh
- add
pypy-3.9-dev
- add (unsupported) pypy-3.7 to
continue-on-error
(we should remove entirely when cpython drops 3.7 support)
I thing it's great you're fixing bugs off of this but I don't think that's any reason to keep the PR as draft forever! |
See #2536 maybe? (that'll have to be updated after this is merged)
See also that PR :P
Hmm... I think requiring stable PyPy 3.7 to pass while we support Python 3.7 should be fine. I removed PyPy 3.7 nightly (again, above PR) because PyPy 3.7 is no longer supported as you mention. I hope that is all? (I added a merge commit instead of a rebase cause... idk, this should be squash merged instead of merged with commit anyways) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering the relationship between these two PRs!
Python 3.12 released, PyPy 3.9 released.
Questions: