-
-
Notifications
You must be signed in to change notification settings - Fork 38
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
ci: improve code round-tripping #143
ci: improve code round-tripping #143
Conversation
e7f7637
to
f9a7662
Compare
And sadly it breaks. |
No worries. I haven't come across any issues so these might be a few corner cases, and only on 3.11 https://github.com/MatthieuDartiailh/bytecode/actions/runs/8344140634/job/22835903388?pr=143 |
f9a7662
to
2675dc5
Compare
It is nice to see that 3.12 is fine ! |
Maybe something to look into is why it seems to take about twice as long on 3.12 to recompile about the same number of code objects
|
Compared to what ? 3.10 ? To me that is not that surprising due to the introduction of exception tables in 3.11. |
3.11 took 36s (I think we can assume it re-compiled all code objects without errors). 3.10 and earier are all in the ballpark of 25s. It makes sense for 3.11 and later versions to take more time because of the extra data structures, but the exception table is generally much smaller than the bytecode itself, so I don't know if that alone can really explain a 100% run time increase. I'll see if I can get some CPU profiling data |
@P403n1x87 did you ever manage to generate the profiling data ? |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #143 +/- ##
=======================================
Coverage 95.79% 95.79%
=======================================
Files 7 7
Lines 2044 2044
Branches 464 464
=======================================
Hits 1958 1958
Misses 52 52
Partials 34 34 ☔ View full report in Codecov by Sentry. |
59e0786
to
4d196ca
Compare
@MatthieuDartiailh the tests on 3.13 pass without the re-compilation. It looks like the wrong arguments are being resolved. I have added print("availabe_services", available_services) and these are the results With recomp
Without recomp
|
@MatthieuDartiailh I have the feeling that the CFG needs a similar fix to #145
WDYT? |
We improve the logic for round-trip re-compilation of code objects by listening for module code objects before they are executed. This way we can thoroughly recurse over nested code object and attain total coverage for better confidence.
We make sure that the TryBegin blocks are managed correctly in CFGs
9e3dbdf
to
f4727c9
Compare
Superseded by #149 |
We improve the logic for round-trip re-compilation of code objects by listening for module code objects before they are executed. This way we can thoroughly recurse over nested code object and attain total coverage for better confidence.