1. 14 Dec, 2017 6 commits
  2. 11 Dec, 2017 6 commits
    • David Feuer's avatar
      Allow users to ignore optimization changes · 6fd8629d
      David Feuer authored
      * Add a new flag, `-fignore-optim-changes`, allowing them to avoid
        recompilation if the only changes are to the `-O` level or to
        flags controlling optimizations.
      
      * When `-fignore-optim-changes` is *off*, recompile when optimization
        flags (e.g., `-fno-full-laziness`) change. Previously, we ignored
        these unconditionally when deciding whether to recompile a module.
      
      Reviewers: austin, bgamari, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: duog, carter, simonmar, rwbarton, thomie
      
      GHC Trac Issues: #13604
      
      Differential Revision: https://phabricator.haskell.org/D4123
      
      (cherry picked from commit 708ed9ca)
      6fd8629d
    • Ben Gamari's avatar
      rts: Don't default to single capability when profiled · ce8d8c01
      Ben Gamari authored
      This was presumably a vestige of the days when the profiled RTS couldn't
      run threaded. Fixes #14545.
      
      Test Plan: simonmar
      
      Reviewers: erikd, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: rwbarton, thomie, carter
      
      GHC Trac Issues: #14545
      
      Differential Revision: https://phabricator.haskell.org/D4245
      
      (cherry picked from commit 4bfff7a5)
      ce8d8c01
    • Simon Marlow's avatar
      Always use the safe open() call · 56fbfb30
      Simon Marlow authored
      open() can sometimes take a long time, for example on NFS or FUSE
      filesystems.  We recently had a case where open() was taking multiple
      seconds to return for a (presumably overloaded) FUSE filesystem, which
      blocked GC and caused severe issues.
      
      Test Plan: validate
      
      Reviewers: niteria, bgamari, nh2, hvr, erikd
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      GHC Trac Issues: #13296
      
      Differential Revision: https://phabricator.haskell.org/D4239
      
      (cherry picked from commit cafe9834)
      56fbfb30
    • Ben Gamari's avatar
      Add hadrian as a submodule · 2278c4c7
      Ben Gamari authored
      It will remain a submodule until we are ready to merge Hadrian into the
      tree.
      2278c4c7
    • Ben Gamari's avatar
      Rip out hadrian subtree · 351c460c
      Ben Gamari authored
      Sadly subtrees haven't worked quite as well as we would have liked for
      developers. See Hadrian #440.
      351c460c
    • Ben Gamari's avatar
      Bump version to 8.4 · ee2acdf5
      Ben Gamari authored
      Updates haddock dsubmodule
      ee2acdf5
  3. 04 Dec, 2017 3 commits
    • Ben Gamari's avatar
      Fix ghc_packages · 595f60fd
      Ben Gamari authored
      The LaTeX produced by this previously failed to compile. Changing the first cell
      of the row from an inline to a paragraph fixes this. Then I noticed that the
      table overflowed the page. This is fixed by applying the longtable class.
      595f60fd
    • Ben Gamari's avatar
      template-haskell: Rip out FamFlavour · cfea7450
      Ben Gamari authored
      This was scheduled to happen for 8.2, it looks like it will actually
      happen in 8.4.
      cfea7450
    • David Feuer's avatar
      Make the Con and Con' patterns produce evidence · 1acb922b
      David Feuer authored
      Matching with the `Con` and `Con'` patterns can reveal evidence
      that the type in question is *not* an application. This can help
      the pattern checker.
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: carter, rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4139
      1acb922b
  4. 01 Dec, 2017 4 commits
    • David Feuer's avatar
      Cache TypeRep kinds aggressively · bc761ad9
      David Feuer authored
      Cache `TypeRep k` in each `TrApp` or `TrTyCon` constructor of
      `TypeRep (a :: k)`. This makes `typeRepKind` cheap.
      
      With this change, we won't need any special effort to deserialize
      typereps efficiently. The downside, of course, is that we make
      `TypeRep`s slightly larger.
      
      Reviewers: austin, hvr, bgamari, simonpj
      
      Reviewed By: bgamari, simonpj
      
      Subscribers: carter, simonpj, rwbarton, thomie
      
      GHC Trac Issues: #14254
      
      Differential Revision: https://phabricator.haskell.org/D4085
      bc761ad9
    • David Feuer's avatar
      Add trace injection · 12efb230
      David Feuer authored
      Add support for injecting runtime calls to `trace` in `DsM`. This
      allows the desugarer to add compile-time information to a runtime
      trace.
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: carter, thomie, rwbarton
      
      Differential Revision: https://phabricator.haskell.org/D4162
      12efb230
    • Edward Z. Yang's avatar
      Handle CPP properly in Backpack · e1fb2838
      Edward Z. Yang authored
      Summary:
      Previously, we attempted to lookup 'hole' packages for
      include directories; this obviously is not going to work.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@fb.com>
      
      Test Plan: validate
      
      Reviewers: ekmett, bgamari
      
      Subscribers: rwbarton, thomie
      
      GHC Trac Issues: #14525
      
      Differential Revision: https://phabricator.haskell.org/D4234
      e1fb2838
    • Edward Z. Yang's avatar
      Make use of boot TyThings during typechecking. · 69987720
      Edward Z. Yang authored
      Summary:
      Suppose that you are typechecking A.hs, which transitively imports,
      via B.hs, A.hs-boot.  When we poke on B.hs and discover that it
      has a reference to a type from A, what TyThing should we wire
      it up with?  Clearly, if we have already typechecked A, we
      should use the most up-to-date TyThing: the one we freshly
      generated when we typechecked A.  But what if we haven't typechecked
      it yet?
      
      For the longest time, GHC adopted the policy that this was
      *an error condition*; that you MUST NEVER poke on B.hs's reference
      to a thing defined in A.hs until A.hs has gotten around to checking
      this.  However, actually ensuring this is the case has proven
      to be a bug farm.  The problem was especially poignant with
      type family consistency checks, which eagerly happen before
      any typechecking takes place.
      
      This patch takes a different strategy: if we ever try to access
      an entity from A which doesn't exist, we just fall back on the
      definition of A from the hs-boot file.  This means that you may
      end up with a mix of A.hs and A.hs-boot TyThings during the
      course of typechecking.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@fb.com>
      
      Test Plan: validate
      
      Reviewers: simonpj, bgamari, austin, goldfire
      
      Subscribers: thomie, rwbarton
      
      GHC Trac Issues: #14396
      
      Differential Revision: https://phabricator.haskell.org/D4154
      69987720
  5. 29 Nov, 2017 7 commits
  6. 28 Nov, 2017 12 commits
  7. 27 Nov, 2017 2 commits