[GHC] #9370: unfolding info as seen when building a module depends on flags in a previously-compiled module (was: OPTIONS_GHC (or its absence) leaks between modules compiled in parallel)
GHC
ghc-devs at haskell.org
Wed Jul 30 16:48:59 UTC 2014
#9370: unfolding info as seen when building a module depends on flags in a
previously-compiled module
-------------------------------------+-------------------------------------
Reporter: carter | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.10.1
Component: Compiler | Version: 7.8.3
Resolution: | Keywords:
Operating System: | Architecture: Unknown/Multiple
Unknown/Multiple | Difficulty: Unknown
Type of failure: Compile- | Blocked By:
time performance bug | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Changes (by rwbarton):
* keywords: parmake =>
* priority: highest => high
* related: #910 #9221 =>
Comment:
OK I take it all back. The parallel build is not really responsible at
all. You get the same blowup when building `Text.XmlHtml.HTML.Meta` with
`-j1` if you just add an `import Text.XmlHtml.Common` so that
`Text.XmlHtml.Common` is built before `Text.XmlHtml.HTML.Meta`.
As far as I can tell, the reason is that when we read an interface file
from an external package, we may or may not attach unfolding info to its
Ids according to the dynamic flags that are in effect for the module we
are building. But when we later build another module, we might reuse that
external package information even though different dynamic flags are now
in effect. I haven't tried to track down the code that loads interface
files, but does this sound plausible?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9370#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list