1. 05 Aug, 2014 1 commit
    • Edward Z. Yang's avatar
      Package keys (for linking/type equality) separated from package IDs. · 66218d15
      Edward Z. Yang authored
      
      
      This patch set makes us no longer assume that a package key is a human
      readable string, leaving Cabal free to "do whatever it wants" to allocate
      keys; we'll look up the PackageId in the database to display to the user.
      This also means we have a new level of qualifier decisions to make at the
      package level, and rewriting some Safe Haskell error reporting code to DTRT.
      
      Additionally, we adjust the build system to use a new ghc-cabal output
      Make variable PACKAGE_KEY to determine library names and other things,
      rather than concatenating PACKAGE/VERSION as before.
      
      Adds a new `-this-package-key` flag to subsume the old, erroneously named
      `-package-name` flag, and `-package-key` to select packages by package key.
      
      RFC: The md5 hashes are pretty tough on the eye, as far as the file
      system is concerned :(
      
      ToDo: safePkg01 test had its output updated, but the fix is not really right:
      the rest of the dependencies are truncated due to the fact the we're only
      grepping a single line, but ghc-pkg is wrapping its output.
      
      ToDo: In a later commit, update all submodules to stop using -package-name
      and use -this-package-key.  For now, we don't do it to avoid submodule
      explosion.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: simonpj, simonmar, hvr, austin
      
      Subscribers: simonmar, relrod, carter
      
      Differential Revision: https://phabricator.haskell.org/D80
      66218d15
  2. 28 Jul, 2014 1 commit
  3. 26 Jul, 2014 1 commit
    • Edward Z. Yang's avatar
      Module reexports, fixing #8407. · 7f5c1086
      Edward Z. Yang authored
      
      
      The general approach is to add a new field to the package database,
      reexported-modules, which considered by the module finder as possible
      module declarations.  Unlike declaring stub module files, multiple
      reexports of the same physical package at the same name do not
      result in an ambiguous import.
      
      Has submodule updates for Cabal and haddock.
      
      NB: When a reexport renames a module, that renaming is *not* accessible
      from inside the package.  This is not so much a deliberate design choice
      as for implementation expediency (reexport resolution happens only when
      a package is in the package database.)
      
      TODO: Error handling when there are duplicate reexports/etc is not very
      well tested.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Conflicts:
      	compiler/main/HscTypes.lhs
      	testsuite/.gitignore
      	utils/haddock
      7f5c1086
  4. 21 Jul, 2014 1 commit
    • Edward Z. Yang's avatar
      [ghc-pkg] Fix #5442 by using the flag db stack to modify packages. · d7c807f7
      Edward Z. Yang authored
      
      
      Summary:
      Previously, the full database stack was used for ghc-pkg to
      modify packages, which meant that commands like
      'ghc-pkg unregister --user' worked the same as 'ghc-pkg unregister'.
      Since package modification is a "read and write" operation, we
      should use the flag db stack (which is currently used for reads)
      to determine which database to update.
      
      There is also a new flag --user-package-db, which lets you explicitly
      set the user database (as seen by --user).  This was mostly added
      to aid in testing, but could be useful for end users as well.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: simonmar, hvr, austin
      
      Subscribers: simonmar, relrod, carter
      
      Differential Revision: https://phabricator.haskell.org/D84
      d7c807f7
  5. 17 Apr, 2014 1 commit
  6. 22 Mar, 2014 1 commit
  7. 05 Feb, 2013 2 commits
  8. 25 Jan, 2013 1 commit
  9. 31 Oct, 2012 1 commit
  10. 25 Oct, 2012 1 commit
  11. 12 Oct, 2012 1 commit
  12. 04 Oct, 2012 1 commit
  13. 23 Aug, 2012 1 commit
  14. 15 May, 2012 1 commit
  15. 01 May, 2012 1 commit
  16. 26 Oct, 2011 1 commit
  17. 25 Oct, 2011 1 commit
  18. 04 Sep, 2011 1 commit
  19. 10 Aug, 2011 1 commit
  20. 20 Jul, 2011 1 commit