Issue 23403: Use pickle protocol 4 by default? (original) (raw)

Issue23403

Created on 2015-02-06 21:28 by serhiy.storchaka, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 6355 merged lukasz.langa,2018-04-02 23:19
PR 6355 merged lukasz.langa,2018-04-02 23:19
PR 6491 merged lukasz.langa,2018-04-16 23:25
Messages (15)
msg235498 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-02-06 21:28
Why not use pickle protocol 4 by default? It allows to pickle some objects which are not pickleable with lower protocols and is more efficient.
msg235499 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2015-02-06 21:43
Because pickles will not be compatible with Python < 3.4 anymore. People who want maximum efficiency without compatibility can pass the right protocol manually.
msg235501 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-02-06 22:12
Multiprocessing uses default protocol and there is no simple (without hacking the stdlib) way to pass the right protocol manually.
msg235502 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2015-02-06 22:19
> Multiprocessing uses default protocol AFAIK, this is so you can interact with processes using another version of Python.
msg235504 - (view) Author: Josh Rosenberg (josh.r) * (Python triager) Date: 2015-02-06 22:43
multiprocessing spawns the other processes itself from the same executable used to launch the main process. It's not subprocess. How would a different version of Python get involved?
msg235507 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2015-02-07 01:39
It is possible to have independent processes communicate together, although that's not the most widely-used feature. See: https://docs.python.org/3/library/multiprocessing.html#multiprocessing-listeners-clients Also: https://docs.python.org/3/library/multiprocessing.html#managers
msg251858 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-09-29 13:40
Can't we "negociate" the protocol automatically?
msg275440 - (view) Author: Davin Potts (davin) * (Python committer) Date: 2016-09-09 21:03
Closing in deference to the enhancement described in .
msg314841 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2018-04-02 23:07
Now that Python 3.3 is dead and 3.4 is soon to follow, it's safe to bump DEFAULT_PROTOCOL to 4.
msg314842 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018-04-03 00:24
Should we bump the pickle protocol for shelve?
msg314927 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2018-04-04 06:06
New changeset c51d8c9ba6211d77db639487501f89aa9b4bcbb1 by Łukasz Langa in branch 'master': bpo-23403: Bump pickle.DEFAULT_PROTOCOL to 4 (#6355) https://github.com/python/cpython/commit/c51d8c9ba6211d77db639487501f89aa9b4bcbb1
msg315075 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2018-04-07 22:17
Is there something left to be done here?
msg315080 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018-04-08 06:04
Shelve still uses protocol 3 by default. Should it be bumped too?
msg315117 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2018-04-09 08:54
> Shelve still uses protocol 3 by default. Should it be bumped too? That sounds reasonable. Perhaps open a separate issue for it?
msg322282 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018-07-24 09:17
Opened for shelve.
History
Date User Action Args
2022-04-11 14:58:12 admin set github: 67592
2018-07-24 09:17:14 serhiy.storchaka set keywords:patch, patchstatus: open -> closedresolution: fixedstage: patch review -> resolved
2018-07-24 09:17:01 serhiy.storchaka set keywords:patch, patchmessages: +
2018-04-16 23:25:29 lukasz.langa set pull_requests: + <pull%5Frequest6189>
2018-04-09 08:54:43 pitrou set keywords:patch, patchmessages: +
2018-04-08 06:04:09 serhiy.storchaka set keywords:patch, patchmessages: +
2018-04-07 22:17:30 pitrou set keywords:patch, patchmessages: +
2018-04-04 06:06:56 lukasz.langa set messages: +
2018-04-03 01:08:54 serhiy.storchaka set keywords:patch, patchdependencies: + Repeated Pickler.dump() doesn't reset the state in the C implementation of picklesuperseder: parameterize what serialization is used in multiprocessing ->
2018-04-03 00:24:39 serhiy.storchaka set keywords:patch, patchmessages: +
2018-04-02 23:19:21 lukasz.langa set keywords: + patchstage: patch reviewpull_requests: + <pull%5Frequest6065>
2018-04-02 23:19:19 lukasz.langa set keywords: + patchstage: (no value)pull_requests: + <pull%5Frequest6064>
2018-04-02 23:07:05 lukasz.langa set versions: + Python 3.8, - Python 3.5
2018-04-02 23:07:01 lukasz.langa set status: closed -> openassignee: lukasz.langaresolution: duplicate -> (no value)messages: +
2018-04-02 22:38:27 serhiy.storchaka set nosy: + lukasz.langa
2016-09-09 21:04:52 davin set superseder: parameterize what serialization is used in multiprocessing
2016-09-09 21:03:32 davin set status: open -> closednosy: + davinmessages: + resolution: duplicate
2015-09-29 13:40:30 vstinner set nosy: + vstinnermessages: +
2015-02-07 04:15:31 Arfrever set nosy: + Arfrever
2015-02-07 01:39:40 pitrou set messages: +
2015-02-06 22:43:28 josh.r set nosy: + josh.rmessages: +
2015-02-06 22:19:14 pitrou set nosy: + sbtmessages: +
2015-02-06 22:12:31 serhiy.storchaka set messages: +
2015-02-06 21:43:51 pitrou set messages: +
2015-02-06 21:28:18 serhiy.storchaka create