Skip to content
Commits on Jun 25, 2016
  1. @angerman @Mistuke

    Allow building static libs.

    Summary:
    Commit 90538d8, seems to have broken static linking.
    The introduction of `argFixup` in `runLink` rearranges libs, and considers
    anything with an `-l` prefix or `.a` suffix a lib, which fails for libs that are
    just being linked together (e.g. `-o lib.a`).
    
    The proposed solution explicitly checks for the existance of the `-o` flag.
    
    Reviewers: rwbarton, erikd, Phyx, bgamari, austin
    
    Reviewed By: Phyx
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2362
    angerman committed with Mistuke Jun 25, 2016
  2. @goldfirere

    Refactor tcInferArgs and add comments.

    This removes an unnecessary loop looking for invisible binders
    and tries to clarify what the very closely-related functions
    tcInferArgs, tc_infer_args, tcInferApps all do.
    goldfirere committed Jun 24, 2016
  3. @goldfirere

    s/Invisible/Inferred/g s/Visible/Required/g

    This renames VisibilityFlag from
    
    > data VisibilityFlag = Visible | Specified | Invisible
    
    to
    
    > data ArgFlag = Required | Specified | Inferred
    
    The old name was quite confusing, because both Specified
    and Invisible were invisible! The new names are hopefully clearer.
    goldfirere committed Jun 23, 2016
Commits on Jun 24, 2016
  1. @RyanGlScott
  2. @RyanGlScott

    Clean up outdated comments in template-haskell changelog

    * Replaced 2.11's *TBA* with *May 2016*
    * Removed an outdated TODO comment
    * Removed lines which incorrectly stated that some strictness-related
      functions had been removed (they have been deprecated instead)
    RyanGlScott committed Jun 24, 2016
  3. @RyanGlScott
  4. @simonpj

    Test Trac #12229

    simonpj committed Jun 24, 2016
  5. @simonmar

    Fix T8761 (#12219, #12077)

    simonmar committed Jun 23, 2016
  6. @simonmar

    Remote GHCi: comments only

    Summary: Add more Notes and signposts across the codebase to help navigation.
    
    Test Plan: validate
    
    Reviewers: goldfire, simonpj, austin, ezyang, hvr, bgamari, erikd
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2358
    simonmar committed Jun 23, 2016
  7. @simonmar

    Remote GHCi: separate out message types

    Summary:
    From a suggestion by @goldfire: clean up the message types, so that
    rather than one Message type with all the messages, we have a separate
    THMessage type for messages sent back to GHC during TH execution.  At
    the same time I also removed the QDone/QFailed/QException messages
    into their own type, and made the result type of RunTH more accurate.
    
    Test Plan: validate
    
    Reviewers: goldfire, ezyang, austin, niteria, bgamari, erikd
    
    Subscribers: thomie, goldfire
    
    Differential Revision: https://phabricator.haskell.org/D2356
    simonmar committed Jun 22, 2016
  8. @simonmar
  9. @simonmar

    Implement ReifyConStrictness for -fexternal-interpreter (#12219)

    Fixes
       T10697_decided_1.run  T10697_decided_1 [exit code non-0] (ext-interp)
       T10697_decided_2.run  T10697_decided_2 [exit code non-0] (ext-interp)
       T10697_decided_3.run  T10697_decided_3 [exit code non-0] (ext-interp)
    simonmar committed Jun 22, 2016
  10. @simonpj

    Improve pretty-printing of Avail

    simonpj committed Jun 24, 2016
  11. @simonpj

    Remove bogus comment on ForAllTy

    simonpj committed Jun 24, 2016
  12. @simonpj

    Fix renamer panic

    This patch fixes Trac #12216 and #12127.  The 'combine' function
    in 'imp_occ_env' in RnNames.filterImports checked for an empty
    field-selector list, which was (a) unnecessary and (b) wrong.
    
    I've elaborated the comments.
    
    This does NOT fix #11959 which is related but not the same
    (it concerns bundling of pattern synonyms).
    simonpj committed Jun 24, 2016
  13. @simonpj

    Comments around invisibility

    Very minor
    simonpj committed Jun 23, 2016
  14. @simonpj

    Improve typechecking of instance defaults

    In an instance declaration when you don't specify the code for a
    method, GHC fills in from the default binding in the class.
    The type of the default method can legitmiately be ambiguous ---
    see Note [Default methods in instances] in TcInstDcls --- so
    typechecking it can be tricky.
    
    Trac #12220 showed that although we were dealing with that ambiguity
    for /vanilla/ default methods, we were not doing so for /generic/
    default methods.  Moreover we were dealing with it clumsily, by
    generating post-typechecked code.
    
    This patch fixes the bug AND deletes code!  We now use the same code
    path for both vanilla and generic default methods; and generate
    /pre-typechecked/ code in both cases.  The key trick is that we can use
    Visible Type Application to deal with the ambiguity, which wasn't
    possible before.  Hooray.
    
    There is a small hit to performance in compiler/perf/T1969 which
    consists of nothing BUT instance declarations with several default
    methods to fill, which we now have to typecheck. The actual hit is
    from 724 -> 756 or 4% in that extreme example.  Real world programs
    have vastly fewer instance decls.
    simonpj committed Jun 23, 2016
  15. @thomie
Commits on Jun 23, 2016
  1. @goldfirere
  2. @goldfirere

    Fix #10963 and #11975 by adding new cmds to GHCi.

    See the user's guide entry or the Note [TcRnExprMode] in TcRnDriver.
    
    Test cases: ghci/scripts/T{10963,11975}
    goldfirere committed Apr 22, 2016
  3. @goldfirere

    Fix #11974 by adding a more smarts to TcDefaults.

    Test cases:
      typecheck/should_compile/T11974
      typecheck/should_fail/T11974b
    goldfirere committed Apr 22, 2016
  4. @goldfirere
  5. @niteria

    Remove Ord TyCon

    After 35d1564: Provide Uniquable version of SCC we
    can remove this. We want to remove it because when used
    it can introduce unnecessary nondeterminism.
    
    GHC Trac: #4012
    niteria committed Jun 23, 2016
  6. @niteria

    Provide Uniquable version of SCC

    We want to remove the `Ord Unique` instance because there's
    no way to implement it in deterministic way and it's too
    easy to use by accident.
    
    We sometimes compute SCC for datatypes whose Ord instance
    is implemented in terms of Unique. The Ord constraint on
    SCC is just an artifact of some internal data structures.
    We can have an alternative implementation with a data
    structure that uses Uniquable instead.
    
    This does exactly that and I'm pleased that I didn't have
    to introduce any duplication to do that.
    
    Test Plan:
    ./validate
    I looked at performance tests and it's a tiny bit better.
    
    Reviewers: bgamari, simonmar, ezyang, austin, goldfire
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2359
    
    GHC Trac Issues: #4012
    niteria committed Jun 14, 2016
  7. @facundominguez

    Have Core linter accept programs using StaticPointers and -fhpc.

    Summary:
    This patch uses collectArgsTicks instead of collectArgs to test that
    StaticPtr only occurs at the top of RHSs of top-level expressions.
    
    Ticks introduced by -fhpc would interfere otherwise.
    
    Test Plan: ./validate
    
    Reviewers: thomie, austin, goldfire, bgamari, simonpj
    
    Reviewed By: simonpj
    
    Differential Revision: https://phabricator.haskell.org/D2355
    
    GHC Trac Issues: #12207
    facundominguez committed Jun 22, 2016
  8. @simonpj

    Narrow the use of record wildcards slightly

    In reviewing the fix to Trac #12130 I found the wild-card
    fill-in code for ".." notation in record constructions hard
    to understand.  It went to great contortions (including the
    find_tycon code) to allow
        data T = C { x, y :: Int }
        f x = C { .. }
    to expand to
        f x = C { x = x, y = y }
    where 'y' is an /imported function/!  That seems way over the top
    for what record wildcards are supposed to do.
    
    So I have narrowed the record-wildcard expansion to include only
    /locally-bound/ variables; i.e. not top level, and certainly not
    imported.
    
    I don't think anyone is using record wildcards in this bizarre way, so
    I don't expect any fallout. Even if there is, you can easily
    initialise fields with eponymous but imported values by hand.
    
    An intermediate position would be to allow /local/ top-level
    definitions.  But I doubt anyone is doing that either.
    
    Let's see if there's any fallout.  It's a local change, easy to
    revert, so I've just gone ahead to save everyone's time.
    simonpj committed Jun 23, 2016
  9. @simonpj

    Narrow the warning for simplifiable constraints

    In Trac #11948 I added the warning
        -Wsimplifiable-class-constraints
    which warns if the class constraints in a type signature are
    simplifiable.
    
    But in fact the fragility it warns about only happens with
    NoMonoLocalBinds, so this patch switches off the warning if
    you have MonoLocalBinds (and suggests using it in the error
    message).
    
    See Note [Simplifiable given constraints] in TcValidity.
    simonpj committed Jun 23, 2016
  10. @simonpj

    Remove unused import

    simonpj committed Jun 23, 2016
  11. @simonpj

    Give lookupGRE_Name a better API

    lookupGRE_Name should return either zero or one GREs, never
    several. This is a consequence of INVARIANT 1 on GlobalRdrEnv.
    
    So it's better if it returns a Maybe; the panic on multiple results
    is put in one place, instead of being scattered or ignored.
    
    Just refactoring, no change in behaviour
    simonpj committed Jun 23, 2016
Commits on Jun 22, 2016
  1. @simonpj

    Test Trac #12163

    simonpj committed Jun 22, 2016
  2. @simonpj

    Expand given superclasses more eagerly

    This patch fixes Trac #12175, another delicate corner case of
    Note [Instance and Given overlap] in TcInteract.
    
    In #12175 we were not expanding given superclasses eagerly
    enough. It was easy to fix, and is actually rather neater than
    before.
    
    See Note [Eagerly expand given superclasses] in TcCanonical.
    The main change is to move the eager expansion of given superclasses
    to canClassNC.
    simonpj committed Jun 22, 2016
  3. @simonpj

    Remove unused arg to tcSuperClasses

    We don't need the FamInstEnvs argument any more.
    Just a tiny refactor.
    simonpj committed Jun 22, 2016
  4. @simonpj

    Improve error message in deriving( Functor )

    Fixes Trac #12163.  Pretty simple.
    simonpj committed Jun 22, 2016
  5. @simonpj

    Comments only

    simonpj committed Jun 22, 2016
  6. @simonmar
Something went wrong with that request. Please try again.