homepage

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.

classification
Title: The Great Argument Clinic Conversion Derby Meta-Issue
Type: enhancement Stage: needs patch
Components: Argument Clinic, email Versions: Python 3.4
process
Status: open Resolution:
Dependencies: 20133 20148 20151 20152 20159 20168 20170 20171 20172 20173 20174 20175 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 Superseder:
Assigned To: larry Nosy List: barry, larry, r.david.murray, serhiy.storchaka
Priority: normal Keywords:

Created on 2014年01月08日 00:31 by larry, last changed 2022年04月11日 14:57 by admin.

Messages (9)
msg207649 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2014年01月08日 00:31
This is a meta-issue tracking all the Argument Clinic Derby sub-issues.
msg207650 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2014年01月08日 00:34
The issue tracker isn't letting me add all the dependencies to the dependency list. For the record, here are the numbers:
#20133
#20148
#20151
#20152
#20159
#20168
#20170
#20171
#20172
#20173
#20174
#20175
#20177
#20178
#20179
#20180
#20181
#20182
#20183
#20184
#20185
#20186
(so far)
msg207697 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2014年01月08日 20:33
Here's how the files were parceled out into the various bundles:
#20170
Derby #1: Convert 137 sites to Argument Clinic in Modules/posixmodule.c
 Modules/posixmodule.c: 137 sites
#20171
Derby #2: Convert 115 sites to Argument Clinic in Modules/_cursesmodule.c
 Modules/_cursesmodule.c: 115 sites
#20172
Derby #3: Convert 67 sites to Argument Clinic across 4 files
 PC/msvcrtmodule.c: 18 sites
 PC/winreg.c: 24 sites
 PC/winsound.c: 3 sites
 Modules/_winapi.c: 22 sites
#20173
Derby #4: Convert 53 sites to Argument Clinic across 5 files
 Modules/_codecsmodule.c: 43 sites
 Modules/sha1module.c: 2 sites
 Modules/sha256module.c: 3 sites
 Modules/sha512module.c: 3 sites
 Modules/md5module.c: 2 sites
#20174
Derby #5: Convert 50 sites to Argument Clinic across 3 files
 Modules/socketmodule.c: 47 sites
 Modules/socketmodule.h: 1 sites
 Modules/_functoolsmodule.c: 2 sites
#20175
Derby #6: Convert 50 sites to Argument Clinic across 8 files
 Modules/_io/bufferedio.c: 13 sites
 Modules/_io/bytesio.c: 6 sites
 Modules/_io/fileio.c: 6 sites
 Modules/_io/iobase.c: 4 sites
 Modules/_io/stringio.c: 5 sites
 Modules/_io/textio.c: 8 sites
 Modules/_multiprocessing/multiprocessing.c: 3 sites
 Modules/_multiprocessing/semaphore.c: 5 sites
#20159
Derby #7: Convert 51 sites to Argument Clinic across 3 files
 Modules/_elementtree.c: 31 sites
 PC/_msi.c: 15 sites
 PC/bdist_wininst/install.c: 5 sites
#20177
Derby #8: Convert 52 sites to Argument Clinic across 3 files
 Modules/_datetimemodule.c: 20 sites
 Modules/timemodule.c: 8 sites
 Modules/_decimal/_decimal.c: 24 sites
#20178
Derby #9: Convert 52 sites to Argument Clinic across 11 files
 Modules/_ctypes/_ctypes.c: 8 sites
 Modules/_ctypes/_ctypes_test.c: 1 sites
 Modules/_ctypes/callproc.c: 14 sites
 Modules/_ctypes/stgdict.c: 0 sites
 Modules/_curses_panel.c: 3 sites
 Modules/_sqlite/cache.c: 1 sites
 Modules/_sqlite/connection.c: 12 sites
 Modules/_sqlite/cursor.c: 5 sites
 Modules/_sqlite/microprotocols.c: 1 sites
 Modules/_sqlite/module.c: 6 sites
 Modules/_sqlite/row.c: 1 sites
#20179
Derby #10: Convert 50 sites to Argument Clinic across 4 files
 Modules/overlapped.c: 21 sites
 Modules/_ssl.c: 20 sites
 Objects/bytes_methods.c: 1 sites
 Objects/bytesobject.c: 8 sites
