[Import-SIG] PEP 489: Multi-phase extension module initialization; version 5

Antoine Pitrou solipsis at pitrou.net
Mon May 18 18:57:13 CEST 2015


On Mon, 18 May 2015 18:27:50 +0200
Petr Viktorin <encukou at gmail.com> wrote:
> On Mon, May 18, 2015 at 5:58 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> > On Mon, 18 May 2015 17:32:13 +0200
> > Petr Viktorin <encukou at gmail.com> wrote:
> >>
> >> > A fast, easy way to access module "state" without defining global
> >> > variables at the C level is required.
> >>
> >> You can have a custom subclass, or you can use per-module state, or
> >> put a capsule in the module dict.
> >
> > The latter two are cumbersome and inefficient. Only custom subclasses
> > can make things easy and fast at the C level.
> 
> With per-module state, you need a one-liner macro, and a pointer
> dereference at runtime. Is that too cumbersome and inefficient, or am
> I missing something?

The main problem is the PyState_FindModule() function. It's not
terribly efficient, and most of all you have to check its return value
for NULL.

Regards

Antoine.


More information about the Import-SIG mailing list