@@ -5,7 +5,7 @@
55importtypes
66importunittest
77fromtest.supportimport (threading_helper, check_impl_detail,
8-requires_specialization,requires_specialization_ft,
8+requires_specialization,
99cpython_only, requires_jit_disabled, reset_code)
1010fromtest.support.import_helperimportimport_module
1111@@ -524,7 +524,7 @@ def f(x, y):
524524f()
525525526526@requires_jit_disabled
527-@requires_specialization_ft
527+@requires_specialization
528528deftest_assign_init_code(self):
529529classMyClass:
530530def__init__(self):
@@ -547,7 +547,7 @@ def count_args(self, *args):
547547instantiate()
548548549549@requires_jit_disabled
550-@requires_specialization_ft
550+@requires_specialization
551551deftest_push_init_frame_fails(self):
552552definstantiate():
553553returnInitTakesArg()
@@ -576,7 +576,7 @@ def f():
576576f()
577577578578@requires_jit_disabled
579-@requires_specialization_ft
579+@requires_specialization
580580deftest_specialize_call_function_ex_py(self):
581581defex_py(*args, **kwargs):
582582return1
@@ -592,7 +592,7 @@ def instantiate():
592592self.assert_specialized(instantiate, "CALL_EX_PY")
593593594594@requires_jit_disabled
595-@requires_specialization_ft
595+@requires_specialization
596596deftest_specialize_call_function_ex_py_fail(self):
597597defex_py(*args, **kwargs):
598598return1
@@ -660,7 +660,7 @@ def assert_races_do_not_crash(
660660forwriterinwriters:
661661writer.join()
662662663-@requires_specialization_ft
663+@requires_specialization
664664deftest_binary_subscr_getitem(self):
665665defget_items():
666666classC:
@@ -690,7 +690,7 @@ def write(items):
690690opname="BINARY_OP_SUBSCR_GETITEM"
691691self.assert_races_do_not_crash(opname, get_items, read, write)
692692693-@requires_specialization_ft
693+@requires_specialization
694694deftest_binary_subscr_list_int(self):
695695defget_items():
696696items= []
@@ -768,7 +768,7 @@ def write(items):
768768opname="FOR_ITER_LIST"
769769self.assert_races_do_not_crash(opname, get_items, read, write)
770770771-@requires_specialization_ft
771+@requires_specialization
772772deftest_load_attr_class(self):
773773defget_items():
774774classC:
@@ -798,7 +798,7 @@ def write(items):
798798opname="LOAD_ATTR_CLASS"
799799self.assert_races_do_not_crash(opname, get_items, read, write)
800800801-@requires_specialization_ft
801+@requires_specialization
802802deftest_load_attr_class_with_metaclass_check(self):
803803defget_items():
804804classMeta(type):
@@ -831,7 +831,7 @@ def write(items):
831831opname="LOAD_ATTR_CLASS_WITH_METACLASS_CHECK"
832832self.assert_races_do_not_crash(opname, get_items, read, write)
833833834-@requires_specialization_ft
834+@requires_specialization
835835deftest_load_attr_getattribute_overridden(self):
836836defget_items():
837837classC:
@@ -861,7 +861,7 @@ def write(items):
861861opname="LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN"
862862self.assert_races_do_not_crash(opname, get_items, read, write)
863863864-@requires_specialization_ft
864+@requires_specialization
865865deftest_load_attr_instance_value(self):
866866defget_items():
867867classC:
@@ -885,7 +885,7 @@ def write(items):
885885opname="LOAD_ATTR_INSTANCE_VALUE"
886886self.assert_races_do_not_crash(opname, get_items, read, write)
887887888-@requires_specialization_ft
888+@requires_specialization
889889deftest_load_attr_method_lazy_dict(self):
890890defget_items():
891891classC(Exception):
@@ -915,7 +915,7 @@ def write(items):
915915opname="LOAD_ATTR_METHOD_LAZY_DICT"
916916self.assert_races_do_not_crash(opname, get_items, read, write)
917917918-@requires_specialization_ft
918+@requires_specialization
919919deftest_load_attr_method_no_dict(self):
920920defget_items():
921921classC:
@@ -946,7 +946,7 @@ def write(items):
946946opname="LOAD_ATTR_METHOD_NO_DICT"
947947self.assert_races_do_not_crash(opname, get_items, read, write)
948948949-@requires_specialization_ft
949+@requires_specialization
950950deftest_load_attr_method_with_values(self):
951951defget_items():
952952classC:
@@ -976,7 +976,7 @@ def write(items):
976976opname="LOAD_ATTR_METHOD_WITH_VALUES"
977977self.assert_races_do_not_crash(opname, get_items, read, write)
978978979-@requires_specialization_ft
979+@requires_specialization
980980deftest_load_attr_module(self):
981981defget_items():
982982items= []
@@ -1001,7 +1001,7 @@ def write(items):
10011001opname="LOAD_ATTR_MODULE"
10021002self.assert_races_do_not_crash(opname, get_items, read, write)
100310031004-@requires_specialization_ft
1004+@requires_specialization
10051005deftest_load_attr_property(self):
10061006defget_items():
10071007classC:
@@ -1031,7 +1031,7 @@ def write(items):
10311031opname="LOAD_ATTR_PROPERTY"
10321032self.assert_races_do_not_crash(opname, get_items, read, write)
103310331034-@requires_specialization_ft
1034+@requires_specialization
10351035deftest_load_attr_slot(self):
10361036defget_items():
10371037classC:
@@ -1058,7 +1058,7 @@ def write(items):
10581058opname="LOAD_ATTR_SLOT"
10591059self.assert_races_do_not_crash(opname, get_items, read, write)
106010601061-@requires_specialization_ft
1061+@requires_specialization
10621062deftest_load_attr_with_hint(self):
10631063defget_items():
10641064classC:
@@ -1085,7 +1085,7 @@ def write(items):
10851085opname="LOAD_ATTR_WITH_HINT"
10861086self.assert_races_do_not_crash(opname, get_items, read, write)
108710871088-@requires_specialization_ft
1088+@requires_specialization
10891089deftest_load_global_module(self):
10901090ifnothave_dict_key_versions():
10911091raiseunittest.SkipTest("Low on dict key versions")
@@ -1158,7 +1158,7 @@ def write(items):
11581158opname="STORE_ATTR_WITH_HINT"
11591159self.assert_races_do_not_crash(opname, get_items, read, write)
116011601161-@requires_specialization_ft
1161+@requires_specialization
11621162deftest_store_subscr_list_int(self):
11631163defget_items():
11641164items= []
@@ -1182,7 +1182,7 @@ def write(items):
11821182opname="STORE_SUBSCR_LIST_INT"
11831183self.assert_races_do_not_crash(opname, get_items, read, write)
118411841185-@requires_specialization_ft
1185+@requires_specialization
11861186deftest_unpack_sequence_list(self):
11871187defget_items():
11881188items= []
@@ -1362,7 +1362,7 @@ def f(o, n):
13621362classTestSpecializer(TestBase):
1363136313641364@cpython_only
1365-@requires_specialization_ft
1365+@requires_specialization
13661366deftest_binary_op(self):
13671367defbinary_op_add_int():
13681368for_inrange(_testinternalcapi.SPECIALIZATION_THRESHOLD):
@@ -1497,7 +1497,7 @@ def binary_op_bitwise_extend():
14971497self.assert_no_opcode(binary_op_bitwise_extend, "BINARY_OP")
1498149814991499@cpython_only
1500-@requires_specialization_ft
1500+@requires_specialization
15011501deftest_load_super_attr(self):
15021502"""Ensure that LOAD_SUPER_ATTR is specialized as expected."""
15031503@@ -1536,7 +1536,7 @@ def init(self):
15361536self.assert_no_opcode(A.__init__, "LOAD_SUPER_ATTR_METHOD")
1537153715381538@cpython_only
1539-@requires_specialization_ft
1539+@requires_specialization
15401540deftest_contain_op(self):
15411541defcontains_op_dict():
15421542for_inrange(_testinternalcapi.SPECIALIZATION_THRESHOLD):
@@ -1559,7 +1559,7 @@ def contains_op_set():
15591559self.assert_no_opcode(contains_op_set, "CONTAINS_OP")
1560156015611561@cpython_only
1562-@requires_specialization_ft
1562+@requires_specialization
15631563deftest_send_with(self):
15641564defrun_async(coro):
15651565whileTrue:
@@ -1586,7 +1586,7 @@ async def send_with():
15861586self.assert_specialized(send_with, "SEND_GEN")
1587158715881588@cpython_only
1589-@requires_specialization_ft
1589+@requires_specialization
15901590deftest_send_yield_from(self):
15911591defg():
15921592yieldNone
@@ -1601,7 +1601,7 @@ def send_yield_from():
16011601self.assert_no_opcode(send_yield_from, "SEND")
1602160216031603@cpython_only
1604-@requires_specialization_ft
1604+@requires_specialization
16051605deftest_store_attr_slot(self):
16061606classC:
16071607__slots__= ['x']
@@ -1622,7 +1622,7 @@ def set_slot(n):
16221622self.assert_no_opcode(set_slot, "STORE_ATTR_SLOT")
1623162316241624@cpython_only
1625-@requires_specialization_ft
1625+@requires_specialization
16261626deftest_store_attr_instance_value(self):
16271627classC:
16281628pass
@@ -1644,7 +1644,7 @@ def set_value(n):
16441644self.assert_no_opcode(set_value, "STORE_ATTR_INSTANCE_VALUE")
1645164516461646@cpython_only
1647-@requires_specialization_ft
1647+@requires_specialization
16481648deftest_store_attr_with_hint(self):
16491649classC:
16501650pass
@@ -1669,7 +1669,7 @@ def set_value(n):
16691669self.assert_no_opcode(set_value, "STORE_ATTR_WITH_HINT")
1670167016711671@cpython_only
1672-@requires_specialization_ft
1672+@requires_specialization
16731673deftest_to_bool(self):
16741674defto_bool_bool():
16751675true_cnt, false_cnt=0, 0
@@ -1737,7 +1737,7 @@ def to_bool_str():
17371737self.assert_no_opcode(to_bool_str, "TO_BOOL")
1738173817391739@cpython_only
1740-@requires_specialization_ft
1740+@requires_specialization
17411741deftest_unpack_sequence(self):
17421742defunpack_sequence_two_tuple():
17431743for_inrange(_testinternalcapi.SPECIALIZATION_THRESHOLD):
@@ -1774,7 +1774,7 @@ def unpack_sequence_list():
17741774self.assert_no_opcode(unpack_sequence_list, "UNPACK_SEQUENCE")
1775177517761776@cpython_only
1777-@requires_specialization_ft
1777+@requires_specialization
17781778deftest_binary_subscr(self):
17791779defbinary_subscr_list_int():
17801780for_inrange(_testinternalcapi.SPECIALIZATION_THRESHOLD):
@@ -1844,7 +1844,7 @@ def __getitem__(self, item):
18441844self.assert_no_opcode(binary_subscr_getitems, "BINARY_OP")
1845184518461846@cpython_only
1847-@requires_specialization_ft
1847+@requires_specialization
18481848deftest_compare_op(self):
18491849defcompare_op_int():
18501850for_inrange(_testinternalcapi.SPECIALIZATION_THRESHOLD):
@@ -1878,7 +1878,7 @@ def compare_op_str():
187818781879187918801880@cpython_only
1881-@requires_specialization_ft
1881+@requires_specialization
18821882deftest_for_iter(self):
18831883L=list(range(10))
18841884deffor_iter_list():
@@ -1916,7 +1916,7 @@ def for_iter_generator():
19161916self.assert_no_opcode(for_iter_generator, "FOR_ITER")
1917191719181918@cpython_only
1919-@requires_specialization_ft
1919+@requires_specialization
19201920deftest_call_list_append(self):
19211921# gh-141367: only exact lists should use
19221922# CALL_LIST_APPEND instruction after specialization.
@@ -1943,7 +1943,7 @@ class MyList(list): pass
19431943self.assert_no_opcode(my_list_append, "CALL")
1944194419451945@cpython_only
1946-@requires_specialization_ft
1946+@requires_specialization
19471947deftest_load_attr_module_with_getattr(self):
19481948module=types.ModuleType("test_module_with_getattr")
19491949module.__dict__["some_attr"] ="foo"