summaryrefslogtreecommitdiff
path: root/Doc/library/idle.rst
diff options
context:
space:
mode:
authorTal Einat <taleinat+github@gmail.com>2019-07-06 15:35:24 +0300
committerGitHub <noreply@github.com>2019-07-06 15:35:24 +0300
commitfcf1d003bf4f0100c9d0921ff3d70e1127ca1b71 (patch)
tree77d6f9323162ee6455a14da9c4f9bb78640284ae /Doc/library/idle.rst
parent45bc61b97178b27ae05bd3eb95481bf0325795bb (diff)
downloadcpython-git-fcf1d003bf4f0100c9d0921ff3d70e1127ca1b71.tar.gz
bpo-26806: add 30 to the recursion limit in IDLE's shell (GH-13944)
This is done to compensate for the extra stack frames added by IDLE itself, which cause problems when setting the recursion limit to low values. This wraps sys.setrecursionlimit() and sys.getrecursionlimit() as invisibly as possible.
Diffstat (limited to 'Doc/library/idle.rst')
-rw-r--r--Doc/library/idle.rst4
1 files changed, 4 insertions, 0 deletions
diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst
index fb886a714d..de58f266bf 100644
--- a/Doc/library/idle.rst
+++ b/Doc/library/idle.rst
@@ -713,6 +713,10 @@ or ``print`` or ``write`` to sys.stdout or sys.stderr,
IDLE should be started in a command line window. The secondary subprocess
will then be attached to that window for input and output.
+The IDLE code running in the execution process adds frames to the call stack
+that would not be there otherwise. IDLE wraps ``sys.getrecursionlimit`` and
+``sys.setrecursionlimit`` to reduce the effect of the additional stack frames.
+
If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``,
IDLE's changes are lost and input from the keyboard and output to the screen
will not work correctly.