[GHC] #13703: Internal libraries regression in GHC 8.2 (ghc-pkg handling)

GHC ghc-devs at haskell.org
Wed May 17 02:00:04 UTC 2017


#13703: Internal libraries regression in GHC 8.2 (ghc-pkg handling)
-------------------------------------+-------------------------------------
        Reporter:  ezyang            |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  high              |            Milestone:  8.2.1
       Component:  ghc-pkg           |              Version:  8.2.1-rc2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3590
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Edward Z. Yang <ezyang@…>):

 In [changeset:"d9e9a9b3016a05e6153de3803998877f91c6cdf4/ghc" d9e9a9b/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="d9e9a9b3016a05e6153de3803998877f91c6cdf4"
 Fix #13703 by correctly using munged names in ghc-pkg.

 Summary:
 Cabal internal libraries are implemented using a trick, where the 'name'
 field in ghc-pkg registration file is munged into a new form to keep
 each internal library looking like a distinct package to ghc-pkg and
 other tools; e.g. the internal library q from package p is named
 z-p-z-q.

 Later, Cabal library got refactored so that we made a closer distinction
 between these "munged" package names and the true package name of a
 package.  Unfortunately, this is an example of a refactor for clarity in
 the source code which ends up causing problems downstream, because the
 point of "munging" the package name was to make it so that ghc-pkg and
 similar tools transparently used MungedPackageName whereever they
 previously used PackageName (in preparation for them learning proper
 syntax for package name + component name).  Failing to do this meant
 that internal libraries from the same package (but with different
 names) clobber each other.

 This commit search-replaces most occurrences of PackageName in
 ghc-pkg and turns them into MungedPackageName. Otherwise there
 shouldn't be any functional differenes.

 Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>

 Test Plan: validate

 Reviewers: bgamari, austin

 Subscribers: rwbarton, thomie

 GHC Trac Issues: #13703

 Differential Revision: https://phabricator.haskell.org/D3590
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13703#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list