Where can I find more information on STGs? Google search doesn&#39;t bring up anything too enlightening. <br><br>My curiosity was piqued by <a href="http://www.cs.chalmers.se/~gedell/ssc/index.html">http://www.cs.chalmers.se/~gedell/ssc/index.html</a>. Of course it doesn&#39;t indicate how these should be built or the format. <br>
<br><br><div class="gmail_quote">On Sun, Mar 8, 2009 at 6:41 PM, Loup Vaillant <span dir="ltr">&lt;<a href="mailto:loup.vaillant@gmail.com">loup.vaillant@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks to the courage you all gave me, I found the strength to go on.<br>
<br>
Template instantiation seems to be the easiest path, so I decided to<br>
follow it. I think I solved the problem about primitives and FFI I<br>
though it had. Namely, how the hell do I compile primitive calls with<br>
an arbitrary number of arguments.<br>
<br>
Starting from the Tutorial of Peyton Jones and Lester, I added a new<br>
node type to help guide the order of evaluation. Basically, this &quot;Seq&quot;<br>
node takes the address of two other nodes. It pushes them both on the<br>
stack, like an application node would. (That is because I don&#39;t want a<br>
dump, but I could as well create a new stack and and push the previous<br>
one on the dump.)<br>
<br>
Note the nodes which are evaluated this way must not have a functional<br>
head normal form (primitive or supercombinator). That would leak past<br>
the beginning of the stack.<br>
<br>
When the node is finally evaluated (e.g. points to a HNF, like a boxed<br>
integer), the topmost and second topmost pointers on the stack are<br>
swapped. (or the topmost pointer of the stack and the topmost pointer<br>
of the topmost stack on the dump are swapped).<br>
<br>
With a suitable compilation scheme, that should guarantee that<br>
primitives have their arguments already evaluated. (And avoid infinite<br>
loops).<br>
<br>
Now, I just have to implement it. :-)<br>
<br>
Cheers,<br>
<font color="#888888">Loup.<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>We can&#39;t solve problems by using the same kind of thinking we used when we created them. <br>    - A. Einstein<br>