allow enabling Prism via flag or env var

Enable Prism using either --prism

    ruby --prism test.rb

or via env var

    RUBY_PRISM=1 ruby test.rb
This commit is contained in:
HParker 2023-12-01 13:25:41 -08:00 коммит произвёл Jemma Issroff
Родитель 19114014fa
Коммит 9b76c7fc89
8 изменённых файлов: 546 добавлений и 51 удалений

414
common.mk
Просмотреть файл

@ -2199,6 +2199,27 @@ ast.$(OBJEXT): $(top_srcdir)/internal/symbol.h
ast.$(OBJEXT): $(top_srcdir)/internal/variable.h
ast.$(OBJEXT): $(top_srcdir)/internal/vm.h
ast.$(OBJEXT): $(top_srcdir)/internal/warnings.h
ast.$(OBJEXT): $(top_srcdir)/prism/defines.h
ast.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
ast.$(OBJEXT): $(top_srcdir)/prism/encoding.h
ast.$(OBJEXT): $(top_srcdir)/prism/node.h
ast.$(OBJEXT): $(top_srcdir)/prism/options.h
ast.$(OBJEXT): $(top_srcdir)/prism/pack.h
ast.$(OBJEXT): $(top_srcdir)/prism/parser.h
ast.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
ast.$(OBJEXT): $(top_srcdir)/prism/prism.h
ast.$(OBJEXT): $(top_srcdir)/prism/regexp.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
ast.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
ast.$(OBJEXT): {$(VPATH)}assert.h
ast.$(OBJEXT): {$(VPATH)}ast.c
ast.$(OBJEXT): {$(VPATH)}ast.rbinc
@ -2375,6 +2396,8 @@ ast.$(OBJEXT): {$(VPATH)}missing.h
ast.$(OBJEXT): {$(VPATH)}node.h
ast.$(OBJEXT): {$(VPATH)}onigmo.h
ast.$(OBJEXT): {$(VPATH)}oniguruma.h
ast.$(OBJEXT): {$(VPATH)}prism/ast.h
ast.$(OBJEXT): {$(VPATH)}prism/version.h
ast.$(OBJEXT): {$(VPATH)}ruby_assert.h
ast.$(OBJEXT): {$(VPATH)}ruby_atomic.h
ast.$(OBJEXT): {$(VPATH)}rubyparser.h
@ -2609,6 +2632,27 @@ builtin.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
builtin.$(OBJEXT): $(top_srcdir)/internal/variable.h
builtin.$(OBJEXT): $(top_srcdir)/internal/vm.h
builtin.$(OBJEXT): $(top_srcdir)/internal/warnings.h
builtin.$(OBJEXT): $(top_srcdir)/prism/defines.h
builtin.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
builtin.$(OBJEXT): $(top_srcdir)/prism/encoding.h
builtin.$(OBJEXT): $(top_srcdir)/prism/node.h
builtin.$(OBJEXT): $(top_srcdir)/prism/options.h
builtin.$(OBJEXT): $(top_srcdir)/prism/pack.h
builtin.$(OBJEXT): $(top_srcdir)/prism/parser.h
builtin.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
builtin.$(OBJEXT): $(top_srcdir)/prism/prism.h
builtin.$(OBJEXT): $(top_srcdir)/prism/regexp.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
builtin.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
builtin.$(OBJEXT): {$(VPATH)}assert.h
builtin.$(OBJEXT): {$(VPATH)}atomic.h
builtin.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -2785,6 +2829,8 @@ builtin.$(OBJEXT): {$(VPATH)}missing.h
builtin.$(OBJEXT): {$(VPATH)}node.h
builtin.$(OBJEXT): {$(VPATH)}onigmo.h
builtin.$(OBJEXT): {$(VPATH)}oniguruma.h
builtin.$(OBJEXT): {$(VPATH)}prism/ast.h
builtin.$(OBJEXT): {$(VPATH)}prism/version.h
builtin.$(OBJEXT): {$(VPATH)}ruby_assert.h
builtin.$(OBJEXT): {$(VPATH)}ruby_atomic.h
builtin.$(OBJEXT): {$(VPATH)}rubyparser.h
@ -3669,6 +3715,27 @@ cont.$(OBJEXT): $(top_srcdir)/internal/thread.h
cont.$(OBJEXT): $(top_srcdir)/internal/variable.h
cont.$(OBJEXT): $(top_srcdir)/internal/vm.h
cont.$(OBJEXT): $(top_srcdir)/internal/warnings.h
cont.$(OBJEXT): $(top_srcdir)/prism/defines.h
cont.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
cont.$(OBJEXT): $(top_srcdir)/prism/encoding.h
cont.$(OBJEXT): $(top_srcdir)/prism/node.h
cont.$(OBJEXT): $(top_srcdir)/prism/options.h
cont.$(OBJEXT): $(top_srcdir)/prism/pack.h
cont.$(OBJEXT): $(top_srcdir)/prism/parser.h
cont.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
cont.$(OBJEXT): $(top_srcdir)/prism/prism.h
cont.$(OBJEXT): $(top_srcdir)/prism/regexp.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
cont.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
cont.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)
cont.$(OBJEXT): {$(VPATH)}assert.h
cont.$(OBJEXT): {$(VPATH)}atomic.h
@ -3847,6 +3914,8 @@ cont.$(OBJEXT): {$(VPATH)}missing.h
cont.$(OBJEXT): {$(VPATH)}node.h
cont.$(OBJEXT): {$(VPATH)}onigmo.h
cont.$(OBJEXT): {$(VPATH)}oniguruma.h
cont.$(OBJEXT): {$(VPATH)}prism/ast.h
cont.$(OBJEXT): {$(VPATH)}prism/version.h
cont.$(OBJEXT): {$(VPATH)}ractor.h
cont.$(OBJEXT): {$(VPATH)}ractor_core.h
cont.$(OBJEXT): {$(VPATH)}rjit.h
@ -6587,6 +6656,27 @@ eval.$(OBJEXT): $(top_srcdir)/internal/thread.h
eval.$(OBJEXT): $(top_srcdir)/internal/variable.h
eval.$(OBJEXT): $(top_srcdir)/internal/vm.h
eval.$(OBJEXT): $(top_srcdir)/internal/warnings.h
eval.$(OBJEXT): $(top_srcdir)/prism/defines.h
eval.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
eval.$(OBJEXT): $(top_srcdir)/prism/encoding.h
eval.$(OBJEXT): $(top_srcdir)/prism/node.h
eval.$(OBJEXT): $(top_srcdir)/prism/options.h
eval.$(OBJEXT): $(top_srcdir)/prism/pack.h
eval.$(OBJEXT): $(top_srcdir)/prism/parser.h
eval.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
eval.$(OBJEXT): $(top_srcdir)/prism/prism.h
eval.$(OBJEXT): $(top_srcdir)/prism/regexp.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
eval.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
eval.$(OBJEXT): {$(VPATH)}assert.h
eval.$(OBJEXT): {$(VPATH)}atomic.h
eval.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -6767,6 +6857,8 @@ eval.$(OBJEXT): {$(VPATH)}missing.h
eval.$(OBJEXT): {$(VPATH)}node.h
eval.$(OBJEXT): {$(VPATH)}onigmo.h
eval.$(OBJEXT): {$(VPATH)}oniguruma.h
eval.$(OBJEXT): {$(VPATH)}prism/ast.h
eval.$(OBJEXT): {$(VPATH)}prism/version.h
eval.$(OBJEXT): {$(VPATH)}probes.dmyh
eval.$(OBJEXT): {$(VPATH)}probes.h
eval.$(OBJEXT): {$(VPATH)}probes_helper.h
@ -7040,6 +7132,27 @@ gc.$(OBJEXT): $(top_srcdir)/internal/thread.h
gc.$(OBJEXT): $(top_srcdir)/internal/variable.h
gc.$(OBJEXT): $(top_srcdir)/internal/vm.h
gc.$(OBJEXT): $(top_srcdir)/internal/warnings.h
gc.$(OBJEXT): $(top_srcdir)/prism/defines.h
gc.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
gc.$(OBJEXT): $(top_srcdir)/prism/encoding.h
gc.$(OBJEXT): $(top_srcdir)/prism/node.h
gc.$(OBJEXT): $(top_srcdir)/prism/options.h
gc.$(OBJEXT): $(top_srcdir)/prism/pack.h
gc.$(OBJEXT): $(top_srcdir)/prism/parser.h
gc.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
gc.$(OBJEXT): $(top_srcdir)/prism/prism.h
gc.$(OBJEXT): $(top_srcdir)/prism/regexp.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
gc.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
gc.$(OBJEXT): {$(VPATH)}assert.h
gc.$(OBJEXT): {$(VPATH)}atomic.h
gc.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -7222,6 +7335,8 @@ gc.$(OBJEXT): {$(VPATH)}missing.h
gc.$(OBJEXT): {$(VPATH)}node.h
gc.$(OBJEXT): {$(VPATH)}onigmo.h
gc.$(OBJEXT): {$(VPATH)}oniguruma.h
gc.$(OBJEXT): {$(VPATH)}prism/ast.h
gc.$(OBJEXT): {$(VPATH)}prism/version.h
gc.$(OBJEXT): {$(VPATH)}probes.dmyh
gc.$(OBJEXT): {$(VPATH)}probes.h
gc.$(OBJEXT): {$(VPATH)}ractor.h
@ -7264,6 +7379,27 @@ goruby.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
goruby.$(OBJEXT): $(top_srcdir)/internal/variable.h
goruby.$(OBJEXT): $(top_srcdir)/internal/vm.h
goruby.$(OBJEXT): $(top_srcdir)/internal/warnings.h
goruby.$(OBJEXT): $(top_srcdir)/prism/defines.h
goruby.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
goruby.$(OBJEXT): $(top_srcdir)/prism/encoding.h
goruby.$(OBJEXT): $(top_srcdir)/prism/node.h
goruby.$(OBJEXT): $(top_srcdir)/prism/options.h
goruby.$(OBJEXT): $(top_srcdir)/prism/pack.h
goruby.$(OBJEXT): $(top_srcdir)/prism/parser.h
goruby.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
goruby.$(OBJEXT): $(top_srcdir)/prism/prism.h
goruby.$(OBJEXT): $(top_srcdir)/prism/regexp.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
goruby.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
goruby.$(OBJEXT): {$(VPATH)}assert.h
goruby.$(OBJEXT): {$(VPATH)}atomic.h
goruby.$(OBJEXT): {$(VPATH)}backward.h
@ -7441,6 +7577,8 @@ goruby.$(OBJEXT): {$(VPATH)}missing.h
goruby.$(OBJEXT): {$(VPATH)}node.h
goruby.$(OBJEXT): {$(VPATH)}onigmo.h
goruby.$(OBJEXT): {$(VPATH)}oniguruma.h
goruby.$(OBJEXT): {$(VPATH)}prism/ast.h
goruby.$(OBJEXT): {$(VPATH)}prism/version.h
goruby.$(OBJEXT): {$(VPATH)}ruby_assert.h
goruby.$(OBJEXT): {$(VPATH)}ruby_atomic.h
goruby.$(OBJEXT): {$(VPATH)}rubyparser.h
@ -7479,6 +7617,27 @@ hash.$(OBJEXT): $(top_srcdir)/internal/time.h
hash.$(OBJEXT): $(top_srcdir)/internal/variable.h
hash.$(OBJEXT): $(top_srcdir)/internal/vm.h
hash.$(OBJEXT): $(top_srcdir)/internal/warnings.h
hash.$(OBJEXT): $(top_srcdir)/prism/defines.h
hash.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
hash.$(OBJEXT): $(top_srcdir)/prism/encoding.h
hash.$(OBJEXT): $(top_srcdir)/prism/node.h
hash.$(OBJEXT): $(top_srcdir)/prism/options.h
hash.$(OBJEXT): $(top_srcdir)/prism/pack.h
hash.$(OBJEXT): $(top_srcdir)/prism/parser.h
hash.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
hash.$(OBJEXT): $(top_srcdir)/prism/prism.h
hash.$(OBJEXT): $(top_srcdir)/prism/regexp.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
hash.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
hash.$(OBJEXT): {$(VPATH)}assert.h
hash.$(OBJEXT): {$(VPATH)}atomic.h
hash.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -7654,6 +7813,8 @@ hash.$(OBJEXT): {$(VPATH)}missing.h
hash.$(OBJEXT): {$(VPATH)}node.h
hash.$(OBJEXT): {$(VPATH)}onigmo.h
hash.$(OBJEXT): {$(VPATH)}oniguruma.h
hash.$(OBJEXT): {$(VPATH)}prism/ast.h
hash.$(OBJEXT): {$(VPATH)}prism/version.h
hash.$(OBJEXT): {$(VPATH)}probes.dmyh
hash.$(OBJEXT): {$(VPATH)}probes.h
hash.$(OBJEXT): {$(VPATH)}ractor.h
@ -8520,6 +8681,27 @@ load.$(OBJEXT): $(top_srcdir)/internal/thread.h
load.$(OBJEXT): $(top_srcdir)/internal/variable.h
load.$(OBJEXT): $(top_srcdir)/internal/vm.h
load.$(OBJEXT): $(top_srcdir)/internal/warnings.h
load.$(OBJEXT): $(top_srcdir)/prism/defines.h
load.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
load.$(OBJEXT): $(top_srcdir)/prism/encoding.h
load.$(OBJEXT): $(top_srcdir)/prism/node.h
load.$(OBJEXT): $(top_srcdir)/prism/options.h
load.$(OBJEXT): $(top_srcdir)/prism/pack.h
load.$(OBJEXT): $(top_srcdir)/prism/parser.h
load.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
load.$(OBJEXT): $(top_srcdir)/prism/prism.h
load.$(OBJEXT): $(top_srcdir)/prism/regexp.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
load.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
load.$(OBJEXT): {$(VPATH)}assert.h
load.$(OBJEXT): {$(VPATH)}atomic.h
load.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -8697,6 +8879,8 @@ load.$(OBJEXT): {$(VPATH)}missing.h
load.$(OBJEXT): {$(VPATH)}node.h
load.$(OBJEXT): {$(VPATH)}onigmo.h
load.$(OBJEXT): {$(VPATH)}oniguruma.h
load.$(OBJEXT): {$(VPATH)}prism/ast.h
load.$(OBJEXT): {$(VPATH)}prism/version.h
load.$(OBJEXT): {$(VPATH)}probes.dmyh
load.$(OBJEXT): {$(VPATH)}probes.h
load.$(OBJEXT): {$(VPATH)}ruby_assert.h
@ -9811,6 +9995,27 @@ miniinit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
miniinit.$(OBJEXT): $(top_srcdir)/internal/variable.h
miniinit.$(OBJEXT): $(top_srcdir)/internal/vm.h
miniinit.$(OBJEXT): $(top_srcdir)/internal/warnings.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/defines.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/encoding.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/node.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/options.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/pack.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/parser.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/prism.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/regexp.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
miniinit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
miniinit.$(OBJEXT): {$(VPATH)}array.rb
miniinit.$(OBJEXT): {$(VPATH)}assert.h
miniinit.$(OBJEXT): {$(VPATH)}ast.rb
@ -10000,6 +10205,8 @@ miniinit.$(OBJEXT): {$(VPATH)}onigmo.h
miniinit.$(OBJEXT): {$(VPATH)}oniguruma.h
miniinit.$(OBJEXT): {$(VPATH)}pack.rb
miniinit.$(OBJEXT): {$(VPATH)}prelude.rb
miniinit.$(OBJEXT): {$(VPATH)}prism/ast.h
miniinit.$(OBJEXT): {$(VPATH)}prism/version.h
miniinit.$(OBJEXT): {$(VPATH)}ractor.rb
miniinit.$(OBJEXT): {$(VPATH)}rjit.rb
miniinit.$(OBJEXT): {$(VPATH)}rjit_c.rb
@ -12335,6 +12542,27 @@ proc.$(OBJEXT): $(top_srcdir)/internal/symbol.h
proc.$(OBJEXT): $(top_srcdir)/internal/variable.h
proc.$(OBJEXT): $(top_srcdir)/internal/vm.h
proc.$(OBJEXT): $(top_srcdir)/internal/warnings.h
proc.$(OBJEXT): $(top_srcdir)/prism/defines.h
proc.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
proc.$(OBJEXT): $(top_srcdir)/prism/encoding.h
proc.$(OBJEXT): $(top_srcdir)/prism/node.h
proc.$(OBJEXT): $(top_srcdir)/prism/options.h
proc.$(OBJEXT): $(top_srcdir)/prism/pack.h
proc.$(OBJEXT): $(top_srcdir)/prism/parser.h
proc.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
proc.$(OBJEXT): $(top_srcdir)/prism/prism.h
proc.$(OBJEXT): $(top_srcdir)/prism/regexp.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
proc.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
proc.$(OBJEXT): {$(VPATH)}assert.h
proc.$(OBJEXT): {$(VPATH)}atomic.h
proc.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -12510,6 +12738,8 @@ proc.$(OBJEXT): {$(VPATH)}missing.h
proc.$(OBJEXT): {$(VPATH)}node.h
proc.$(OBJEXT): {$(VPATH)}onigmo.h
proc.$(OBJEXT): {$(VPATH)}oniguruma.h
proc.$(OBJEXT): {$(VPATH)}prism/ast.h
proc.$(OBJEXT): {$(VPATH)}prism/version.h
proc.$(OBJEXT): {$(VPATH)}proc.c
proc.$(OBJEXT): {$(VPATH)}ruby_assert.h
proc.$(OBJEXT): {$(VPATH)}ruby_atomic.h
@ -14785,6 +15015,27 @@ rjit.$(OBJEXT): $(top_srcdir)/internal/struct.h
rjit.$(OBJEXT): $(top_srcdir)/internal/variable.h
rjit.$(OBJEXT): $(top_srcdir)/internal/vm.h
rjit.$(OBJEXT): $(top_srcdir)/internal/warnings.h
rjit.$(OBJEXT): $(top_srcdir)/prism/defines.h
rjit.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
rjit.$(OBJEXT): $(top_srcdir)/prism/encoding.h
rjit.$(OBJEXT): $(top_srcdir)/prism/node.h
rjit.$(OBJEXT): $(top_srcdir)/prism/options.h
rjit.$(OBJEXT): $(top_srcdir)/prism/pack.h
rjit.$(OBJEXT): $(top_srcdir)/prism/parser.h
rjit.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
rjit.$(OBJEXT): $(top_srcdir)/prism/prism.h
rjit.$(OBJEXT): $(top_srcdir)/prism/regexp.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
rjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
rjit.$(OBJEXT): {$(VPATH)}assert.h
rjit.$(OBJEXT): {$(VPATH)}atomic.h
rjit.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -14965,6 +15216,8 @@ rjit.$(OBJEXT): {$(VPATH)}missing.h
rjit.$(OBJEXT): {$(VPATH)}node.h
rjit.$(OBJEXT): {$(VPATH)}onigmo.h
rjit.$(OBJEXT): {$(VPATH)}oniguruma.h
rjit.$(OBJEXT): {$(VPATH)}prism/ast.h
rjit.$(OBJEXT): {$(VPATH)}prism/version.h
rjit.$(OBJEXT): {$(VPATH)}ractor.h
rjit.$(OBJEXT): {$(VPATH)}ractor_core.h
rjit.$(OBJEXT): {$(VPATH)}rjit.c
@ -15013,6 +15266,27 @@ rjit_c.$(OBJEXT): $(top_srcdir)/internal/struct.h
rjit_c.$(OBJEXT): $(top_srcdir)/internal/variable.h
rjit_c.$(OBJEXT): $(top_srcdir)/internal/vm.h
rjit_c.$(OBJEXT): $(top_srcdir)/internal/warnings.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/defines.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/encoding.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/node.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/options.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/pack.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/parser.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/prism.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/regexp.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
rjit_c.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
rjit_c.$(OBJEXT): {$(VPATH)}assert.h
rjit_c.$(OBJEXT): {$(VPATH)}atomic.h
rjit_c.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -15192,6 +15466,8 @@ rjit_c.$(OBJEXT): {$(VPATH)}missing.h
rjit_c.$(OBJEXT): {$(VPATH)}node.h
rjit_c.$(OBJEXT): {$(VPATH)}onigmo.h
rjit_c.$(OBJEXT): {$(VPATH)}oniguruma.h
rjit_c.$(OBJEXT): {$(VPATH)}prism/ast.h
rjit_c.$(OBJEXT): {$(VPATH)}prism/version.h
rjit_c.$(OBJEXT): {$(VPATH)}probes.dmyh
rjit_c.$(OBJEXT): {$(VPATH)}probes.h
rjit_c.$(OBJEXT): {$(VPATH)}probes_helper.h
@ -17497,6 +17773,27 @@ thread.$(OBJEXT): $(top_srcdir)/internal/time.h
thread.$(OBJEXT): $(top_srcdir)/internal/variable.h
thread.$(OBJEXT): $(top_srcdir)/internal/vm.h
thread.$(OBJEXT): $(top_srcdir)/internal/warnings.h
thread.$(OBJEXT): $(top_srcdir)/prism/defines.h
thread.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
thread.$(OBJEXT): $(top_srcdir)/prism/encoding.h
thread.$(OBJEXT): $(top_srcdir)/prism/node.h
thread.$(OBJEXT): $(top_srcdir)/prism/options.h
thread.$(OBJEXT): $(top_srcdir)/prism/pack.h
thread.$(OBJEXT): $(top_srcdir)/prism/parser.h
thread.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
thread.$(OBJEXT): $(top_srcdir)/prism/prism.h
thread.$(OBJEXT): $(top_srcdir)/prism/regexp.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
thread.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
thread.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)
thread.$(OBJEXT): {$(VPATH)}assert.h
thread.$(OBJEXT): {$(VPATH)}atomic.h
@ -17678,6 +17975,8 @@ thread.$(OBJEXT): {$(VPATH)}missing.h
thread.$(OBJEXT): {$(VPATH)}node.h
thread.$(OBJEXT): {$(VPATH)}onigmo.h
thread.$(OBJEXT): {$(VPATH)}oniguruma.h
thread.$(OBJEXT): {$(VPATH)}prism/ast.h
thread.$(OBJEXT): {$(VPATH)}prism/version.h
thread.$(OBJEXT): {$(VPATH)}ractor.h
thread.$(OBJEXT): {$(VPATH)}ractor_core.h
thread.$(OBJEXT): {$(VPATH)}rjit.h
@ -18723,6 +19022,27 @@ vm.$(OBJEXT): $(top_srcdir)/internal/thread.h
vm.$(OBJEXT): $(top_srcdir)/internal/variable.h
vm.$(OBJEXT): $(top_srcdir)/internal/vm.h
vm.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm.$(OBJEXT): $(top_srcdir)/prism/defines.h
vm.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
vm.$(OBJEXT): $(top_srcdir)/prism/encoding.h
vm.$(OBJEXT): $(top_srcdir)/prism/node.h
vm.$(OBJEXT): $(top_srcdir)/prism/options.h
vm.$(OBJEXT): $(top_srcdir)/prism/pack.h
vm.$(OBJEXT): $(top_srcdir)/prism/parser.h
vm.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
vm.$(OBJEXT): $(top_srcdir)/prism/prism.h
vm.$(OBJEXT): $(top_srcdir)/prism/regexp.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
vm.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
vm.$(OBJEXT): {$(VPATH)}assert.h
vm.$(OBJEXT): {$(VPATH)}atomic.h
vm.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -18903,6 +19223,8 @@ vm.$(OBJEXT): {$(VPATH)}missing.h
vm.$(OBJEXT): {$(VPATH)}node.h
vm.$(OBJEXT): {$(VPATH)}onigmo.h
vm.$(OBJEXT): {$(VPATH)}oniguruma.h
vm.$(OBJEXT): {$(VPATH)}prism/ast.h
vm.$(OBJEXT): {$(VPATH)}prism/version.h
vm.$(OBJEXT): {$(VPATH)}probes.dmyh
vm.$(OBJEXT): {$(VPATH)}probes.h
vm.$(OBJEXT): {$(VPATH)}probes_helper.h
@ -18954,6 +19276,27 @@ vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/string.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/variable.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/vm.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/defines.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/encoding.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/node.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/options.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/pack.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/parser.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/prism.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/regexp.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
vm_backtrace.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
vm_backtrace.$(OBJEXT): {$(VPATH)}assert.h
vm_backtrace.$(OBJEXT): {$(VPATH)}atomic.h
vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -19130,6 +19473,8 @@ vm_backtrace.$(OBJEXT): {$(VPATH)}missing.h
vm_backtrace.$(OBJEXT): {$(VPATH)}node.h
vm_backtrace.$(OBJEXT): {$(VPATH)}onigmo.h
vm_backtrace.$(OBJEXT): {$(VPATH)}oniguruma.h
vm_backtrace.$(OBJEXT): {$(VPATH)}prism/ast.h
vm_backtrace.$(OBJEXT): {$(VPATH)}prism/version.h
vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_assert.h
vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_atomic.h
vm_backtrace.$(OBJEXT): {$(VPATH)}rubyparser.h
@ -19158,6 +19503,27 @@ vm_dump.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
vm_dump.$(OBJEXT): $(top_srcdir)/internal/variable.h
vm_dump.$(OBJEXT): $(top_srcdir)/internal/vm.h
vm_dump.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/defines.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/encoding.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/node.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/options.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/pack.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/parser.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/prism.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/regexp.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
vm_dump.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
vm_dump.$(OBJEXT): {$(VPATH)}addr2line.h
vm_dump.$(OBJEXT): {$(VPATH)}assert.h
vm_dump.$(OBJEXT): {$(VPATH)}atomic.h
@ -19332,6 +19698,8 @@ vm_dump.$(OBJEXT): {$(VPATH)}missing.h
vm_dump.$(OBJEXT): {$(VPATH)}node.h
vm_dump.$(OBJEXT): {$(VPATH)}onigmo.h
vm_dump.$(OBJEXT): {$(VPATH)}oniguruma.h
vm_dump.$(OBJEXT): {$(VPATH)}prism/ast.h
vm_dump.$(OBJEXT): {$(VPATH)}prism/version.h
vm_dump.$(OBJEXT): {$(VPATH)}procstat_vm.c
vm_dump.$(OBJEXT): {$(VPATH)}ractor.h
vm_dump.$(OBJEXT): {$(VPATH)}ractor_core.h
@ -19570,6 +19938,27 @@ vm_trace.$(OBJEXT): $(top_srcdir)/internal/symbol.h
vm_trace.$(OBJEXT): $(top_srcdir)/internal/variable.h
vm_trace.$(OBJEXT): $(top_srcdir)/internal/vm.h
vm_trace.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/defines.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/encoding.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/node.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/options.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/pack.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/parser.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/prism.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/regexp.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
vm_trace.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
vm_trace.$(OBJEXT): {$(VPATH)}assert.h
vm_trace.$(OBJEXT): {$(VPATH)}atomic.h
vm_trace.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -19747,6 +20136,8 @@ vm_trace.$(OBJEXT): {$(VPATH)}missing.h
vm_trace.$(OBJEXT): {$(VPATH)}node.h
vm_trace.$(OBJEXT): {$(VPATH)}onigmo.h
vm_trace.$(OBJEXT): {$(VPATH)}oniguruma.h
vm_trace.$(OBJEXT): {$(VPATH)}prism/ast.h
vm_trace.$(OBJEXT): {$(VPATH)}prism/version.h
vm_trace.$(OBJEXT): {$(VPATH)}ractor.h
vm_trace.$(OBJEXT): {$(VPATH)}rjit.h
vm_trace.$(OBJEXT): {$(VPATH)}ruby_assert.h
@ -19986,6 +20377,27 @@ yjit.$(OBJEXT): $(top_srcdir)/internal/string.h
yjit.$(OBJEXT): $(top_srcdir)/internal/variable.h
yjit.$(OBJEXT): $(top_srcdir)/internal/vm.h
yjit.$(OBJEXT): $(top_srcdir)/internal/warnings.h
yjit.$(OBJEXT): $(top_srcdir)/prism/defines.h
yjit.$(OBJEXT): $(top_srcdir)/prism/diagnostic.h
yjit.$(OBJEXT): $(top_srcdir)/prism/encoding.h
yjit.$(OBJEXT): $(top_srcdir)/prism/node.h
yjit.$(OBJEXT): $(top_srcdir)/prism/options.h
yjit.$(OBJEXT): $(top_srcdir)/prism/pack.h
yjit.$(OBJEXT): $(top_srcdir)/prism/parser.h
yjit.$(OBJEXT): $(top_srcdir)/prism/prettyprint.h
yjit.$(OBJEXT): $(top_srcdir)/prism/prism.h
yjit.$(OBJEXT): $(top_srcdir)/prism/regexp.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_buffer.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_char.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_constant_pool.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_list.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_memchr.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_newline_list.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_state_stack.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_string_list.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strncasecmp.h
yjit.$(OBJEXT): $(top_srcdir)/prism/util/pm_strpbrk.h
yjit.$(OBJEXT): {$(VPATH)}assert.h
yjit.$(OBJEXT): {$(VPATH)}atomic.h
yjit.$(OBJEXT): {$(VPATH)}backward/2/assume.h
@ -20166,6 +20578,8 @@ yjit.$(OBJEXT): {$(VPATH)}missing.h
yjit.$(OBJEXT): {$(VPATH)}node.h
yjit.$(OBJEXT): {$(VPATH)}onigmo.h
yjit.$(OBJEXT): {$(VPATH)}oniguruma.h
yjit.$(OBJEXT): {$(VPATH)}prism/ast.h
yjit.$(OBJEXT): {$(VPATH)}prism/version.h
yjit.$(OBJEXT): {$(VPATH)}probes.dmyh
yjit.$(OBJEXT): {$(VPATH)}probes.h
yjit.$(OBJEXT): {$(VPATH)}probes_helper.h

