* [ruby-core:99435] [Ruby master Feature#14844] Future of RubyVM::AST?
[not found] <redmine.issue-14844.20180612141613.8779@ruby-lang.org>
@ 2020-08-01 13:11 ` eregontp
2020-08-08 8:35 ` [ruby-core:99516] " samuel
` (2 subsequent siblings)
3 siblings, 0 replies; 4+ messages in thread
From: eregontp @ 2020-08-01 13:11 UTC (permalink / raw)
To: ruby-core
Issue #14844 has been updated by Eregon (Benoit Daloze).
[RBS](https://github.com/ruby/rbs) is using `RubyVM::AbstractSyntaxTree` for `rbs prototype`.
RBS is an official project under the Ruby organization, so I believe it should be able to fully work on other Ruby implementations too ([issue](https://github.com/ruby/rbs/issues/348) about this in RBS).
That is impossible as long as `AbstractSyntaxTree` is under `RubyVM`, or as long as RBS uses `RubyVM::AbstractSyntaxTree` with no fallback.
So, I think it is time to move `AbstractSyntaxTree` outside of RubyVM.
Otherwise, other Ruby implementations will have no choice but to define `RubyVM` too, which everyone seems to agree is unwanted as RubyVM is (at least currently) meant CRuby-only.
I see three ways forward:
* Move `AbstractSyntaxTree` under `ExperimentalFeatures` (#15752), so it is still experimental but at least other Ruby implementations can implement it too.
* Make `AbstractSyntaxTree` stable, and move it under a stable namespace (maybe just `::AbstractSyntaxTree`?)
* Change the meaning of RubyVM so it is not CRuby-specific but also exists on other Ruby implementations. Many people don't know that `RubyVM` means experimental, so `ExperimentalFeatures` seems much clearer.
I prefer the first option, but any of the 3 unblocks the situation (which is also explained in #15752).
Can we pick one?
@matz can you decide?
----------------------------------------
Feature #14844: Future of RubyVM::AST?
https://bugs.ruby-lang.org/issues/14844#change-86890
* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: yui-knk (Kaneko Yuichiro)
----------------------------------------
Hi! Thanks for all your great work on the Ruby language.
I saw the new RubyVM::AST module in 2.6.0-preview2 and I quickly went to try it out.
I'd love to have a well-documented, user-friendly way to parse and manipulate Ruby code using the Ruby standard library, so I'm pretty excited to try it out. (I've been trying to learn Ripper recently, too: https://ripper-preview.herokuapp.com/, https://rmosolgo.github.io/ripper_events/ .)
Based on my exploration, I opened a small PR on GitHub with some documentation: https://github.com/ruby/ruby/pull/1888
I'm curious though, are there future plans for this module? For example, we might:
- Add more details about each node (for example, we could expose the names of identifiers and operators through the node classes)
- Document each node type
I see there is a lot more information in the C structures that we could expose, and I'm interested to help out if it's valuable. What do you think?
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:99516] [Ruby master Feature#14844] Future of RubyVM::AST?
[not found] <redmine.issue-14844.20180612141613.8779@ruby-lang.org>
2020-08-01 13:11 ` [ruby-core:99435] [Ruby master Feature#14844] Future of RubyVM::AST? eregontp
@ 2020-08-08 8:35 ` samuel
2020-08-08 14:25 ` [ruby-core:99517] " eregontp
2020-08-31 8:22 ` [ruby-core:99791] " matz
3 siblings, 0 replies; 4+ messages in thread
From: samuel @ 2020-08-08 8:35 UTC (permalink / raw)
To: ruby-core
Issue #14844 has been updated by ioquatix (Samuel Williams).
I was using `RubyVM::AbstractSyntaxTree` but moved to `parser` gem. I cannot see any reason to use `RubyVM::AbstractSyntaxTree` unless you are concerned about some specific details of the current implementation's parser.
----------------------------------------
Feature #14844: Future of RubyVM::AST?
https://bugs.ruby-lang.org/issues/14844#change-86977
* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: yui-knk (Kaneko Yuichiro)
----------------------------------------
Hi! Thanks for all your great work on the Ruby language.
I saw the new RubyVM::AST module in 2.6.0-preview2 and I quickly went to try it out.
I'd love to have a well-documented, user-friendly way to parse and manipulate Ruby code using the Ruby standard library, so I'm pretty excited to try it out. (I've been trying to learn Ripper recently, too: https://ripper-preview.herokuapp.com/, https://rmosolgo.github.io/ripper_events/ .)
Based on my exploration, I opened a small PR on GitHub with some documentation: https://github.com/ruby/ruby/pull/1888
I'm curious though, are there future plans for this module? For example, we might:
- Add more details about each node (for example, we could expose the names of identifiers and operators through the node classes)
- Document each node type
I see there is a lot more information in the C structures that we could expose, and I'm interested to help out if it's valuable. What do you think?
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:99517] [Ruby master Feature#14844] Future of RubyVM::AST?
[not found] <redmine.issue-14844.20180612141613.8779@ruby-lang.org>
2020-08-01 13:11 ` [ruby-core:99435] [Ruby master Feature#14844] Future of RubyVM::AST? eregontp
2020-08-08 8:35 ` [ruby-core:99516] " samuel
@ 2020-08-08 14:25 ` eregontp
2020-08-31 8:22 ` [ruby-core:99791] " matz
3 siblings, 0 replies; 4+ messages in thread
From: eregontp @ 2020-08-08 14:25 UTC (permalink / raw)
To: ruby-core
Issue #14844 has been updated by Eregon (Benoit Daloze).
@ioquatix Two reasons I've heard from projects using `RubyVM::AbstractSyntaxTree` are: built-in (not an extra dependency), and performance.
But "built-in (not an extra dependency)" also means only works on CRuby 2.6+, and some versions of `RubyVM::AbstractSyntaxTree` have bugs that might never be fixed.
And the performance of `parser` seems fairly reasonable.
----------------------------------------
Feature #14844: Future of RubyVM::AST?
https://bugs.ruby-lang.org/issues/14844#change-86978
* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: yui-knk (Kaneko Yuichiro)
----------------------------------------
Hi! Thanks for all your great work on the Ruby language.
I saw the new RubyVM::AST module in 2.6.0-preview2 and I quickly went to try it out.
I'd love to have a well-documented, user-friendly way to parse and manipulate Ruby code using the Ruby standard library, so I'm pretty excited to try it out. (I've been trying to learn Ripper recently, too: https://ripper-preview.herokuapp.com/, https://rmosolgo.github.io/ripper_events/ .)
Based on my exploration, I opened a small PR on GitHub with some documentation: https://github.com/ruby/ruby/pull/1888
I'm curious though, are there future plans for this module? For example, we might:
- Add more details about each node (for example, we could expose the names of identifiers and operators through the node classes)
- Document each node type
I see there is a lot more information in the C structures that we could expose, and I'm interested to help out if it's valuable. What do you think?
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:99791] [Ruby master Feature#14844] Future of RubyVM::AST?
[not found] <redmine.issue-14844.20180612141613.8779@ruby-lang.org>
` (2 preceding siblings ...)
2020-08-08 14:25 ` [ruby-core:99517] " eregontp
@ 2020-08-31 8:22 ` matz
3 siblings, 0 replies; 4+ messages in thread
From: matz @ 2020-08-31 8:22 UTC (permalink / raw)
To: ruby-core
Issue #14844 has been updated by matz (Yukihiro Matsumoto).
I am OK with move the class from `RubyVM::AbstractSyntaxTree`. We have to decide the new name for it (`RubyAST`?).
In addition, the structure of the abstract syntax tree may be slightly changed from time to time (by refactoring or syntax addition).
Matz.
----------------------------------------
Feature #14844: Future of RubyVM::AST?
https://bugs.ruby-lang.org/issues/14844#change-87307
* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: yui-knk (Kaneko Yuichiro)
----------------------------------------
Hi! Thanks for all your great work on the Ruby language.
I saw the new RubyVM::AST module in 2.6.0-preview2 and I quickly went to try it out.
I'd love to have a well-documented, user-friendly way to parse and manipulate Ruby code using the Ruby standard library, so I'm pretty excited to try it out. (I've been trying to learn Ripper recently, too: https://ripper-preview.herokuapp.com/, https://rmosolgo.github.io/ripper_events/ .)
Based on my exploration, I opened a small PR on GitHub with some documentation: https://github.com/ruby/ruby/pull/1888
I'm curious though, are there future plans for this module? For example, we might:
- Add more details about each node (for example, we could expose the names of identifiers and operators through the node classes)
- Document each node type
I see there is a lot more information in the C structures that we could expose, and I'm interested to help out if it's valuable. What do you think?
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 4+ messages in thread