
#11596: ghci gets confused if a file is deleted -------------------------------------+------------------------------------- Reporter: NeilMitchell | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 8.0.1-rc2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- With GHC 8.0 RC2 if a currently loaded .hs file is deleted then {{{:reload}}} works, but actual execution of anything is broken. In previous versions this situation resulted in an error at {{{:reload}}} time. Below is a session that demonstrate the bug: {{{ $ ghci A.hs GHCi, version 8.0.0.20160205: http://www.haskell.org/ghc/ :? for help [1 of 2] Compiling B ( B.hs, interpreted ) [2 of 2] Compiling A ( A.hs, interpreted ) Ok, modules loaded: A, B. *A> :!cat A.hs module A where import B a = b + 1 *A> :!cat B.hs module B where b = 41 *A> :!mv B.hs B.txt *A> :r Ok, modules loaded: A. *A> :show modules A ( A.hs, interpreted ) *A> a <interactive>: fatal: cannot find object file for module `B' while linking an interpreted expression *A> :r Ok, modules loaded: A. }}} Specifically, I load A.hs, which depends on B.hs. I move B.hs away (or delete it). I reload and it says everything is fine. I try to run and it fails. Putting the B.hs file back solves it. This sequence worked fine in all previous versions of GHC, and is caught by the [https://github.com/ndmitchell/ghcid ghcid] test suite. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11596 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler