Changes between Version 19 and Version 20 of Supercompilation
- Jul 17, 2009 8:09:21 AM (7 years ago)
v19 v20 1 = = Notes on the implementation of Supercompilation in GHC == 1 == 2 2 3 3 This page is very much a draft and may be incorrect in places. Please fix problems that you spot. 4 5 4 6 5 7 An attempted list at differences between [http://community.haskell.org/~ndm/supero Supero] and [http://www.csee.ltu.se/~pj/papers/scp/popl09-scp.pdf positive supercompilation for call-by-value] (abbreviated to pscp below). … … 18 20 What is not mentioned in either of our works though is that it is a typed intermediate representation in GHC. System Fc has the casts that might get in the way of transformations (so effectively they are some kind of annoying expressions). Rank-n polymorphism is another potential problem, but I am not sure if that will be a problem with System Fc. These are not fundamental problems that will take two months to solve, but I think that implementing a supercompiler for System Fc is more than just two days of intense hacking, even for someone already familiar with GHC internals. 19 21 20 Progress report at the end of June: 22 == Progress report at the end of June == 21 23 22 24 A substitution based implementation exists, that transforms append, reverse with accumulating parameters, basic arithmetics and similar things. There are still bugs in the implementation, mainly name capture. It takes 8 seconds to transform the double append example, but there's still plenty of room for improvement with respect to performance. … … 30 32 * Implement Simon's algorithm. 31 33 32 Open questions: 34 == Open questions == 33 35 34 36 * Should R contexts include let-statements? Need to worry about name capture even more then.