On Tue, 6 Apr 2021 at 06:15, Stephen J. Turnbull <turnbull.stephen...@u.tsukuba.ac.jp> wrote: > > Paul Moore writes: > > > It *is* merged and publicly released - it's in the latest 3.10 > > alpha. > > Merged, yes, but in my terminology alphas, betas, and rcs aren't > "public releases", they're merely "accessible to the public". (I'm > happy to adopt your terminology when you're in the conversation, I'm > just explaining what I meant in my previous post.)
*shrug* It's (in my experience) a continuum - it's not in a release yet, but it is available via an installer, with a (pre-release) version number. But I get what you're saying and don't disagree, to be honest. I see the discrepancy as mostly being because we're trying to use (imprecise) informal language to pin down precise nuances. The main point I was making is that it's merged into the CPython source code at this stage, and available for people to download and experiment with, which is something I was unclear about. > > The fact that the implementation kept getting referred to as the > > "reference implementation" confused me into thinking it hadn't been > > released yet, and that simply isn't true. Calling it "the > > implementation" avoids that confusion, IMO. > > The only thing I understand in that paragraph is "that [it hadn't been > released yet] simply isn't true", which is true enough on your > definition of "released". But why does "reference implementation" > connote "unreleased"? That seems to be quite different from Mark's > usage. In my experience, people developing PEPs will sometimes provide what gets referred to as a "reference implementation" of the proposal, which is a PR or equivalent that people can apply and try out if they want to see how the proposal works in practice. That "reference implementation" is generally seen as part of the *proposal*, even if it then becomes the final merged code as well. Once it's released, it tends to no longer get called the *reference* implementation, as it's now just the implementation (in CPython) of the feature. PEP 1 uses this terminology, as well - "Standards Track PEPs consist of two parts, a design document and a reference implementation" and "Once a PEP has been accepted, the reference implementation must be completed. When the reference implementation is complete and incorporated into the main source code repository, the status will be changed to "Final"". PEP 635 follows this terminology, with a "Reference implementation" section linking to the development branch for the feature. To put this back into the context of this discussion, when Mark was referring to the "reference implementation" it made me think that maybe we were talking about that development branch, and that the code for the pattern matching PEP hadn't yet been merged to the main branch, which is why we were still iterating over implementation details. And that led me to think that they'd better get the discussion resolved soon, as they risk missing the 3.10 deadline if things drag on. Which *isn't* the case, and if I'd been following things more closely I'd have known that, but avoiding the term "reference implementation" for the merged change would also have spared my confusion. > I don't have an objection to your usage, I'd just like us all to > converge on a set of terms so that Brandt has a compact way of saying > "as far as I know, for the specification under discussion this > implementation is completely accurate and folks are welcome to refer > to the PEP, to the code, or to divergences as seems appropriate to > them". I'm not sure if that's exactly what Brandt meant by "reference > implementation", but that's how I understood it. Agreed, a common understanding is the main thing here. And as I'm not an active participant in the discussion, and I now understand the situation, my views shouldn't have too much weight in deciding what the best terminology is. Paul _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/IR6LUUBZ5URVBPFFRHRJJXC33OK3QAYE/ Code of Conduct: http://python.org/psf/codeofconduct/