Share

SELFISH: Prototype-based OOP

Tracker: Bugs

9 Deep inheritance breaks caching - ID: 212903
Last Update: Tracker Item Submitted ( tlilley )

The inheritance slot-caching mechanism currently only recognizes changes in
delegation hierarchy that originate in the child object (ie: the one in
which a delegated slot is currently cached). This graph:

p2 <- p1 <- o

with this sequence of events:

def foobar: pass
p2.hello = foobar
o.hello
del p1.isa_p2

will cause the slot 'hello' to be cached in object o. The last statement
will technically break the delegation path that caused that slot to be
cached, but the slot will not be uncached. Thus, subsequent invocations of
o.hello will succeed, but they shouldn't.

This is also generalizable to anything that happens upstream, such as
deleting a slot from a parent when it's been cached in a child. The
propagation, in other words, is terribly incomplete.


Tripp Lilley ( tlilley ) - 2000-08-28 05:25

9

Open

None

Tripp Lilley

selfish.core.py

Volkswagens

Public


Comments




Log in to comment.

No follow-up comments have been posted.

Attached File

No Files Currently Attached

Change

No changes have been made to this artifact.