[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