[Vm-dev] Re: [squeak-dev] Re: [Pharo-project] problem with tempNamed: in Pharo 2.0

Eliot Miranda eliot.miranda at gmail.com
Wed May 2 23:27:31 UTC 2012


On Wed, May 2, 2012 at 12:31 AM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

>
>
>>
>>> Actually, we do have:
>>>
>>> namedTempAt: index
>>>     "Answer the value of the temp at index in the receiver's sequence of
>>> tempNames."
>>>     ^self debuggerMap namedTempAt: index in: self
>>>
>>> and
>>>
>>> namedTempAt: index put: aValue
>>>     "Set the value of the temp at index in the receiver's sequence of
>>> tempNames.
>>>      (Note that if the value is a copied value it is also set out along
>>> the lexical chain,
>>>       but alas not in along the lexical chain.)."
>>>     ^self debuggerMap namedTempAt: index put: aValue in: self
>>>
>>> so, if I understand correctly all we need to do is to fix tempNamed: and
>>> tempNamedPut: so that the delegate to namedTempAt: and namedTempPut: rather
>>> than to tempAt: and tempAtPut:   ?
>>>
>>
>> Yes.
>>
>>
>
> Now I was thinking, what happens with the rest of the senders of tempAt:
> and tempAtPut: ?  do I need to do something with them?
>

Let me answer more carefully.  It depends.  For example, uses of tempAt: in
ContextPart used to simulate the bytecode set are correct.  Uses in the
Debugger are likely correct.  When I look in Squeal trunk 4.3 I an see all
but one uses are correct and one, DiskProxy>comeUpFullyOnReload:, is just
scary:

(DataStream compiledMethodAt: #readArray)]) ifTrue: [
arrayIndex := (thisContext sender sender sender sender) tempAt: 4.

 :)


> Thanks
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20120502/ad9faf1e/attachment.htm


More information about the Vm-dev mailing list