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 BTaskaya
Recipients BTaskaya, Mark.Shannon, christian.heimes, josh.r, mark.dickinson, pablogsal, rhettinger, serhiy.storchaka, terry.reedy
Date 2020-12-31.18:05:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1609437913.63.0.250834614327.issue42454@roundup.psfhosted.org>
In-reply-to
Content
I've given this another shot, but even though I was able to create a patch that preserved slices as (type(slice), start, stop, step) tuples in the consts_cache, this final optimization prevented me to finalize it; 😃https://github.com/python/cpython/blob/master/Python/compile.c#L5855-L5858

So, unless anyone else came up with a reasonable idea to do this optimization at the compile-time without actually making them hashable, I am re-proposing the idea of making them hashable.

Pro:
  - Up to %30+ speedup on slicing with constants (extremely common)
Cons:
  - Mappings accepts slices, which would rarely lead some esoteric cases (like the examples given)

Comments would be appreciated
History
Date User Action Args
2020-12-31 18:05:13BTaskayasetrecipients: + BTaskaya, rhettinger, terry.reedy, mark.dickinson, christian.heimes, Mark.Shannon, serhiy.storchaka, josh.r, pablogsal
2020-12-31 18:05:13BTaskayasetmessageid: <1609437913.63.0.250834614327.issue42454@roundup.psfhosted.org>
2020-12-31 18:05:13BTaskayalinkissue42454 messages
2020-12-31 18:05:13BTaskayacreate