[GHC] #14391: Make the simplifier independent of the typechecker

GHC ghc-devs at haskell.org
Wed Mar 7 11:49:22 UTC 2018


#14391: Make the simplifier independent of the typechecker
-------------------------------------+-------------------------------------
        Reporter:  nomeata           |                Owner:  (none)
            Type:  task              |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.3
      Resolution:                    |             Keywords:  newcomer
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 simonpj):

 > importDecl has IfM in its type. And IfM is defined in TcRnTypes, so
 leaving it doesn't bring us decoupling from the typechecker. Should we
 also replace importDecl?

 No, leave all that.  The point is as follows (please document this in your
 patch):

 * `TcEnv.lookupGlobal` may look up an `Id` that one one has previously
 looked up.

 * If so, we are going to read its interface file, and add its bindings to
 the `ExternalPackageTable`, which is a persistent in-memory cache of
 information about other modules.

 * Loading that interface file does quite a bit of work, but we don't
 consider that as "part of the typechecker"; it's essentially just de-
 serialising interface-file data on disk.  For example, any failures are
 not user errors; they represent messed-up files or GHC bugs, so can
 legitimatelly raise an exception.

 * The entire mechanism of `importDecl` and `loadInterface` is part of
 this.  Don't duplicate it!

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14391#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list