Message52439
I may be missing something trivial here, but why the cache global - and not per-typeobject?
As I saw it - the mro cache was supposed to be a mapping of (type,name)->(descriptor/classattr) that's based on the __mro__ of type, and all of the dicts in type and its bases.
I think the right way to do it is to use another Pythonic dict object in each type, that holds this cache (name->(descriptor/classattr)).
This cache dict should essentially be equivalent to a merge of all the dicts in the mro. and gets updated whenever any of the dicts of the types in the mro gets updated.
Not sure why to re-implement a fast-hashtable when one already exists.
Also - once it is associated with the type - it does not hold any references to any names that are not already referenced by someone in the type hierarchy, so there are no mm/gc issues either.
Am I missing something here? |
|
Date |
User |
Action |
Args |
2007-08-23 15:58:01 | admin | link | issue1700288 messages |
2007-08-23 15:58:01 | admin | create | |
|