#20180
Derby #11: Convert 50 sites to Argument Clinic across 9 files
 Modules/_collectionsmodule.c: 4 sites
 Modules/itertoolsmodule.c: 11 sites
 Modules/_randommodule.c: 1 sites
 Objects/unicodeobject.c: 14 sites
 Modules/xxlimited.c: 4 sites
 Modules/xxmodule.c: 5 sites
 Modules/xxsubtype.c: 5 sites
 Objects/stringlib/find.h: 1 sites
 Objects/stringlib/transmogrify.h: 5 sites
#20181
Derby #12: Convert 50 sites to Argument Clinic across 4 files
 Objects/bytearrayobject.c: 13 sites
 Modules/parsermodule.c: 13 sites
 Modules/unicodedata.c: 12 sites
 Modules/readline.c: 12 sites
#20182
Derby #13: Convert 50 sites to Argument Clinic across 5 files
 Modules/signalmodule.c: 12 sites
 Modules/selectmodule.c: 12 sites
 Modules/zlibmodule.c: 11 sites
 Python/sysmodule.c: 10 sites
 Modules/_hashopenssl.c: 5 sites
#20183
Derby #14: Convert 50 sites to Argument Clinic across 6 files
 Modules/mmapmodule.c: 10 sites
 Modules/_localemodule.c: 10 sites
 Modules/zipimport.c: 9 sites
 Modules/ossaudiodev.c: 9 sites
 Modules/_testbuffer.c: 9 sites
 Modules/_struct.c: 3 sites
#20152
Derby #15: Convert 50 sites to Argument Clinic across 9 files
 Python/import.c: 8 sites
 Modules/cmathmodule.c: 8 sites
 Modules/cjkcodecs/multibytecodec.c: 8 sites
 Modules/arraymodule.c: 8 sites
 Modules/pyexpat.c: 7 sites
 Modules/fcntlmodule.c: 7 sites
 Modules/pwdmodule.c: 2 sites
 Modules/spwdmodule.c: 1 sites
 Modules/grpmodule.c: 1 sites
#20184
Derby #16: Convert 50 sites to Argument Clinic across 9 files
 Modules/faulthandler.c: 7 sites
 Modules/_pickle.c: 7 sites
 Modules/_lzmamodule.c: 7 sites
 Python/bltinmodule.c: 6 sites
 Modules/termios.c: 6 sites
 Modules/syslogmodule.c: 6 sites
 Modules/_dbmmodule.c: 4 sites
 Modules/_gdbmmodule.c: 2 sites
 Modules/_json.c: 5 sites
#20185
Derby #17: Convert 50 sites to Argument Clinic across 14 files
 Objects/typeobject.c: 5 sites
 Objects/longobject.c: 5 sites
 Objects/listobject.c: 5 sites
 Objects/floatobject.c: 4 sites
 Modules/resource.c: 4 sites
 Modules/_threadmodule.c: 4 sites
 Modules/_bz2module.c: 4 sites
 Modules/_bisectmodule.c: 4 sites
 Python/marshal.c: 3 sites
 Objects/exceptions.c: 3 sites
 Modules/nismodule.c: 3 sites
 Modules/gcmodule.c: 3 sites
 Python/_warnings.c: 2 sites
 Modules/_cryptmodule.c: 1 sites
#20186
Derby #18: Convert 31 sites to Argument Clinic across 23 files
 Objects/tupleobject.c: 2 sites
 Objects/memoryobject.c: 2 sites
 Objects/descrobject.c: 2 sites
 Objects/complexobject.c: 2 sites
 Modules/_operator.c: 2 sites
 Modules/_opcode.c: 2 sites
 Modules/_lsprof.c: 2 sites
 Modules/_heapqmodule.c: 2 sites
 Objects/weakrefobject.c: 1 sites
 Objects/structseq.c: 1 sites
 Objects/rangeobject.c: 1 sites
 Objects/object.c: 1 sites
 Objects/moduleobject.c: 1 sites
 Objects/funcobject.c: 1 sites
 Objects/fileobject.c: 1 sites
 Objects/enumobject.c: 1 sites
 Objects/codeobject.c: 1 sites
 Objects/boolobject.c: 1 sites
 Modules/symtablemodule.c: 1 sites
 Modules/mathmodule.c: 1 sites
 Modules/_tracemalloc.c: 1 sites
 Modules/_io/_iomodule.c: 1 sites
 Modules/_csv.c: 1 sites
