A new tail-calling interpreter for significantly better interpreter performance

Please see A new tail-calling interpreter for significantly better interpreter performance · Issue #128563 · python/cpython · GitHub.

Thank you!

26 Likes

Those are some nice looking performance improvements. Based on the magnitude of the improvement, I think it’s worth some complexity and pain to make this an optional build option.

I wonder if using tail-calls for marshal and _pickle could bring significant benefits as well. Speeding up marshal would help Python startup time. Seems a bit similar to protobuf.

7 Likes

I’m late to this party. Is the main branch supposed to build successfully on MacOS using clang v19 with --enable-experimental-jit=yes and --with-tail-call-interp?

Not at the moment, I fixed it in a follow-up PR but it needs review before merging gh-129819: Allow tier2/JIT and tailcall by Fidget-Spinner · Pull Request #129820 · python/cpython · GitHub

Thanks. Not a review, but I can confirm that the interpreter compiles and tests run with the patch.

2 Likes