This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author methane
Recipients methane
Date 2019-04-16.12:05:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1555416317.5.0.961282490804.issue36641@roundup.psfhosted.org>
In-reply-to
Content
In most case, docstring in C is constant.
Can we add "const"?  If we can, it can avoid allocating and copying several KBs.

--- a/Include/pymacro.h
+++ b/Include/pymacro.h
@@ -69,4 +69,4 @@
 /* Define macros for inline documentation. */
-#define PyDoc_VAR(name) static char name[]
+#define PyDoc_VAR(name) static const char name[]
 #define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str)
 #ifdef WITH_DOC_STRINGS


Some drastic impacts:

before:
   text    data     bss     dec     hex filename
 110446   57371      96  167913   28fe9 Modules/posixmodule.o
  91937   32236     208  124381   1e5dd build/temp.linux-x86_64-3.8/home/inada-n/work/python/cpython/Modules/_decimal/_decimal.o
  61070   31534     472   93076   16b94 build/temp.linux-x86_64-3.8/home/inada-n/work/python/cpython/Modules/_cursesmodule.o


after:
$ size **/*.o
   text    data     bss     dec     hex filename
 150761   17064      96  167921   28ff1 Modules/posixmodule.o
 115213    8976     208  124397   1e5ed build/temp.linux-x86_64-3.8/home/inada-n/work/python/cpython/Modules/_decimal/_decimal.o
  86878    5736     472   93086   16b9e build/temp.linux-x86_64-3.8/home/inada-n/work/python/cpython/Modules/_cursesmodule.o
History
Date User Action Args
2019-04-16 12:05:17methanesetrecipients: + methane
2019-04-16 12:05:17methanesetmessageid: <1555416317.5.0.961282490804.issue36641@roundup.psfhosted.org>
2019-04-16 12:05:17methanelinkissue36641 messages
2019-04-16 12:05:17methanecreate