Changes between Version 11 and Version 12 of Status/Apr10


Ignore:
Timestamp:
May 5, 2010 4:03:27 PM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/Apr10

    v11 v12  
    1616=== Language changes ===
    1717
    18 We have made a few small language improvements.
    19 
    20 Kathleen Fisher suggested two improvements to quasi-quotation:
     18We have made only a few small language improvements.
     19The most significant ones concern quasi-quotations, implementing
     20suggestions from Kathleen Fisher:
    2121 * Quasi-quotes can now appear as a top-level declaration, or in a type, as well
    2222   as in a pattern or expression.
     
    2727[pads| ...blah..blah... |]
    2828}}}
    29 The second delaration uses the quasi-quoter called `pads` (which must
     29The second declaration uses the quasi-quoter called `pads` (which must
    3030be in scope) to parse the "...blah..blah..", and return a list of
    3131Template Haskell declarations, which are then spliced into the program
     
    3838rewrite the constraint solver, which forms the heart of the type
    3939inference engine, and that remains the plan although he is being slow
    40 about it.  (The existing constraint solver works surprisingly
    41 well, but we have lots of tickets demonstrating bugs in corner cases.)
    42 An upcoming epic (60-page) JFP paper brings together all the key ideas;
    43 watch Simon's home page.
     40about it.  The existing constraint solver works surprisingly
     41well, but we have lots of tickets demonstrating bugs in corner cases.
     42An upcoming epic (70-page) JFP paper "Modular type inference with local assumptions"
     43brings together all the key ideas; watch Simon's home page.
    4444
    4545=== The mighty simplifier ===
    4646
    4747One of GHC's most crucial optimisers is the Simplifier, which is
    48 reponsible for many local transformations, plus applying inlining and
     48responsible for many local transformations, plus applying inlining and
    4949rewrite-rules.  Over time it had become apparent that the
    5050implementation of INLINE pragmas wasn't very robust: small changes in
     
    6969f2 x y = <blah>
    7070}}}
    71   Here `f1` will be inlined when it is applied to one arugment, but `f2` will only be inlined if it appears applied to two arguments.  This turns out to be helpful in reducing gratuitous code bloat.
     71  Here `f1` will be inlined when it is applied to one argument, but `f2` will only be inlined if it appears applied to two arguments.  This turns out to be helpful in reducing gratuitous code bloat.
    7272
    7373Another important related change is this. Consider
     
    7878    y = flop x
    7979}}}
    80 GHC will not fire rule "foo" because it is scared about duplicating the redec
     80GHC will not fire rule "foo" because it is scared about duplicating the redex
    8181`(flop x)`.  However, if you declare that `flop` is CONLIKE, thus
    8282{{{