<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 18, 2017 at 1:42 PM, Mariano Martinez Peck <span dir="ltr"><<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="gmail-">On Wed, Oct 18, 2017 at 3:36 AM, Tudor Girba <span dir="ltr"><<a href="mailto:tudor@tudorgirba.com" target="_blank">tudor@tudorgirba.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">Hi,<div><br></div><div>This is already available since some time in the GTInspector. You can just inspect a compiled method. You will get both the bytecode and the AST (with source tracking, too). In fact, this was one of the original reasons why GTInspector exists: I wanted to figure out how the AST is structured so that I can write queries against it :).</div></div></blockquote><div><br></div><div><br></div></span><div>Sure, we just miss machine code :)</div></div></div></div></blockquote><div><br></div><div>Yeah the machine code is what matters.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>But...AFAIR to get the machine code of a method it needs VMMaker to be loaded....</div></div></div></div></blockquote><div><br></div><div>I was thinking of changing that, adding a primitive which answers a CogMethod as a bytearray, but you still need to use external libs such as gdb/lldb to disassemble your binary (which is possible but not working out of the box everywhere and it does not make sense to include that as part of the VM), and you still need something extracted from VMMaker to make sense out of the CogMethod header and CogMethod map, which has a lot of dependencies, so likely the whole VMMaker itself. And I'm not talking about all the different CogMethod flavors.</div><div><br></div><div>With VMMaker loaded you can do it with in-image compilation but you will have the machine code with only unlinked sends. With linked send it's more difficult as you need to really simulate the whole runtime.</div><div><br></div><div>Overall there's no amazing solution. In the example shown it's easier as in C++ the code is not modified while it runs and you've already have gdb/lldb APIs to show what they show.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-"><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div><img id="gmail-m_754826129540728610m_87775850208380699445381D370-78C4-472D-BA2B-D7ACAD3BEB30" src="cid:1F79FA05-9DF7-4F9C-9E8A-D17759646DB6@home"></div><div><br></div><div>Cheers,</div><div>Doru</div><div><br></div><div><div><div class="gmail-m_754826129540728610h5"><br><blockquote type="cite">On Oct 17, 2017, at 10:03 PM, Esteban A. Maringolo <<a href="mailto:emaringolo@gmail.com" target="_blank">emaringolo@gmail.com</a>> wrote:<br><br>I'm sure we could do this with ease, because we already can see the bytecodes.<br><br><a href="https://godbolt.org/" target="_blank">https://godbolt.org/</a><br><br>Regards!<br><br>Esteban A. Maringolo<br><br></blockquote><br></div></div><div>--<br><a href="http://www.tudorgirba.com" target="_blank">www.tudorgirba.com</a><br><a href="http://www.feenk.com" target="_blank">www.feenk.com</a><br><br>"The coherence of a trip is given by the clearness of the goal."<br><br><br><br><br></div><br></div></div></blockquote></span></div><span class="gmail-HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="gmail-m_754826129540728610gmail_signature">Mariano<br><a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.<wbr>com</a><br></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><span style="font-size:12.8px">Clément Béra</span><div style="font-size:12.8px">Pharo consortium engineer</div><div style="font-size:12.8px"><a href="https://clementbera.wordpress.com/" target="_blank">https://clementbera.wordpress.com/</a><br></div><div style="font-size:12.8px"><span style="line-height:16px">Bâtiment B 40, avenue Halley 59650 </span><span style="font-weight:bold;line-height:16px">Villeneuve d'Ascq</span></div></div></div>
</div></div>