On 7 May 2018 at 19:17, Ivan Levkivskyi <levkivskyi@gmail.com> wrote:
These are all god points. I think it will be a good idea to take a little pause with syntactic additions and other "cognitively loaded" changes. On the other hand, I think it is fine to work on performance improvements (start-up time, import system etc.), internal APIs (like simplifying start-up sequence and maybe even C API), and polishing corner cases/simplifying existing constructs (like scoping in comprehensions that many people find confusing).

IOW, I think the PEP should describe precisely what is OK, and what is not OK during the moratorium.

Aye, for folks that haven't read it before, https://www.python.org/dev/peps/pep-3003/#details is worth a look as to the specifics of what a language moratorium entails.

While only 3.2 was specifically covered by the moratorium, from 3.2 through to 3.4, the only language level changes we made were to allow "yield from x" as a coroutine-friendly alternative to "for x in iterable: yield x", and to reinstate support for the "u" prefix on strings. The main builtin changes in that period were to rework the exception hierarchy to make it more descriptive of what *caused* an error, rather than where the error was raised, and those were deliberately designed to be almost entirely backwards compatible.

Since that last period of calm, 3.5 and 3.6 both introduced a broad selection of syntax changes, and even 3.7 has introduced a new __future__ statement to change the way annotations are handled. And as the current python-ideas discussion about accessing paths relative to __file__ shows, even core devs (i.e. me) are still digesting the full implications that pathlib and the os.fspath protocol may have for the recommendations that we should be giving to new (and existing!) developers that don't need to worry about Python 2.7 compatibility.

Cheers,
Nick.

--
Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia