Suppose you have a function like f that calls a function m.g:
def f(x):
return m.g(x, 2*x, x+1)
and f gets called a lot, so PyPy JITs it and inlines m.g into it. What if later, due to the "dynamic" nature of Python, m.g gets replaced by something else: Will the old JITed version of f be discarded right away, or could it still be called accidentally?
Also, what if your program does these redefinitions a lot, can the discarded JITed versions cause a memory leak?