Hi, is it possible to get a condensed stack trace where recursive calls are collapsed into one line in the printout of the stack trace? For example suppose that I have :
*************************************************************** (* test.ml *) PolyML.Compiler.debug := true; open PolyML.Debug; breakAt("test.ml",12);
fun is_divisible(n : int, currentDivisor : int) = if currentDivisor <= n - 1 then n mod currentDivisor = 0 orelse is_divisible(n, currentDivisor + 1) else false; (* This is line 12 *)
fun is_prime(n : int) : bool = if n = 2 then true else not(is_divisible(n, 2));
fun main() = is_prime(11); ***************************************************************
Then upon running as follows :
poly
use "test.ml";
main();
test.ml line:12 function:is_divisible false; (* This is line 12 *)
stack(); test.ml line:12 function:is_divisible
test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:8 function:is_divisible test.ml line:18 function:is_prime test.ml line:21 function:main test.ml line:4 function:? val it = (): unit debug >
The recursive call to "is_divisible" takes up most of the space of the printout of the stack trace. Is it a possible to get a condensed form of this printout, for example something like :
test.ml line:12 function:is_divisible test.ml line:8 function:is_divisible [***repeated 9 times***] test.ml line:18 function:is_prime test.ml line:21 function:main test.ml line:4 function:?
Thanks