
#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):
We need a separate file format for Backpack.
Well sure, I'm happy to move command-line flags into a file of some kind with sensible syntax.
It is GHC, not Cabal, who knows how to instantiate units.
In my (perhaps naive) view of the way this works, "instantiating a unit" is just compiling modules in dependency order, exactly as GHC does today. This is the case that we already have covered; all of the new stuff is in typechecking modules without concrete dependencies. So yes - GHC instantiates units. But installing the instantiated unit and recording it in the package database is Cabal's job. The package database can record that we have an instance of A, and that it was built by instantiating A with B.
Cabal needs to ask GHC for information about how it instantiated units.
I don't think so. Why can't it look in the package database? On your point about shipping something usable in a timely manner, by all means forge ahead. I don't want to block you, especially when you've done a lot more thinking about this problem and implementing it than I have! But I am very keen that we end up with a story that (a) retains the property of cabal-install depending only on its inputs, (b) keeps a sensible separation of layers between GHC, Cabal, and {cabal- install,stack}. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10871#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler