Message182289
| Author |
serhiy.storchaka |
| Recipients |
Philipp.Mölders, Ramchandra Apte, pitrou, r.david.murray, serhiy.storchaka |
| Date |
2013年02月17日.22:27:33 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1361140053.47.0.872513736116.issue12596@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Here is a minimal reproducer. Results:
pickle.dumps('spam', 2)
0: \x80 PROTO 2
2: U SHORT_BINSTRING 'spam'
8: q BINPUT 0
10: . STOP
highest protocol among opcodes = 2
pickle.dumps('spam1'[:-1], 2)
0: \x80 PROTO 2
2: U SHORT_BINSTRING 'spam'
8: q BINPUT 0
10: . STOP
highest protocol among opcodes = 2
cPickle.dumps('spam', 2)
0: \x80 PROTO 2
2: U SHORT_BINSTRING 'spam'
8: q BINPUT 1
10: . STOP
highest protocol among opcodes = 2
cPickle.dumps('spam1'[:-1], 2)
0: \x80 PROTO 2
2: U SHORT_BINSTRING 'spam'
8: . STOP
highest protocol among opcodes = 2
The difference between 3rd and 4th examples is "BINPUT 1". In the last case the string has refcount=1 and BINPUT doesn't emitted due to optimization. Note that Python implementation emits BINPUT with different number. |
|