1. 24 Jul, 2015 1 commit
  2. 23 Jul, 2015 14 commits
    • Edward Z. Yang's avatar
      Library names, with Cabal submodule update · f9687caf
      Edward Z. Yang authored
      A library name is a package name, package version, and hash of the
      version names of all textual dependencies (i.e. packages which were included.) A library
      name is a coarse approximation of installed package IDs, which are suitable for
      inclusion in package keys (you don't want to put an IPID in a package key, since
      it means the key will change any time the source changes.)
      
          - We define ShPackageKey, which is the semantic object which
            is hashed into a PackageKey.  You can use 'newPackageKey'
            to hash a ShPackageKey to a PackageKey
      
          - Given a PackageKey, we can lookup its ShPackageKey with
            'lookupPackageKey'.  The way we can do this is by consulting
            the 'pkgKeyCache', which records a reverse mapping from
            every hash to the ShPackageKey.  This means that if you
            load in PackageKeys from external sources (e.g. interface
            files), you also need to load in a mapping of PackageKeys
            to their ShPackageKeys so we can populate the cache.
      
          - We define a 'LibraryName' which encapsulates the full
            depenency resolution that Cabal may have selected; this
            is opaque to GHC but can be used to distinguish different
            versions of a package.
      
          - Definite packages don't have an interesting PackageKey,
            so we rely on Cabal to pass them to us.
      
          - We can pretty-print package keys while displaying the
            instantiation, but it's not wired up to anything (e.g.
            the Outputable instance of PackageKey).
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1056
      
      GHC Trac Issues: #10566
      f9687caf
    • Ben Gamari's avatar
      5ff4dadd
    • thomie's avatar
      ghci: fixity declarations for infix data constructors (#10018) · e809ef57
      thomie authored
      Declaring a custom fixity for an infix data constructor should work:
      
          Prelude> data Infix a b = a :@: b; infixl 4 :@:
      
      This is a followup to #2947, which handled fixity declarations in ghci
      statements (e.g. let add = (+); infixl 6 `add`).
      
      Support for declarations (data, type, newtype, class, instance,
      deriving, and foreign) was added to GHCi in #4929.
      
      Reviewers: simonpj, austin, thomie
      
      Subscribers: thomie, bgamari
      
      Differential Revision: https://phabricator.haskell.org/D1028
      
      GHC Trac Issues: #10018
      e809ef57
    • Simon Peyton Jones's avatar
      608e76ce
    • Simon Peyton Jones's avatar
      Slight refactoring to the fix for #4012 · 7ec07e40
      Simon Peyton Jones authored
      Add CoreSyn.chooseOrphanAnchor, and use it
      7ec07e40
    • Ben Gamari's avatar
      rts/sm: Add missing argument names in function definitions · 4c8e69e0
      Ben Gamari authored
      C99 does not allow unnamed parameters in definition argument lists [1].
      
      [1] http://stackoverflow.com/questions/8776810/parameter-name-omitted-c-vs-c
      4c8e69e0
    • Ben Gamari's avatar
      DataCon: Fix redundant import · 1852c3d2
      Ben Gamari authored
      1852c3d2
    • thomasw's avatar
      Parenthesise TypeOperator in import hints · b5c94262
      thomasw authored
      When a constructor was mistakenly imported directly instead of as a
      constructor of a data type, a hint will be shown on how to correctly
      import
      it. Just like the constructor, the data type should be surrounded in
      parentheses if it is an operator (TypeOperator in this case).
      
      Instead of:
      
          error:
              In module ‘Data.Type.Equality’:
                ‘Refl’ is a data constructor of ‘:~:’
              To import it use
                ‘import’ Data.Type.Equality( :~:( Refl ) )
              or
                ‘import’ Data.Type.Equality( :~:(..) )
      
      Print:
      
          error:
              In module ‘Data.Type.Equality’:
                ‘Refl’ is a data constructor of ‘(:~:)’
              To import it use
                ‘import’ Data.Type.Equality( (:~:)( Refl ) )
              or
                ‘import’ Data.Type.Equality( (:~:)(..) )
      
      Test Plan: pass new test
      
      Reviewers: austin, bgamari, simonpj
      
      Reviewed By: simonpj
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1093
      
      GHC Trac Issues: #10668
      b5c94262
    • rwbarton's avatar
      Update encoding001 to test the full range of non-surrogate code points · e78841b5
      rwbarton authored
      GHC has used surrogate code points for roundtripping since 7.4.
      See Note [Roundtripping].
      
      Also, improve the wording of that Note slightly.
      
      Test Plan: validate still passes
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1087
      e78841b5
    • Ben Gamari's avatar
      Accept next-docstrings on GADT constructors. · 76e2341a
      Ben Gamari authored
      Accept next docstrings (`-- | Docstring`) on GADT constructors.
      
      I have confirmed that this adds no shift/reduce conflicts.
      
      Test Plan: haddockA034
      
      Reviewers: austin, simonpj, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: Fuuzetsu, simonmar, thomie, mpickering, edsko
      
      Differential Revision: https://phabricator.haskell.org/D1086
      76e2341a
    • spinda's avatar
      Generate .dyn_o files for .hsig files with -dynamic-too · d2b4df15
      spinda authored
      With -dynamic-too, .dyn_o files were not being generated for .hsig
      files.  Normally, this is handled in the pipeline; however, the branch
      for .hsig files called compileEmptyStub directly instead of going
      through runPipeline.  When compiling a Cabal package that included .hsig
      files, this triggered a linker error later on, as it expected a .dyn_o
      file to have been generated for each .hsig.
      
      The fix is to use runPipeline for .hsig files, just as with .hs files.
      Alternately, one could duplicate the logic for handling -dynamic-too in
      the .hsig branch, but simply calling runPipeline ends up being much
      cleaner.
      
      Test Plan: validate
      
      Reviewers: austin, ezyang, bgamari, thomie
      
      Reviewed By: ezyang, thomie
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1084
      
      GHC Trac Issues: #10660
      d2b4df15
    • thomie's avatar
      Lexer: support consecutive references to Haddock chunks (#10398) · d784bdeb
      thomie authored
      Reviewers: austin, bgamari, Fuuzetsu
      
      Reviewed By: bgamari
      
      Subscribers: thomie, bgamari
      
      Differential Revision: https://phabricator.haskell.org/D1025
      
      GHC Trac Issues: #10398
      d784bdeb
    • Simon Peyton Jones's avatar
      Comments only · 98512751
      Simon Peyton Jones authored
      98512751
    • Simon Peyton Jones's avatar
      Fix Trac #10670 · 5c3fc921
      Simon Peyton Jones authored
      In dataConCannotMatch we were using a GADT data con without
      properly instantiating the existential type variables.
      The fix is easy, and the code is tighter.
      5c3fc921
  3. 22 Jul, 2015 12 commits
  4. 21 Jul, 2015 13 commits