1. 17 Oct, 2016 19 commits
  2. 16 Oct, 2016 1 commit
  3. 15 Oct, 2016 3 commits
  4. 14 Oct, 2016 10 commits
    • Michael Snoyman's avatar
      Disable T-signals-child test on single-threaded runtime · 0d9524a8
      Michael Snoyman authored
      As identified by Joachim, this test broke the Travis build. It appears
      that this is due to the usage of the single-threaded runtime there. I've
      confirmed that this fix causes the Travis build to pass:
      https://travis-ci.org/snoyberg/ghc/builds/167368988.
      
      Test Plan: Confirm tests now pass
      
      Reviewers: austin, nomeata, bgamari
      
      Reviewed By: nomeata, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2593
      0d9524a8
    • Sylvain HENRY's avatar
      Check for empty entity string in "prim" foreign imports · 6c739326
      Sylvain HENRY authored
      Foreign imports with "prim" convention require a valid symbol identifier
      (see linked issue). We check this.
      
      Fix line too long
      
      Test Plan: Validate
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2563
      
      GHC Trac Issues: #12355
      6c739326
    • Simon Marlow's avatar
      Build ghc-iserv with --export-dynamic · 3ce0e0ba
      Simon Marlow authored
      This enables loading dynamic libraries that refer to the RTS.  I just
      came across somewhere I needed to do that, and without
      `--export-dynamic` it's impossible.
      
      For now we'll only support that when using `-fexternal-interpreter`,
      because the dynamic symbol table for GHC itself is much bigger.
      
      Test Plan: validate
      
      Reviewers: niteria, austin, erikd, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: Phyx, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2590
      3ce0e0ba
    • Ryan Scott's avatar
      Make error when deriving an instance for a typeclass less misleading · d5a4e49d
      Ryan Scott authored
      Before, when you attempted to derive an instance for a typeclass,
      e.g.,
      
      ```
      class C1 (a :: Constraint) where
      class C2 where
      
      deriving instance C1 C2
      ```
      
      GHC would complain that `C2`'s data constructors aren't in scope. But
      that
      makes no sense, since typeclasses don't have constructors! By refining
      the
      checks that GHC performs when deriving, we can make the error message a
      little more sensible.
      
      This also cleans up a related `DeriveAnyClass` infelicity. Before, you
      wouldn't have been able to compile code like this:
      
      ```
      import System.IO (Handle)
      class C a
      deriving instance C Handle
      ```
      
      Since GHC was requiring that all data constructors of `Handle` be in
      scope. But `DeriveAnyClass` doesn't even generate code that mentions
      any data constructors, so this requirement is silly!
      
      Fixes #11509.
      
      Test Plan: make test TEST=T11509
      
      Reviewers: simonpj, austin, bgamari
      
      Reviewed By: simonpj, bgamari
      
      Subscribers: thomie, simonpj
      
      Differential Revision: https://phabricator.haskell.org/D2558
      
      GHC Trac Issues: #11509
      d5a4e49d
    • Ryan Scott's avatar
      Add missing Semigroup instances for Monoidal datatypes in base · 8c6a3d68
      Ryan Scott authored
      Summary:
      There are currently three datatypes that are exposed in `base` that have
      `Monoid` instances, but no `Semigroup` instances:
      
      * `IO`
      * `Event` (from `GHC.Event`)
      * `Lifetime` (from `GHC.Event`)
      
      (There is also `EventLifetime` in `GHC.Event.Internal`, but it is not exported
      directly, so I didn't bother with it.)
      
      Adding the `Semigroup` instances for these types directly in the modules in
      which they're defined resulted in some horrific import cycles, so I opted to
      take the easy approach of defining all of these instances in `Data.Semigroup`.
      (When `Semigroup` becomes a superclass of `Monoid`, these instances will have
      to be moved somehow.)
      
      Fixes #12464.
      
      Test Plan: It compiles
      
      Reviewers: hvr, ekmett, austin, bgamari
      
      Reviewed By: ekmett
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2588
      
      GHC Trac Issues: #12464
      8c6a3d68
    • Ben Gamari's avatar
      PrelInfo: Fix style · 90df91a0
      Ben Gamari authored
      90df91a0
    • Ben Gamari's avatar
      Improve find_lbl panic message · aa06883c
      Ben Gamari authored
      aa06883c
    • Ben Gamari's avatar
      MkIface: Turn a foldr into a foldl' · 3991da46
      Ben Gamari authored
      There is no reason why this should be a foldr considering we are
      building a map.
      3991da46
    • Ben Gamari's avatar
      Clean up handling of known-key Names in interface files · 34d933d6
      Ben Gamari authored
      Previously BinIface had some dedicated logic for handling tuple names in
      the symbol table. As it turns out, this logic was essentially dead code
      as it was superceded by the special handling of known-key things. Here
      we cull the tuple code-path and use the known-key codepath for all
      tuple-ish things.
      
      This had a surprising number of knock-on effects,
      
       * constraint tuple datacons had to be made known-key (previously they
         were not)
      
       * IfaceTopBndr was changed from being a synonym of OccName to a
         synonym of Name (since we now need to be able to deserialize Names
         directly from interface files)
      
       * the change to IfaceTopBndr complicated fingerprinting, since we need
         to ensure that we don't go looking for the fingerprint of the thing
         we are currently fingerprinting in the fingerprint environment (see
         notes in MkIface). Handling this required distinguishing between
         binding and non-binding Name occurrences in the Binary serializers.
      
       * the original name cache logic which previously lived in IfaceEnv has
         been moved to a new NameCache module
      
       * I ripped tuples and sums out of knownKeyNames since they introduce a
         very large number of entries. During interface file deserialization
         we use static functions (defined in the new KnownUniques module) to
         map from a Unique to a known-key Name (the Unique better correspond
         to a known-key name!) When we need to do an original name cache
         lookup we rely on the parser implemented in isBuiltInOcc_maybe.
      
       * HscMain.allKnownKeyNames was folded into PrelInfo.knownKeyNames.
      
       * Lots of comments were sprinkled about describing the new scheme.
      
      Updates haddock submodule.
      
      Test Plan: Validate
      
      Reviewers: niteria, simonpj, austin, hvr
      
      Reviewed By: simonpj
      
      Subscribers: simonmar, niteria, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2467
      
      GHC Trac Issues: #12532, #12415
      34d933d6
    • Ben Gamari's avatar
      Unique: Simplify encoding of sum uniques · 1cccb646
      Ben Gamari authored
      The previous encoding was entropically a bit better, but harder to
      encode and decode. Now we just split up the integer part of the unique
      into a bitfield.
      
      Test Plan: Validate
      
      Reviewers: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2468
      1cccb646
  5. 13 Oct, 2016 4 commits
  6. 12 Oct, 2016 3 commits