[comp.lang.smalltalk] Smalltalk-80 ContextParts, BlockContexts and MethodContexts

aij@computing-maths.cardiff.ac.uk (Andrew Jones) (02/25/89)

I am using Smalltalk-80 version T2.1.2a on a Tektronix 4404 machine. I am
interested in manipulating contexts, but I have discovered that there are
complications in this particular version of Smalltalk. For example, I could
not get the backtracking facility described by LaLonde & Van Gulik in
OOPSLA 88 to work until I discovered that ContextPart redefines such
messages as basicAt:put: and instVarAt:put:. When I created my own
copying routine which used the standard methods the problems seemed to
go away. Looking through the ContextPart code, it seems that when you
modify the stack pointer, something a bit special is going on (methods
primDecrementStackp and primIncrementStackp). Could anyone enlighten me
further? I note that in the version of Smalltalk used for their Detektr
expert-system these methods were absent, as in the version of Smalltalk-80
we have on an IBM PC/AT. What I really want to know is, can I safely
modify these contexts or is there some kind of interaction with this
particular interpreter which I need to be aware of?