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/python-dev@python.org/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 <m...@hotpy.org> 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 -- 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/FGU5YUJQTRB4HVP5Y36O7FIMYIW2OHZ7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to