Created originally on Bitbucket by mikekap (Mike Kaplinskiy)
The second idea from http://doc.pypy.org/en/latest/project-ideas.html .
This is a work in progress. Right now that I've gotten through translation & everything seems to work. I wanted to get some early feedback on the approach and various other ideas in this change. There are cases where this change can cause a slowdown, such as
#!python x = range(100) x.pop() y = x[0:1][:] x = 3
There might be a trick to fix this particular case, but you can of course come up with another one. On this note - would anyone know some representative benchmarks to test on? I tested one of my private projects and it seemed a bit faster, but that's not an indicator.
One of the thoughts I had while writing this is I'm not sure of the benefit of rerased for the strategy storage. It seems to add an indirection for slightly easier to understand code. Could we simply embed the various typed list pointers in the W_ListObject implementation instead of adding an indirection? It would be nice if rpython allowed this sort of subclass embedding, but I'm not sure it does. Either way - just a thought.