<div dir="ltr">Hi Ben,<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 1, 2016 at 7:29 AM, Ben Coman <span dir="ltr">&lt;<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Just curious if the probing of the intepreter method cache for<br>
forwarding pointers had been sorted out, per SpurMemoryManager class<br>
comment...<br>
<br>
&gt; The inline cache failure code is then responsible for following the forwarding pointer chain (these are Iliffe vectors :) ) and resolving to the actual target.<br>
<br>
&gt; (In the interpreter there needs to be a similar check when probing the method cache).   It has yet to be determined exactly how this is done (e.g. change the receiver register and/or stack contents and retry the send, perhaps scanning the current activation).<br></blockquote><div><br></div><div>In the StackInterpeter look at internalFindNewMethodOrdinary and under which circumstances it sends handleForwardedSelectorFaultFor: and handleForwardedSendFaultForTag:.  In the Cogit look at ceSICMiss: (code entry Single Inline Cache miss) and under which circumstances it sends ceSendFromInLineCacheMiss:.</div><div></div></div><div class="gmail_extra"><br></div><br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>