Changes between Version 65 and Version 66 of DataParallel/ClosureConversion/ClassLess


Ignore:
Timestamp:
May 7, 2007 11:07:47 AM (8 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/ClosureConversion/ClassLess

    v65 v66  
    2424The meta-function "`^`", written postfix, converts from normal code to closure-converted code.
    2525
    26  * For each function `f::ty`, create a closure-converted function `f_cc::ty^`, where `ty^` is the closure-converted version of `ty`. 
     26 * For each function definition
     27{{{
     28f::ty = e}}}
     29create a closure-converted function definition
     30{{{
     31f_cc::ty^ = e^
     32
     33f::ty = fr iso<ty> f_cc
     34}}}
     35where `ty^` is the closure-converted version of `ty`, and `e^` is the closure-converted version of `e`. 
    2736
    2837 * For each data type `T`, create a closure-converted data type `T_CC`, whose constructors use `(:->)` instead of `(->)`.
    2938
    3039 * The value `iso<ty>` is a pair of functions, converting to and fro between `ty` and `ty^`.
     40Like "`^`", the `iso<ty>` thing should be considered as a meta-function that works recursively on `ty`.
    3141
    3242Invariants:
     
    3747  fr iso<ty> :: ty^ -> ty
    3848}}}
    39 
     49Provided these invariants are maintained, the transformed program will be type-correct.
    4050
    4151=== Conversion status ===