special handling of "Main.hs" contradicts Report
Simon Marlow
simonmar at microsoft.com
Tue Apr 22 04:37:13 EDT 2003
> The problem comes when I try to import the module.
> Note:
> tests $ cat X.hs
> module X where t1 = t1
>
> tests $ cp X.hs Main.hs
>
> tests $ ghc -c X.hs Main.hs
>
> tests $ ghc --show-iface X.hi
> __interface "Main" X 2 where
> __export X t1;
> import GHC.Base ! :: 1;
> import Foreign.Ptr !;
> ;
> 1 t1 :: forall t. t;
> (1, [])
>
> tests $ ghc --show-iface Main.hi
> __interface "Main" Main 5 where
> import GHC.IOBase :: 1;
> import GHC.TopHandler :: 1;
> import GHC.Base ! :: 1;
> import Foreign.Ptr !;
> import System.IO :: 1;
> ;
> 1 ($main) :: GHC.IOBase.IO ();
> (1, [])
You shouldn't have a Main.hi at all: it must be left over from a
previous compilation of a Main module. The interface filename always
follows the module name (unless you've used any obscure flags), not the
source filename.
Cheers,
Simon
More information about the Glasgow-haskell-bugs
mailing list