A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2013-October/129469.html below:

[Python-Dev] Change PEP 399 import recommendation

[Python-Dev] Change PEP 399 import recommendationR. David Murray rdmurray at bitdance.com
Sat Oct 12 16:46:02 CEST 2013
On Sat, 12 Oct 2013 16:04:23 +0200, Stefan Behnel <stefan_ml at behnel.de> wrote:
> 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.

The impact on other implementations is: what if they write an
accelerator that only replaces part of the module, whereas CPython's
replaces the whole thing?

But I think we could just postpone dealing with that until it actually
comes up, just as we would if some other implementation writes an
accelerator for a module for which CPython doesn't have one.

--David
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4