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