<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: GHC back end?</title>
	<atom:link href="http://www.e-pig.org/epilogue/?feed=rss2&#038;p=104" rel="self" type="application/rss+xml" />
	<link>http://www.e-pig.org/epilogue/?p=104</link>
	<description>for Epigram</description>
	<lastBuildDate>Sun,  6 Nov 2011 09:25:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Edwin Brady</title>
		<link>http://www.e-pig.org/epilogue/?p=104&#038;cpage=1#comment-4393</link>
		<dc:creator>Edwin Brady</dc:creator>
		<pubDate>Mon, 13 Feb 2006 13:42:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=104#comment-4393</guid>
		<description>I wondered if you&#039;d say that :). I think it ought to be possible to get partial evaluation behaviour this way, with a suitably cunning representation of datatypes and compiled implementation of the elimination rules. For the moment, I was just interested in seeing if it might work at all.

So the compiled code for partial evaluation will need to be slightly different --- but of course we knew that already. I&#039;ll see what I can cook up...</description>
		<content:encoded><![CDATA[<p>I wondered if you&#8217;d say that :). I think it ought to be possible to get partial evaluation behaviour this way, with a suitably cunning representation of datatypes and compiled implementation of the elimination rules. For the moment, I was just interested in seeing if it might work at all.</p>
<p>So the compiled code for partial evaluation will need to be slightly different &#8212; but of course we knew that already. I&#8217;ll see what I can cook up&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Conor</title>
		<link>http://www.e-pig.org/epilogue/?p=104&#038;cpage=1#comment-4366</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Sat, 11 Feb 2006 11:17:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=104#comment-4366</guid>
		<description>Usual remark: I&#039;d like to generate direct Haskell code implementing the partial evaluation behaviour too, then link compiled code back into the typechecker. I think it&#039;s a very good time to be doing cheap lightweight experiments in compiling Epigram. I&#039;m very interested to see whether more guarantees about totality, and perhaps more crucially, the separation of data from codata have any impact on the usual strict/lazy trade-offs. I also fancy fooling about with a variety of optimizations, given more explicit information about the recursive structure of programs and a fully-fledged partial evaluator. PS Out of purdah on the OTT paper; let&#039;s see what next week brings forth...</description>
		<content:encoded><![CDATA[<p>Usual remark: I&#8217;d like to generate direct Haskell code implementing the partial evaluation behaviour too, then link compiled code back into the typechecker. I think it&#8217;s a very good time to be doing cheap lightweight experiments in compiling Epigram. I&#8217;m very interested to see whether more guarantees about totality, and perhaps more crucially, the separation of data from codata have any impact on the usual strict/lazy trade-offs. I also fancy fooling about with a variety of optimizations, given more explicit information about the recursive structure of programs and a fully-fledged partial evaluator. PS Out of purdah on the OTT paper; let&#8217;s see what next week brings forth&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edwin Brady</title>
		<link>http://www.e-pig.org/epilogue/?p=104&#038;cpage=1#comment-4350</link>
		<dc:creator>Edwin Brady</dc:creator>
		<pubDate>Fri, 10 Feb 2006 15:05:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=104#comment-4350</guid>
		<description>I don&#039;t see any reason why OCaml shouldn&#039;t work just as well, given Obj.magic - my main reason for trying GHC instead is simply that I&#039;m more familiar with it and so I&#039;d rather have a Haskell interface to epigram code.

We could go to C directly (and indeed I did implement this too, a while ago (and I think it still works)) but I expect that going via the back end of an already mature, efficient functional language compiler (whether that be a haskell or ocaml) is better than what I can knock up in my spare time!</description>
		<content:encoded><![CDATA[<p>I don&#8217;t see any reason why OCaml shouldn&#8217;t work just as well, given Obj.magic &#8211; my main reason for trying GHC instead is simply that I&#8217;m more familiar with it and so I&#8217;d rather have a Haskell interface to epigram code.</p>
<p>We could go to C directly (and indeed I did implement this too, a while ago (and I think it still works)) but I expect that going via the back end of an already mature, efficient functional language compiler (whether that be a haskell or ocaml) is better than what I can knock up in my spare time!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carl Witty</title>
		<link>http://www.e-pig.org/epilogue/?p=104&#038;cpage=1#comment-4343</link>
		<dc:creator>Carl Witty</dc:creator>
		<pubDate>Fri, 10 Feb 2006 08:59:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=104#comment-4343</guid>
		<description>Total off-the-wall comment...

Have you considered generating OCaml code instead?  I get the impression that Obj.magic (the OCaml equivalent of unsafeCoerce#) works fairly reliably for these sorts of tricks (for instance, see http://www.iist.unu.edu/~alumni/software/other/inria/www/caml/caml-list/0937.html).

I&#039;m sure GHC has a much better implementation of laziness than OCaml, but optimized OCaml might still be comparable to unoptimized GHC.</description>
		<content:encoded><![CDATA[<p>Total off-the-wall comment&#8230;</p>
<p>Have you considered generating OCaml code instead?  I get the impression that Obj.magic (the OCaml equivalent of unsafeCoerce#) works fairly reliably for these sorts of tricks (for instance, see <a href="http://www.iist.unu.edu/~alumni/software/other/inria/www/caml/caml-list/0937.html)" rel="nofollow">http://www.iist.unu.edu/~alumni/software/other/inria/www/caml/caml-list/0937.html)</a>.</p>
<p>I&#8217;m sure GHC has a much better implementation of laziness than OCaml, but optimized OCaml might still be comparable to unoptimized GHC.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://www.e-pig.org/epilogue/?p=104&#038;cpage=1#comment-4331</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Thu, 09 Feb 2006 15:32:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=104#comment-4331</guid>
		<description>GHC still generates C which is passed to GCC, right? So you&#039;re suggesting epigram -&gt; haskell -&gt; c -&gt; ELF ; missing out the intermediate compiler representations. I wonder how feasible it would be to implement a &quot;user oriented&quot; language at the top of a gigantic stack of intermediate languages, adding one feature per IL (how much waste would there be in having so many compilers in the middle?)</description>
		<content:encoded><![CDATA[<p>GHC still generates C which is passed to GCC, right? So you&#8217;re suggesting epigram -&gt; haskell -&gt; c -&gt; ELF ; missing out the intermediate compiler representations. I wonder how feasible it would be to implement a &#8220;user oriented&#8221; language at the top of a gigantic stack of intermediate languages, adding one feature per IL (how much waste would there be in having so many compilers in the middle?)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
