Thanks Eliot!<div>Francisco<div><br><div class="gmail_quote">On Fri, Dec 31, 2010 at 12:37 AM, Germán Arduino <span dir="ltr">&lt;<a href="mailto:garduino@gmail.com">garduino@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Wow fantastic!<br>
I will try tomorrow on my usual development work.<br>
Thanks by share!<br>
German.<br>
<br>
2010/12/30, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; Hi All,<br>
&gt;<br>
&gt;      I&#39;ve released a new version of Cog that has a substantially improved<br>
&gt; code generator along the lines of Peter Deutsch&#39;s HPS (VisualWorks) and<br>
&gt; various of Ian Piumarta&#39;s VMs.  These all use a simple tecnique to identify<br>
&gt; constant references in bytecode and to support a register-based calling<br>
&gt; convention.  While this does produce faster code it tends to accelerate<br>
&gt; low-level code much more than high-level code as you can see by the<br>
&gt; following benchmarks:<br>
&gt;<br>
&gt; SimpleStackBasedCogit: [1 to: 100000000 do: [:i|]] timeToRun 691<br>
&gt; StackToRegisterMappingCogit: [1 to: 100000000 do: [:i|]] timeToRun 192<br>
&gt; 192 - 691 / 6.91 -72%<br>
&gt;<br>
&gt; SimpleStackBasedCogit: 0 tinyBenchmarks &#39;753495217 bytecodes/sec; 64769127<br>
&gt; sends/sec&#39;<br>
&gt; StackToRegisterMappingCogit: 0 tinyBenchmarks &#39;931756141 bytecodes/sec;<br>
&gt; 128157989 sends/sec&#39;<br>
&gt; 931756141 - 753495217 / 7534952.17 -24%<br>
&gt; 128157989 - 64769127 / 647691.27 -98%<br>
&gt;<br>
&gt; SimpleStackBasedCogit: [Compiler recompileAll] timeToRun 47013 (no<br>
&gt; transcript<br>
&gt; StackToRegisterMappingCogit: [Compiler recompileAll] timeToRun 43406 (no<br>
&gt; transcript)<br>
&gt; 43406 - 47013 / 470.13 -7.67234594686576<br>
&gt;<br>
&gt; The status of this code is essentially beta.  The test suite runs the same<br>
&gt; on the new code generator as on the old, but I think there are still bugs<br>
&gt; because I get the occasional transient error.  I am therefore very<br>
&gt; interested in any reproducible errors you can find.<br>
&gt;<br>
&gt; The VMs (<a href="http://www.mirandabanda.org/files/Cog/VM/VM.r2334/" target="_blank">http://www.mirandabanda.org/files/Cog/VM/VM.r2334/</a>) contain a few<br>
&gt; other important changes:<br>
&gt;<br>
&gt; - a bug fix to bytecode&lt;-&gt;native pc mappng that produced incorrect results<br>
&gt; for methods containing blocks with ^-returns in them.  One symptom is<br>
&gt; incorrect highlighting of the pc in the debugger, althoguh symptoms could be<br>
&gt; much serious.<br>
&gt;<br>
&gt; - jitting interpreted methods on backward branches.  Currently any<br>
&gt; interpreted method that performs more than 20 backward branches will be<br>
&gt; considered for JIT compilation and if it is suitable (default, &lt;= 60<br>
&gt; literals) will be compiled to native code.<br>
&gt;<br>
&gt; - new callback support.  I need to commit some changes to the Alien package<br>
&gt; to provide access to this but essentially the VM&#39;s callback support is now<br>
&gt; able to be ported to architectures with register-based calling conventions<br>
&gt; (ARM, PowerPC, SPARC etc).  I&#39;ll try and get the Alien code released soon,<br>
&gt; and to back-port the changes to the standard VM before the end of the<br>
&gt; holiday.<br>
&gt;<br>
&gt; One thing that is still /not/ fixed is the lack of a SoundPlugin on win32.<br>
&gt;  Apologies.  I&#39;ll try and get a fix for this before the end of the holidays<br>
&gt; too, but time might be too tight.  There are other priorities such as<br>
&gt; harmonising the standard and Cog VMs for the 4.2 release.<br>
&gt;<br>
&gt; best<br>
&gt; Eliot<br>
&gt;<br>
<br>
<br>
</div></div><font color="#888888">--<br>
=================================================<br>
Germán S. Arduino  &lt;gsa @ <a href="http://arsol.net" target="_blank">arsol.net</a>&gt;   Twitter: garduino<br>
Arduino Software &amp; Web Hosting   <a href="http://www.arduinosoftware.com" target="_blank">http://www.arduinosoftware.com</a><br>
PasswordsPro  <a href="http://www.passwordspro.com" target="_blank">http://www.passwordspro.com</a><br>
=================================================<br>
<br>
</font></blockquote></div><br></div></div>