Python 3.13 adds the ability to have a free-threaded python interpreter - which doesn't have a GIL.
py-spy doesn't currently work against free-threaded python interpreters, because:
- PyObject layout is different : instead of just containing a
ob_refcnt and ob_type members - with Py_GIL_DISABLED interpreters the PyObject has additional members (threadid/mutex/ etc)
MANAGED_DICT_OFFSET is different
Python 3.13 adds the ability to have a free-threaded python interpreter - which doesn't have a GIL.
py-spy doesn't currently work against free-threaded python interpreters, because:
ob_refcntandob_typemembers - withPy_GIL_DISABLEDinterpreters the PyObject has additional members (threadid/mutex/ etc)MANAGED_DICT_OFFSETis different