<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Sep 9, 2013 at 8:50 PM, Florin Mateoc <span dir="ltr">&lt;<a href="mailto:florin.mateoc@gmail.com" target="_blank">florin.mateoc@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"><div class="im"><br>
On 9/9/2013 9:07 PM, Eliot Miranda wrote:<br>
&gt;<br>
&gt; Yes, NaN-boxing is a good name for an old idea.  Very cute.  But I&#39;m not going there. :-)  Too much legacy, plus<br>
&gt; Smalltalk isn&#39;t JavaScript (JavaScript doesn&#39;t have integers except inside certain VMs).<br>
&gt;<br>
<br>
</div>Ha! Your &quot;Smalltalk isn&#39;t JavaScript&quot; just made a light bulb go on. But isn&#39;t (or shouldn&#39;t) Slang (be) asm.js ?<br></blockquote><div><br></div><div>No.  Adaptive optimization/speculative inlining (which one could characterize as run-time type inference) is more interesting.  If AO/SI is applied to a closed world and tests can cause complete coverage then I contend one can translate a pure dynamically-typed VM implementation to C or machine code without type annotations (or at least with minimal type annotations).  Clearly there are holes here.  One cannot practicably cover e.g. conversion from 64-bit integer or float values to tagged 61-bit integer or float immediates.  But one can e.g. convert algorithms using Set and Dictionary into inlined closure-free code.  That&#39;s what Self/Strongtalk/HotSpot does.  As I understand it that&#39;s part of the goals behind Gerardo Richarte and Javier Burroni&#39;s VM.   asm.js is similar to the Slang approach and I think both are poor.</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; best,<br>
&gt; Eliot<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>