<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"><<a href="mailto:florin.mateoc@gmail.com" target="_blank">florin.mateoc@gmail.com</a>></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>
><br>
> Yes, NaN-boxing is a good name for an old idea. Very cute. But I'm not going there. :-) Too much legacy, plus<br>
> Smalltalk isn't JavaScript (JavaScript doesn't have integers except inside certain VMs).<br>
><br>
<br>
</div>Ha! Your "Smalltalk isn't JavaScript" just made a light bulb go on. But isn't (or shouldn'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's what Self/Strongtalk/HotSpot does. As I understand it that's part of the goals behind Gerardo Richarte and Javier Burroni'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>
> best,<br>
> Eliot<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>