GHC seems to ignore the package name of modules imported with {#- SOURCE #-}
I have attached an archive with source bundles of two small Cabal packages A and B. Please build and register package A by executing these commands in directory A:
runghc Setup.lhs configure --user
runghc Setup.lhs build
runghc Setup.lhs register --inplace
Now try to build B by executing these commands in directory B:
runghc Setup.lhs configure --user
runghc Setup.lhs build
You will probably get the following error message:
B.hs:6:9:
Bad interface file: .../Bug/A/dist/build/Internal.hi-boot
.../Bug/A/dist/build/Internal.hi-boot:
openBinaryFile: does not exist (No such file or directory)
In the type `A'
In the type signature for `a':
a :: A
The type A
is indirectly imported from module Internal
of package A. GHC seems to think that this module was imported with a {-# SOURCE #-
} pragma and therefore looks for a .hi-boot file instead of a .hi file. However, it’s the module Internal
of package B that was imported with a {-# SOURCE #-
} pragma.
Trac metadata
Trac field | Value |
---|---|
Version | 6.10.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |