[Vm-dev] Why "context top" points to "tempVector" and not to variable value?

Denis Kudriashov dionisiydk at gmail.com
Wed May 11 10:02:31 UTC 2016


I found reason about it.
When message send executed it pops receiver from current stack.

But anyway it is very confusing to not see receiver as stack top in
debugger. Maybe extra field "current receiver" should be added to debugger
in that case

2016-05-11 11:51 GMT+02:00 Denis Kudriashov <dionisiydk at gmail.com>:

> Here better example to see problem:
>
> | t d |
> [ t := 'test'.
> d := 'test2' ] value.
> t.
> ^ d halt
>
>
> Stack top here will show #('test' test2') which is completely confusing
>
> 2016-05-11 11:45 GMT+02:00 Denis Kudriashov <dionisiydk at gmail.com>:
>
>> Hi.
>>
>> Try to debug following script:
>>
>> | t |
>> [ t := 'test' ] value.
>> ^ t halt
>>
>>
>> You will see in debugger #('test') as stack top value. Why it is not
>> 'test'?
>> I understand that hidden arrays used for variables which are used in
>> closures. But why "context top" in that cases points to vector instead of
>> variable value?
>>
>> Best regards,
>> Denis
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160511/1eaee593/attachment.htm


More information about the Vm-dev mailing list