<br><br><div>On Mon Jul 14 2014 at 11:27:34 AM, "Martin v. Löwis" <<a href="mailto:martin@v.loewis.de">martin@v.loewis.de</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Am 12.07.14 17:19, schrieb Nick Coghlan:<br>
> Using the stable ABI for standard library extensions also serves to<br>
> decouple them further from the internal details of the CPython runtime,<br>
> making it more likely they will be able to run correctly on alternative<br>
> interpreters (since emulating or otherwise supporting the limited API is<br>
> easier than supporting the whole thing).<br>
<br>
There are two features to be gained for the standard library from that<br>
<br>
A. with proper module shutdown support, it will be possible to release<br>
   objects that are currently held in C global/static variables, as the<br>
   C global variables will go away. This, in turn, is a step forward in<br>
   the desire to allow for proper leak-free interpreter shutdown, and<br>
   in the desire to base interpreter shutdown on GC.<br>
<br>
B. with proper use of heap types (instead of the static type objects),<br>
   support for the multiple-interpreter feature will be improved, since<br>
   type objects will be per-interpreter, instead of being global. This,<br>
   in turn, is desirable since otherwise state changes can leak from<br>
   one interpreter to the other.<br>
<br>
So I still maintain that the change is desirable even for the standard<br>
library.<br></blockquote><div><br></div><div>I agree for PEP  3121 which is the initialization/finalization work. The stable ABi is not necessary. So maybe we should re-examine the patches and accept the bits that clean up init/finalization and leave out any ABi-related changes.</div>