Steve Youngs wrote:
[ I'm _NOT_ subscribed, please observe MFT ]
I know that c.e.x would be a better forum for this, but my INN has
gone belly up. :-(
The error: "Variable binding depth exceeds max-specpdl-size" is giving
me grief with one of my projects.
What does it mean?
What causes it?
How can I debug it?
What on earth is "specpdl" an abbreviation of? It certainly isn't a
word in any language I know.
The following is from a post to this list by Hrvoje Niksic on Oct 6,
and answers three of the four questions above.
max-specpdl-size is the maximum size of the special variable
bindings
stack (stack is called "push-down list" in MIT-speak, hence "pdl").
In human language, it means that when you do this:
(let ((case-fold-search nil))
... some code ...)
there is a stack to which the previous value of case-fold-search is
pushed. When the `let' form is finished, the previous value of
case-fold-search is restored by popping the old value from the specpdl
stack.
max-specpdl-size exceeded can mean either that the nesting of `let'
and `unwind-protect' forms has genuinely exceeded the limit, or (more
usual) that an infinite recursion has occurred. The current default
for max-specpdl-size is 3000, which is pretty hard to exceed without
an infinite recursion. Although, with the complex new applications
such as the Semantic Bovinator, anything is possible.
--
Glynn Clements <glynn.clements(a)virgin.net>