<div dir="ltr">Hi Simon and Max,<div><br></div><div style>I've been thinking about Strict Core quite a bit lately. I'd like to take a stab at implementing it in GHC, if feasible. My motivations for implementing Strict Core are</div>
<div style><ul style><li style>generating faster code in a more robust manner, and</li><li style>implementing strictness annotations at the type level in Haskell itself*.</li></ul><div style>Now, I don't know how much work this will be. What's you best time estimate (say, if you would do it vs if I would do it)?</div>
<div style><br></div><div style>My plan would roughly be as follows:</div><div style><ol style><li style>Create a branch to develop on.<br></li><li style>Temporarily delete all the non-essential Core2Core transformations. This will let us get to a place where we have a functional compiler using Strict Core more quickly.<br>
</li><li style>Change CoreSyn.Expr to be Strict Core.<br></li><li style>Plumb the changes through the compiler until it compiles (and passes the tests) again.<br></li><li style>Once all tests pass, re-add all the Core2Core passes and make them use Strict Core.<br>
</li><li style>Rebase the commits so they can be merged nicely into the main branch.</li></ol></div><div style>How does that sound?</div><div style><br></div><div style>* I think this could be one of the most important changes in a long time to help Haskell in the "real world". It gives us a better way to talk about strictness than we have today, reducing time spent on chasing down space leaks. One we have strictness annotations in type, we could experiment with a Strict language pragma to make a whole module call-by-value.</div>
<div style><br></div><div style>Cheers,</div><div style>Johan</div><div style><br></div></div></div>