why does dead code costs time?

Terry Reedy tjreedy at udel.edu
Wed Dec 5 15:41:19 EST 2012


On 12/5/2012 1:24 PM, Bruno Dupuis wrote:
> On Wed, Dec 05, 2012 at 10:59:26AM -0700, Ian Kelly wrote:
>> On Wed, Dec 5, 2012 at 10:34 AM, Steven D'Aprano
>> <steve+comp.lang.python at pearwood.info> wrote:
>>> The difference is almost certain between the LOAD_CONST and the
>>> LOAD_GLOBAL.
>>>
>>> As to *why* there is such a difference, I believe that's a leftover from
>>> early Python days when None was not a keyword and could be reassigned.
>>
>> I think this should even be considered a bug, not just a missing
>> optimization.  Consider:
>
> This is definitely a bug
>
>>>>> globals()['None'] = 42
>>>>> def f(x):
>> ...     return None
>> ...     print(x)
>> ...
>>>>> f('test')
>> 42
>
> This one is pretty scary
>
> The difference between `return None` and `return` leads to inconsistency and
> is in contradiction with the specs, AFAIK. I'm glad we pointed this out.

You did not specify version, but I confirmed in 3.3.0. Please open a 
tracker issue.

-- 
Terry Jan Reedy




More information about the Python-list mailing list