On Wed, Jul 15, 2015 at 12:02 AM, Antoon Pardon
<antoon.par...@rece.vub.ac.be> wrote:
> On 07/14/2015 03:43 PM, Chris Angelico wrote:
>> On Tue, Jul 14, 2015 at 11:38 PM, Marko Rauhamaa <ma...@pacujo.net> wrote:
>>> Chris Angelico <ros...@gmail.com>:
>>>
>>>> On Tue, Jul 14, 2015 at 10:28 PM, Marko Rauhamaa <ma...@pacujo.net> wrote:
>>>>> I would rather optimize by default and disable optimizations with
>>>>> --debug or equivalent.
>>>> That assumes that it's simply an optimization. This is a distinct
>>>> semantic change.
>>> No, tail call optimization doesn't change the behavior of the program,
>>> for the worse anyway.
>> It does, because you lose traceback records. That's pretty significant
>> when you come to try to debug something.
>
> I doubt it would be really significant. Not compared to writing it 
> iteratively.
> When you write it iteratively, you don't get to keep a traceback record per 
> time
> you go throught the loop. So the traceback records you loose in tale call 
> elimination
> would be the traceback records you wouldn't have anyway in the iterative 
> version.
>
> So how would this be significant?

You're proposing making _every_ instance of "return func(...)" into
this kind of thing. That's not always recursion, and it's certainly
not always clear what called what to get you there.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to