
#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