There are understandably many related questions on stack allocation
What and where are the stack and heap?
Why is there a limit on the stack size?
However on various *nix machines I can issue the bash command
ulimit -s unlimited
or the csh command
set stacksize unlimited
How does this change how programs are executed? Are there any impacts on program or system performance (e.g., why wouldn't this be the default)?
In case more system details are relevant, I'm mostly concerned with programs compiled with GCC on Linux running on x86_64 hardware.
gcc-4.7 -O3
yoursmash_the_stack
example being tail-recursive is translated to an endless loop without any calls. – Imprescriptible