From: "ko1 (Koichi Sasada) via ruby-core" Date: 2024-02-13T18:23:46+00:00 Subject: [ruby-core:116707] [Ruby master Misc#20238] Use prism for mk_builtin_loader.rb Issue #20238 has been updated by ko1 (Koichi Sasada). I'm not negative to use Prism (or using parse.y) to make it to support newest syntax in builtins. There are some concerns. * Installing prism.gem requires bundler for BASERUBY (already commented) * Using prism gem it can be newer than the source code (prism gem for ruby 3.5 syntax to build ruby 3.4, for example) * So I believe it should use Prism in source code. * Using prism in source code, it also needs extra dependencies to build an extension for BASERUBY (as k0kubun-san commented) * rbconfig.rb contains building tools information, but it doesn't mean such tools are available and it can cause troubles. Another idea is making small C tool using prism. To build MRI, developers should prepare the compiler and `make` command. With such minimum requirement tools, we can build "Ruby source code to structured AST representation" tool with prism as C program. AST representation is anything okay, JSON, YAML, XML or Array/Hash with Ruby's syntax for examples. After converting, we can process them with BASERUBY. ---------------------------------------- Misc #20238: Use prism for mk_builtin_loader.rb https://bugs.ruby-lang.org/issues/20238#change-106723 * Author: kddnewton (Kevin Newton) * Status: Open * Priority: Normal ---------------------------------------- I would like to propose that we use prism for mk_builtin_loader.rb. Right now the Ruby syntax that you can use in builtin classes is restricted to the base Ruby version (2.7). This means you can't use a lot of the nicer syntax that Ruby has shipped in the last couple of years. If we switch to using prism to parse the builtin files instead of using ripper, then we can always use the latest version of Ruby syntax. A pull request for this is here: https://github.com/kddnewton/ruby/pull/65. The approach for the PR is taken from how RJIT bindgen works. -- 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/postorius/lists/ruby-core.ml.ruby-lang.org/