
#12733: Orphan hashes are not being propagated correctly -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Driver | Version: 8.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): Wiki Page: | -------------------------------------+------------------------------------- Comment (by ezyang): Suggested fix: compute the export hash by hashing together the orphan hashes of ALL transitively reachable orphan modules, not just the ones from the home package. But perhaps this will have some negative performance implication? (Perhaps not too bad; we only pay for orphans, and there are not too many of them. We pay a lot more for family instances.) Another possibility would be to maintain a "transitive orphan hash" which is the orphan hash and the orphan hashes of all transitively imported orphan modules in a module. Then, for imports for external packages, we only put the orphan hash of direct imports into our export hash. Then we wouldn't have to probe all transitively imported orphans; just direct imports--the downside is that if any of these transitive orphan hashes change, our export hash would change, even if the final effective orphans in scope stayed the same. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12733#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler