New submission from STINNER Victor <vstin...@python.org>:

Modifying Python internals to have one GIL per interpreter (bpo-40512) is a 
large project which requires to modify many small things (again, see bpo-40512).

I propose to add a temporary build --experimental-isolated-subinterpreters 
build option to configure for developers who want to hack on isolated 
subinterpreters. The intent is to speedup bpo-40512 development by making some 
practice compromises, to have more time to properly design the real fixes.

For example, tuple, dict and frame have free lists which are shared by 
subinterpreters. A practical solution is to simply disable them at build time 
to avoid the need to have per-interpreter free lists.

Another example is pymalloc which is shared by all subinterpreters and rely on 
the unique global interpreter lock (GIL) to protect its internal states. A 
practical solution is to disable it and force the usage of libc malloc() 
function instead.

Some compromosises cannot be the default since they have a significant negative 
impact on performances. So I propose to add a temporary build option until all 
these small issues will be fixed.

----------
components: Build
messages: 368141
nosy: vstinner
priority: normal
severity: normal
status: open
title: Add --experimental-isolated-subinterpreters build option
versions: Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40514>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to