[Python-Dev] List of stdlib types that have been converted to heap types

14 views
Skip to first unread message

Erlend Aasland

unread,
Apr 26, 2021, 6:34:52 AM4/26/21
to Python Dev
Ref. https://bugs.python.org/issue43908, I've compiled a list of types that have been converted to heap types. I've posted it on Discourse for readability:


Note: for now, I didn't bother to trace PyType_Spec variable names to complete type names. Hope it's not too much of a problem.


Erlend



Here's the plain text version:

0b858cdd5d 2021-01-04 Modules/cjkcodecs/multibytecodec.c
    - multibytecodec_spec
    - encoder_spec
    - decoder_spec
    - reader_spec
    - writer_spec

c8a87addb1 2021-01-04 Modules/pyexpat.c
    - _xml_parse_type_spec

75bf107c62 2021-01-02 Modules/arraymodule.c
    - array_spec
    - arrayiter_spec

dd39123970 2020-12-29 Modules/_functoolsmodule.c
    - partial_type_spec
    - keyobject_type_spec
    - lru_list_elem_type_spec
    - lru_cache_type_spec

6104013838 2020-12-18 Modules/_threadmodule.c
    - lock_type_spec
    - rlock_type_spec
    - local_dummy_type_spec
    - local_type_spec

a6109ef68d 2020-11-20 Modules/_sre.c
    - pattern_spec
    - match_spec
    - scanner_spec

5c36da78d7 2020-11-20 Modules/_ssl.c
    - PySSLSocket_spec
    - PySSLContext_spec
    - PySSLMemoryBIO_spec
    - PySSLSession_spec

01c6aa43dc 2020-11-07 Modules/_queuemodule.c
    - simplequeue_spec

74b4eda98b 2020-11-03 Modules/mmapmodule.c
    - mmap_object_spec

c8c4200b65 2020-10-26 Modules/unicodedata.c
    - ucd_type_spec

256e54acdb 2020-10-01 Modules/_sqlite
    - connection_spec
    - cursor_spec

9031bd4fa4 2020-10-01 Modules/_sqlite
    - row_spec
    - stmt_spec

cb6db8b6ae 2020-09-29 Modules/_sqlite
    - type_spec (PrepareProtocolType)

a937ab45d6 2020-09-27 Modules/_sqlite
    - node_spec
    - cache_spec

83de110dce 2020-09-23 Modules/_lsprof.c
    - _lsprof_profiler_type_spec

52a2df135c 2020-09-08 Modules/sha256module.c
    - sha224_type_spec
    - sha256_type_spec

2aabc3200b 2020-09-07 Modules/overlapped.c
    - overlapped_type_spec

63f102fe07 2020-09-06 Modules/md5module.c Modules/sha1module.c Modules/sha512module.c
    - md5_type_spec
    - sha1_type_spec
    - sha512_sha384_type_spec
    - sha512_sha512_type_spec

31967fd8d0 2020-08-27 Modules/_operator.c
    - itemgetter_type_spec
    - attrgetter_type_spec
    - methodcaller_type_spec

e087f7cd43 2020-08-13 Modules/_winapi.c
    - winapi_overlapped_type_spec

1937edd376 2020-06-23 Modules/_lzmamodule.c
    - lzma_compressor_type_spec
    - lzma_decompressor_type_spec

ec68918795 2020-06-20 Modules/_bz2module.c
    - bz2_compressor_type_spec
    - bz2_decompressor_type_spec

c4862e333a 2020-06-17 Modules/_gdbmmodule.c
    - gdbmtype_spec

bf69a8f99f 2020-06-16 Modules/_dbmmodule.c
    - dbmtype_spec

d5b3f6b7f9 2020-05-16 Modules/_hashopenssl.c
    - EVPXOFtype_spec

53e4c91725 2020-03-30 Modules/_abc.c
    - _abc_data_type_spec

33f15a16d4 2020-03-27 Modules/_json.c
    - PyScannerType_spec
    - PyEncoderType_spec

b3966639d2 2019-11-05 Modules/posixmodule.c
    - DirEntryType_spec
    - ScandirIteratorType_spec

df69e75edc 2019-09-25 Modules/_hashopenssl.c
    - EVPtype_spec

f919054e53 2019-09-14 Modules/selectmodule.c
    - devpoll_Type_spec
    - kqueue_event_Type_spec
    - poll_Type_spec
    - pyEpoll_Type_spec
    - kqueue_queue_Type_spec

04f0bbfbed 2019-09-13 Modules/_randommodule.c
    - Random_Type_spec

ac46eb4ad6 2019-09-11 Python/Python-ast.c
    - AST_type_spec
    - AST_type_spec

a1ffad0719 2019-09-10 Modules/zlibmodule.c
    - Comptype_spec
    - Decomptype_spec

4f384af067 2019-09-10 Modules/_struct.c
    - unpackiter_type_spec
    - PyStructType_spec

11dc6c311d 2012-10-14 Modules/_tkinter.c
    - PyTclObject_Type_spec
    - Tktt_Type_spec
    - Tkapp_Type_spec

3b36fb1f53 2012-06-22 Modules/_ssl.c
    - sslerror_type_spec

bc07cb883e 2012-06-14 Modules/_curses_panel.c
    - PyCursesPanel_Type_spec


Guido van Rossum

unread,
Apr 26, 2021, 1:29:01 PM4/26/21
to Erlend Aasland, Python Dev
One thing we could do would be to prioritize setting the IMMUTABLE flag on the most "public" modules of the list. Of these, I would think array.array and the three classes in _sre to be the most important.



--
--Guido van Rossum (python.org/~guido)
Reply all
Reply to author
Forward
0 new messages