GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Factor out the interpreter (PyEval_EvalFrameDefault) and helper functions into separate files · Issue #150950 · python/cpython

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

New issue
Copy link
New issue
Copy link
Open
Open
Factor out the interpreter (PyEval_EvalFrameDefault) and helper functions into separate files#150950
Copy link
Assignees
markshannon
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-refactorCode refactoring (with no changes in behavior)Code refactoring (with no changes in behavior)

Description

@markshannon
markshannon
opened on Jun 5, 2026
Issue body actions

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
Reacted by Sergey Miryanov, Hai Zhu, Andrej Klychin, Wulian233, Ivy Xu and Pengyu
Reacted by Bartosz Sławecki

Activity

  1. markshannon
    self-assigned this
    on Jun 5, 2026
  2. aisk
    added
    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
    type-refactorCode refactoring (with no changes in behavior)Code refactoring (with no changes in behavior)
    on Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @markshannon
    markshannon

Labels

interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-refactorCode refactoring (with no changes in behavior)Code refactoring (with no changes in behavior)

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.