nucleic / atom

Memory efficient Python objects
https://atom.readthedocs.io/en/latest/
Other
361 stars 50 forks source link

Start running tests on 3.12 #200

Closed MatthieuDartiailh closed 1 year ago

codecov[bot] commented 1 year ago

Codecov Report

Merging #200 (dc1cc41) into main (761a528) will increase coverage by 7.61%. The diff coverage is n/a.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #200 +/- ## ========================================== + Coverage 89.22% 96.84% +7.61% ========================================== Files 60 24 -36 Lines 5580 1109 -4471 Branches 359 195 -164 ========================================== - Hits 4979 1074 -3905 + Misses 582 16 -566 Partials 19 19 ```
MatthieuDartiailh commented 1 year ago

After investigating locally it appears that the segfault on exit are linked to cleaning up C++ namespaces containing Python object late in the interpreter shutdown process. The proper workaround is likely to store such variables in a module state (as should be done for a bunch of other global variables).

This may require to drop 3.8 and to do some funny dance on 3.9 and 3.10 since we cannot get a module state in a slot in those versions.

MatthieuDartiailh commented 1 year ago

I found a workaround for the segfault but we should move to using module states still.