msg208152 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014年01月15日 10:27
I want to warn against the converting of base objects (whose sources lie in Objects/). Their performance is critical and the converting can worsen it. Often they even don't use PyArg_ParseTuple due to performance reasons or because argument parsing is too special for PyArg_ParseTuple. I would suggest to postpone it until Argument Clinic will generate optimized parsing code.
The same is true for some modules. The performance of struct and operator is important. In any case these modules almost not use PyArg_ParseTuple and can be omitted.
msg208170 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2014年01月15日 15:42
Can you give me an example of performance degradation due to Argument Clinic? What percentage slowdown is common?
msg208171 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014年01月15日 16:07
I have no any numbers.
msg208172 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2014年01月15日 16:10
Until you have some numbers, your assertion has no weight and should be ignored.
(As Carl Sagan once wrote: "That which can be asserted without evidence can be dismissed without evidence." And as Donald Knuth wrote: "Premature optimization is the root of all evil.")
msg208686 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2014年01月21日 19:15
I've been working on converting unicode, bytes and bytearray, but their files are separated into Derby groups #10, #11 and #12. Could we create a new issue and move the relevant files to it?
The files I'd like to move:
From Derby #10 (issue20179):
 Objects/bytes_methods.c
 Objects/bytesobject.c
From Derby #11 (issue20180):
 Objects/unicodeobject.c
 Objects/stringlib/find.h
 Objects/stringlib/transmogrify.h
From Derby #12 (issue 20181):
 Objects/bytearrayobject.c: 13 sites
msg208687 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2014年01月21日 19:20
Never mind my previous comment; I realize it would create to much of a mess. Sorry for the noise.
History
Date User Action Args
2022年04月11日 14:57:56adminsetgithub: 64386
2018年06月14日 17:51:04BreamoreBoysetnosy: - BreamoreBoy
2018年06月14日 17:28:25taleinatsetnosy: - taleinat
2015年02月25日 15:24:15serhiy.storchakasetcomponents: + Argument Clinic
2014年07月10日 10:43:46berker.peksagsetnosy: - berker.peksag
2014年07月06日 22:30:26BreamoreBoysetnosy: + BreamoreBoy
2014年01月21日 19:20:44taleinatsetmessages: + msg208687
2014年01月21日 19:15:55taleinatsetnosy: + taleinat
messages: + msg208686
2014年01月15日 16:10:14larrysetmessages: + msg208172
2014年01月15日 16:07:32serhiy.storchakasetmessages: + msg208171
2014年01月15日 15:42:54larrysetmessages: + msg208170
2014年01月15日 10:27:54serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg208152
2014年01月08日 20:33:36larrysetmessages: + msg207697
2014年01月08日 01:54:16berker.peksagsetnosy: + berker.peksag
2014年01月08日 01:36:37r.david.murraysetdependencies: + Derby: Convert the audioop module to use Argument Clinic, Derby: Convert the binascii module to use Argument Clinic, Derby #15: Convert 50 sites to Argument Clinic across 9 files, Derby #7: Convert 51 sites to Argument Clinic across 3 files -> Derby: Convert the ElementTree module to use Argument Clinic, Derby: Convert the _tkinter module to use Argument Clinic, Derby #1: Convert 137 sites to Argument Clinic in Modules/posixmodule.c, Derby #2: Convert 115 sites to Argument Clinic in Modules/_cursesmodule.c, Derby #3: Convert 67 sites to Argument Clinic across 4 files (Windows), Derby #4: Convert 53 sites to Argument Clinic across 5 files, Derby #5: Convert 50 sites to Argument Clinic across 3 files, Derby #6: Convert 50 sites to Argument Clinic across 8 files, Derby #8: Convert 28 sites to Argument Clinic across 2 files, Derby #9: Convert 52 sites to Argument Clinic across 11 files, Derby #10: Convert 50 sites to Argument Clinic across 4 files, Derby #11: Convert 50 sites to Argument Clinic across 9 files, Derby #12: Convert 50 sites to Argument Clinic across 4 files, Derby #13: Convert 50 sites to Argument Clinic across 5 files, Derby #14: Convert 41 sites to Argument Clinic across 5 files, Derby #16: Convert 50 sites to Argument Clinic across 9 files, Derby #17: Convert 49 sites to Argument Clinic across 13 files, Derby #18: Convert 31 sites to Argument Clinic across 23 files
2014年01月08日 00:34:48larrysetmessages: + msg207650
2014年01月08日 00:33:08larrysetdependencies: + Derby: Convert the _sre module to use Argument Clinic, - Derby: Convert the audioop module to use Argument Clinic
2014年01月08日 00:33:00larrysetdependencies: + Derby: Convert the audioop module to use Argument Clinic
2014年01月08日 00:31:45larrycreate

AltStyle によって変換されたページ (->オリジナル) /