-
-
Notifications
You must be signed in to change notification settings - Fork 56
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
feat: add support for CPython 3.13 #225
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## devel #225 +/- ##
==========================================
+ Coverage 68.89% 69.35% +0.46%
==========================================
Files 27 27
Lines 2517 2568 +51
Branches 770 787 +17
==========================================
+ Hits 1734 1781 +47
- Misses 448 452 +4
Partials 335 335 ☔ View full report in Codecov by Sentry. |
Austin BenchmarksRunning Austin benchmarks with Python 3.10.15 Benchmark SummaryComparison of dev against 3.6.0. The following scenarios show a statistically significant difference in performance between the two versions.
Benchmark ResultsWall time [sampling interval: 1]Wall time [sampling interval: 1]
Wall time [sampling interval: 10]Wall time [sampling interval: 10]
Wall time [sampling interval: 100]Wall time [sampling interval: 100]
Wall time [sampling interval: 1000]Wall time [sampling interval: 1000]
CPU time [sampling interval: 1]CPU time [sampling interval: 1]
CPU time [sampling interval: 10]CPU time [sampling interval: 10]
CPU time [sampling interval: 100]CPU time [sampling interval: 100]
CPU time [sampling interval: 1000]CPU time [sampling interval: 1000]
RSA keygen [sampling interval: 1]RSA keygen [sampling interval: 1]
RSA keygen [sampling interval: 10]RSA keygen [sampling interval: 10]
RSA keygen [sampling interval: 100]RSA keygen [sampling interval: 100]
RSA keygen [sampling interval: 1000]RSA keygen [sampling interval: 1000]
Full metrics [sampling interval: 1]Full metrics [sampling interval: 1]
Full metrics [sampling interval: 10]Full metrics [sampling interval: 10]
Full metrics [sampling interval: 100]Full metrics [sampling interval: 100]
Full metrics [sampling interval: 1000]Full metrics [sampling interval: 1000]
Multiprocess wall time [sampling interval: 1]Multiprocess wall time [sampling interval: 1]
Multiprocess wall time [sampling interval: 10]Multiprocess wall time [sampling interval: 10]
Multiprocess wall time [sampling interval: 100]Multiprocess wall time [sampling interval: 100]
Multiprocess wall time [sampling interval: 1000]Multiprocess wall time [sampling interval: 1000]
|
e66cdb1
to
e224e5b
Compare
8d2d690
to
8759211
Compare
f15b9c6
to
9d76768
Compare
a67e572
to
15a5441
Compare
We add support for CPython 3.13
15a5441
to
05875d0
Compare
Description of the Change
We add support for CPython 3.13. This new version introduces a data structure designed for easily exposing the required field offsets to out-of-process tools like Austin, via the ABI. We adapt the coding to allow integrating with this new structure.
We currently limit testing to the CPython 3.13 version with the GIL. No testing has currently been done with either the free-threaded version, nor with the new JIT.
Alternate Designs
N.A.
Regressions
There are slim chances that the current approach taken fails under certain circumstances. That is because the new approach would require allocating memory for the Python data structures at runtime, as they are no longer known at compile time. This has been done for some of the more critical structures, but for others we are still relying on the size of the same structures from previous versions. There are no guarantees that this would work.
Verification Process
Existing test suite extended to Python 3.13.