Hi, Alexandria developers:
CIRCULAR-TREE-P has an unfortunate corner case, causing it to overflow the stack (seen and repoted at #lisp for '#1=(#1#), but if I understand it correctly, having a subtree like that can be dangerous as well).
The problem is caused by the end-test (of the outer DO) being run before the body has a first chance to check for (member slow seen).
Moving endlist into the end of the body seems to fix it. Quick-and-dirty illustration is at http://paste.lisp.org/+2OHW.
On 5 October 2011 12:55, Anton Kovalenko anton@sw4me.com wrote:
CIRCULAR-TREE-P has an unfortunate corner case, causing it to overflow the stack (seen and repoted at #lisp for '#1=(#1#), but if I understand it correctly, having a subtree like that can be dangerous as well).
The problem is caused by the end-test (of the outer DO) being run before the body has a first chance to check for (member slow seen).
Moving endlist into the end of the body seems to fix it.
Merged and pushed -- thanks!
-- nikodemus
alexandria-devel@common-lisp.net