<div dir="ltr">Hi Markus,<br><div class="gmail_extra"><br><div class="gmail_quote">2017-10-03 16:45 GMT+02:00 Marcus Denker <span dir="ltr"><<a href="mailto:marcus.denker@inria.fr" target="_blank">marcus.denker@inria.fr</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
> On 1 Oct 2017, at 14:58, Thierry Goubier <<a href="mailto:thierry.goubier@gmail.com">thierry.goubier@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> is there a way to look at a method code once it has been added metalinks?<br>
<br>
</span>You can inspect the method. The best is to turn on #<wbr>optionCompileOnLinkInstallatio<wbr>n<br>
<br>
(just add<br>
<br>
        optionCompileOnLinkInstallatio<wbr>n: true;<br>
<br>
to the link definition).<br>
<br>
This way the method is recompiled when installing the link, not on execution.<br>
<br>
After you can inspect the method and look at the Bytecode / IR.<br></blockquote><div><br></div><div>This is what I ended up doing: looking at the IR, understanding the code that the Metalink was generating (an #ensure:, since it was an after link) rewriting a similar code in smalltalk to check the IR differences, and finding out where it got it wrong.</div><div><br></div><div>I solved this one by making it a weak after link (adding the weak whatever option).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> I'm trying to add a metalink after the last statement of a block and it fails on IR generation with an unknown temporary...<br>
><br>
<br>
</span>If you have a test I can have a look, too<br></blockquote><div><br></div><div>It was trying to add an after link to the last expression of a [:p | p + ml ] block in a #collect:.</div><div><br></div><div>The mistake was that when writing the ensure (rewriting as [:p | [ p + ml ] ensure: [ link ] ] ), it would forget to add the temporary :p as a copied temp? into the [ p + ml ] block.</div><div><br></div><div>The workaround was to ask it not to use an #ensure: block.</div><div><br></div><div>Then I encountered more errors of that kind (IR generation errors) on very simple links (popping one time too much) and given that it took me a long time to find a workaround for the first one, that I could not find a workaround for the second one (#after, #instead, #before, #after weak wouldn't work), and that I was only at the third type of probes (out of about 20) I needed to do, I stopped there.</div><div><br></div><div>Thierry</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
        Marcus<br>
</font></span></blockquote></div><br></div></div>