* [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism
@ 2024-06-07 16:42 kddnewton (Kevin Newton) via ruby-core
2024-06-07 20:34 ` [ruby-core:118246] " hsbt (Hiroshi SHIBATA) via ruby-core
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-06-07 16:42 UTC (permalink / raw)
To: ruby-core; +Cc: kddnewton (Kevin Newton)
Issue #20564 has been reported by kddnewton (Kevin Newton).
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:118246] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
@ 2024-06-07 20:34 ` hsbt (Hiroshi SHIBATA) via ruby-core
2024-06-07 20:40 ` [ruby-core:118247] " kddnewton (Kevin Newton) via ruby-core
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: hsbt (Hiroshi SHIBATA) via ruby-core @ 2024-06-07 20:34 UTC (permalink / raw)
To: ruby-core; +Cc: hsbt (Hiroshi SHIBATA)
Issue #20564 has been updated by hsbt (Hiroshi SHIBATA).
>Prism now passes all Ruby tests and specs.
No, https://github.com/ruby/ruby/blob/master/.github/workflows/prism.yml#L89 is not testing with `make test-syntax-suggest`, `make test-bundled-gems` and `make test-bundler-parallel`. At least, we should pass them to keep CI green. You may use `make check` that includes `make test-syntax-suggest` or `make exam` that is "all" test of Ruby test suite.
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-108744
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:118247] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
2024-06-07 20:34 ` [ruby-core:118246] " hsbt (Hiroshi SHIBATA) via ruby-core
@ 2024-06-07 20:40 ` kddnewton (Kevin Newton) via ruby-core
2024-06-08 2:33 ` [ruby-core:118249] " kddnewton (Kevin Newton) via ruby-core
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-06-07 20:40 UTC (permalink / raw)
To: ruby-core; +Cc: kddnewton (Kevin Newton)
Issue #20564 has been updated by kddnewton (Kevin Newton).
Ah, thank you @hsbt. We of course will not merge this until we are sure it is passing 100% of the tests. I think we will likely discover other things as well when we switch the default (before we merge), which is of course what we're looking for!
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-108745
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:118249] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
2024-06-07 20:34 ` [ruby-core:118246] " hsbt (Hiroshi SHIBATA) via ruby-core
2024-06-07 20:40 ` [ruby-core:118247] " kddnewton (Kevin Newton) via ruby-core
@ 2024-06-08 2:33 ` kddnewton (Kevin Newton) via ruby-core
2024-06-13 4:28 ` [ruby-core:118311] " matz (Yukihiro Matsumoto) via ruby-core
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-06-08 2:33 UTC (permalink / raw)
To: ruby-core; +Cc: kddnewton (Kevin Newton)
Issue #20564 has been updated by kddnewton (Kevin Newton).
Happily I was able to turn all of those tests on with minimal changes. I'll clean this PR up next week, but all should be well with the additional tests (https://github.com/ruby/ruby/pull/10939).
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-108747
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:118311] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (2 preceding siblings ...)
2024-06-08 2:33 ` [ruby-core:118249] " kddnewton (Kevin Newton) via ruby-core
@ 2024-06-13 4:28 ` matz (Yukihiro Matsumoto) via ruby-core
2024-06-25 2:29 ` [ruby-core:118386] " hsbt (Hiroshi SHIBATA) via ruby-core
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: matz (Yukihiro Matsumoto) via ruby-core @ 2024-06-13 4:28 UTC (permalink / raw)
To: ruby-core; +Cc: matz (Yukihiro Matsumoto)
Issue #20564 has been updated by matz (Yukihiro Matsumoto).
Prism needs quality and for that it needs to be experimented with on a wider scale. For that reason, I agree with making Prism the default in previews (when Prism passes all tests). Whether it will eventually become the default in 3.4 depends on quality.
Matz.
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-108819
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:118386] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (3 preceding siblings ...)
2024-06-13 4:28 ` [ruby-core:118311] " matz (Yukihiro Matsumoto) via ruby-core
@ 2024-06-25 2:29 ` hsbt (Hiroshi SHIBATA) via ruby-core
2024-09-12 17:43 ` [ruby-core:119141] " kddnewton (Kevin Newton) via ruby-core
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: hsbt (Hiroshi SHIBATA) via ruby-core @ 2024-06-25 2:29 UTC (permalink / raw)
To: ruby-core; +Cc: hsbt (Hiroshi SHIBATA)
Issue #20564 has been updated by hsbt (Hiroshi SHIBATA).
Is there the criteria for reverting this until Ruby 3.4 release?
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-108899
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:119141] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (4 preceding siblings ...)
2024-06-25 2:29 ` [ruby-core:118386] " hsbt (Hiroshi SHIBATA) via ruby-core
@ 2024-09-12 17:43 ` kddnewton (Kevin Newton) via ruby-core
2024-09-12 21:36 ` [ruby-core:119149] " hsbt (Hiroshi SHIBATA) via ruby-core
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-09-12 17:43 UTC (permalink / raw)
To: ruby-core; +Cc: kddnewton (Kevin Newton)
Issue #20564 has been updated by kddnewton (Kevin Newton).
Status changed from Open to Closed
Per this ticket, I have merged https://github.com/ruby/ruby/pull/11497 to switch the default parser on master. The caveats in this ticket still apply, and I will be working on those next.
As a part of this PR I have added a new GitHub actions workflow to test `--parser=parse.y`. This will ensure we do not accidentally introduce regressions in the parse.y parser/compiler pair. I have additionally introduced some test exclusions for this parser, as there are a couple of tests that are asserting against `RUBY_DESCRIPTION` that need to get updated. We're working on getting those merged as soon as possible.
In the meantime, if users are testing against Ruby master (like Shopify) then they will now be able to test Prism's parser/compiler pair, so hopefully we can surface bugs much more quickly and far out enough from the 3.4 release.
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-109728
* Author: kddnewton (Kevin Newton)
* Status: Closed
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:119149] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (5 preceding siblings ...)
2024-09-12 17:43 ` [ruby-core:119141] " kddnewton (Kevin Newton) via ruby-core
@ 2024-09-12 21:36 ` hsbt (Hiroshi SHIBATA) via ruby-core
2024-12-24 7:30 ` [ruby-core:120392] " naruse (Yui NARUSE) via ruby-core
2024-12-24 14:41 ` [ruby-core:120396] " kddnewton (Kevin Newton) via ruby-core
8 siblings, 0 replies; 10+ messages in thread
From: hsbt (Hiroshi SHIBATA) via ruby-core @ 2024-09-12 21:36 UTC (permalink / raw)
To: ruby-core; +Cc: hsbt (Hiroshi SHIBATA)
Issue #20564 has been updated by hsbt (Hiroshi SHIBATA).
Status changed from Closed to Open
>Is there the criteria for reverting this until Ruby 3.4 release?
I'm still waiting this answer.
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-109736
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:120392] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (6 preceding siblings ...)
2024-09-12 21:36 ` [ruby-core:119149] " hsbt (Hiroshi SHIBATA) via ruby-core
@ 2024-12-24 7:30 ` naruse (Yui NARUSE) via ruby-core
2024-12-24 14:41 ` [ruby-core:120396] " kddnewton (Kevin Newton) via ruby-core
8 siblings, 0 replies; 10+ messages in thread
From: naruse (Yui NARUSE) via ruby-core @ 2024-12-24 7:30 UTC (permalink / raw)
To: ruby-core; +Cc: naruse (Yui NARUSE)
Issue #20564 has been updated by naruse (Yui NARUSE).
I heard Kevin left Shopify. I'm wondering who owns Prism related components.
As far as I understand, there are Prism Parser, Prism Compiler, and Prism gem.
And I'm also interested in the strategy of Prism gem.
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-111173
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* [ruby-core:120396] [Ruby master Feature#20564] Switch default parser to Prism
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
` (7 preceding siblings ...)
2024-12-24 7:30 ` [ruby-core:120392] " naruse (Yui NARUSE) via ruby-core
@ 2024-12-24 14:41 ` kddnewton (Kevin Newton) via ruby-core
8 siblings, 0 replies; 10+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-12-24 14:41 UTC (permalink / raw)
To: ruby-core; +Cc: kddnewton (Kevin Newton)
Issue #20564 has been updated by kddnewton (Kevin Newton).
While I no longer work at Shopify for my day job, I am still actively contributing to all of the Prism-related components and intend to continue doing so. In addition to me, Aaron and Eileen are both listed as maintainers, and Peter and Matt both contribute regularly. I am not worried about the continued development of Prism.
What would you like to know about the strategy of the Prism gem?
----------------------------------------
Feature #20564: Switch default parser to Prism
https://bugs.ruby-lang.org/issues/20564#change-111177
* Author: kddnewton (Kevin Newton)
* Status: Open
----------------------------------------
This issue is to propose switching the default parser for Ruby to Prism on the master branch. The main goal is to get this default into both master and the next preview so that the community has plenty of time to test before the eventual 3.4 release.
Matz has indicated that the final decision about the default parser for Ruby 3.4 will be made later in the year. Decisions about the default parser for Ruby 3.5+ and the relationship between Prism, lrama, parse.y, etc. will also be made at a later time.
## Background
For some background on the Prism project itself, here are a couple of links in chronological order that you can read:
* https://bugs.ruby-lang.org/issues/19741
* https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/
* https://kddnewton.com/2024/01/23/prism.html
* https://railsatscale.com/2024-04-16-prism-in-2024/
## Status
Prism now passes all Ruby tests and specs. Internally at Shopify, it also passes our Core monolith's CI, which is a large and complex Rails application. We are confident that it is ready for production use. External to CRuby, Prism has already been adopted extensively around the ecosystem, including but not limited to:
* [JRuby](https://github.com/jruby/jruby/pull/8103) (via Java)
* [TruffleRuby](https://github.com/oracle/truffleruby/issues/3117) (via Java)
* [Natalie](https://github.com/natalie-lang/natalie/pull/1213) (via C++ and Ruby)
* [Opal](https://github.com/opal/opal/pull/2642) (via Ruby and WASM)
* [repl_type_completor](https://github.com/ruby/repl_type_completor)
* [rubocop](https://docs.rubocop.org/rubocop/configuration.html#setting-the-parser-engine) (via parser translator)
* [ruby-lsp](https://github.com/Shopify/ruby-lsp)
* [packwerk](https://github.com/Shopify/packwerk/pull/388) (via parser translator)
Fortunately with the community adoption, we have been able to find many edge cases and bugs that have been fixed. Thank you so much to everyone who has tried, used, reported problems with, and improved Prism in the last couple of years. We would not have hit this milestone without this community involvement.
## Caveats
While Prism correctly accepts and parses all valid Ruby syntax, there are still a number of cases where it does not reject invalid syntax as it should. We are currently working on these cases, and we are confident that we can eliminate them before the next preview release. You can find them listed here: https://github.com/ruby/prism/issues?q=is%3Aopen+is%3Aissue+label%3Ainvalid-syntax. This is our top priority right now, and I anticipate these being resolved quickly.
The other caveat is unknown unknowns: bugs or syntax issues that we have yet to discover. At Shopify we are currently taking numerous steps to mitigate this risk, including:
* Prism currently passes all Ruby tests and specs, and will continue to going forward. The tests and specs are extensive, and we are confident this gets us almost all of the way there.
* Grammar-based fuzzing to ensure we handle all possible syntax variations (both valid and invalid). As an example, that recently led to the discovery that the current compiler was segfaulting on safe navigation in for loops (https://bugs.ruby-lang.org/issues/20468). It has also found several memory leaks that have been fixed.
* Mutation testing of existing source files (by adding and deleting random bytes) to find additional edge cases.
Our goal is 100% compatibility, and we believe this is achievable through the above techniques and others. The goal of this proposal is to allow more companies to test their codebase against Prism, and to make this easier. We believe that we can sort out the remaining problems much more quickly in that manner.
## Implementation
The implementation will be relatively straightforward, as there is already the `--parser` flag that can be used to switch between the current parser and Prism. We will change the default to be `"prism"` instead of `"parse.y"`. There is no plan to remove or change any code related to `parse.y`, `lrama`, or `compile.c` at this time, as we want to create the minimal amount of change possible to ensure stability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-12-24 14:41 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-07 16:42 [ruby-core:118243] [Ruby master Feature#20564] Switch default parser to Prism kddnewton (Kevin Newton) via ruby-core
2024-06-07 20:34 ` [ruby-core:118246] " hsbt (Hiroshi SHIBATA) via ruby-core
2024-06-07 20:40 ` [ruby-core:118247] " kddnewton (Kevin Newton) via ruby-core
2024-06-08 2:33 ` [ruby-core:118249] " kddnewton (Kevin Newton) via ruby-core
2024-06-13 4:28 ` [ruby-core:118311] " matz (Yukihiro Matsumoto) via ruby-core
2024-06-25 2:29 ` [ruby-core:118386] " hsbt (Hiroshi SHIBATA) via ruby-core
2024-09-12 17:43 ` [ruby-core:119141] " kddnewton (Kevin Newton) via ruby-core
2024-09-12 21:36 ` [ruby-core:119149] " hsbt (Hiroshi SHIBATA) via ruby-core
2024-12-24 7:30 ` [ruby-core:120392] " naruse (Yui NARUSE) via ruby-core
2024-12-24 14:41 ` [ruby-core:120396] " kddnewton (Kevin Newton) via ruby-core
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).