Message204478
| 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? |
|