[commit: ghc] master: Improve CPR behavior for strict constructors (0696fc6)

git at git.haskell.org git at git.haskell.org
Fri Jun 26 16:53:16 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/0696fc6d4de28cb589f6c751b8491911a5baf774/ghc

>---------------------------------------------------------------

commit 0696fc6d4de28cb589f6c751b8491911a5baf774
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Jun 26 11:40:01 2015 +0100

    Improve CPR behavior for strict constructors
    
    When working on Trac #10482 I noticed that we could give constructor
    arguments the CPR property if they are use strictly.
    
    This is documented carefully in
        Note [CPR in a product case alternative]
    and also
        Note [Initial CPR for strict binders]
    
    There are a bunch of intersting examples in
        Note [CPR examples]
    which I have added to the test suite as T10482a.
    
    I also added a test for #10482 itself.


>---------------------------------------------------------------

0696fc6d4de28cb589f6c751b8491911a5baf774
 compiler/stranal/DmdAnal.hs                        | 284 +++++++++++++++------
 testsuite/tests/stranal/T10482a.hs                 |  61 +++++
 testsuite/tests/stranal/should_compile/Makefile    |  12 +
 testsuite/tests/stranal/should_compile/T10482.hs   |  14 +
 .../tests/stranal/should_compile/T10482.stdout     |   1 +
 testsuite/tests/stranal/should_compile/T10482a.hs  |  63 +++++
 .../tests/stranal/should_compile/T10482a.stdout    |   4 +
 testsuite/tests/stranal/should_compile/all.T       |   6 +
 8 files changed, 369 insertions(+), 76 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 0696fc6d4de28cb589f6c751b8491911a5baf774


More information about the ghc-commits mailing list