<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Coucou,<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">El 16 dic 2019, a las 13:07, pierre misse <<a href="mailto:pierre_misse25@msn.com" class="">pierre_misse25@msn.com</a>> escribió:</div><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class="">I'm currently trying to understand Slang's type inference, and to do so trying to write tests.</p><p class="">I'm using CCodeGenerator >> #compileToTMethodSelector:in: to get the TMethod, but i cannot seem to find how to use the type inference on this TMethod (or in the instance of CCodeGenerator).</p></div></div></blockquote>Did you look at the methods</div><div><br class=""></div><div>- #returnType[:]</div><div>- #typeFor:in:</div><div><br class=""></div><div>and their senders?</div><div><br class=""></div><div>There is also a method protocol “type inference” with methods that may seem interesting.</div><div><br class=""></div><div>Check for senders to try to understand the callgraph backwards :)<br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class="">Also, I have been wondering what is the semantic of sqInt.</p></div></div></blockquote>sqInt was introduced, if I’m not mistaken, to abstract the vm for the underlying exact type used.</div><div>This was for the initial effort of compiling the VM both for 32 and 64 bits (thus redefining sqInt for the correct one depending on the case).<br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class="">I found out it was an alias for a long, but i couldn't find better than that. </p></div></div></blockquote><div>Which in linux and osx is 64bit long ;)</div>In Windows a long is 32bits but either there is a conditional define for that case stating a long long, or we are super tied to gcc/clang.</div><div><br class=""></div><div>To check the actual definition/size, you can try to do a textual search on the entire vmmaker using “method source with it”.<br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class="">Are there offsets to find objects in the object memory?</p></div></div></blockquote><div>Objects in memory have variable sizes (an array of 10 elements is larger than an array of 2) so there is no such thing as fixed offsets.</div><div>Instead, each object has its own size encoded in its header (hidden from the image).</div><div>The VM uses that size to find where the object finishes, and where the next object starts.</div><div><br class=""></div><div>You may check:</div><div><br class=""></div><div>- #objectAfter:</div><div>- <a href="https://clementbera.wordpress.com/2014/01/16/spurs-new-object-format/" class="">https://clementbera.wordpress.com/2014/01/16/spurs-new-object-format/</a></div><br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class=""> Are there cast as pointers?<br class=""></p></div></div></blockquote><div>Well, technically sqInts are used as pointers.</div><div><br class=""></div><div>Check #longAt: and senders.</div><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><p class="">
</p><p class="">Thank you in advance :)<br class="">
</p><p class="">Pierre.<br class="">
</p><p class=""><br class="">
</p><p class=""><br class="">
</p><p class=""><br class="">
</p>
<div class="moz-cite-prefix">On 16/12/2019 08:27, Tobias Pape wrote:<br class="">
</div>
<blockquote type="cite" cite="mid:OpenSmalltalk%2Fopensmalltalk-vm%2Fpull%2F450%2Fc565938145@github.com" class="">
<pre class="moz-quote-pre" wrap=""> </pre>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset><p class="">(sorry, short on Time atm.)</p><p style="font-size:small;-webkit-text-size-adjust:none;color:#666;" class="">—<br class="">
You are receiving this because you are subscribed to this thread.<br class="">
Reply to this email directly, <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/450?email_source=notifications&email_token=AIJPEW7MIZ52B4XAWLM3UPDQY4UXFA5CNFSM4JYBTAVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG5YPYI#issuecomment-565938145" moz-do-not-send="true" class="">
view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AIJPEW4O6CMJIZPIRGJFE3TQY4UXFANCNFSM4JYBTAVA" moz-do-not-send="true" class="">
unsubscribe</a>.<img src="https://github.com/notifications/beacon/AIJPEW3NAZIVBVPG7AV5W2TQY4UXFA5CNFSM4JYBTAVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG5YPYI.gif" alt="" moz-do-not-send="true" width="1" height="1" class=""></p>
</blockquote>
</div>

</div></blockquote></div><br class=""></body></html>