On Wed, Oct 3, 2018 at 7:09 PM Anders Hovmöller <bo...@killingar.net> wrote:
>
>
> >> I don't really think accidents of implementation are different from hard 
> >> requirements in Python, as it applies to alternative implementations. In 
> >> practice if it deviates from CPython then it's broken. There is no 
> >> language spec, there is only CPython. This has been the experience and 
> >> approach of PyPy as far as I've understood it after having followed their 
> >> blog over the years.
> >>
> >
> > Definitely not true. There have been times when other implementors
> > have come to python-dev and said, hey, is this part of the spec or is
> > it an implementation detail? And the answer determines whether they
> > care about that or not. For just a few examples:
> >
> > 1) Reference counting vs nondeterministic garbage collection
> > 2) O(1) indexing/slicing of Unicode strings
> > 3) "\N{...}" string escapes (okay, that's standardized, but optional)
> > 4) Reuse of id() values
> > 5) The "slots" mechanism for dunder method lookup
> >
> > The language spec determines, in some cases, that a CPython
> > implementation detail has been promoted to standard. More often, it
> > determines that other Pythons are permitted to behave differently.
>
> Sometimes they will come away from this list thinking they don't care but 
> then their users will report bugs over and over again and they'll just have 
> to do it anyway. You probably won't hear about most of those. Trees that fall 
> in the forest when no one is there do in fact make a sound.
>

And sometimes, people all over the world learn to write "with
open(...) as f:" instead of just letting f expire. There IS a language
spec, and pretending there isn't one doesn't change that.

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to