Fiddling with GHC internals sounds like overkill for this project. <div><br></div><div>Are you really sure you need a timeout to run the Haskell metaprogram? There are many implementations of EDSLs which take the approach that you want to take by using Haskell to create a syntax tree and the offshore it to some backend compiler. None of them uses a timeout.</div>

<div><br></div><div>But in case you really insist on a timeout I would recommend using a wrapper function on the toplevel of your metaprogram which implements the timeout. That way you don&#39;t have to risk your sanity by having to dig around in GHC.</div>

<div><br></div><div>Josef<br><br><div class="gmail_quote">On Sun, Oct 17, 2010 at 9:53 PM, Patai Gergely <span dir="ltr">&lt;<a href="mailto:patai_gergely@fastmail.fm">patai_gergely@fastmail.fm</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">&gt; Not sure how this fits into what I thought you were saying.  Are you<br>
&gt; trying to use Haskell to build an AST, use GHC to optimize it, and<br>
&gt; then spit it out and compile it with, say, a OCaml program that you<br>
&gt; have already written?<br>
</div>Yes, that would be the basic idea:<br>
<br>
1. Compile the Haskell metaprogram.<br>
2. Evaluate main, possibly with a timeout, in a way that keeps all its<br>
structure including lambdas accessible (e.g. Core).<br>
3. Compile the resulting program with other tools.<br>
<div class="im"><br>
&gt; What is this different tool and how does it fit in to your pipeline?<br>
</div>This tool(set) is a specialised compiler for some low-level target<br>
platform (FPGA, DSP, GPU - again, no clear decision yet), and it is the<br>
second half of the pipeline after the GHC phases.<br>
<br>
Gergely<br>
<font color="#888888"><br>
--<br>
<a href="http://www.fastmail.fm" target="_blank">http://www.fastmail.fm</a> - The professional email service<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<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></div>