That's exactly a better description of what :stepover does at the
moment: stop only at breakpoints in the current top level function. I
wished for "stop only at the current function", but applications of
functions declared in the where clause, as well as recursive calls,
are being followed too.
Imho this works fairly well for monadic code, which is statement-
based and rarely recursive, but pure functional code is another
story. If we keep this variant, I would change the name
to :steplocal, to avoid misleading.
On the other hand, I have a working fix for recursive calls, but I
still need to deal with where clauses. For that, the key is to be
able to exactly determine the enclosing expression of a tick,
obtaining the span of the current function instead of the current top
level function as now.
But for this we need the LHsExpr of the module, and I don't think
this information is available for GHCi (is it?).
Extending ModBreaks to carry it looks like a viable alternative.
So, if these fixes work as expected, :stepover would have a more
uniform behaviour really giving the feeling of stepping over function
calls.
On 20/08/2007, at 16:53, Simon Marlow wrote:
Pepe Iborra wrote:
Thanks. It does not work totally well, as right now it can step
over function applications _except_ recursive calls.
This is not desired, but I haven't figured out how to detect those
with the current scheme yet.
Perhaps something simpler: provide a way to stop only at
breakpoints in the current function, or module? We'd see when
execution jumps back to evaluate lazy expressions in the current
function, but maybe that's desirable?
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc