mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)
* Implement C recursion protection with limit pointers * Remove calls to PyOS_CheckStack * Add stack protection to parser * Make tests more robust to low stacks * Improve error messages for stack overflow
This commit is contained in:
parent
c637bce20a
commit
2498c22fa0
47 changed files with 1217 additions and 1463 deletions
|
@ -2087,15 +2087,12 @@ class TestLRU:
|
|||
return n
|
||||
return fib(n-1) + fib(n-2)
|
||||
|
||||
if not support.Py_DEBUG:
|
||||
depth = support.get_c_recursion_limit()*2//7
|
||||
with support.infinite_recursion():
|
||||
fib(depth)
|
||||
fib(100)
|
||||
if self.module == c_functools:
|
||||
fib.cache_clear()
|
||||
with support.infinite_recursion():
|
||||
with self.assertRaises(RecursionError):
|
||||
fib(10000)
|
||||
fib(support.exceeds_recursion_limit())
|
||||
|
||||
|
||||
@py_functools.lru_cache()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue