Skip to content

Factor out the interpreter (PyEval_EvalFrameDefault) and helper functions into separate files #150950

@markshannon

Description

@markshannon

Currently ceval.c contains the interpreter and a lot of helper functions.

We should factor the interpreter into a separate file from everything else, because:

  • The interpreter is special. It is more of a template for various different interpreters than a normal function, having it in its own file makes it a lot easier to follow the various macros and #if conditions
  • It means that all helpers must have symbols (not be static) helping any JITs using PEP 523, such as PyTorch and CinderX
  • Having the interpreter in its own file makes it easier to build it differently for JIT, free-threading and other custom builds that might need to modify the interpreter, but don't want to have to mess with the rest of the VM
  • ceval.c is big and breaking it up makes it a bit easier to read the code

Metadata

Metadata

Assignees

Labels

interpreter-core(Objects, Python, Grammar, and Parser dirs)type-refactorCode refactoring (with no changes in behavior)
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions