[GHC] #1480: Template Haskell should allow reification of modules
GHC
ghc-devs at haskell.org
Tue Nov 5 14:29:11 UTC 2013
#1480: Template Haskell should allow reification of modules
----------------------------+----------------------------------------------
Reporter: igloo | Owner:
Type: feature | Status: closed
request | Milestone: 7.8.1
Priority: highest | Version: 7.7
Component: | Keywords:
Template Haskell | Architecture: Unknown/Multiple
Resolution: fixed | Difficulty: Moderate (less than a day)
Operating System: | Blocked By:
Unknown/Multiple | Related Tickets:
Type of failure: |
None/Unknown |
Test Case: |
Blocking: 8398 |
----------------------------+----------------------------------------------
Comment (by simonmar):
Replying to [comment:24 simonpj]:
> Simon, I don't understand the relationship between `mi_deps` and
`mi_usages` fields of `ModIface`. Both seem implicated in the
recompilation check. Can you clarify?
I've just been poking around in the source tree and the wiki, and I think
a concise summary is this: `mi_deps` lists everything below the module,
whereas `mi_usages` lists the bits that the module actually depends on,
and their fingerprints.
`mi_usages` is used ''only'' by the recompilation checker, whereas
`mi_deps` is used by the renamer and other places (linking?), and by the
recompilation checker. The `mi_usages` of modules that we are not
compiling are completely redundant, we never even load them - the
interface deserializer returns a thunk for that bit of the `.hi` file, and
we never look at it.
There is some overlap between these two fields. As far as I know it's
been this way for a long time - since before I implemented fingerprints I
think. Perhaps the redundancy could be eliminated... but there are a lot
of subtleties here.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/1480#comment:26>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list