Permalink
Switch branches/tags
Commits on Mar 12, 2016
  1. Dump miniSTG syntax

    Yuras committed Mar 12, 2016
    Add -ddump-ministg option that tries to dump STG using
    miniSTG-compatible syntax, https://github.com/bjpop/ministg
    
    It just crashes on constructs that are not supported by miniSTG.
Commits on Feb 27, 2016
  1. rts: drop unused global 'blackhole_queue'

    trofi committed Feb 27, 2016
    Commit 5d52d9b removed
    global 'blackhole_queue' in favour of new mechanism:
    when TSO hits blackhole TSO blocks waiting for
    'MessgaeBlackhole' delivery.
    
    Patch removed unused global and updates stale comments.
    Noticed by Yuras Shumovich.
    
    Signed-off-by: Sergei Trofimovich <siarheit@google.com>
    
    Test Plan: build test
    
    Reviewers: simonmar, austin, Yuras, bgamari
    
    Reviewed By: Yuras, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1953
Commits on Feb 26, 2016
  1. GHC.Generics: Ensure some, many for U1 don't bottom

    bgamari committed Feb 26, 2016
    Reviewers: austin, hvr, ekmett, RyanGlScott
    
    Reviewed By: RyanGlScott
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1952
    
    GHC Trac Issues: #11650
  2. Update transformer submodule to v0.5.2.0 release

    hvr committed Feb 17, 2016
    Most notably, this update pulls in documentation improvements
    and several INLINE pragmas for significant performance gains[1].
    
     [1]: https://groups.google.com/d/msg/haskell-cafe/SUKtkDI84EE/fXMBd-jNDQAJ
  3. Test Trac #11611

    simonpj committed Feb 26, 2016
  4. Filter out BuiltinRules in occurrence analysis

    simonpj committed Feb 26, 2016
    Fixes Trac #11651.  Merge to 8.0.
  5. Fix kind generalisation for pattern synonyms

    simonpj committed Feb 26, 2016
    We were failing to zonk, after quantifyTyVars, and that left
    un-zonked type variables in the final PatSyn.
    
    This fixes the patsyn/ problems in Trac #11648, but not
    the polykinds/ ones.
  6. Comments and white space only

    simonpj committed Feb 26, 2016
  7. Exclude TyVars from the constraint solver

    simonpj committed Feb 26, 2016
    There is a general invariant that the constraint solver doesn't see
    TyVars, only TcTyVars.  But when checking the generic-default
    signature of a class, we called checkValidType on the generic-default
    type, which had the class TyVar free. That in turn meant that it wasn't
    considered during flattening, which led to the error reported in
    Trac #11608.
    
    The fix is simple: call checkValidType on the /closed/ type. Easy.
    
    While I was at it, I added a bunch of ASSERTs about the TcTyVar
    invariant.
  8. Get the right in-scope set in specUnfolding

    simonpj committed Feb 25, 2016
    This fixes Trac #11600
  9. Special case for desugaring AbsBinds

    simonpj committed Feb 25, 2016
    When AbsBinds has no tyvars and no dicts, a rather simpler
    desugaring is possible.  This patch implements it.
    
    I don't think the optimised code changes, but there is
    less clutter generated.
  10. Fix and refactor strict pattern bindings

    simonpj committed Feb 25, 2016
    This patch was triggered by Trac #11601, where I discovered that
    -XStrict was really not doing the right thing. In particular,
    
      f y = let !(Just x) = blah[y] in body[y,x]
    
    This was evaluating 'blah' but not pattern matching it
    against Just until x was demanded.  This is wrong.
    
    The patch implements a new semantics which ensures that strict
    patterns (i.e. ones with an explicit bang, or with -XStrict)
    are evaluated fully when bound.
    
    * There are extensive notes in DsUtils:
      Note [mkSelectorBinds]
    
    * To do this I found I need one-tuples;
      see Note [One-tuples] in TysWiredIn
    
    I updated the user manual to give the new semantics
  11. Typos in comments, etc.

    ggreif committed Feb 26, 2016
  12. Unconditionally handle TH known key names.

    ezyang authored and bgamari committed Feb 25, 2016
    Previously, we didn't add Template Haskell key names to the list
    of known uniques when building a stage 1 compiler.  But with
    f16ddce we may refer to TH
    names even in stage 1, and this was causing uniques to not
    be setup properly.
    
    Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate and run stage1 test suite
    
    Reviewers: osa1, austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1520
    
    GHC Trac Issues: #10382
Commits on Feb 25, 2016
  1. Print which warning-flag controls an emitted warning

    barrucadu authored and hvr committed Feb 25, 2016
    Both gcc and clang tell which warning flag a reported warning can be
    controlled with, this patch makes ghc do the same. More generally, this
    allows for annotated compiler output, where an optional annotation is
    displayed in brackets after the severity.
    
    This also adds a new flag `-f(no-)show-warning-groups` to control
    whether to show which warning-group (such as `-Wall` or `-Wcompat`)
    a warning belongs to. This flag is on by default.
    
    This implements #10752
    
    Reviewed By: quchen, bgamari, hvr
    
    Differential Revision: https://phabricator.haskell.org/D1943
  2. Testsuite: do not write empty files on 'make accept'

    thomie committed Feb 23, 2016
    Also prevent showing '\ No newline at end of file' in diff output.
  3. Mark tests for #11643, #11644, #11645 and #9406 expect_broken

    thomie committed Feb 25, 2016
    For opt_ways or prof_ways only.
    
    indexed-types/should_compile/all.T called setTestOpts to not run
    the tests with opt_ways. Since I'm finding regressions for opt_ways, I
    removed it. This only makes a difference when running
    `./validate --slow` or `make slowtest`.
    
    Update submodule hpc.
  4. Testsuite: for tests that use TH, omit *all* prof_ways

    thomie committed Feb 22, 2016
    Instead of just profasm and profthreaded. And at least until
    -fexternal-interpreter is the default.
    
    Also:
      * WAY=profc doesn't exist anymore.
      * Omit all threaded_ways for conc039, not just a few.
  5. Testsuite: Introduce config.plugin_way_flags.

    thomie committed Feb 25, 2016
    Refactoring only.
  6. Improve pattern synonym error messages (add `PatSynOrigin`)

    rdragon authored and bgamari committed Feb 25, 2016
    Adds a new data constructor `PatSynOrigin Bool Name` to the `CtOrigin`
    data type. This allows for better error messages when the origin of a
    wanted constraint is a pattern synonym declaration.
    
    Fixes T10873.
    
    Reviewers: mpickering, simonpj, austin, thomie, bgamari
    
    Reviewed By: simonpj, thomie, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1866
    
    GHC Trac Issues: #10873
  7. Improve accuracy of suggestion to use TypeApplications

    mpickering authored and bgamari committed Feb 25, 2016
    The suggestion only makes sense when we try
    to use an as pattern in an expression context.
    
    It is misleading in the case of a lazy pattern and
    view pattern.
    
    Reviewers: austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1948
  8. Handle multiline named haddock comments properly

    thomie authored and bgamari committed Feb 25, 2016
    Fixes #10398 in a different way, thereby also fixing #11579.
    
    I inverted the logic of the Bool argument to "worker", to hopefully make
    it more self-explanatory.
    
    Reviewers: austin, hvr, bgamari
    
    Reviewed By: bgamari
    
    Differential Revision: https://phabricator.haskell.org/D1935
  9. (Alternative way to) address #8710

    gkaracha authored and bgamari committed Feb 25, 2016
    Issue a separate warning per redundant (or inaccessible) clause.
    This way each warning can have more precice location information
    (the location of the clause under consideration and not the whole
    match).
    
    I thought that this could be too much but actually the number of
    such warnings is bound by the number of cases matched against (in
    contrast to the non-exhaustive warnings which may be exponentially
    more).
    
    Test Plan: validate
    
    Reviewers: simonpj, austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1920
    
    GHC Trac Issues: #8710
  10. cmpTypeX: Avoid kind comparison when possible

    bgamari committed Feb 25, 2016
    This comparison is only necessary when the types being compared contain
    casts. Otherwise the structural equality of the types implies that their
    kinds are equal.
    
    Test Plan: Validate
    
    Reviewers: goldfire, austin, simonpj
    
    Reviewed By: simonpj
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1944
    
    GHC Trac Issues: #11597
  11. Bump haddock.base allocations

    bgamari committed Feb 25, 2016
    I believe this is probably due to the recent RuntimeRep change.
  12. Reconstruct record expression in bidir pattern synonym

    mpickering authored and bgamari committed Feb 25, 2016
    Reviewers: austin, rdragon, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: rdragon, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1949
  13. Make warning names more consistent

    mnvr authored and bgamari committed Feb 25, 2016
    - Replace "Sigs" with "Signatures" in WarningFlag data constructors.
    - Replace "PatSyn" with "PatternSynonym" in WarningFlag data
      constructors.
    - Deprecate "missing-local-sigs" in favor of "missing-local-signatures".
    - Deprecate "missing-exported-sigs" in favor of
      "missing-exported-signatures".
    - Deprecate "missing-pat-syn-signatures" in favor of
      "missing-pattern-synonym-signatures".
    - Replace "ddump-strsigs" with "ddump-str-signatures"
    
    These complete the tasks that were explicitly mentioned in #11583
    
    Test Plan:
    Executed `ghc --show-options` and verified that the flags were changed
    as expected.
    
    Reviewers: svenpanne, austin, bgamari
    
    Reviewed By: austin, bgamari
    
    Subscribers: mpickering, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1939
    
    GHC Trac Issues: #11583
  14. Add more type class instances for GHC.Generics

    RyanGlScott authored and bgamari committed Feb 25, 2016
    GHC.Generics provides several representation data types that have
    obvious instances of various type classes in base, along with various
    other types of meta-data (such as associativity and fixity).
    Specifically, instances have been added for the following type classes
    (where possible):
    
        - Applicative
        - Data
        - Functor
        - Monad
        - MonadFix
        - MonadPlus
        - MonadZip
        - Foldable
        - Traversable
        - Enum
        - Bounded
        - Ix
        - Generic1
    
    Thanks to ocharles for starting this!
    
    Test Plan: Validate
    
    Reviewers: ekmett, austin, hvr, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: RyanGlScott, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1937
    
    GHC Trac Issues: #9043
  15. HscMain: Delete some unused code

    osa1 authored and bgamari committed Feb 25, 2016
    Reviewers: bgamari, austin
    
    Reviewed By: austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1936
  16. ApplicativeDo: Handle terminal `pure` statements

    bgamari committed Feb 25, 2016
    ApplicativeDo handled terminal `return` statements properly, but not
    `pure`.
    
    Test Plan: Validate with included testcase
    
    Reviewers: austin, simonmar
    
    Reviewed By: austin, simonmar
    
    Subscribers: simonpj, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1931
    
    GHC Trac Issues: #11607
  17. base: A selection of fixes to the comments in GHC.Stats

    DaveCTurner authored and bgamari committed Feb 25, 2016
    Use `-- |` comments throughout.
    Note that numByteUsageSamples is also the number of major GCs
    Note that numGcs counts GCs for all generations
    Note that 'current' really means 'at the end of the last major GC'
    
    Reviewers: ezyang, hvr, simonmar, austin, bgamari
    
    Reviewed By: ezyang, simonmar, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1929
    
    GHC Trac Issues: #11603
  18. testsuite: mark tests broken on powerpc64

    trommler authored and bgamari committed Feb 25, 2016
    The following tests fail on powerpc64 and have a ticket.
    Mark those tests as expect_broken.
    
    Here are the details:
    The PowerPC native code generator does not support DWARF debug
    information. This is tracked in ticket #11261. Mark the respective
    tests broken on powerpc64.
    
    testsuite: mark print022 broken on powerpc64
    Ticket #11262 tracks difference in stdout for print022.
    
    testsuite: mark recomp015 broken on powerpc64
    testsuite: mark recomp011 broken on powerpc64
    This is tracked as ticket #11323 and #11260.
    
    testsuite: mark linker tests broken on powerpc64
    Ticket #11259 tracks tests failing because there is no RTS
    linker on powerpc64.
    
    Test Plan: validate
    
    Reviewers: erikd, austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1928
    
    GHC Trac Issues: #11259, #11260, #11261, #11262, #11323
  19. Overload the static form to reduce verbosity.

    facundominguez authored and bgamari committed Feb 25, 2016
    Static pointers are rarely used naked: most often they are defined at
    the base of a Closure, as defined in e.g. the distributed-closure and
    distributed-static packages. So a typical usage pattern is:
    
        distributeMap (closure (static (\x -> x * 2)))
    
    which is more verbose than it needs to be. Ideally we'd just have to
    write
    
        distributeMap (static (\x -> x * 2))
    
    and let the static pointer be lifted to a Closure implicitly. i.e.
    what we want is to overload static literals, just like we already
    overload list literals and string literals.
    
    This is achieved by introducing the IsStatic type class and changing
    the typing rule for static forms slightly:
    
        static (e :: t) :: IsStatic p => p t
    
    Test Plan: ./validate
    
    Reviewers: austin, hvr, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: simonpj, mboes, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1923
    
    GHC Trac Issues: #11585