top | item 45533473

(no title)

miguelgrinberg | 4 months ago

The build of Python that I used has tail calls enabled (option --with-tail-call-interp). So that was in place for the results I published. I'm not sure if this optimization applies to recursive tail calls, but if it does, my Fibonacci test should have taken advantage of the optimization.

discuss

order

ufo|4 months ago

The tail calls in question are C tail calls inside the inner interpreter loop. They have nothing to do with Python function calls.

miguelgrinberg|4 months ago

That tells you how much I know about the feature. :) But in any case, I'm positive that the flag was enabled, so my results are with tail calls. I suppose part of the difference between 3.13 and 3.14 could be thanks to this.

emil-lp|4 months ago

It wouldn’t have, since

    fib(n-1) + fib(n-2)
isn’t a tail call—there’s work left after the recursive calls, so the tail call interpreter can’t optimize it.