[Python-Dev] Re: Proliferation of tstate arguments.

2020年3月16日 08:11:21 -0700

Hi,
> Changes on this scale merit a PEP and proper discussion, rather than
> being added piecemeal without proper review.
Last November, I asked explicitly on python-dev if we should "Pass the
Python thread state to internal C functions":
https://mail.python.org/archives/list/[email protected]/thread/PQBGECVGVYFTVDLBYURLCXA3T7IPEHHO/#Q4IPXMQIM5YRLZLHADUGSUT4ZLXQ6MYY
In short, the answer is yes.
There is no PEP but scatted documents. I wrote a short article to
elaborate the context of this work:
https://vstinner.github.io/cpython-pass-tstate.html
One motivation is to ease the implementation of subinterpreters (PEP
554). But PEP 554 describes more than public API than the
implementation.
--
In the meanwhile, I modified "small integer singletons" to make them
"per-interpreter". So tstate->interp is now used to get small integers
in longobject.c.
I also opened a discussion on other singletons (None, True, False,
...): https://bugs.python.org/issue39511
The long-term goal is to be able to run multiple isolated interpreters
in parallel.
Le lun. 16 mars 2020 à 15:16, Mark Shannon <[email protected]> a écrit :
> There seems to be a proliferation of `PyThreadState *tstate` arguments
> being added to API and internal functions.
So far, tstate should only be passed to *internal* C functions. I
don't think that the public C API has been modified to pass tstate.
> These changes are listed under https://bugs.python.org/issue38644.
There was also https://bugs.python.org/issue36710
> I think that these changes are misguided. The desired results can be
> achieved more reliably and more simply in other ways.
Would you mind to elaborate?
> The changes add bulk to the C-API and may hurt performance.
Did you notice that in benchmarks? I would be curious to see the overhead.
> These changes are also causing a lot of churn and merge conflicts (for
> me at least).
Sorry about that :-/ A lot of Python internals should be modified to
implement subinterpreters.
Victor
-- 
Night gathers, and now my watch begins. It shall not end until my death.
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/FGU5YUJQTRB4HVP5Y36O7FIMYIW2OHZ7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to