-
Notifications
You must be signed in to change notification settings - Fork 432
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
Python 3.12 support #633
Comments
I was overly enthusiastic about the changes. Turns out they're merged into the main and scheduled to be released for the 3.13 release.
Regardless, I'm still eager to help with 3.12 support. |
Relevant: |
Thanks for the links @kakkoyun ! I've started on this - and have a very basic implementation running locally. There are currently a couple of issues that I still need to sort out on this though before we can fully support python 3.12:
As an example here is the current
You can see most of the issues here (aside from the missing GIL) - the line numbers are clearly wrong, its not picking up the thread name etc , but aside from that its at least starting to get the right output. I'm hoping to get everything aside from the GIL detection working in the next couple of days, and get a release out with this (and some other fixes). |
Thanks for the detailed update, @benfred. Please don't hesitate to let me know if I can be helpful. I can try to take a shot at the GIL detection problem. |
Initial PR is up here #642 - still needs a bunch of work (including line numbers being wrong), but its a start at least |
Hey there, any update on this? |
I'm working on our 3rd edition of O'Reilly's High Performance Python book. I've covered Py-Spy in the previous edition and I will continue to show it. We're using Python 3.12 for the book (it'll still be relevant when we publish early in 2025). Currently I'm noting that Py-Spy doesn't support 3.12, it'd be great to know if there's a timeline for support. I'd happily change that note in the book once 3.12 is supported. Thanks for your continued support on this tool, it can be very handy! |
@benfred I finally figured out how to read the thread state from the TLS. (i.e. parca-dev/parca-agent#2553) I hope to find some free cycles in the upcoming weeks to port changes to here. |
Any progress on this issue? |
I haven't started it yet. I recently changed jobs, and I haven't been able to find any free-cycles yet. If anyone else has more time, I'd be happy to help with the reviews and guidance. |
What is left to do? Just the line numbers? |
Since there's so many duplicates I'll risk "spamming" this issue with the alternatives I posted here (TIL: use https://github.com/P403n1x87/austin for now) |
I believe this is closed by #642 |
Hey @benfred, first of all, I'm a massive fan of the project! I have learned a lot about Python by reading this codebase [1].
I have seen that Python 3.12 tests are failing #618
and also, starting from
3.123.13, Python provides a struct with offsets for out-of-process tools python/cpython#106598I would like to ask about the state (or plan) for the Python 3.12 support and offer help if you would like to accept contributions for this part.
[1]: As a testament to that, I have created this project to use eBPF for profiling Python code.
The text was updated successfully, but these errors were encountered: