Exception caused by calling a pure function repeatedly

ixid nuaccount at gmail.com
Tue May 29 19:33:40 PDT 2012


Having solved Project Euler 300 I wanted to explore which of the 
strictly superior fold set were redundant but started getting an 
exception thrown after a few iterations.

I've changed the offending part to try to make it as impact-free 
as possible (my code is not pretty :)), it's now pure and the 
return is only used with writeln to track the progress of the 
function yet it still causes an exception after 4 or 5 iterations.

http://pastebin.com/j6REskhd

The offending function is 'solve', which I've repeatedly called 
to make the exception as simple as possible along with const data 
and limited use of the return data. I've tried making it 
pure/const as well as adding delete on the main data and also 
removing pure and calling the garbage collector. This is the 
stack trace crash assembler command:

7C90E8E5  push        ebx

Does this mean there is a stack overflow? Any ideas what on earth 
is going on?


More information about the Digitalmars-d-learn mailing list