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 serhiy.storchaka
Recipients Arfrever, alexandre.vassalotti, larry, pitrou, serhiy.storchaka, vstinner
Date 2013-11-26.14:46:09
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <2587286.68As1hJAdK@raxxla>
In-reply-to <1385470710.49.0.400622099196.issue19780@psf.upfronthosting.co.za>
Content
> Bad wording perhaps, but:
> 
> +                    if not final:
> +                        n += 9  # next frame header
>                      write = self.file_write
>                      write(FRAME)
>                      write(pack("<Q", n))
> 
> does change how the frame length is calculated and emitted in the pickle
> stream.

Of course (as any optimizer). It produces more optimal pickled data which can 
be parsed by existing unpicklers.

> This is not compliant with how the PEP defines it (the frame size doesn't
> include the header of the next frame):
> http://www.python.org/dev/peps/pep-3154/#framing

"How the pickler decides to partition the pickle stream into frames is an 
implementation detail."

> > All tests are passed with this optimization
> 
> Well, perhaps there are not enough tests :-) But the protocol is
> standardized so that other people can implement it. The reference
> implementation can't do something different than the PEP does.

Could you write tests which exposes behavior difference without sticking 
implementation details?
History
Date User Action Args
2013-11-26 14:46:09serhiy.storchakasetrecipients: + serhiy.storchaka, pitrou, vstinner, larry, alexandre.vassalotti, Arfrever
2013-11-26 14:46:09serhiy.storchakalinkissue19780 messages
2013-11-26 14:46:09serhiy.storchakacreate