[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