Changes between Version 19 and Version 20 of Supercompilation


Ignore:
Timestamp:
Jul 17, 2009 8:09:21 AM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Supercompilation

    v19 v20  
    1 == Notes on the implementation of Supercompilation in GHC == 
     1= Notes on the implementation of Supercompilation in GHC = 
    22 
    33This page is very much a draft and may be incorrect in places. Please fix problems that you spot. 
     4 
     5== Diffferences from Supero == 
    46 
    57An 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).  
     
    1820What 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. 
    1921 
    20 Progress report at the end of June: 
     22== Progress report at the end of June == 
    2123 
    2224A 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. 
     
    3032 * Implement Simon's algorithm. 
    3133 
    32 Open questions: 
     34== Open questions == 
    3335 
    3436 * Should R contexts include let-statements? Need to worry about name capture even more then.