16
iseq.c
Просмотреть файл

@ -1487,6 +1487,22 @@ iseqw_s_compile_file_prism(int argc, VALUE *argv, VALUE self)
return iseqw_new(iseq);
}
rb_iseq_t *
rb_iseq_new_main_prism(pm_string_t *input, pm_options_t *options, VALUE path) {
pm_parser_t parser;
pm_parser_init(&parser, pm_string_source(input), pm_string_length(input), options);
if (NIL_P(path)) path = rb_fstring_lit("<compiled>");
int start_line = 0;
pm_options_line_set(options, start_line);
rb_iseq_t *iseq = iseq_alloc();
iseqw_s_compile_prism_compile(&parser, Qnil, iseq, path, path, start_line);
pm_parser_free(&parser);
return iseq;
}
/*
* call-seq:
* InstructionSequence.compile_file(file[, options]) -> iseq

2
iseq.h
Просмотреть файл

@ -13,6 +13,7 @@
#include "internal/gc.h"
#include "shape.h"
#include "vm_core.h"
#include "prism/prism.h"
RUBY_EXTERN const int ruby_api_version[];
#define ISEQ_MAJOR_VERSION ((unsigned int)ruby_api_version[0])
@ -173,6 +174,7 @@ void rb_iseq_init_trace(rb_iseq_t *iseq);
int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, bool target_bmethod);
int rb_iseq_remove_local_tracepoint_recursively(const rb_iseq_t *iseq, VALUE tpval);
const rb_iseq_t *rb_iseq_load_iseq(VALUE fname);
rb_iseq_t * rb_iseq_new_main_prism(pm_string_t *input, pm_options_t *options, VALUE path);
#if VM_INSN_INFO_TABLE_IMPL == 2
unsigned int *rb_iseq_insns_info_decode_positions(const struct rb_iseq_constant_body *body);

44
load.c
Просмотреть файл

@ -16,6 +16,7 @@
#include "probes.h"
#include "darray.h"
#include "ruby/encoding.h"
#include "prism/prism.h"
#include "ruby/util.h"
static VALUE ruby_dln_librefs;
@ -717,23 +718,38 @@ static inline void
load_iseq_eval(rb_execution_context_t *ec, VALUE fname)
{
const rb_iseq_t *iseq = rb_iseq_load_iseq(fname);
if (!iseq) {
rb_execution_context_t *ec = GET_EC();
VALUE v = rb_vm_push_frame_fname(ec, fname);
rb_ast_t *ast;
VALUE parser = rb_parser_new();
rb_parser_set_context(parser, NULL, FALSE);
ast = (rb_ast_t *)rb_parser_load_file(parser, fname);
if (*rb_ruby_prism_ptr()) {
pm_string_t input;
pm_options_t options = { 0 };
rb_thread_t *th = rb_ec_thread_ptr(ec);
VALUE realpath_map = get_loaded_features_realpath_map(th->vm);
pm_string_mapped_init(&input, RSTRING_PTR(fname));
pm_options_filepath_set(&options, RSTRING_PTR(fname));
iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit("<top (required)>"),
fname, realpath_internal_cached(realpath_map, fname), NULL);
rb_ast_dispose(ast);
rb_vm_pop_frame(ec);
RB_GC_GUARD(v);
pm_parser_t parser;
pm_parser_init(&parser, pm_string_source(&input), pm_string_length(&input), &options);
iseq = rb_iseq_new_main_prism(&input, &options, fname);
pm_string_free(&input);
pm_options_free(&options);
} else {
rb_execution_context_t *ec = GET_EC();
VALUE v = rb_vm_push_frame_fname(ec, fname);
rb_ast_t *ast;
VALUE parser = rb_parser_new();
rb_parser_set_context(parser, NULL, FALSE);
ast = (rb_ast_t *)rb_parser_load_file(parser, fname);
rb_thread_t *th = rb_ec_thread_ptr(ec);
VALUE realpath_map = get_loaded_features_realpath_map(th->vm);
iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit("<top (required)>"),
fname, realpath_internal_cached(realpath_map, fname), NULL);
rb_ast_dispose(ast);
rb_vm_pop_frame(ec);
RB_GC_GUARD(v);
}
}
rb_exec_event_hook_script_compiled(ec, iseq, Qnil);
rb_iseq_eval(iseq);

Просмотреть файл

@ -42,6 +42,17 @@
*/
PRISM_EXPORTED_FUNCTION const char * pm_version(void);
/**
* @private
*
* This is used to decide of the prism parser should be used.
*
* @retval true Use Prism to parse files
* @retval false Use standard parser
*/
bool *rb_ruby_prism_ptr(void);
/**
* Initialize a parser with the given start and end pointers.
*

Просмотреть файл

@ -186,6 +186,7 @@ struct rb_ractor_struct {
VALUE r_stderr;
VALUE verbose;
VALUE debug;
bool prism;
rb_ractor_newobj_cache_t newobj_cache;

102
ruby.c
Просмотреть файл

@ -362,6 +362,7 @@ usage(const char *name, int help, int highlight, int columns)
"enable or disable features. see below for available features"),
M("--external-encoding=encoding", ", --internal-encoding=encoding",
"specify the default external or internal character encoding"),
M("--prism", "", "parse and compile using prism"),
M("--backtrace-limit=num", "", "limit the maximum length of backtrace"),
M("--verbose", "", "turn on verbose mode and disable script from stdin"),
M("--version", "", "print the version number, then exit"),
@ -1420,6 +1421,9 @@ proc_long_options(ruby_cmdline_options_t *opt, const char *s, long argc, char **
opt->verbose = 1;
ruby_verbose = Qtrue;
}
else if (strcmp("prism", s) == 0) {
(*rb_ruby_prism_ptr()) = true;
}
else if (strcmp("jit", s) == 0) {
#if !USE_RJIT
rb_warn("Ruby was built without JIT support");
@ -1753,6 +1757,9 @@ ruby_opt_init(ruby_cmdline_options_t *opt)
rb_warn_deprecated("The environment variable RUBY_GC_HEAP_INIT_SLOTS",
"environment variables RUBY_GC_HEAP_%d_INIT_SLOTS");
}
if (getenv("RUBY_PRISM")) {
(*rb_ruby_prism_ptr()) = true;
}
#if USE_RJIT
// rb_call_builtin_inits depends on RubyVM::RJIT.enabled?
@ -1971,7 +1978,7 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
rb_ast_t *ast = 0;
VALUE parser;
VALUE script_name;
const rb_iseq_t *iseq;
rb_iseq_t *iseq;
rb_encoding *enc, *lenc;
#if UTF8_PATH
rb_encoding *ienc = 0;
@ -2239,39 +2246,41 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
ruby_set_argv(argc, argv);
opt->sflag = process_sflag(opt->sflag);
if (opt->e_script) {
VALUE progname = rb_progname;
rb_encoding *eenc;
rb_parser_set_context(parser, 0, TRUE);
if (!(*rb_ruby_prism_ptr())) {
if (opt->e_script) {
VALUE progname = rb_progname;
rb_encoding *eenc;
rb_parser_set_context(parser, 0, TRUE);
if (opt->src.enc.index >= 0) {
eenc = rb_enc_from_index(opt->src.enc.index);
if (opt->src.enc.index >= 0) {
eenc = rb_enc_from_index(opt->src.enc.index);
}
else {
eenc = lenc;
#if UTF8_PATH
if (ienc) eenc = ienc;
#endif
}
#if UTF8_PATH
if (eenc != uenc) {
opt->e_script = str_conv_enc(opt->e_script, uenc, eenc);
}
#endif
rb_enc_associate(opt->e_script, eenc);
ruby_opt_init(opt);
ruby_set_script_name(progname);
rb_parser_set_options(parser, opt->do_print, opt->do_loop,
opt->do_line, opt->do_split);
ast = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
}
else {
eenc = lenc;
#if UTF8_PATH
if (ienc) eenc = ienc;
#endif
VALUE f;
int xflag = opt->xflag;
f = open_load_file(script_name, &xflag);
opt->xflag = xflag != 0;
rb_parser_set_context(parser, 0, f == rb_stdin);
ast = load_file(parser, opt->script_name, f, 1, opt);
}
#if UTF8_PATH
if (eenc != uenc) {
opt->e_script = str_conv_enc(opt->e_script, uenc, eenc);
}
#endif
rb_enc_associate(opt->e_script, eenc);
ruby_opt_init(opt);
ruby_set_script_name(progname);
rb_parser_set_options(parser, opt->do_print, opt->do_loop,
opt->do_line, opt->do_split);
ast = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
}
else {
VALUE f;
int xflag = opt->xflag;
f = open_load_file(script_name, &xflag);
opt->xflag = xflag != 0;
rb_parser_set_context(parser, 0, f == rb_stdin);
ast = load_file(parser, opt->script_name, f, 1, opt);
}
ruby_set_script_name(opt->script_name);
if (dump & DUMP_BIT(yydebug)) {
@ -2296,7 +2305,7 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
rb_enc_set_default_internal(Qnil);
rb_stdio_set_default_encoding();
if (!ast->body.root) {
if (!(*rb_ruby_prism_ptr()) && !ast->body.root) {
rb_ast_dispose(ast);
return Qfalse;
}
@ -2371,12 +2380,30 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
}
}
rb_binding_t *toplevel_binding;
GetBindingPtr(rb_const_get(rb_cObject, rb_intern("TOPLEVEL_BINDING")),
toplevel_binding);
const struct rb_block *base_block = toplevel_context(toplevel_binding);
iseq = rb_iseq_new_main(&ast->body, opt->script_name, path, vm_block_iseq(base_block), !(dump & DUMP_BIT(insns_without_opt)));
rb_ast_dispose(ast);
if ((*rb_ruby_prism_ptr())) {
pm_string_t input;
pm_options_t options = { 0 };
if (opt->e_script) {
pm_string_constant_init(&input, RSTRING_PTR(opt->e_script), RSTRING_LEN(opt->e_script));
pm_options_filepath_set(&options, "-e");
} else {
pm_string_mapped_init(&input, RSTRING_PTR(opt->script_name));
pm_options_filepath_set(&options, RSTRING_PTR(opt->script_name));
}
iseq = rb_iseq_new_main_prism(&input, &options, path);
pm_string_free(&input);
pm_options_free(&options);
} else {
rb_binding_t *toplevel_binding;
GetBindingPtr(rb_const_get(rb_cObject, rb_intern("TOPLEVEL_BINDING")),
toplevel_binding);
const struct rb_block *base_block = toplevel_context(toplevel_binding);
iseq = rb_iseq_new_main(&ast->body, opt->script_name, path, vm_block_iseq(base_block), !(dump & DUMP_BIT(insns_without_opt)));
rb_ast_dispose(ast);
}
}
if (dump & (DUMP_BIT(insns) | DUMP_BIT(insns_without_opt))) {
@ -2932,6 +2959,7 @@ ruby_process_options(int argc, char **argv)
ruby_cmdline_options_t opt;
VALUE iseq;
const char *script_name = (argc > 0 && argv[0]) ? argv[0] : ruby_engine;
(*rb_ruby_prism_ptr()) = false;
if (!origarg.argv || origarg.argc <= 0) {
origarg.argc = argc;

7
vm.c
Просмотреть файл

@ -4192,6 +4192,13 @@ rb_ruby_verbose_ptr(void)
return &cr->verbose;
}
bool *
rb_ruby_prism_ptr(void)
{
rb_ractor_t *cr = GET_RACTOR();
return &cr->prism;
}
VALUE *
rb_ruby_debug_ptr(void)
{