[squeak-dev] The Trunk: Kernel-eem.1359.mcz

Eliot Miranda eliot.miranda at gmail.com
Fri Oct 30 22:24:34 UTC 2020


On Fri, Oct 30, 2020 at 2:17 PM Thiede, Christoph <
Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:

> Thanks for merging! :-) But I believe you copied the versions only, they
> are still in the inbox ...
>

You want these moving to treated inbox?  Or...?  If to treated do you have
permissions or do I need to do it?  I don't think they should go to trunk
because the history is wrong.  But that's just what I think.

>
> Best,
>
> Christoph
> <http://www.hpi.de/>
> ------------------------------
> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
> Auftrag von commits at source.squeak.org <commits at source.squeak.org>
> *Gesendet:* Freitag, 30. Oktober 2020 20:10:10
> *An:* squeak-dev at lists.squeakfoundation.org;
> packages at lists.squeakfoundation.org
> *Betreff:* [squeak-dev] The Trunk: Kernel-eem.1359.mcz
>
> Eliot Miranda uploaded a new version of Kernel to project The Trunk:
> http://source.squeak.org/trunk/Kernel-eem.1359.mcz
>
> ==================== Summary ====================
>
> Name: Kernel-eem.1359
> Author: eem
> Time: 30 October 2020, 12:10:07.699375 pm
> UUID: 1ec9a445-37fa-4256-84d8-9bdf8b52eb7d
> Ancestors: Kernel-eem.1358
>
> Merge Kernel-ct.1358
> Author: ct
> Time: 28 October 2020, 11:37:24.817544 pm
> UUID: c9af6acb-61cf-af42-b5fa-3afa8451bb24
> Ancestors: Kernel-mt.1353
>
> Fixes a simulation bug that occurs when executing ProtoObject >>
> #doesNotUnderstand:. See KernelTests-ct.388.
>
> =============== Diff against Kernel-eem.1358 ===============
>
> Item was changed:
>   ----- Method: Context>>send:to:with:lookupIn: (in category
> 'controlling') -----
>   send: selector to: rcvr with: arguments lookupIn: lookupClass
>          "Simulate the action of sending a message with selector and
> arguments to rcvr. The argument, lookupClass, is the class in which to
> lookup the message. This is the receiver's class for normal messages, but
> for super messages it will be some specific class related to the source
> method."
>
>          | meth primIndex val ctxt |
>          (meth := lookupClass lookupSelector: selector) ifNil:
> +                [selector == #doesNotUnderstand: ifTrue:
> +                        [self error: 'Recursive message not understood!!'
> translated].
> +                ^self send: #doesNotUnderstand:
> -                [^self send: #doesNotUnderstand:
>                                  to: rcvr
>                                  with: {(Message selector: selector
> arguments: arguments) lookupClass: lookupClass}
>                                  lookupIn: lookupClass].
>
>          meth isCompiledMethod ifFalse:
>                  ["Object as Methods (OaM) protocol: 'The contract is
> that, when the VM encounters an ordinary object (rather than a compiled
> method) in the method dictionary during lookup, it sends it the special
> selector #run:with:in: providing the original selector, arguments, and
> receiver.'. DOI: 10.1145/2991041.2991062."
> +                ^self send: #run:with:in:
> -                ^ self send: #run:with:in:
>                          to: meth
>                          with: {selector. arguments. rcvr}].
>
>          meth numArgs = arguments size ifFalse:
>                  [^ self error: ('Wrong number of arguments in simulated
> message {1}' translated format: {selector})].
>          (primIndex := meth primitive) > 0 ifTrue:
>                  [val := self doPrimitive: primIndex method: meth
> receiver: rcvr args: arguments.
>                  (self isPrimFailToken: val) ifFalse:
>                          [^val]].
>
>          (selector == #doesNotUnderstand: and: [lookupClass ==
> ProtoObject]) ifTrue:
> +                [^self error: ('Simulated message {1} not understood'
> translated format: {arguments first selector})].
> -                [^ self error: ('Simulated message {1} not understood'
> translated format: {arguments first selector})].
>
>          ctxt := Context sender: self receiver: rcvr method: meth
> arguments: arguments.
> +        (primIndex isInteger and: [primIndex > 0]) ifTrue:
> -        (primIndex notNil and: [primIndex > 0]) ifTrue:
>                  [ctxt failPrimitiveWith: val].
>
>          ^ctxt!
>
>
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20201030/8e3ca6d7/attachment.html>


More information about the Squeak-dev mailing list