<br><br><div class="gmail_quote">On Mon, Mar 16, 2009 at 2:15 PM, Philippe Marschall <span dir="ltr">&lt;<a href="mailto:philippe.marschall@gmail.com">philippe.marschall@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;">
2009/3/16 Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt;<br>
&gt;<br>
&gt; On Sun, Mar 15, 2009 at 1:57 PM, Nicolas Cellier<br>
&gt; &lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2009/3/15 Hans-Martin Mosner &lt;<a href="mailto:hmm@heeg.de">hmm@heeg.de</a>&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; nicolas cellier schrieb:<br>
&gt;&gt;&gt; &gt; Hans,<br>
&gt;&gt;&gt; &gt; Tagging/untagging could be very fast! See my other post<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 1) UnTagging a double= No op<br>
&gt;&gt;&gt; &gt; 2) Tagging a double= a isnan test (so as to have a representable nan<br>
&gt;&gt;&gt; &gt; in Smalltalk)<br>
&gt;&gt;&gt; &gt; 3) This trick does not had any extra cost to tagging/untagging of<br>
&gt;&gt;&gt; &gt; other oops<br>
&gt;&gt;&gt; That&#39;s true for a 64-bit processor, and on such hardware I see the<br>
&gt;&gt;&gt; advantages of this scheme.<br>
&gt;&gt;&gt; For 32-bit hardware, it won&#39;t work.<br>
&gt;&gt;&gt; Hopefully we&#39;ll all have suitable hardware in the near future...<br>
&gt;&gt;&gt; But for example, I&#39;m running 32-bit linux here on my 64-bit AMD<br>
&gt;&gt;&gt; processor just because the WLAN card I&#39;m using only has a 32-bit Windows<br>
&gt;&gt;&gt; driver, and ndiswrapper on 64-bit linux would require a 64-bit driver to<br>
&gt;&gt;&gt; work correctly (which is somewhat stupid IMHO but I&#39;m not going to hack<br>
&gt;&gt;&gt; ndiswrapper).<br>
&gt;&gt;&gt; In the real world, there are tons of silly constraints like this which<br>
&gt;&gt;&gt; still prevent people from fully using 64-bit hardware.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt; Hans-Martin<br>
&gt;&gt;<br>
&gt;&gt; Of course, most of the nice properties come from the 64 bits adressing...<br>
&gt;&gt; Hey, wait, I don&#39;t even have a 64 processor in my house!<br>
&gt;&gt; For the fun I imagine we could emulate by spanning each oop over two int32<br>
&gt;&gt; typedef struct {int32 high,low;} oop;<br>
&gt;&gt; I would expect a slower VM by roughly a factor 2 - except for double<br>
&gt;&gt; arithmetic...<br>
&gt;<br>
&gt; In theory, but only for memory-limited symbolic applications.  If you have<br>
&gt; an application that fits entirely in cache then I would expect parity.  The<br>
&gt; argument for symbolic applications is that a 64-bit symbolic app has to move<br>
&gt; twice the data as a 32-bit symbolic app because each symbolic object is<br>
&gt; twice the size.<br>
<br>
</div></div>Couldn&#39;t you compress the oops? AFAIK HotSpot was the last remaining<br>
JVM that got this.</blockquote><div><br></div><div>I don&#39;t see the point.  Memory is cheap, getting cheaper.  64-bits means extremely cheap address space.  Why slow down the critical path to save space? </div><div><br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
<br>
Cheers<br>
<font color="#888888">Philippe<br>
<br>
</font></blockquote></div><br>