[Python-Dev] Why is pickle.DEFAULT_PROTOCOL still 3?

Antoine Pitrou solipsis at pitrou.net
Tue Apr 3 04:01:09 EDT 2018


On Mon, 2 Apr 2018 15:57:11 -0700
Lukasz Langa <lukasz at langa.pl> wrote:
> > On Apr 2, 2018, at 2:13 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> > 
> > On Mon, 2 Apr 2018 13:48:46 -0700
> > Lukasz Langa <lukasz at langa.pl> wrote:  
> >> Pickle protocol version 4.0 was originally defined back in PEP 3154 and shipped as part of Python 3.4 back in 2011. Yet it's still not the default.  
> > 
> > Because we want pickles produced with the default to be readable by
> > earlier Python 3 versions.
> > (the same reason protocol 0 stayed the default throughout the Python 2
> > lifetime)  
> 
> Alright, so that means we can easily do this for Python 3.8, right? I mean, following Christian's logic, Python 3.3 is already dead, with its final release done in February 2016 and support dropped in September 2017 per PEP 398.
> 
> I think we need to get past thinking about "Python 2" vs. "Python 3". This frame of mind creates space for another mythical release of Python that will break all the compatibilities, something we promised not to do. A moving backward compatibility window that includes the last release still under security fixes seems like a good new framework for this.
> 
> What do you think?

That sounds reasonable to me.  Let's see whether other people disagree.

Regards

Antoine.


More information about the Python-Dev mailing list