[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
|