Skip to content

"Bad interface file: System/IO.hi" in ghci when ./System/IO.hs exists

I ran into this when trying to ghci a module in the base library (from http://darcs.haskell.org/packages/base), but it seems that ghci just gets confused if System/IO.hs exists under the current directory. For my purposes, it's easy enough to work around by copying the module I actually want to work on out to another directory.

jyasskin-mac:~/Temp/bug jyasskin$ mkdir System
jyasskin-mac:~/Temp/bug jyasskin$ touch System/IO.hs
jyasskin-mac:~/Temp/bug jyasskin$ cp ~/src/ghc/HEAD/ghc/libraries/base/Data/Monoid.hs .
jyasskin-mac:~/Temp/bug jyasskin$ mkdir Data
jyasskin-mac:~/Temp/bug jyasskin$ mv Monoid.hs Data/
jyasskin-mac:~/Temp/bug jyasskin$ ghci Data/Monoid.hs 
   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 6.6, for Haskell 98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base ... linking ... done.

<interactive>:1:22:
    Bad interface file: System/IO.hi
        System/IO.hi: openBinaryFile: does not exist (No such file or directory)
ghc-6.6: panic! (the 'impossible' happened)
  (GHC version 6.6 for powerpc-apple-darwin):
        interactiveUI:setBuffering

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

jyasskin-mac:~/Temp/bug jyasskin$ find .
.
./Data
./Data/Monoid.hs
./System
./System/IO.hs
jyasskin-mac:~/Temp/bug jyasskin$ 
Trac metadata
Trac field Value
Version 6.6
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component GHCi
Test case
Differential revisions
BlockedBy
Related
Blocking
CC jyasskin@gmail.com
Operating system MacOS X
Architecture powerpc
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information