So, Prism is out and it's:
- correct
- comes out of the box with MRI (and IIRC with other Ruby implementations)
- faster (I think on TruffleRuby/JRuby it's absurdly faster because it doesn't run in interpreted mode like it does with
parser)
- always up-to-date
- written in a language with perfect interop capabilities
On the other side backporting changes to parser becomes more and more difficult. MRI doesn't use yacc/bison anymore, instead there's Lrama that is also an LALR(1) parser generator but it has more "syntax sugar" that Racc doesn't have, and so the grammar will diverge more and more over time. And if (or once) parse.y is deprecated it will be even more complex to "translate" grammar changes.
I personally believe that parser should be soft-deprecated. What do you guys think? @kddnewton @bbatsov @koic @palkan @marcandre @mbj
And if you agree do you see anything we could do to parser to make transition easier?
So, Prism is out and it's:
parser)On the other side backporting changes to
parserbecomes more and more difficult. MRI doesn't use yacc/bison anymore, instead there's Lrama that is also an LALR(1) parser generator but it has more "syntax sugar" that Racc doesn't have, and so the grammar will diverge more and more over time. And if (or once)parse.yis deprecated it will be even more complex to "translate" grammar changes.I personally believe that
parsershould be soft-deprecated. What do you guys think? @kddnewton @bbatsov @koic @palkan @marcandre @mbjAnd if you agree do you see anything we could do to
parserto make transition easier?