Changes between Version 6 and Version 7 of DataParallel/ClosureConversion/ClassLess

Apr 23, 2007 4:34:54 AM (11 years ago)



  • DataParallel/ClosureConversion/ClassLess

    v6 v7  
    4949 * We come across a value variable `v` where `idCC v == Nothing` whose type is `t`: we generate `convert t v` (see below).
    5050 * We come across a case expression where the scrutinised type `T` has `tyConCC T == Nothing`: we leave the case expression as is (i.e., unconverted), but make sure that the `idCC` field of all variables bound by patterns in the alternatives have their `idCC` field as `Nothing`.  (This implies that the previous case will kick in and convert the (unconverted) values obtained after decomposition.)
     51 * Whenever we have an FC `cast` from or to a newtype `T`, where `tyConCC T == Nothing`, we need to add a `convert tau` or `trevnoc tau`, respectively.  We can spot these casts by inspecting the kind of every coercion used in a cast.  One side of the equality will have the newtype constructor.
    5152 * We come across a dfun: If its `idCC` field is `Nothing`, we keep the selection as is, but apply `convert t e` from it it, where `t` is the type of the selected method and `e` the selection expression.  If `idCC` is `Just d_CC`, and the dfun's class is converted, `d_CC` is fully converted.  If it's class is not converted, we also keep the selection unconverted, but have a bit less to do in `convert t e`.  '''TODO:''' This needs to be fully worked out.