<div dir="ltr">Many attempts were done in this area in the late 80s/early 90s (and before if you don't focus on lazy evaluation; search lisp machine).<div>Search hardware graph reduction.</div><div><br><div>The major problem has always been that producing a dedicated CPU is expensive and there's no way to keep up with the progresses in general purpose processor that can justify investments with a hugely larger user base.</div></div><div>At some point there were even attempts of placing computation in the memory itself (typically using very fine grain combinators,  SKI reduction and the such)</div><div>People have given up even on hardware support for small subproblems, such as garbage collection.</div><div><br></div><div>As for modifying the instruction set of an Intel processor, I don't know how feasible it is. But even if it is, consider that the entire architecture, pipelining, caching, predictions, speculative everythinbg etc. is hugely optimized for the typical workflow. You change that and all bets are off w.r.t performance and you may or not be ahead of the same CPU executing normal code out of a haskell compiler.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 19, 2016 at 5:12 PM, Henning Thielemann <span dir="ltr"><<a href="mailto:lemming@henning-thielemann.de" target="_blank">lemming@henning-thielemann.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi all,<br>
<br>
every now and then I think it would be cool to have a microprocessor that supports Haskell in a way. A processor where lazy evaluation is not overhead but an optimization opportunity, a processor that can make use of the explicit data dependencies in Haskell programs in order to utilize many computation units in parallel. I know of the Reduceron project, which evolves only slowly and if it somewhen is ready for use it is uncertain whether it can compete with stock CPUs since FPGA's need much more chip space for the same logic.<br>
<br>
I got to know that in todays x86 processors you can alter the instruction set, which is mainly used for bugfixes. Wouldn't it be interesting to add some instructions for Haskell support? However, I suspect that such a patch might be rendered invalid by new processor generations with changed internal details. Fortunately, there are processors that are designed for custom instruction set extensions:<br>
   <a href="https://en.wikipedia.org/wiki/Xtensa" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Xtensa</a><br>
<br>
Would it be sensible to create a processor based on such a design? I have no idea what it might cost, and you would still need some peripheral circuitry to run it. What could processor instructions for Haskell support look like? Has anyone already thought in this direction?<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div>