Skip to content

Clarification on what is needed for advancement toward per-interpreter GIL. #103

@ericsnowcurrently

Description

@ericsnowcurrently

(FYI, I've spoken with @brettcannon about all this previously.)

I've been looking over what needs to be done to get to per-interpreter GIL, as well as concerns folks have brought up about the project. There's a chance things could move along fast enough to reach per-interpreter GIL in time for 3.11b1, so I want to see what the steering council thinks needs approval first (i.e. a PEP).

Some things to note:

  • the discrete, mostly parallel, steps to get there are pretty well-understood
  • none are very big
  • there are just a lot of them
  • nearly all are worth doing regardless of per-interpreter GIL
  • few are controversial on their own that I'm aware of
  • none will break backward compatibility
  • none will touch the public C-API (outside what is covered in existing PEPs)

So it isn't so clear to me what value another PEP provides. Aside from existing PEPs, I could imagine possibly the following, but I'm not sure any of them provide much value.

  • immortal objects
  • making the GIL per-interpreter (we'll likely do nearly everything else necessary for that, so the actual change involved would be a few lines of code. Would a decision be necessary for that?)
  • (informational) about the impact of per-interpreter GIL (the change in behavior and the impact on extension modules)

FYI, I started python/peps#2212 as a sort of dump of the whole thing, but it covered too much. Would it make more sense to add a page to the devguide about the project instead of a PEP?

Anyway, I figured I'd get your feedback sooner rather than later. 🙂

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions