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