[Python-ideas] Tail recursion elimination

spir denis.spir at gmail.com
Sun Jan 19 15:27:13 CET 2014


On 01/19/2014 12:54 PM, Joao S. O. Bueno wrote:
> On 19 January 2014 08:52, Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
>> On 19/01/2014 07:39, musicdenotation at gmail.com wrote:
>>>
>>> I propose tail-call optimization to be added into CPython.
>>
>>
>> Then implement it so everybody else can use it.
>
> On a second though,  it actually could be done, at the VM level.
> I am not a proponent, but after my second though I am from "-1" to "+0".
>
> I believe that anytime one have the sequence:
>
>               20 CALL_FUNCTION            1
>               23 RETURN_VALUE
>
> in byte code, the current stack frame could be discarded prior
> to making the function call. Looking from 10000 meters, it feels
> like it would not impact any other aspect of the language but for
> enabling automatically tail recursion calls.

You also need to adjust frame size, possibly even its structure (dunno, depends 
on implementation details of python's "calling convention" so to say), to get a 
right space (and disposition) for the callee's input variables.

Denis


More information about the Python-ideas mailing list