Re: On singleton modules, heap types, and subinterpreters

Petr Viktorin <[email protected]> Thu, 30 Jul 2015 10:01:53 +0200
Newsgroups gmane.comp.python.import
Message-ID <CA+=+wqB+QA2eQHxVAMqpurmfmU5dfp0KwkPZ3ffwCyebeYPFzQ@mail.gmail.com>
T24gV2VkLCBKdWwgMjksIDIwMTUgYXQgMTE6MDAgUE0sIEVyaWMgU25vdyA8ZXJpY3Nub3djdXJy
ZW50bHlAZ21haWwuY29tPiB3cm90ZToKPiBPbiBXZWQsIEp1bCAyOSwgMjAxNSBhdCAyOjAxIFBN
LCBQZXRyIFZpa3RvcmluIDxlbmN1a291QGdtYWlsLmNvbT4gd3JvdGU6Cj4+IE9uIFdlZCwgSnVs
IDI5LCAyMDE1IGF0IDg6NTcgUE0sIEVyaWMgU25vdyA8ZXJpY3Nub3djdXJyZW50bHlAZ21haWwu
Y29tPiB3cm90ZToKPj4+IFRoZSBzbG90IG1ldGhvZHMgd291bGQgaGF2ZSB0byBkbyBgdHlwZShz
ZWxmKS48Imdsb2JhbCI+YCwgd2hpY2ggaXMKPj4+IHdoYXQgYW55IG90aGVyIG1ldGhvZCB3b3Vs
ZCBkby4gIFNvIGluIHRoZSByZWxldmFudCBfY3N2LnJlYWRlcgo+Pj4gbWV0aG9kcyB3ZSB3b3Vs
ZCB1c2UgdGhlIGVxdWl2YWxlbnQgInR5cGUoc2VsZikuRXJyb3IiIHdoZXJlIG5lZWRlZC4KPj4K
Pj4gV2UgbmVlZCB0aGUgY2xhc3MgdGhhdCBkZWZpbmVzIHRoZSBtZXRob2QuIHR5cGUoc2VsZikg
bWlnaHQgcmV0dXJuIGEKPj4gc3ViY2xhc3Mgb2YgdGhhdC4gU28gd2UgZWl0aGVyIG5lZWQgdG8g
d2FsayB0aGUgTVJPIHVudGlsIHRoZSBkZWZpbmluZwo+PiBjbGFzcyBpcyBmb3VuZCwgb3IgdXNl
IE5pY2sncyBtZWNoYW5pc20gYW5kIHJlY29yZCB0aGUgZGVmaW5pbmcgY2xhc3MKPj4gZm9yIGVh
Y2ggcmVsZXZhbnQgc3BlY2lhbCBtZXRob2QuCj4KPiBJZiB5b3UgZXhwbGljaXRseSBiaW5kIHRo
ZSBtb2R1bGUtc2NvcGVkIG9iamVjdCB0byB0aGUgY2xhc3MgdGhhdAo+IG5lZWRzIGl0LCB0aGVu
IHRoZSBtZXRob2RzIG9mIHRoYXQgY2xhc3MgY2FuIGFjY2VzcyBpdC4gIFRoZXJlJ3Mgbm8KPiBu
ZWVkIGZvciBhbnl0aGluZyBtb3JlIGNvbXBsaWNhdGVkIChldmVuIGZvciB0eXBlIHNsb3QgbWV0
aG9kcykuICBJbgo+IFB5dGhvbiBpdCB3b3VsZCBsb29rIGxpa2UgdGhpczoKPgo+ICAgICBjbGFz
cyBFcnJvcihFeGNlcHRpb24pOgo+ICAgICAgICAgLi4uCj4KPiAgICAgY2xhc3MgU3BhbToKPiAg
ICAgICAgIEVycm9yID0gRXJyb3IKPiAgICAgICAgIGRlZiBmYWlsKHNlbGYpOgo+ICAgICAgICAg
ICAgICMgTG9vayB1cCBFcnJvciBvbiBTcGFtIGluc3RlYWQgb2YgZnJvbSBnbG9iYWxzKCkuCj4g
ICAgICAgICAgICAgcmFpc2UgdHlwZShzZWxmKS5FcnJvcigpCj4KPiBXZSBjb3VsZCBldmVuIGdl
dCBtb3JlIGdlbmVyaWMgYWJvdXQgaXQ6Cj4KPiAgICAgY2xhc3MgU3BhbToKPiAgICAgICAgIF9f
Z2xvYmFsc19fID0gZ2xvYmFscygpCj4gICAgICAgICBkZWYgZmFpbChzZWxmKToKPiAgICAgICAg
ICAgICByYWlzZSBzZWxmLl9fZ2xvYmFsc19fWyJFcnJvciJdKCkKPgo+IE9idmlvdXNseSBpdCdz
IG5vdCB0aGF0IHNpbXBsZSBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHByb3ZpZGUgYW4gaW1wbGljaXQK
PiBQeXRob24tc3R5bGUgc2NvcGluZyBsb29rdXAgZm9yIEMgZXh0ZW5zaW9uIGZ1bmN0aW9ucy9t
ZXRob2RzLi4uCgpUaGUgcHJvYmxlbSBpcyBoZXJlOgoKYmFzZS5weToKICAgIGNsYXNzIEVycm9y
KEV4Y2VwdGlvbik6CiAgICAgICAgIkJhc2UgZXJyb3IiCiAgICBjbGFzcyBTcGFtOgogICAgICAg
IF9fZ2xvYmFsc19fID0gZ2xvYmFscygpCiAgICAgICAgZGVmIGZhaWwoc2VsZik6CiAgICAgICAg
ICAgIHJhaXNlIHNlbGYuX19nbG9iYWxzX19bIkVycm9yIl0oKQoKb3RoZXIucHk6CiAgICBpbXBv
cnQgLmJhc2UKICAgIEVycm9yID0gImRpZmZlcmVudCBlcnJvciIKICAgIGNsYXNzIEVnZ3MoYmFz
ZS5TcGFtKToKICAgICAgICBfX2dsb2JhbHNfXyA9IGdsb2JhbHMoKQogICAgRWdncygpLmZhaWwo
KQoKU29tZSBraW5kIG9mIG5hbWVzcGFjaW5nIGlzIG5lZWRlZCBoZXJlIOKAkyBmYWlsKCkgbmVl
ZHMgdG8ga25vdyB0aGF0IGl0CndhcyBkZWZpbmVkIGluIFNwYW0sIG5vdCBFZ2dzLgpUaGlzIGlu
Zm9ybWF0aW9uIGlzIG5vdCBwYXNzZWQgdG8gc3BlY2lhbCBtZXRob2RzIHdoZW4gdGhleSdyZSBj
YWxsZWQsCmFuZCB0aGVpciBzaWduYXR1cmVzIGNhbid0IGJlIGV4dGVuZGVkLgoKQWxzbywgbW9k
dWxlIHN0YXRlIGxvb2t1cCBuZWVkcyB0byBiZSBmYXN0IOKAkyBNUk8gd2Fsa2luZyBvciBkaWN0
Cmxvb2t1cCB3b3VsZCBwcm9iYWJseSBiZSB0b28gc2xvdy4KCj4+PiBIb3dldmVyLCBpdCBzb3Vu
ZHMgbGlrZSB5b3UncmUgc3VnZ2VzdGluZyB0aGF0IFB5U3RhdGVfRmluZE1vZHVsZQo+Pj4gc2hv
dWxkIGJlIGZpeGVkLCByZXBsYWNlZCwgb3Igc3VwcGxlbWVudGVkLCBhc3N1bWluZyBJJ3ZlIHVu
ZGVyc3Rvb2QKPj4+IGNvcnJlY3RseSB0aGF0IGl0J3MgcGFydCBvZiB0aGUgcHJvYmxlbSBoZXJl
LiAgSSdkIHNheSBpdCBkZXBlbmRzIG9uCj4+PiB0aGUgYWN0dWFsIGltcGFjdCBvZiB0aGUgbGFj
ayBvZiBpbXBsaWNpdCBQeXRob24tbGV2ZWwgc2NvcGluZy9sb29rdXAKPj4+IGluIEMgZXh0ZW5z
aW9uIGZ1bmN0aW9ucy9tZXRob2RzLgo+Pgo+PiBQeVN0YXRlX0ZpbmRNb2R1bGUgYnlwYXNzZXMg
dGhlIG5lZWQgZm9yIHBhc3NpbmcgYSBtb2R1bGUgcmVmZXJlbmNlCj4+IGFyb3VuZDogeW91IGdp
dmUgaXQgYSBQeU1vZHVsZURlZiAoc3RhdGljIGRhdGEgZnJvbSB3aGljaCBhIG1vZHVsZSBpcwo+
PiBjb25zdHJ1Y3RlZCksIGFuZCBmcm9tIHRoYXQgaXQgbG9va3MgdXAgdGhlIGNvcnJlc3BvbmRp
bmcgbW9kdWxlIGluCj4+IGN1cnJlbnQgc3ViaW50ZXJwcmV0ZXIgc3RhdGUuCj4+IFRoaXMgIGFz
c3VtZXMgdGhlIHNhbWUgc2V0IG9mIG1vZHVsZXMgaXMgbG9hZGVkIGluIGV2ZXJ5Cj4+IHN1Ymlu
dGVycHJldGVyLiAoT3IgYXQgbGVhc3QgdGhhdCB0aGUgcmVxdWlyZWQgbW9kdWxlIGlzIGxvYWRl
ZCBpbiB0aGUKPj4gY3VycmVudCBzdWJpbnRlcnByZXRlci4pCj4+IElmIHdlIHdhbnQgdG8gc3Vw
cG9ydCBzdWJpbnRlcnByZXRlcnMgc2FmZWx5LCBQeVN0YXRlX0ZpbmRNb2R1bGUgbXVzdCBnby4K
Pgo+IEhlbmNlIHdlICphcmUqIGxvb2tpbmcgZm9yIGFueSBhbHRlcm5hdGl2ZSBsb29rdXAgbWVj
aGFuaXNtCj4gKGVmZmVjdGl2ZWx5IGFuIGVxdWl2YWxlbnQgdG8gUHl0aG9uJ3Mgc2NvcGluZyBs
b29rdXApLiAgU28gbXkKPiBxdWVzdGlvbiBpcywgaXMgaXQgd29ydGggaXQgcmVsYXRpdmUgdG8g
QyBleHRlbnNpb24gZnVuY3Rpb25zL21ldGhvZHM/Cj4KPiAtZXJpYwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbXBvcnQtU0lHIG1haWxpbmcgbGlzdApJ
bXBvcnQtU0lHQHB5dGhvbi5vcmcKaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0
aW5mby9pbXBvcnQtc2lnCg==