Eric Snow wrote:
> Hi all,
> It was nice to speak with many of you at the online language summit
> this week.  It was the next best thing to seeing you all in person! :)
> With the 3.9 feature freeze coming up I'm considering options for PEP
> 
> I'm hopeful to have a pronouncement from Antoine in the near
> future.  If that comes in time for 3.9, we will have the
> implementation ready to go.  It is already nearly complete and the
> remaining work should be done in the next week or so.
> 
> I'm looking for feedback on a nagging worry I have with merging PEP
> 554 into 3.9 (if it is accepted) without having the per-interpreter
> GIL.  See below.  I'll update the PEP later with relevant info from
> this discussion.
> wishing-you-were-all-here-ly yours,
> -eric
> +++++++++++++++++++++++++++++++++++++++++++++++++ (++++++++++
> Dilemma
> Many folks have conflated PEP 554 with having a per-interpreter GIL.
> In fact, I was careful to avoid any mention of parallelism or the GIL
> in the PEP.  Nonetheless some are expecting that when PEP 554 lands we
> will reach multi-core nirvana.
> While PEP 554 might be accepted and the implementation ready in time
> for 3.9, the separate effort toward a per-interpreter GIL is unlikely
> to be sufficiently done in time.  That will likely happen in the next
> couple months (for 3.10).
> So...would it be sufficiently problematic for users if we land PEP 554
> in 3.9 without per-interpreter GIL?
> Options
> Here are the options as I see them (if the PEP is accepted in time for 3.9):
> 
> 1. merge PEP 554 into 3.9 even if per-interpreter GIL doesn't get into  3.9 
> (they get parallelism for free in 3.10)
> 2. like 1, but mark the module as provisional until per-interpreter GIL lands
> 3. do not merge PEP 554 until per-interpreter GIL is merged
> 4. like 3, but publish a 3.9-only module to PyPI in the meantime

My vote is for #2. No need to rush it and it gives you feedback on the API from 
the public before it gets locked in for backwards-compatibility.

And you do know you could have done this as a poll on Discourse, right? 😉

-Brett

> 
> Context
> Like I said, PEP 554 purposefully does not talk about parallelism or
> the GIL.  Instead it focuses strictly on the following (with an
> emphasis on minimalism):
> 
> exposing the existing C-API
> supporting a new concurrency model (CSP)
> 
> Regarding that first one, the value is in exposing the existing
> functionality to a broader group of people.  keep in mind that
> subinterpreters currently have various other limitations (aside from
> sharing the GIL):
> 
> nothing about them has been optimized (e.g. interpreter startup,
> data sharing, data passing)
> extension modules with process-global state may break
> some bugs still remain in the corners
> 
> Currently, there is a chicken-and-egg problem.  It is unlikely that
> there will be sufficient motivation to address those limitations until
> the community starts really using subinterpreters.  Hence PEP 554.
> My Position
> At this point I think we should go with option #1 (or possibly #2).
> IMHO, we would be fine merging PEP 554 without per-interpreter GIL.
> Here's why:
> 
> the two objectives of the PEP have value for the community (as
> explained in the PEP)
> the sooner we can get the functionality of subinterpreters out to
> the broader world, the better
> I don't think the lack of parallelism in 3.9 will trip anyone up
> 
> My only concern is that folks try them out in 3.9, get frustrated by
> the limitations, and then there is a mental barrier to trying them
> again in the future when the limitations have been reduced or
> eliminated.  However, I don't think that will be a problem for people
> that would benefit from serious use of subinterpreters.
> Furthermore, if we're clear that "for now" subinterpreters still share
> the GIL in 3.9 then I'm not so worried about folks getting confused.
> In fact, as long as we're clear about all the current limitations then
> there isn't much downside to option #1.
> Marking the module as "provisional" may help communicate that there
> are limitations that impact use.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/WCMLX56RRZYGTWQFIL2D2D3FHEI2CZI2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to