• Kirill Smelkov's avatar
    Split "Protocol 1" opcodes out from "Protocol 0" opcodes · da584909
    Kirill Smelkov authored
    We already keep "Protocol 2" and "Protocol 4" opcodes separately, and
    for a good reason - it must be clear for a person just by looking at
    opcodes definition from which protocol version an opcode comes. However
    at present Protocol 0 and Protocol 1 opcodes come all intermixed with
    each other.
    
    In the upcoming patches we'll be teaching Encoder to take desired pickle
    protocol version into account (similarly to how pickle.dumps accepts desired
    protocol version in Python), and then the encoder will have to use
    different opcodes for different versions: for example if user asks to
    produce "protocol 0" pickle stream it will be invalid to use "protocol
    1" opcodes - e.g. BININT, EMPTY_TUPLE, etc.
    
    So I went through
    
    	https://github.com/python/cpython/blob/master/Lib/pickletools.py
    
    for each opcode searching its protocol version and separated the opcodes
    with proto=1 from protocol 0 opcodes.
    da584909
ogorek.go 25.4 KB