[GHC] #10871: Implement "fat" interface files which can be directly compiled without source

GHC ghc-devs at haskell.org
Fri Oct 16 08:04:30 UTC 2015


#10871: Implement "fat" interface files which can be directly compiled without
source
-------------------------------------+-------------------------------------
        Reporter:  ezyang            |                Owner:  ezyang
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.11
      Resolution:                    |             Keywords:  backpack
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 simonmar):

 Yes ok, I agree that you could do this and retain the property that cabal-
 install is deterministic.  However, since you also need to support
 building from source (because the user could just delete the package
 database and get the same results) isn't this scheme just a very elaborate
 way to avoid re-typechecking things in some cases?  That is, it doesn't
 add any new functionality, it just saves repeated work.

 Does this feature pay its way?  It's still not clear to me.  It feels like
 something we would have to consider in lots of places, like `hs-boot`
 files, a kind of tax on people who want to write build systems and tools
 that work with packages.

 I wouldn't be surprised if there were tricky technical problems with
 implementing it fully too.  What about core-to-core compiler plugins?
 What is the equivalent of `ghc -M` for fat interface files?

 This would mean that we couldn't have C code in a package that depends on
 something provided by a hole too.  Maybe you don't want to support that
 use case, but given that without fat interfaces it would "just work", it
 seems a shame to lose it.

 Essentially I suppose I worry about losing the simple compilation model
 that we currently have in the name of saving some time.

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


More information about the ghc-tickets mailing list