[GHC] #12485: -package-db flags now need to be sorted by dependency order

GHC ghc-devs at haskell.org
Mon Sep 12 14:11:58 UTC 2016


#12485: -package-db flags now need to be sorted by dependency order
-------------------------------------+-------------------------------------
        Reporter:  niteria           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.2
       Component:  Package system    |              Version:  8.0.1
      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:D2450,
       Wiki Page:                    |  phab:D2514
-------------------------------------+-------------------------------------

Comment (by simonmar):

 Ok, I understand that IPID does not determine ABI any more, and
 dependencies only record IPID.

 This situation bothers me for a couple of reasons.

 * Now we are relying on the package-db ordering on the command line for
 dependency safety, whereas previously we could check because we had the
 ABIs of the dependencies.

 * We've lost the property that you can just union all the package DBs,
 which is a bit sad.  The idea of a package DB "stack" was really just a
 temporary situation to deal with the fact that we couldn't link multiple
 package instances into the same binary so we had to have some way to
 resolve conflicts; my intention was that eventually the idea of a "stack"
 would just go away when it wasn't necessary any more.

 The problem is really that a dependency doesn't uniquely specify its
 target.  We don't want dependencies to be GUIDs because something
 something determinism, but having a dependency be a pair of (ABI,IPID) as
 you suggest would be good enough.

 In the short term, would anything go wrong if we allowed an IPID anywhere
 in the stack to satisfy a dependency provided it was unique?  And if a
 dependency is not unique, we resolve in the current way, using the DB
 ordering.

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


More information about the ghc-tickets mailing list