As much as I love <span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Racket</span>, there are certainly times I miss 'C' and it's ability to write code pretty much in assembler. As co-creator of the first commercial fractal generation software (FracTools, FracInt was free not commercial) I found the need to code down to the bare metal and a bit beyond chasing yet more and more resolution :) </sigh> Now back to the regular discussion...<div>
<br></div><div>--hsm</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 9, 2012 at 9:40 AM, Matthew Flatt <span dir="ltr"><<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</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">At Fri, 09 Nov 2012 19:34:00 +0400, Dmitry Pavlov wrote:<br>
> Matthew,<br>
><br>
> > Your plan sounds workable, but I wonder whether you'll want the JIT to<br>
> > unbox extnums in the same way that it unboxes flonums. That's not as<br>
> > easy as the rest of the plan, but generalizing Racket's unboxing<br>
> > machinery to deal with more types is something that we can consider.<br>
><br>
> Surely we will need the JIT to unbox extnums. Could you please tell<br>
> why it is harder than the rest of the plan? Ten bytes worse than<br>
> eight? Alignment issues?<br>
<br>
</div>Unboxing is a collaboration between the JIT and the bytecode compiler.<br>
There are various "value is known to be a flonum" flags that are<br>
threaded through the compiler, bytecode, validator, and JIT. In some of<br>
those places, there's room for an extra bit of information, but in<br>
other places, we'll have to adjust representations to make room for<br>
more bits.<br>
<br>
I'll look into this more. It would be nice to have fixnum unboxing, and<br>
maybe that would be a good experiment toward unboxing for other types<br>
as well.<br>
<div class="HOEnZb"><div class="h5"><br>
____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br></div>