-
-
Notifications
You must be signed in to change notification settings - Fork 29
Description
(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. 🙂