Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on May 20, 2015
  1. @simonpj

    Fix binary instance for IfaceLitTy

    simonpj authored
    Thanks to Christiaan Baaj for spotting this.
Commits on May 19, 2015
  1. @ezyang

    Backpack docs: Clarifications from today's Skype call.

    ezyang authored
    Signed-off-by: Edward Z. Yang <>
  2. @rwbarton
  3. @thoughtpolice

    Revert "compiler: make sure we reject -O + HscInterpreted" (again)

    thoughtpolice authored
    Apparently my machine likes this commit, but Harbormaster does not?
    This reverts commit b199536.
  4. @simonpj

    Test Trac #8799, #8555

    simonpj authored
  5. @thoughtpolice

    Add a TODO FIXME w.r.t. D894

    thoughtpolice authored
    As Reid mentioned in a comment on D894, the case fixed by this revision
    likely isn't really correct, because old ARM binaries could run on newer
    machines, meaning we need to detect at runtime whether we need a proper
    But in the mean time, this actually stops the build from failing - which
    is better off. So we'll just remember this when we fix it in the future.
    Signed-off-by: Austin Seipp <>
  6. @thoughtpolice

    Revert "In ghci linker, link against all previous temp sos (#10322)"

    thoughtpolice authored
    This reverts commit b0b11ad.
    It apparently made Harbormaster sad.
  7. @thoughtpolice

    compiler: make sure we reject -O + HscInterpreted

    thoughtpolice authored
    When using GHCi, we explicitly reject optimization, because the
    compilers optimization passes can introduce unboxed tuples, which the
    interpreter is not able to handle. But this goes the other way too: using
    GHCi on optimized code may cause the optimizer to float out breakpoints
    that the interpreter introduces. This manifests itself in weird ways,
    particularly if you as an API client use custom DynFlags to introduce
    optimization in combination with HscInterpreted.
    It turns out we weren't checking for consistent DynFlag settings when
    doing `setSessionDynFlags`, as #10052 showed. While the main driver
    handled it in `DynFlags` via `parseDynamicFlags`, we didn't check this
    This does a little refactoring to split out some of the common code, and
    immunizes the various `DynFlags` utilities in the `GHC` module from this
    particular bug. We should probably be checking other general invariants
    This fixes #10052, and adds some notes about the behavior in `GHC` and
    As a bonus, expose `warningMsg` from `ErrUtils` as a helper since it
    didn't exist (somehow).
    Signed-off-by: Austin Seipp <>
    Reviewed By: edsko
    Differential Revision:
    GHC Trac Issues: #10052
  8. @rwbarton @thoughtpolice

    In ghci linker, link against all previous temp sos (#10322)

    rwbarton authored thoughtpolice committed
    The OS X dlopen() appears to only resolve undefined symbols in
    the direct dependencies of the shared library it is loading.
    Reviewed By: trommler, austin
    Differential Revision:
    GHC Trac Issues: #10322
  9. @bgamari @thoughtpolice

    ghci: Allow :back and :forward to take counts

    bgamari authored thoughtpolice committed
    These behave like the count arguments of the gdb `up` and `down`
    commands, allowing the user to quickly jump around in history.
    Reviewed By: austin
    Differential Revision:
  10. @thoughtpolice

    Remove unneeded compatibility with LLVM < 3.6

    authored thoughtpolice committed
    Since GHC requires at least LLVM 3.6, some of the special cases (for,
    e.g., LLVM 2.8 or 2.9) in the LLVM CodeGen can be simply removed.
    Reviewed By: rwbarton, austin
    Differential Revision:
    GHC Trac Issues: #10074
  11. @Et999 @thoughtpolice

    user guide: correct documentation for -Wall (fixes #10386)

    Et999 authored thoughtpolice committed
    This fixes the documentation for -Wall.
    As was done previously it leaves out deprecated flags and also
    fwarn-safe and fwarn-unsafe. I don't know
    if that was intended or not. -fwarn-safe and fwarn-unsafe are
    not mentioned on the warnings page at all instead they are
    mentioned in the safe haskell section.
    Reviewed By: austin
    Differential Revision:
    GHC Trac Issues: #10386
  12. @trommler @thoughtpolice

    Add regression test for #10110.

    trommler authored thoughtpolice committed
    Module C imports a from Module A and b from module B. B does not
    import anything from A. So if ld is configured to drop DT_NEEDED
    tags for libraries it does not depend on no DT_NEEDED tag for the
    temporary shared object containing module A is recorded in the temp
    SO containing module B. This leads to an undefined symbol when
    linking the temp SO for module C.
    Fixes #10110.
    Reviewed By: austin
    Differential Revision:
    GHC Trac Issues: #10110
Commits on May 18, 2015
  1. @trofi

    includes/stg/SMP.h: implement simple load_/store_load_barrier on armv…

    trofi authored
    …6 and older
    Assuming there is no real SMP systems on these CPUs
    I've added only compiler barrier (otherwise write_barrier
    and friends need to be fixed as well).
    Patch also fixes build breakage reported in #10244.
    Signed-off-by: Sergei Trofimovich <>
    Reviewers: rwbarton, nomeata, austin
    Reviewed By: nomeata, austin
    Subscribers: bgamari, thomie
    Differential Revision:
    GHC Trac Issues: #10244
  2. @simonpj

    Make the "matchable-given" check happen first

    simonpj authored
    This change makes the matchable-given check apply uniformly to
         - constraint tuples
         - natural numbers
         - Typeable
    as well as to vanilla class constraints.
    See Note [Instance and Given overlap] in TcInteract
  3. @simonpj

    Refactor tuple constraints

    simonpj authored
    Make tuple constraints be handled by a perfectly ordinary
    type class, with the component constraints being the
        class (c1, c2) => (c2, c2)
    This change was provoked by
      #10359  inability to re-use a given tuple
              constraint as a whole
      #9858   confusion between term tuples
              and constraint tuples
    but it's generally a very nice simplification. We get rid of
     -  In Type, the TuplePred constructor of PredTree,
        and all the code that dealt with TuplePreds
     -  In TcEvidence, the constructors EvTupleMk, EvTupleSel
    See Note [How tuples work] in TysWiredIn.
    Of course, nothing is ever entirely simple. This one
    proved quite fiddly.
    - I did quite a bit of renaming, which makes this patch
      touch a lot of modules. In partiuclar tupleCon -> tupleDataCon.
    - I made constraint tuples known-key rather than wired-in.
      This is different to boxed/unboxed tuples, but it proved
      awkward to have all the superclass selectors wired-in.
      Easier just to use the standard mechanims.
    - While I was fiddling with known-key names, I split the TH Name
      definitions out of DsMeta into a new module THNames.  That meant
      that the known-key names can all be gathered in PrelInfo, without
      causing module loops.
    - I found that the parser was parsing an import item like
          T( .. )
      as a *data constructor* T, and then using setRdrNameSpace to
      fix it.  Stupid!  So I changed the parser to parse a *type
      constructor* T, which means less use of setRdrNameSpace.
      I also improved setRdrNameSpace to behave better on Exact Names.
      Largely on priciple; I don't think it matters a lot.
    - When compiling a data type declaration for a wired-in thing like
      tuples (,), or lists, we don't really need to look at the
      declaration.  We have the wired-in thing!  And not doing so avoids
      having to line up the uniques for data constructor workers etc.
      See Note [Declarations for wired-in things]
    - I found that FunDeps.oclose wasn't taking superclasses into
      account; easily fixed.
    - Some error message refactoring for invalid constraints in TcValidity
    - Haddock needs to absorb the change too; so there is a submodule update
  4. @simonpj

    Delete commented-out line

    simonpj authored
  5. @simonpj

    Test Trac #10248

    simonpj authored
  6. @simonpj

    Test Trac #10403

    simonpj authored
  7. @simonpj

    Test Trac #10359

    simonpj authored
  8. @nomeata

    CmmCommonBlockElim: Improve hash function

    nomeata authored
    Previously, the hash function used to cut down the number of block
    comparisons did not take local registers into account, causing far too
    many similar, but different bocks to be considered candidates for the
    (expensive!) comparision.
    Adding register to the hash takes CmmCommonBlockElim's share of the
    runtime of the example in #10397 from 17% to 2.5%, and eliminates all
    unwanted hash collisions.
    This patch also replaces the fancy trie by a plain Data.Map. It turned
    out to be not performance critical, so this simplifies the code.
    Differential Revision:
Commits on May 16, 2015
  1. @nomeata

    Greatly speed up nativeCodeGen/seqBlocks

    nomeata authored
    When working on #10397, I noticed that "reorder" in
    nativeCodeGen/seqBlocks took more than 60% of the time. With this
    refactoring, it does not even show up in the profile any more. This
    fixes #10422.
    Differential Revision:
  2. @nomeata

    Speed up elimCommonBlocks by grouping blocks also by outgoing labels

    nomeata authored
    This is an attempt to improve the situation described in #10397, where
    the linear scan of possible candidates for commoning up is far too
    expensive. There is (ever) more room for improvement, but this is a
    Differential Revision:
Commits on May 15, 2015
  1. @ezyang

    Failing test for #10420 using plugins.

    ezyang authored
    Signed-off-by: Edward Z. Yang <>
Commits on May 14, 2015
  1. @ezyang

    Backpack docs: Rewrite type checking section to have a more concrete …

    ezyang authored
    Signed-off-by: Edward Z. Yang <>
  2. @watashi @thoughtpolice

    Do not check dir perms when .ghci doesn't exist

    watashi authored thoughtpolice committed
    Do not check dir perms when .ghci doesn't exist, otherwise GHCi will
    print some confusing and useless warnings in some cases (e.g. in travis).
    This will fix test T8333 and T10408A in travis.
    T10408A will be a test case to cover this. And T8333 is changed to be
    not affected by this.
    Test Plan:
      chmod o+w ~/.ghc
      make TESTS="T8333 T10408A T10408B"
      chmod o-w ~/.ghc
    Reviewers: austin, nomeata
    Differential Revision:
  3. @thoughtpolice

    Revert multiple commits

    thoughtpolice authored
    This reverts multiple commits from Simon:
      - 04a484e Test Trac #10359
      - a9ccd37 Test Trac #10403
      - c0aae6f Test Trac #10248
      - eb6ca85 Make the "matchable-given" check happen first
      - ca173aa Add a case to checkValidTyCon
      - 51cbad1 Update haddock submodule
      - 6e1174d Separate transCloVarSet from fixVarSet
      - a8493e0 Fix imports in HscMain (stage2)
      - a154944 Two wibbles to fix the build
      - 5910a1b Change in capitalisation of error msg
      - 130e93a Refactor tuple constraints
      - 8da785d Delete commented-out line
    These break the build by causing Haddock to fail mysteriously when
    trying to examine GHC.Prim it seems.
Commits on May 13, 2015
  1. @simonpj

    Test Trac #10359

    simonpj authored
  2. @simonpj

    Test Trac #10403

    simonpj authored
  3. @simonpj

    Test Trac #10248

    simonpj authored
  4. @simonpj

    Make the "matchable-given" check happen first

    simonpj authored
    This change makes the matchable-given check apply uniformly to
         - constraint tuples
         - natural numbers
         - Typeable
    as well as to vanilla class constraints.
    See Note [Instance and Given overlap] in TcInteract
  5. @simonpj

    Add a case to checkValidTyCon

    simonpj authored
    Apparently when Haddock'ing, we check GHC.Prim.
    So checkValidTyCon must not crash when dealing with
    PrimTyCons; and it was doing so in dataConStupidTheta.
    The fix is easy, but I'm puzzled about why Haddock needs to
    typecheck GHC.Prim.
  6. @simonpj

    Update haddock submodule

    simonpj authored
    The location of setRdrNameSpace has changed in GHC.
    (Sadly, the build still fails with a tyConStupidTheta failure in
    a haddock invocation; I have no idea why.  But at least Haddock
    itself builds.)
  7. @simonpj

    Separate transCloVarSet from fixVarSet

    simonpj authored
    I wasn't clear about the distinction before, and that led to a bug
    when I refactored FunDeps.oclose to use transCloVarSet; it should
    use fixVarSet.
  8. @simonpj
Something went wrong with that request. Please try again.