Wonderful news! I'm really excited to see what is coming alongside this flexible parser.
On Thu, Apr 2, 2020 at 9:16 PM Guido van Rossum <gu...@python.org> wrote: > > Since last fall's core sprint in London, Pablo Galindo Salgado, Lysandros > Nikolaou and myself have been working on a new parser for CPython. We are now > far enough along that we present a PEP we've written: > > https://www.python.org/dev/peps/pep-0617/ > > Hopefully the PEP speaks for itself. We are hoping for a speedy resolution so > we can land the code we've written before 3.9 beta 1. > > If people insist I can post a copy of the entire PEP here on the list, but > since a lot of it is just background information on the old LL(1) and the new > PEG parsing algorithms, I figure I'd spare everyone the need of reading > through that. Below is a copy of the most relevant section from the PEP. I'd > also like to point out the section on performance (which you can find through > the above link) -- basically performance is on a par with that of the old > parser. > > ============== > Migration plan > ============== > > This section describes the migration plan when porting to the new PEG-based > parser > if this PEP is accepted. The migration will be executed in a series of steps > that allow > initially to fallback to the previous parser if needed: > > 1. Before Python 3.9 beta 1, include the new PEG-based parser machinery in > CPython > with a command-line flag and environment variable that allows switching > between > the new and the old parsers together with explicit APIs that allow > invoking the > new and the old parsers independently. At this step, all Python APIs like > ``ast.parse`` > and ``compile`` will use the parser set by the flags or the environment > variable and > the default parser will be the current parser. > > 2. After Python 3.9 Beta 1 the default parser will be the new parser. > > 3. Between Python 3.9 and Python 3.10, the old parser and related code (like > the > "parser" module) will be kept until a new Python release happens (Python > 3.10). In > the meanwhile and until the old parser is removed, **no new Python Grammar > addition will be added that requires the peg parser**. This means that > the grammar > will be kept LL(1) until the old parser is removed. > > 4. In Python 3.10, remove the old parser, the command-line flag, the > environment > variable and the "parser" module and related code. > > -- > --Guido van Rossum (python.org/~guido) > Pronouns: he/him (why is my pronoun here?) > _______________________________________________ > 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/HOZ2RI3FXUEMAT4XAX4UHFN4PKG5J5GR/ > Code of Conduct: http://python.org/psf/codeofconduct/ _______________________________________________ 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/PIR74ZYSBM46TW3OZYGPFEBV4I4BZ5MN/ Code of Conduct: http://python.org/psf/codeofconduct/