◐ Shell
clean mode source ↗

JIT: Optimization in `_CHECK_FUNCTION_VERSION` is wrong

Bug report

Bug description:

A function version may be modified midway in the trace, so we need to recheck and add a watcher in the first check.
(All credits go to @Fidget-Spinner for pointing this out, #145080 (comment))

Ken Jin suggested to restore the old optimization instead as the fix above the will result in quite bad performance, as it’s calling it on every function deallocation.
The PR will also include a tiny bugfix found in _Py_uop_sym_set_func_version

Will open a PR soon

CPython versions tested on:

3.15, CPython main branch

Operating systems tested on:

No response

Linked PRs