summaryrefslogtreecommitdiffstats
path: root/Python/symtable.c
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-08-04 10:25:51 (GMT)
committerGitHub <noreply@github.com>2023-08-04 10:25:51 (GMT)
commit98902d6c0522df022d2f88499faf9774970e2838 (patch)
tree3c5919fae5314286a774ae9ebe8e682a4b5d50c5 /Python/symtable.c
parent58af2293c52a1ad3754d254690c0e54f787c545b (diff)
downloadcpython-98902d6c0522df022d2f88499faf9774970e2838.zip
cpython-98902d6c0522df022d2f88499faf9774970e2838.tar.gz
cpython-98902d6c0522df022d2f88499faf9774970e2838.tar.bz2
[3.12] GH-107263: Increase C stack limit for most functions, except `_PyEval_EvalFrameDefault()` (GH-107535) (#107618)
GH-107263: Increase C stack limit for most functions, except `_PyEval_EvalFrameDefault()` (GH-107535) * Set C recursion limit to 1500, set cost of eval loop to 2 frames, and compiler mutliply to 2. (cherry picked from commit fa45958450aa3489607daf9855ca0474a2a20878) Co-authored-by: Mark Shannon <mark@hotpy.org>
Diffstat (limited to 'Python/symtable.c')
-rw-r--r--Python/symtable.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/Python/symtable.c b/Python/symtable.c
index e2c00d1..115882d 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -282,17 +282,10 @@ symtable_new(void)
return NULL;
}
-/* When compiling the use of C stack is probably going to be a lot
- lighter than when executing Python code but still can overflow
- and causing a Python crash if not checked (e.g. eval("()"*300000)).
- Using the current recursion limit for the compiler seems too
- restrictive (it caused at least one test to fail) so a factor is
- used to allow deeper recursion when compiling an expression.
-
- Using a scaling factor means this should automatically adjust when
+/* Using a scaling factor means this should automatically adjust when
the recursion limit is adjusted for small or large C stack allocations.
*/
-#define COMPILER_STACK_FRAME_SCALE 3
+#define COMPILER_STACK_FRAME_SCALE 2
struct symtable *
_PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future)