summaryrefslogtreecommitdiffstats
path: root/Include/internal/pycore_pythonrun.h
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2025-07-01 13:44:32 (GMT)
committerGitHub <noreply@github.com>2025-07-01 13:44:32 (GMT)
commitf152d60b68ae473306f6087c1b8b40922444f801 (patch)
tree81a3cad819ff603d1de2cb2082e68108aadc452f /Include/internal/pycore_pythonrun.h
parentdf4e87b153622b9fc5028de0050a8c5678894bc5 (diff)
downloadcpython-f152d60b68ae473306f6087c1b8b40922444f801.zip
cpython-f152d60b68ae473306f6087c1b8b40922444f801.tar.gz
cpython-f152d60b68ae473306f6087c1b8b40922444f801.tar.bz2
[3.14] gh-130396: Move PYOS_LOG2_STACK_MARGIN to internal headers (GH-135928) (#136173)
gh-130396: Move PYOS_LOG2_STACK_MARGIN to internal headers (GH-135928) Move PYOS_LOG2_STACK_MARGIN, PYOS_STACK_MARGIN, PYOS_STACK_MARGIN_BYTES and PYOS_STACK_MARGIN_SHIFT macros to pycore_pythonrun.h internal header. Add underscore (_) prefix to the names to make them private. Rename _PYOS to _PyOS. (cherry picked from commit 28940e8e4884eb3444a8ea15a5634f76b154d7ed) Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Include/internal/pycore_pythonrun.h')
-rw-r--r--Include/internal/pycore_pythonrun.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/Include/internal/pycore_pythonrun.h b/Include/internal/pycore_pythonrun.h
index 7daed13..c283209 100644
--- a/Include/internal/pycore_pythonrun.h
+++ b/Include/internal/pycore_pythonrun.h
@@ -33,6 +33,28 @@ extern const char* _Py_SourceAsString(
PyCompilerFlags *cf,
PyObject **cmd_copy);
+
+/* Stack size, in "pointers". This must be large enough, so
+ * no two calls to check recursion depth are more than this far
+ * apart. In practice, that means it must be larger than the C
+ * stack consumption of PyEval_EvalDefault */
+#if defined(_Py_ADDRESS_SANITIZER) || defined(_Py_THREAD_SANITIZER)
+# define _PyOS_LOG2_STACK_MARGIN 12
+#elif defined(Py_DEBUG) && defined(WIN32)
+# define _PyOS_LOG2_STACK_MARGIN 12
+#else
+# define _PyOS_LOG2_STACK_MARGIN 11
+#endif
+#define _PyOS_STACK_MARGIN (1 << _PyOS_LOG2_STACK_MARGIN)
+#define _PyOS_STACK_MARGIN_BYTES (_PyOS_STACK_MARGIN * sizeof(void *))
+
+#if SIZEOF_VOID_P == 8
+# define _PyOS_STACK_MARGIN_SHIFT (_PyOS_LOG2_STACK_MARGIN + 3)
+#else
+# define _PyOS_STACK_MARGIN_SHIFT (_PyOS_LOG2_STACK_MARGIN + 2)
+#endif
+
+
#ifdef __cplusplus
}
#endif