These are good news. I think the new parser is indeed both simpler and more flexible - great!
-- Ivan On Thu, 2 Apr 2020 at 19:19, 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?)* > <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/> > _______________________________________________ > 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/772SIMSA6B7P43ICIHVWPGSB3OYP5SSP/ Code of Conduct: http://python.org/psf/codeofconduct/