Hi Max,<div><br></div><div>I don&#39;t have anything in a public repository at this time. I have been exploring a series of designs in this space trying to see if any could be applied to a system like GHC&#39;s bytecode interpreter, but up to now I&#39;ve been working mostly with cooperatively jitting x86-64 assembly to x86-64 assembly for a possibly commercial project. I have only recently started trying to adapt my research to a more functional setting. If you hop on #haskell some time, I&#39;d be happy to talk further.</div>
<div><br></div><div>-Edward Kmett</div><div><br><br><div class="gmail_quote">On Thu, Jun 18, 2009 at 12:30 PM, Max Bolingbroke <span dir="ltr">&lt;<a href="mailto:batterseapower@hotmail.com">batterseapower@hotmail.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/6/18 Edward Kmett &lt;<a href="mailto:ekmett@gmail.com">ekmett@gmail.com</a>&gt;:<br>
<div class="im">&gt; What is interesting is in a lazy setting, if you are tracing a bytecode<br>
&gt; representation that knows about allocation and thunks, you can do some<br>
&gt; additional optimizations in here. If on every path to a side exit or the end<br>
&gt; of the loop you find that the thunk is evaluated you can evaluate it<br>
&gt; strictly and move its execution earlier in the trace. This gives you a weak<br>
&gt; form of runtime strictness analysis. If the pointer to that thunk never<br>
&gt; escapes, then you can unbox the contents of the thunk and operate on its<br>
&gt; members in registers. Add constant folding, polyinline caching to improve<br>
&gt; branch prediction for spineless tagless g-machine thunk evaluation, and code<br>
&gt; migration to the side exits and it becomes an interesting runtime system.<br>
<br>
</div>This sounds absolutely awesome! Is the source code for your prototype<br>
publicly available anywhere? I&#39;d love to take a look at the basic<br>
structure of something like this - trace JITing is something I keep<br>
meaning to look at in more depth.<br>
<br>
Cheers,<br>
<font color="#888888">Max<br>
</font></blockquote></div><br></div>