[GHC] #9422: EPT caching on --make can make spurious instances visible
GHC
ghc-devs at haskell.org
Fri Oct 10 08:24:57 UTC 2014
#9422: EPT caching on --make can make spurious instances visible
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.9
(Type checker) | Keywords:
Resolution: | Architecture: Unknown/Multiple
Operating System: | Difficulty: Unknown
Unknown/Multiple | Blocked By:
Type of failure: GHC | Related Tickets:
accepts invalid program |
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Comment (by ezyang):
In our most recent Backpack information, SPJ described a nice and simple
way of solving this problem. Continue to maintain a global EPT, but with
every type class instance, record the module it originated from. Now, when
we do a lookup into the EPT table, we need to check if that module is
transitively reachable from the current module; if it is not, then it is
discarded. The transitivity check can be done lazily, so, hopefully, when
this bad behavior doesn't occur, we can avoid doing all of the work of
slurping in all the imports to figure out what type instances are
available and which are not.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9422#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list