<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 24, 2014 at 7:34 AM, Esteban Lorenzano <span dir="ltr">&lt;<a href="mailto:estebanlm@gmail.com" target="_blank">estebanlm@gmail.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"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>On 24 Oct 2014, at 16:21, Thierry Goubier &lt;<a href="mailto:thierry.goubier@gmail.com" target="_blank">thierry.goubier@gmail.com</a>&gt; wrote:</div><br><div><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2014-10-24 15:50 GMT+02:00 Clément Bera <span dir="ltr">&lt;<a href="mailto:bera.clement@gmail.com" target="_blank">bera.clement@gmail.com</a>&gt;</span>:<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"><div dir="ltr">The current x2 speed boost is due only to spur, not to sista. Sista will provide additional performance, but we have still things to do before production.<div><br></div><div>The performance gain reported is due to (from most important to less important):</div>- the new GC has less overhead. 30% of the execution time used to be spent in the GC.<br>- the new object format speeds up some VM internal caches (especially inline caches for message sends due to an indirection for object classes with a class table).<div>- the new object format allows some C code to be converted into machine code routines, including block creation, context creation, primitive #at:put:, which is faster because switching from jitted code to C then back to jitted code generate a little overhead.<br>- characters are now immediate objects, which speeds up String accessing.<br>- the new object format has a larger hash which speeds up big hashed collections such as big sets and dictionaries.<br>- become is faster.<div> </div></div></div></blockquote><div><br></div><div>All this is really cool :) And if I remember well, there is 64 bitness coming as well.<br><br></div><div>Will Spur also cover ARM ?<br></div></div></div></div></div></blockquote><div><br></div></span><div>Spur is an object format, it does not have anything to do with underlying architecture (well, at least in theory… Eliot should be able to say more on this). </div><div>Cog, in the other side is a jitter, and it has everything to do with the architecture so is difficult to have it running on ARM (but there is work on that direction, so we hope it will be there eventually). </div><div><br></div><div>It looks like there is a misunderstanding (probably not you, Thierry, but since I’ve seen it time to time, I take the chance to clarify): Spur is not a replacement for Cog, both are orthogonal (in fact, Spur runs in Stack vm too). </div><div>Real new VM is not “Spur” vm, is &quot;Cog+Spur&quot; vm. </div></div></div></blockquote><div><br></div><div>+1.  Spur changes the object representation, so it has a new heap layout, a new layout for objects, and a new garbage collector.  Because the object format is simpler it allows the Cog JIT to generate machine code versions of more operations, in particular basicNew, basicNew: and closure and context creation.  This is the main reason for the speedups in Cog+Spur.  As far as the Stack VM goes if you see speedups for Stack+Spur vs Stack+V3 that&#39;s all due to the Spur object representation &amp; GC, because there&#39;s no JIT.</div><div><br></div><div>Now at the moment the Cog JIT only has an x86 back-end in production.  Tim Rowledge is working on finishing the ARM back end started by Lars Wassermann in the GSoC a few years ago.  So soonish we should be able to have Cog+V3 or Cog+Spur on e.g. Android.</div><div><br></div><div>As part of 64-bit Spur I will be doing a back end for x86-64.</div><div><br></div><div>And Doug McPherson is also in the mix, having written the ARM version of the new FFI plugin, and is going to be building Stack ARM VMs and soon enough Cog ARM VMs.<br></div><div><br></div><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"><div style="word-wrap:break-word"><div><div><br></div><div>cheers, </div><span class=""><font color="#888888"><div>Esteban</div></font></span><div><div class="h5"><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>Thierry<br></div><div> </div><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"><div><div><div class="gmail_extra"><br><div class="gmail_quote">2014-10-24 15:20 GMT+02:00 kilon alios <span dir="ltr">&lt;<a href="mailto:kilon.alios@gmail.com" target="_blank">kilon.alios@gmail.com</a>&gt;</span>:<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"><div dir="ltr">thanks max, i completely forgotten about esug videos, looks like i found what to watch during the weekend :D</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 24, 2014 at 4:12 PM, Max Leske <span dir="ltr">&lt;<a href="mailto:maxleske@gmail.com" target="_blank">maxleske@gmail.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"><div style="word-wrap:break-word"><br><div><span><blockquote type="cite"><div>On 24.10.2014, at 15:06, kilon alios &lt;<a href="mailto:kilon.alios@gmail.com" target="_blank">kilon.alios@gmail.com</a>&gt; wrote:</div><br><div><div dir="ltr"><div>very nice</div><div><br></div>so any more information to this, how exactly this optimization works and which kind of data will benefit from this ? </div></div></blockquote><div><br></div></span><div>Clément’s byte code set talk at ESUG: <a href="http://www.youtube.com/watch?v=e9J362QHwSA&amp;index=64&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X" target="_blank">http://www.youtube.com/watch?v=e9J362QHwSA&amp;index=64&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X</a></div><div>Clément’s Sista talk at ESUG (2 parts):</div><div><a href="http://www.youtube.com/watch?v=X4E_FoLysJg&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=76" target="_blank">http://www.youtube.com/watch?v=X4E_FoLysJg&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=76</a></div><div><a href="http://www.youtube.com/watch?v=gZOk3qojoVE&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=75" target="_blank">http://www.youtube.com/watch?v=gZOk3qojoVE&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=75</a></div><div><br></div><div>Eliot’s Spur talk at ESUG (3 parts):</div><div><a href="http://www.youtube.com/watch?v=k0nBNS1aHZ4&amp;index=49&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X" target="_blank">http://www.youtube.com/watch?v=k0nBNS1aHZ4&amp;index=49&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X</a></div><div><a href="http://www.youtube.com/watch?v=sn3irBZE7g4&amp;index=48&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X" target="_blank">http://www.youtube.com/watch?v=sn3irBZE7g4&amp;index=48&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X</a></div><div><a href="http://www.youtube.com/watch?v=1Vg0iFeg_pA&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=47" target="_blank">http://www.youtube.com/watch?v=1Vg0iFeg_pA&amp;list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&amp;index=47</a></div><div><div><br><blockquote type="cite"><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 24, 2014 at 3:47 PM, Sebastian Sastre <span dir="ltr">&lt;<a href="mailto:sebastian@flowingconcept.com" target="_blank">sebastian@flowingconcept.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">remarkable!!!<br>
<br>
congratulations for the impressive results<br>
<br>
thanks for sharing!<br>
<br>
sebastian<br>
<br>
o/<br>
<div><div><br>
&gt; On 23/10/2014, at 17:40, Max Leske &lt;<a href="mailto:maxleske@gmail.com" target="_blank">maxleske@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; For those of you who missed this on IRC:<br>
&gt;<br>
&gt; henriksp: estebanlm: Care to run a small bench Cog vs Spur for me?<br>
&gt; [3:32pm] henriksp: int := ZnUTF8Encoder new.<br>
&gt; [3:32pm] henriksp: [int decodeBytes:#[67 97 115 104 44 32 108 105 107 101 32 226 130 172 44 32 105 115 32 107 105 110 103 0]] bench.<br>
&gt; [3:32pm] henriksp: had a 16x speedup with assembly implementation vs Cog, if it&#39;s 8x vs Spur, that&#39;s just really impressive<br>
&gt; [3:44pm] Craig left the chat room. (Quit: Leaving.)<br>
&gt; [3:53pm] Craig joined the chat room.<br>
&gt; [4:08pm] VitamineD joined the chat room.<br>
&gt; [4:20pm] estebanlm: checking<br>
&gt; [4:21pm] estebanlm: Cog: 167,000 per second.<br>
&gt; [4:22pm] estebanlm: Cog[Spur]: 289,000 per second.<br>
&gt; [4:23pm] estebanlm: henriksp: ping<br>
&gt; [4:33pm] tinchodias left the chat room. (Ping timeout: 245 seconds)<br>
&gt; [4:33pm] tinchodias joined the chat room.<br>
&gt; [4:34pm] henriksp: 70% more work done, nice!<br>
&gt; [5:09pm]<br>
&gt;<br>
&gt;<br>
&gt; Yay! :)<br>
<br>
</div></div></blockquote></div><br></div>
</div></blockquote></div></div></div><br></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>
</div></blockquote></div></div></div><br></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>