On Tue, Jul 12, 2011 at 2:58 AM, Simon Marlow
<marlowsd@gmail.com> wrote:
I discovered the real reason we run statements in a separate thread: the GHCi debugger. If the computation stops at a breakpoint, then we have to save the context and resume GHCi, which can only be done if the computation was running in a separate thread.
The way things are arranged right now, each stopped computation gets a different thread. What you want is for all these to be on the main thread. It might be possible to arrange this, but it would require some non-trivial reorganisation in the implementation of interactive evaluation (compiler/main/InteractiveEval.hs). I'm going to have to leave this for now, sorry. In the meantime you'll still be able to use -fno-ghci-sandbox, but the debugging features in GHCi will be disabled.
Cheers,
Simon
Thanks for looking into it, Simon.
Regards,
Dave