[commit: ghc] master: Implement the Strict language extension (46a03fb)

git at git.haskell.org git at git.haskell.org
Sat Nov 14 21:37:18 UTC 2015


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/46a03fbec6a02761db079d1746532565f34c340f/ghc

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

commit 46a03fbec6a02761db079d1746532565f34c340f
Author: Adam Sandberg Eriksson <adam at sandbergericsson.se>
Date:   Sat Nov 14 22:06:16 2015 +0100

    Implement the Strict language extension
    
    Add a new language extension `-XStrict` which turns all bindings strict
    as if the programmer had written a `!` before it. This also upgrades
    ordinary Haskell to allow recursive and polymorphic strict bindings.
    
    See the wiki[1] and the Note [Desugar Strict binds] in DsBinds for
    specification and implementation details.
    
    [1] https://ghc.haskell.org/trac/ghc/wiki/StrictPragma
    
    Reviewers: austin, tibbe, simonpj, bgamari
    
    Reviewed By: tibbe, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1142
    
    GHC Trac Issues: #8347


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

46a03fbec6a02761db079d1746532565f34c340f
 compiler/deSugar/DsBinds.hs                        | 244 ++++++++++++----
 compiler/deSugar/DsExpr.hs                         |  45 +--
 compiler/deSugar/DsUtils.hs                        |  86 ++++--
 compiler/deSugar/Match.hs                          |   9 +-
 compiler/hsSyn/HsPat.hs                            |  29 +-
 compiler/main/DynFlags.hs                          |   2 +
 compiler/typecheck/TcBinds.hs                      |  10 +-
 docs/users_guide/glasgow_exts.rst                  | 309 +++++++++++++++++++--
 .../tests/deSugar/should_compile/DsStrictWarn.hs   |   7 +
 .../deSugar/should_compile/DsStrictWarn.stderr     |   4 +
 testsuite/tests/deSugar/should_compile/T5455.hs    |   0
 testsuite/tests/deSugar/should_compile/all.T       |   1 +
 .../tests/deSugar/should_fail/DsStrictFail.hs      |   5 +
 .../tests/deSugar/should_fail/DsStrictFail.stderr  |   2 +
 .../should_fail}/Makefile                          |   0
 testsuite/tests/deSugar/should_fail/all.T          |   6 +
 testsuite/tests/deSugar/should_run/DsStrict.hs     |  37 +++
 testsuite/tests/deSugar/should_run/DsStrict.stderr |   4 +
 testsuite/tests/deSugar/should_run/DsStrict.stdout |   8 +
 testsuite/tests/deSugar/should_run/DsStrictLet.hs  |  16 ++
 .../tests/deSugar/should_run/DsStrictLet.stderr    |   3 +
 testsuite/tests/deSugar/should_run/all.T           |   2 +
 testsuite/tests/driver/T4437.hs                    |   3 +-
 testsuite/tests/ghci/scripts/T9140.script          |   6 +-
 testsuite/tests/ghci/scripts/T9140.stdout          |  10 +-
 testsuite/tests/typecheck/should_fail/T6078.stderr |   4 +-
 26 files changed, 714 insertions(+), 138 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 46a03fbec6a02761db079d1746532565f34c340f


More information about the ghc-commits mailing list