diff options
-rw-r--r-- | Python/bytecodes.c | 23 | ||||
-rw-r--r-- | Python/generated_cases.c.h | 2 | ||||
-rw-r--r-- | Tools/cases_generator/generate_cases.py | 3 |
3 files changed, 19 insertions, 9 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 16ac1d9..e87ca6e 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -1,3 +1,11 @@ +// This file contains instruction definitions. +// It is read by Tools/cases_generator/generate_cases.py +// to generate Python/generated_cases.c.h. +// Note that there is some dummy C code at the top and bottom of the file +// to fool text editors like VS Code into believing this is valid C code. +// The actual instruction definitions start at // BEGIN BYTECODES //. +// See Tools/cases_generator/README.md for more information. + #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_call.h" // _PyObject_FastCallDictTstate() @@ -4003,13 +4011,14 @@ dummy_func( // END BYTECODES // } - error:; - exception_unwind:; - handle_eval_breaker:; - resume_frame:; - resume_with_error:; - start_frame:; - unbound_local_error:; + error: + exception_unwind: + handle_eval_breaker: + resume_frame: + resume_with_error: + start_frame: + unbound_local_error: + ; } // Families go below this point // diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index bea51d7..c678de5 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -1,4 +1,4 @@ -// This file is generated by Tools/scripts/generate_cases.py +// This file is generated by Tools/cases_generator/generate_cases.py // Do not edit! TARGET(NOP) { diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py index 82e5801..ec2481b 100644 --- a/Tools/cases_generator/generate_cases.py +++ b/Tools/cases_generator/generate_cases.py @@ -6,6 +6,7 @@ import argparse import io +import os import re import sys @@ -67,7 +68,7 @@ def write_cases(f: io.TextIOBase, instrs: list[InstDef]): for target in re.findall(r"(?:PREDICT|GO_TO_INSTRUCTION)\((\w+)\)", inst.block.text): predictions.add(target) indent = " " - f.write("// This file is generated by Tools/scripts/generate_cases.py\n") + f.write(f"// This file is generated by {os.path.relpath(__file__)}\n") f.write("// Do not edit!\n") for instr in instrs: assert isinstance(instr, InstDef) |