[Python-Dev] Change PEP 399 import recommendation
Stefan Behnel
stefan_ml at behnel.de
Sat Oct 12 16:04:23 CEST 2013
More information about the Python-Dev mailing list
Sat Oct 12 16:04:23 CEST 2013
- Previous message: [Python-Dev] Change PEP 399 import recommendation (was: C extension import time)
- Next message: [Python-Dev] Change PEP 399 import recommendation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Stefan Krah, 12.10.2013 15:41: > Nick Coghlan wrote: >> On 12 Oct 2013 05:49, "Eric Snow" wrote: >>> On Fri, Oct 11, 2013 at 1:41 PM, Stefan Krah wrote: >>>> Antoine Pitrou wrote: >>>>> Just create a _pydecimal module (like _pyio). >>>> >>>> That's very fast indeed. There's one minor problem: For backwards >> compatibility >>>> and pickling [1] I'd need to add >>>> >>>> __module__ = 'decimal' >>>> >>>> to every class of the Python version. Are there any reasons not to do that? >>> >>> Try just putting "__name__ = 'decimal'" at the top of the source file. >> >> In this case the fixup needs to be conditional on the absence of "_decimal". >> Aside from that, yes, lying about name is the easiest way to preserve pickle >> compatibility while still moving code around. > > Thanks Eric and Nick. The setup pretty much works (see issue #19232) and the > import speedup is quite large. I wonder if Cpython's startup time could be > reduced if this strategy was applied to other modules as well (see #19229). > > There are some concerns whether the change would impact other Python > implementations, so I changed the subject (hoping for feedback). FWIW, I think this definitely makes sense in cases where the C implementation is essentially a complete replacement of the original module, such as in this case. I even sometimes suggest compiling Python modules with Cython if the import time matters. For "normal" accelerator modules that only replace a part of a Python module with a native implementation, this is less likely to make a large enough difference to make up for the additional complexity due to the code split. Stefan
- Previous message: [Python-Dev] Change PEP 399 import recommendation (was: C extension import time)
- Next message: [Python-Dev] Change PEP 399 import recommendation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list