[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