You might fine more interest on the Python C-API mailing list.

https://mail.python.org/mailman3/lists/capi-sig.python.org/ 
<https://mail.python.org/mailman3/lists/capi-sig.python.org/>

Barry



> On 8 Jul 2020, at 23:58, William Pickard <lollol22...@gmail.com> wrote:
> 
> CPython at the very least has 2 different type of native states: Interpreter 
> & Module state.
> Unfortunately, the multi-phase initialization has a weakness when it comes to 
> Module states.
> 
> You can't access the module state without a pointer to the module.
> PyState_GetModule from a standpoint looks to be the obvious answer to use, 
> but it's documentation states it's unfit for multi-phase initialization.
> 
> I'm proposing an idea here for discussion on a new state system for at least 
> CPython.
> 
> Tier 1: Core state
>        - This state lives within CPython's core binary and exists the entire 
> lifetime of the binary.
>        - The data held within this state is available to the main interpreter 
> and subsequent sub-interpreters. (Example: sys.executable)
> 
> Tier 2-1: Interpreter state (Branches from Core state)
>        - This state lives within CPython's core binary and is tied to a 
> specific interpreter.
>        - The data held within this state is only available to the interpreter 
> it's tied to. (Example: Modules loaded into memory)
> 
> Tier 2-2: Extension state (Branches from Core state)
>        - This state lives within any CPython's core binary EXCEPT it's size 
> and structure is defined by the extension CPython has loaded.
>        - The purpose of this state is to allow an extension to hold data that 
> can't be tied to a specific module. (Examples can be: Windows WSA, MySQL)
> 
> Tier 3-1: Thread state (Branches from Interpreter State)
>        - This state lives within CPython's core binary and is tied to a 
> specific Python thread (IE: Threading library threads),
>        - The data held within this state is only available to the thread it's 
> tied to. (No known examples available)
> 
> Tier 3-2: Module state (Branches from Interpreter State)
>        - This type of state is already available in CPython, explaining it is 
> not required.
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-ideas@python.org/message/FEL2CWVD566USK6BD6GSXVGNEGCYO5BY/
> Code of Conduct: http://python.org/psf/codeofconduct/
> 

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/H2URO5GFVUMGXFH5KUJY7XW2N4VBJF75/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to