File tree Expand file tree Collapse file tree 8 files changed +15
-7
lines changed
Filter options
Misc/NEWS.d/next/Core_and_Builtins Expand file tree Collapse file tree 8 files changed +15
-7
lines changed
Original file line number Diff line number Diff line change @@ -29,9 +29,6 @@ PyAPI_DATA(int) (*PyOS_InputHook)(void);
29
29
# define PYOS_LOG2_STACK_MARGIN 12
30
30
#elif defined(Py_DEBUG ) && defined(WIN32 )
31
31
# define PYOS_LOG2_STACK_MARGIN 12
32
- #elif defined(__wasi__ )
33
- /* Web assembly has two stacks, so this isn't really a size */
34
- # define PYOS_LOG2_STACK_MARGIN 9
35
32
#else
36
33
# define PYOS_LOG2_STACK_MARGIN 11
37
34
#endif
Original file line number Diff line number Diff line change @@ -372,6 +372,7 @@ def test_deepcopy_list(self):
372
372
self .assertIsNot (x [0 ], y [0 ])
373
373
374
374
@support .skip_emscripten_stack_overflow ()
375
+ @support .skip_wasi_stack_overflow ()
375
376
def test_deepcopy_reflexive_list (self ):
376
377
x = []
377
378
x .append (x )
@@ -400,6 +401,7 @@ def test_deepcopy_tuple_of_immutables(self):
400
401
self .assertIs (x , y )
401
402
402
403
@support .skip_emscripten_stack_overflow ()
404
+ @support .skip_wasi_stack_overflow ()
403
405
def test_deepcopy_reflexive_tuple (self ):
404
406
x = ([],)
405
407
x [0 ].append (x )
@@ -418,6 +420,7 @@ def test_deepcopy_dict(self):
418
420
self .assertIsNot (x ["foo" ], y ["foo" ])
419
421
420
422
@support .skip_emscripten_stack_overflow ()
423
+ @support .skip_wasi_stack_overflow ()
421
424
def test_deepcopy_reflexive_dict (self ):
422
425
x = {}
423
426
x ['foo' ] = x
Original file line number Diff line number Diff line change @@ -3943,6 +3943,7 @@ def __del__(self):
3943
3943
del C .__del__
3944
3944
3945
3945
@unittest .skipIf (support .is_emscripten , "Seems to works in Pyodide?" )
3946
+ @support .skip_wasi_stack_overflow ()
3946
3947
def test_slots_trash (self ):
3947
3948
# Testing slot trash...
3948
3949
# Deallocating deeply nested slotted trash caused stack overflows
@@ -4868,6 +4869,7 @@ class Thing:
4868
4869
deque .append (thing , thing )
4869
4870
4870
4871
@support .skip_emscripten_stack_overflow ()
4872
+ @support .skip_wasi_stack_overflow ()
4871
4873
def test_repr_as_str (self ):
4872
4874
# Issue #11603: crash or infinite loop when rebinding __str__ as
4873
4875
# __repr__.
Original file line number Diff line number Diff line change 1
1
import collections .abc
2
2
import types
3
3
import unittest
4
- from test .support import skip_emscripten_stack_overflow , exceeds_recursion_limit
4
+ from test .support import skip_emscripten_stack_overflow , skip_wasi_stack_overflow , exceeds_recursion_limit
5
5
6
6
class TestExceptionGroupTypeHierarchy (unittest .TestCase ):
7
7
def test_exception_group_types (self ):
@@ -465,12 +465,14 @@ def make_deep_eg(self):
465
465
return e
466
466
467
467
@skip_emscripten_stack_overflow ()
468
+ @skip_wasi_stack_overflow ()
468
469
def test_deep_split (self ):
469
470
e = self .make_deep_eg ()
470
471
with self .assertRaises (RecursionError ):
471
472
e .split (TypeError )
472
473
473
474
@skip_emscripten_stack_overflow ()
475
+ @skip_wasi_stack_overflow ()
474
476
def test_deep_subgroup (self ):
475
477
e = self .make_deep_eg ()
476
478
with self .assertRaises (RecursionError ):
Original file line number Diff line number Diff line change @@ -318,6 +318,7 @@ def __bases__(self):
318
318
self .assertRaises (RecursionError , isinstance , 1 , X ())
319
319
320
320
@support .skip_emscripten_stack_overflow ()
321
+ @support .skip_wasi_stack_overflow ()
321
322
def test_infinite_recursion_via_bases_tuple (self ):
322
323
"""Regression test for bpo-30570."""
323
324
class Failure (object ):
@@ -328,6 +329,7 @@ def __getattr__(self, attr):
328
329
issubclass (Failure (), int )
329
330
330
331
@support .skip_emscripten_stack_overflow ()
332
+ @support .skip_wasi_stack_overflow ()
331
333
def test_infinite_cycle_in_bases (self ):
332
334
"""Regression test for bpo-30570."""
333
335
class X :
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ def default(self, o):
69
69
70
70
71
71
@support .skip_emscripten_stack_overflow ()
72
+ @support .skip_wasi_stack_overflow ()
72
73
def test_highly_nested_objects_decoding (self ):
73
74
very_deep = 200000
74
75
# test that loading highly-nested objects doesn't segfault when C
@@ -98,6 +99,7 @@ def test_highly_nested_objects_encoding(self):
98
99
self .dumps (d )
99
100
100
101
@support .skip_emscripten_stack_overflow ()
102
+ @support .skip_wasi_stack_overflow ()
101
103
def test_endless_recursion (self ):
102
104
# See #12051
103
105
class EndlessJSONEncoder (self .json .JSONEncoder ):
Original file line number Diff line number Diff line change
1
+ Remove special-casing for C stack depth limits for WASI. Due to
2
+ WebAssembly's built-in stack protection this does not pose a security
3
+ concern.
Original file line number Diff line number Diff line change @@ -360,9 +360,6 @@ _Py_EnterRecursiveCallUnchecked(PyThreadState *tstate)
360
360
# define Py_C_STACK_SIZE 1200000
361
361
#elif defined(__sparc__ )
362
362
# define Py_C_STACK_SIZE 1600000
363
- #elif defined(__wasi__ )
364
- /* Web assembly has two stacks, so this isn't really the stack depth */
365
- # define Py_C_STACK_SIZE 131072 // wasi-libc DEFAULT_STACK_SIZE
366
363
#elif defined(__hppa__ ) || defined(__powerpc64__ )
367
364
# define Py_C_STACK_SIZE 2000000
368
365
#else
You can’t perform that action at this time.
0 commit comments