mirror of https://github.com/python/cpython
41bc101dd6
The switch cases (really TARGET(opcode) macros) have been moved from ceval.c to generated_cases.c.h. That file is generated from instruction definitions in bytecodes.c (which impersonates a C file so the C code it contains can be edited without custom support in e.g. VS Code). The code generator lives in Tools/cases_generator (it has a README.md explaining how it works). The DSL used to describe the instructions is a work in progress, described in https://github.com/faster-cpython/ideas/blob/main/3.12/interpreter_definition.md. This is surely a work-in-progress. An easy next step could be auto-generating super-instructions. **IMPORTANT: Merge Conflicts** If you get a merge conflict for instruction implementations in ceval.c, your best bet is to port your changes to bytecodes.c. That file looks almost the same as the original cases, except instead of `TARGET(NAME)` it uses `inst(NAME)`, and the trailing `DISPATCH()` call is omitted (the code generator adds it automatically). |
||
---|---|---|
.. | ||
build | ||
buildbot | ||
c-analyzer | ||
cases_generator | ||
ccbench | ||
clinic | ||
freeze | ||
gdb | ||
i18n | ||
importbench | ||
iobench | ||
msi | ||
nuget | ||
patchcheck | ||
peg_generator | ||
scripts | ||
ssl | ||
stringbench | ||
tz | ||
unicode | ||
unittestgui | ||
wasm | ||
README |
README
This directory contains a number of Python programs that are useful while building or extending Python. buildbot Batchfiles for running on Windows buildbot workers. ccbench A Python threads-based concurrency benchmark. (*) freeze Create a stand-alone executable from a Python program. gdb Python code to be run inside gdb, to make it easier to debug Python itself (by David Malcolm). i18n Tools for internationalization. pygettext.py parses Python source code and generates .pot files, and msgfmt.py generates a binary message catalog from a catalog in text format. iobench Benchmark for the new Python I/O system. (*) msi Support for packaging Python as an MSI package on Windows. parser Un-parsing tool to generate code from an AST. peg_generator PEG-based parser generator (pegen) used for new parser. scripts A number of useful single-file programs, e.g. tabnanny.py by Tim Peters, which checks for inconsistent mixing of tabs and spaces, and 2to3, which converts Python 2 code to Python 3 code. stringbench A suite of micro-benchmarks for various operations on strings (both 8-bit and unicode). (*) unicode Tools for generating unicodedata and codecs from unicode.org and other mapping files (by Fredrik Lundh, Marc-Andre Lemburg and Martin von Loewis). unittestgui A Tkinter based GUI test runner for unittest, with test discovery. (*) A generic benchmark suite is maintained separately at https://github.com/python/performance Note: The pynche color editor has moved to https://gitlab.com/warsaw/pynche