
I have a feeling that the real problem here may be that the value stack isn't properly cloned, which means that the frames stored in knownframes will share their objects with the frame being modified as part of the current frame evaluation. I'd bet that if you properly clone the value stack using clonecells(), Samuele's hack (adding a 'changed' flag to the W_ConstantIterator class) would no longer be necessary.
Wishing I had time to code this up,
makes sense, done.
Thanks, cool. What did you mean by this comment? # XXX should we copy seq, and roll our own definition of identity? BTW I note that all __eq__ methods can be removed if we change __eq__ in W_Object to def __eq__(self, other): return type(other) is type(self) and other.__dict__ == self.__dict__ --Guido van Rossum (home page: http://www.python.org/~guido/)