RX0630

Domain: Engine

Error message

a nesting deeper than the machine's stack can hold: %s (%s)

In the message, %s marks a value that the engine fills in when it raises the error.

The story

Your script is nested so deeply that the machine's stack could not hold it, and rush stopped it before the process crashed. Here is the story. Every call, block, collection, or match arm inside another one takes a little room on the stack. If you go deep enough, the room runs out, and an unprotected program would simply fall off the end and die. Rush catches that. And notice, there is no made-up limit, like a hundred levels. The limit is the machine's own, read from its memory. On a real machine, that means hundreds of thousands of levels. So if you hit this, your script is truly extreme, or something is generating it. The parser refuses while reading the text, and names the line. The walk refuses while evaluating a nested template. The fix is in the second slot. Flatten the nesting: bind the inner value to a name first, and then use the name. Or, if the depth is real, run on a machine with more memory. Shallower code is easier to read, anyway.

Text from the Rush engine's error catalogue.