ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: shevegen@gmail.com
To: ruby-core@ruby-lang.org
Subject: [ruby-core:87481] [Ruby trunk Feature#14844] Future of RubyVM::AST?
Date: Tue, 12 Jun 2018 15:42:56 +0000 (UTC)	[thread overview]
Message-ID: <redmine.journal-72474.20180612154254.556345dcbe8c9279@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-14844.20180612141613@ruby-lang.org

Issue #14844 has been updated by shevegen (Robert A. Heiler).


Just two short comments from me, so that I do not expand the issue request/question
too much.

(1) I would like to suggest to you to consider adding your question to the upcoming
developer meeting; it may be best to have the core team and other core contributors
comment on it, including matz and (based on RubyVM I think) koichi.

The next upcoming meeting agenda should be compiled here:

https://bugs.ruby-lang.org/issues/14769

But again, this is just a suggestion from me - it is your issue/question so of
course you should decide. :)

(2) The other thing is, and I may be wrong, but I think there have been quite
a few introspection-related extensions to ruby in general, by different ruby
hackers/developers/core contributors. You mentioned RubyVM but I think there
are a few more examples; Martin in regards to unicode and ... I think the
regex engine (I forgot the particular issue but I remember it was somehow
related to being able to tweak more within the regex engine). MJIT is also
a bit related to more introspection, at the least indirectly, if we can
control how much we can optimize where and how, at the least in the future
(say, past ruby 3.0). matz mentioned one requirement/goal for mruby is in
regards to systems that are constrained, but with MJIT we may be able to
perhaps control more optimizations when it comes to systems that have 
more RAM/cpu power/cores and so forth. So, I may be wrong, but I think 
several changes in ruby are to some extent related to more introspection.
(The MJIT author blogged about this too, I think ... something about 
inline-C or like that? I forgot the details right now, sorry.)

Of course it may be best to have koichi comment on relevant parts
of your question such as "a lot more information in the C structures
that we could expose" (and whether matz is fine with this; I think
matz is fine with it but it may be best to ask this in regards to
the developer meeting altogether).

I personally love introspection.

PS: Actually, I just remembered one more change that is a bit
related to introspection, at 

https://github.com/ruby/ruby/blob/trunk/NEWS

added Binding#source_location. [Feature #14230]

While eval() could be used, I think Binding#source_location
has a nicer API.

----------------------------------------
Feature #14844: Future of RubyVM::AST? 
https://bugs.ruby-lang.org/issues/14844#change-72474

* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
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/

  parent reply	other threads:[~2018-06-12 15:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <redmine.issue-14844.20180612141613@ruby-lang.org>
2018-06-12 14:16 ` [ruby-core:87480] [Ruby trunk Feature#14844] Future of RubyVM::AST? rdmosolgo
2018-06-12 15:42 ` shevegen [this message]
2018-06-30 23:43 ` [ruby-core:87727] " samuel
2018-07-02  0:07 ` [ruby-core:87733] " samuel
2018-07-05  4:13 ` [ruby-core:87799] " samuel
2018-08-10  9:26 ` [ruby-core:88432] " bozhidar
2018-08-17  0:33 ` [ruby-core:88509] " mame
2018-08-28  1:00 ` [ruby-core:88700] " samuel
2018-12-07 11:43 ` [ruby-core:90367] " lucasbuchala
2018-12-20  4:28 ` [ruby-core:90628] " samuel
2019-01-26 11:06 ` [ruby-core:91282] " samuel
2019-04-07 19:07 ` [ruby-core:92185] " eregontp
2019-04-07 19:16 ` [ruby-core:92186] " eregontp
2019-04-18 22:26 ` [ruby-core:92323] " eregontp
2019-05-15 21:37 ` [ruby-core:92670] " eregontp
2019-05-17  1:05 ` [ruby-core:92692] " mame
2019-05-17 12:56 ` [ruby-core:92696] " eregontp
2019-05-17 16:22 ` [ruby-core:92701] " mame
2019-05-17 19:53 ` [ruby-core:92703] " eregontp
2019-05-22  7:41 ` [ruby-core:92770] " akr
2019-05-22 10:15 ` [ruby-core:92782] " eregontp
2019-12-14 11:31 ` [ruby-core:96231] [Ruby master " eregontp
2019-12-14 11:50 ` [ruby-core:96232] " eregontp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-72474.20180612154254.556345dcbe8c9279@ruby-lang.org \
    --to=ruby-core@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 read-only IMAP folder(s) and NNTP newsgroup(s).