Le sam. 21 mars 2020 à 04:14, Stephen J. Turnbull
<turnbull.stephen...@u.tsukuba.ac.jp> a écrit :
> But ... this sounds to me like work that should be done on a branch.
>
> I'm sure you considered that, but I also expect others will feel the
> same way.  Perhaps this is a good opportunity to document why it's not
> being done on a branch.

For almost every small changes that I wanted to write, I had to push
many small "refactoring" changes to "prepare" the code base for that.
I mean that while I'm doing the changes that I want to do, I had to
fix dozens of bugs which didn't impact anyone else before because
subinterpreters were not properly isolated. For example, to be able to
make small integer singletons per-interpreters, I had to fix the code
to initialize builtins and sys modules to make them really isolated
from the main interpreter.

One of the practical issue that I had is that when a subinterpreter
leaked references, previously it was ignored since we basically ignore
references which are never released at exit. We only care of
differences before/after running an unit test when using "python3 -m
test -R 3:3 (...)". But when I *fixed* the implementation of
subinterpreters, suddenly, very old bugs became visible.

What I'm trying to say is that "fixing" the implementation of
subinterpreters require a deep refactoing of Python internals which
cannot be done in a few small changes. Maintaining a branch in a fork
of the Git project is likely to become too hard to maintain (rebase
the branch).

Moreover, I like to push small commits which are easy to understand,
easy to review and easy to revert if needed.

If we build a giant branch, what would be the outcome? Merge 1 year of
work as a single commit? Currently, all commits of a pull request are
almost squashed into a single large commit.


>  > There are still too many functions which don't work properly with
>  > subinterpreters. There are still a few design issues that needs to
>  > be addressed.
>
> Are subinterpreters in use in production?

Yes. it's used for many years in production by Apache mod_wsgi project
for example.


>  If so, and especially if
> these use cases are unpatched vs. master, that would be justification
> for pushing to master since you are clearly fixing problems with
> subinterpreter use.

Yes, I'm fixing real bugs ;-)

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/VPSA5VYAEOUTFEBAHBU2R4V57GXDS7HJ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to