• Victor Stinner's avatar
    Issue #16147: Rewrite PyUnicode_FromFormatV() to use _PyUnicodeWriter API · e215d960
    Victor Stinner yazdı
     * Simplify the code: replace 4 steps with one unique step using the
       _PyUnicodeWriter API. PyUnicode_Format() has the same design. It avoids to
       store intermediate results which require to allocate an array of pointers on
       the heap.
     * Use the _PyUnicodeWriter API for speed (and its convinient API):
       overallocate the buffer to reduce the number of "realloc()"
     * Implement "width" and "precision" in Python, don't rely on sprintf(). It
       avoids to need of a temporary buffer allocated on the heap: only use a small
       buffer allocated in the stack.
     * Add _PyUnicodeWriter_WriteCstr() function
     * Split PyUnicode_FromFormatV() into two functions: add
       unicode_fromformat_arg().
     * Inline parse_format_flags(): the format of an argument is now only parsed
       once, it's no more needed to have a subfunction.
     * Optimize PyUnicode_FromFormatV() for characters between two "%" arguments:
       search the next "%" and copy the substring in one chunk, instead of copying
       character per character.
    e215d960
Adı
Son kayıt (commit)
Son güncelleme
..
Python-ast.h Loading commit data...
Python.h Loading commit data...
abstract.h Loading commit data...
accu.h Loading commit data...
asdl.h Loading commit data...
ast.h Loading commit data...
bitset.h Loading commit data...
bltinmodule.h Loading commit data...
boolobject.h Loading commit data...
bytearrayobject.h Loading commit data...
bytes_methods.h Loading commit data...
bytesobject.h Loading commit data...
cellobject.h Loading commit data...
ceval.h Loading commit data...
classobject.h Loading commit data...
code.h Loading commit data...
codecs.h Loading commit data...
compile.h Loading commit data...
complexobject.h Loading commit data...
datetime.h Loading commit data...
descrobject.h Loading commit data...
dictobject.h Loading commit data...
dtoa.h Loading commit data...
dynamic_annotations.h Loading commit data...
enumobject.h Loading commit data...
errcode.h Loading commit data...
eval.h Loading commit data...
fileobject.h Loading commit data...
fileutils.h Loading commit data...
floatobject.h Loading commit data...
frameobject.h Loading commit data...
funcobject.h Loading commit data...
genobject.h Loading commit data...
graminit.h Loading commit data...
grammar.h Loading commit data...
import.h Loading commit data...
intrcheck.h Loading commit data...
iterobject.h Loading commit data...
listobject.h Loading commit data...
longintrepr.h Loading commit data...
longobject.h Loading commit data...
marshal.h Loading commit data...
memoryobject.h Loading commit data...
metagrammar.h Loading commit data...
methodobject.h Loading commit data...
modsupport.h Loading commit data...
moduleobject.h Loading commit data...
namespaceobject.h Loading commit data...
node.h Loading commit data...
object.h Loading commit data...
objimpl.h Loading commit data...
opcode.h Loading commit data...
osdefs.h Loading commit data...
parsetok.h Loading commit data...
patchlevel.h Loading commit data...
pgen.h Loading commit data...
pgenheaders.h Loading commit data...
py_curses.h Loading commit data...
pyarena.h Loading commit data...
pyatomic.h Loading commit data...
pycapsule.h Loading commit data...
pyctype.h Loading commit data...
pydebug.h Loading commit data...
pyerrors.h Loading commit data...
pyexpat.h Loading commit data...
pyfpe.h Loading commit data...
pygetopt.h Loading commit data...
pymacconfig.h Loading commit data...
pymacro.h Loading commit data...
pymath.h Loading commit data...
pymem.h Loading commit data...
pyport.h Loading commit data...
pystate.h Loading commit data...
pystrcmp.h Loading commit data...
pystrtod.h Loading commit data...
pythonrun.h Loading commit data...
pythread.h Loading commit data...
pytime.h Loading commit data...
rangeobject.h Loading commit data...
setobject.h Loading commit data...
sliceobject.h Loading commit data...
structmember.h Loading commit data...
structseq.h Loading commit data...
symtable.h Loading commit data...
sysmodule.h Loading commit data...
token.h Loading commit data...
traceback.h Loading commit data...
tupleobject.h Loading commit data...
typeslots.h Loading commit data...
ucnhash.h Loading commit data...
unicodeobject.h Loading commit data...
warnings.h Loading commit data...
weakrefobject.h Loading commit data...