Bulat Ziganshin wrote:
Hello Simon,
Monday, April 3, 2006, 11:45:35 PM, you wrote:
btw, the basic breakpoint functionality could indeed be provided
as a compiler/IDE transformation, but calling out to GHCi makes
a lot more sense:
I think you misunderstand me: I wanted to avoid the recompilation step
when adding a breakpoint, that's all. The interface would be exactly
but this can be implemented just by adding call to special function
after each operation in I/O monad. this function will check whether we
reached breakpoint and pause program if so. this approach is simpler
to implement and allow easily extend breakpoints' types (line number,
condition, line number+condition, variable changed....). this should
be slower, but i think in most cases this cost should be acceptable
Why just the I/O monad? What if I want to set a breakpoint in a pure
function? Calling a function on entry to every single BCO would be very
costly.
The interpreter could check before entering a BCO whether there was a
breakpoint set on that BCO. That's nearly equivalent to the
implementation I proposed before (overwriting the BCO with a breakpoint
object) and might be simpler, I'm not sure.
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc