Add current opcodes, as implemented by Alexandre
This commit is contained in:
parent
bf9b4e10d1
commit
a4b740aacb
33
pep-3154.txt
33
pep-3154.txt
|
@ -143,6 +143,39 @@ integer, which is wasteful. A specific opcode with a 1-byte length
|
|||
would make many pickles smaller.
|
||||
|
||||
|
||||
Summary of new opcodes
|
||||
======================
|
||||
|
||||
* ``SHORT_BINUNICODE``: push a utf8-encoded str object with a one-byte
|
||||
size prefix (therefore less than 256 bytes long).
|
||||
|
||||
* ``BINUNICODE8``: push a utf8-encoded str object with a eight-byte
|
||||
size prefix (for strings longer than 2**32 bytes, which therefore cannot
|
||||
be serialized using ``BINUNICODE``).
|
||||
|
||||
* ``BINBYTES8``: push a bytes object with a eight-byte size prefix
|
||||
(for bytes objects longer than 2**32 bytes, which therefore cannot be
|
||||
serialized using ``BINBYTES``).
|
||||
|
||||
* ``EMPTY_SET``: push a new empty set object on the stack.
|
||||
|
||||
* ``ADDITEMS``: add the topmost stack items to the set (to be used with
|
||||
``EMPTY_SET``).
|
||||
|
||||
* ``EMPTY_FROZENSET``: push a new empty frozenset object on the stack.
|
||||
|
||||
* ``FROZENSET``: create a frozenset object from the topmost stack items,
|
||||
and push it on the stack.
|
||||
|
||||
* ``NEWOBJ_EX``: take the three topmost stack items ``cls``, ``args``
|
||||
and ``kwargs``, and push the result of calling
|
||||
``cls.__new__(*args, **kwargs)``.
|
||||
|
||||
* ``STACK_GLOBAL``: take the two topmost stack items ``module_name`` and
|
||||
``qualname``, and push the result of looking up the dotted ``qualname``
|
||||
in the module named ``module_name``.
|
||||
|
||||
|
||||
Alternative ideas
|
||||
=================
|
||||
|
||||
|
|
Loading…
Reference in New Issue