<br><br><div class="gmail_quote">On Wed, Mar 14, 2012 at 11:19 AM, Alexandre Bergel <span dir="ltr">&lt;<a href="mailto:alexandre.bergel@me.com">alexandre.bergel@me.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi!<br>
<br>
Can someone confirm or infirm the following: A quick method (ie. the compiled methods answer true to the message isQuick) is executed without creating a stack frame. Is that true?<br></blockquote><div><br></div><div>Yes, at least in the interpreter.  In Cog, if jitted, such methods run in a leaf frame (only the return address is pushed), and additional tests in the JIT allow many other methods to run with only a leaf frame.  See needsFrameNever: and needsFrameIfInBlock: and senders in the Cog VM source.  If all the bytecodes in a method are marked with needsFrameNever: or needsFrameIfInBlock: then the method can be (and is) compiled frameless.  if all the bytecodes in a block are marked with needsFrameNever: then the block can be (and is) compiled frameless.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
Alexandre<br>
<font color="#888888">--<br>
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>
Alexandre Bergel  <a href="http://www.bergel.eu" target="_blank">http://www.bergel.eu</a><br>
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br>
<br>
<br>
<br>
<br>
<br>
<br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div><br>