Message182289
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. |
|
Date |
User |
Action |
Args |
2013-02-17 22:27:33 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, pitrou, r.david.murray, Philipp.Mölders, Ramchandra Apte |
2013-02-17 22:27:33 | serhiy.storchaka | set | messageid: <1361140053.47.0.872513736116.issue12596@psf.upfronthosting.co.za> |
2013-02-17 22:27:33 | serhiy.storchaka | link | issue12596 messages |
2013-02-17 22:27:33 | serhiy.storchaka | create | |
|