This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author steven.daprano
Recipients gregory.p.smith, mbussonn, pablogsal, remi.lapeyre, rhettinger, serhiy.storchaka, steven.daprano
Date 2019-05-20.15:26:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <20190520152628.GE4221@ando.pearwood.info>
In-reply-to <1558364275.23.0.958989367737.issue36906@roundup.psfhosted.org>
Content
> One issue with it is that in:
> def f():
>     return "   foo".dedent()
> f will have both "   foo" and "foo" in its constants even if the first is not used anymore.

That seems to be what happens with other folded constants:

py> def f():
...     return 99.0 + 0.9
...
py> f.__code__.co_consts
(None, 99.0, 0.9, 99.9)

so I guess that this is okay for a first draft. One difference is that 
strings tend to be much larger than floats, so this will waste more 
memory. We ought to consider removing unused constants at some point.

(But not me, sorry, I don't have enough C.)

> Removing it requires looping over the code once more while marking 
> the constants seen in a set and I was not sure if this was ok.

That should probably be a new issue.
History
Date User Action Args
2019-05-20 15:26:36steven.dapranosetrecipients: + steven.daprano, rhettinger, gregory.p.smith, serhiy.storchaka, mbussonn, pablogsal, remi.lapeyre
2019-05-20 15:26:36steven.dapranolinkissue36906 messages
2019-05-20 15:26:36steven.dapranocreate