summaryrefslogtreecommitdiff
path: root/sample/openssl/cert2text.rb
AgeCommit message (Collapse)Author
2021-03-16[ruby/openssl] sample: avoid "include OpenSSL"Kazuki Yamaguchi
It is not a common practice and should not be done since it causes name clash: for example, Digest and Random are provided by other standard libraries of Ruby. Fixes: https://github.com/ruby/openssl/issues/419 https://github.com/ruby/openssl/commit/6a6444984b Notes: Merged: https://github.com/ruby/ruby/pull/4275
2003-09-04* sample/openssl: added. Sample of standard distribution library should benahi
locate in sample/{module_name}/*. * ext/openssl/sample/*: removed. move to sample/openssl/*. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
style='width: 0.0%;'/> -rw-r--r--.gdbinit15
-rw-r--r--.github/codeql/codeql-config.yml4
-rw-r--r--.github/workflows/baseruby.yml47
-rw-r--r--.github/workflows/check_branch.yml22
-rw-r--r--.github/workflows/check_dependencies.yml45
-rw-r--r--.github/workflows/check_misc.yml17
-rw-r--r--.github/workflows/codeql-analysis.yml43
-rw-r--r--.github/workflows/compilers.yml216
-rw-r--r--.github/workflows/cygwin.yml79
-rw-r--r--.github/workflows/macos.yml85
-rw-r--r--.github/workflows/mingw.yml141
-rw-r--r--.github/workflows/mjit.yml100
-rw-r--r--.github/workflows/spec_guards.yml41
-rw-r--r--.github/workflows/ubuntu.yml128
-rw-r--r--.github/workflows/windows.yml74
-rw-r--r--.gitignore7
-rw-r--r--.travis.yml421
-rw-r--r--BSDL6
-rw-r--r--LEGAL688
-rw-r--r--NEWS826
-rw-r--r--NEWS.md820
-rw-r--r--README.ja.md35
-rw-r--r--README.md35
-rw-r--r--aclocal.m447
-rw-r--r--addr2line.c79
-rw-r--r--addr2line.h5
-rw-r--r--appveyor.yml83
-rw-r--r--array.c4320
-rw-r--r--array.rb61
-rw-r--r--ast.c108
-rw-r--r--ast.rb28
-rwxr-xr-xautogen.sh9
-rwxr-xr-xbasictest/test.rb16
-rw-r--r--benchmark/README.md10
-rw-r--r--benchmark/array_max_float.yml30
-rw-r--r--benchmark/array_max_int.yml31
-rw-r--r--benchmark/array_max_str.yml30
-rw-r--r--benchmark/array_min.yml31
-rw-r--r--benchmark/enum_lazy_flat_map.yml16
-rw-r--r--benchmark/enum_lazy_zip.yml22
-rwxr-xr-x[-rw-r--r--]benchmark/fiber_chain.yml0
-rw-r--r--benchmark/fiber_locals.yml8
-rw-r--r--benchmark/hash_defaults.yml6
-rw-r--r--benchmark/kernel_clone.yml6
-rw-r--r--benchmark/kernel_float.yml5
-rw-r--r--benchmark/kernel_tap.yml6
-rw-r--r--benchmark/kernel_then.yml6
-rw-r--r--benchmark/keyword_arguments.yml13
-rw-r--r--benchmark/lib/benchmark_driver/runner/mjit.rb34
-rw-r--r--benchmark/lib/benchmark_driver/runner/mjit_exec.rb6
-rw-r--r--benchmark/mjit_exec_jt2jt.yml4
-rw-r--r--benchmark/mjit_exec_vm2jt.yml4
-rw-r--r--benchmark/mjit_exec_vm2vm.yml4
-rw-r--r--benchmark/mjit_exivar.yml18
-rw-r--r--benchmark/mjit_integer.yml30
-rw-r--r--benchmark/mjit_kernel.yml20
-rw-r--r--benchmark/mjit_leave.yml8
-rw-r--r--benchmark/mjit_opt_cc_insns.yml27
-rw-r--r--benchmark/mjit_struct_aref.yml10
-rw-r--r--benchmark/num_zero_p.yml8
-rw-r--r--benchmark/object_allocate.yml21
-rw-r--r--benchmark/objspace_dump_all.yml13
-rw-r--r--benchmark/pm_array.yml19
-rw-r--r--benchmark/string_casecmp.yml26
-rw-r--r--benchmark/string_casecmp_p.yml26
-rw-r--r--benchmark/string_downcase.yml8
-rw-r--r--benchmark/string_slice.yml11
-rw-r--r--benchmark/string_split.yml25
-rw-r--r--benchmark/string_swapcase.yml8
-rw-r--r--benchmark/string_upcase.yml8
-rw-r--r--benchmark/vm1_attr_ivar.yml14
-rw-r--r--benchmark/vm1_attr_ivar_set.yml14
-rw-r--r--benchmark/vm1_block.yml9
-rw-r--r--benchmark/vm1_blockparam.yml7
-rw-r--r--benchmark/vm1_blockparam_call.yml8
-rw-r--r--benchmark/vm1_blockparam_pass.yml12
-rw-r--r--benchmark/vm1_blockparam_yield.yml8
-rw-r--r--benchmark/vm1_const.yml7
-rw-r--r--benchmark/vm1_ensure.yml14
-rw-r--r--benchmark/vm1_float_simple.yml8
-rw-r--r--benchmark/vm1_gc_short_lived.yml9
-rw-r--r--benchmark/vm1_gc_short_with_complex_long.yml25
-rw-r--r--benchmark/vm1_gc_short_with_long.yml13
-rw-r--r--benchmark/vm1_gc_short_with_symbol.yml13
-rw-r--r--benchmark/vm1_gc_wb_ary.yml12
-rw-r--r--benchmark/vm1_gc_wb_ary_promoted.yml15
-rw-r--r--benchmark/vm1_gc_wb_obj.yml15
-rw-r--r--benchmark/vm1_gc_wb_obj_promoted.yml17
-rw-r--r--benchmark/vm1_ivar.yml6
-rw-r--r--benchmark/vm1_ivar_set.yml5
-rw-r--r--benchmark/vm1_length.yml8
-rw-r--r--benchmark/vm1_lvar_init.yml21
-rw-r--r--benchmark/vm1_lvar_set.yml4
-rw-r--r--benchmark/vm1_neq.yml7
-rw-r--r--benchmark/vm1_not.yml6
-rw-r--r--benchmark/vm1_rescue.yml6
-rw-r--r--benchmark/vm1_simplereturn.yml7
-rw-r--r--benchmark/vm1_swap.yml7
-rw-r--r--benchmark/vm1_yield.yml13
-rw-r--r--benchmark/vm2_array.yml4
-rw-r--r--benchmark/vm2_bigarray.yml105
-rw-r--r--benchmark/vm2_bighash.yml4
-rw-r--r--benchmark/vm2_case.yml13
-rw-r--r--benchmark/vm2_case_lit.yml23
-rw-r--r--benchmark/vm2_defined_method.yml8
-rw-r--r--benchmark/vm2_dstr.yml6
-rw-r--r--benchmark/vm2_eval.yml4
-rw-r--r--benchmark/vm2_fiber_allocate.yml8
-rw-r--r--benchmark/vm2_fiber_count.yml10
-rw-r--r--benchmark/vm2_fiber_reuse.yml14
-rw-r--r--benchmark/vm2_fiber_reuse_gc.yml12
-rw-r--r--benchmark/vm2_fiber_switch.yml9
-rw-r--r--benchmark/vm2_freezestring.yml10
-rw-r--r--benchmark/vm2_method.yml8
-rw-r--r--benchmark/vm2_method_missing.yml11
-rw-r--r--benchmark/vm2_method_with_block.yml8
-rw-r--r--benchmark/vm2_module_ann_const_set.yml4
-rw-r--r--benchmark/vm2_module_const_set.yml8
-rw-r--r--benchmark/vm2_mutex.yml8
-rw-r--r--benchmark/vm2_newlambda.yml4
-rw-r--r--benchmark/vm2_poly_method.yml24
-rw-r--r--benchmark/vm2_poly_method_ov.yml24
-rw-r--r--benchmark/vm2_poly_same_method.yml25
-rw-r--r--benchmark/vm2_poly_singleton.yml18
-rw-r--r--benchmark/vm2_proc.yml12
-rw-r--r--benchmark/vm2_raise1.yml16
-rw-r--r--benchmark/vm2_raise2.yml16
-rw-r--r--benchmark/vm2_regexp.yml8
-rw-r--r--benchmark/vm2_send.yml11
-rw-r--r--benchmark/vm2_string_literal.yml4
-rw-r--r--benchmark/vm2_struct_big_aref_hi.yml7
-rw-r--r--benchmark/vm2_struct_big_aref_lo.yml7
-rw-r--r--benchmark/vm2_struct_big_aset.yml11
-rw-r--r--benchmark/vm2_struct_big_href_hi.yml7
-rw-r--r--benchmark/vm2_struct_big_href_lo.yml7
-rw-r--r--benchmark/vm2_struct_big_hset.yml11
-rw-r--r--benchmark/vm2_struct_small_aref.yml7
-rw-r--r--benchmark/vm2_struct_small_aset.yml11
-rw-r--r--benchmark/vm2_struct_small_href.yml7
-rw-r--r--benchmark/vm2_struct_small_hset.yml7
-rw-r--r--benchmark/vm2_super.yml17
-rw-r--r--benchmark/vm2_unif1.yml7
-rw-r--r--benchmark/vm2_zsuper.yml18
-rw-r--r--benchmark/vm3_backtrace.rb (renamed from benchmark/vm_backtrace.rb)0
-rw-r--r--benchmark/vm3_clearmethodcache.rb (renamed from benchmark/vm_clearmethodcache.rb)0
-rw-r--r--benchmark/vm3_gc.rb (renamed from benchmark/vm_gc.rb)0
-rw-r--r--benchmark/vm3_gc_old_full.rb (renamed from benchmark/vm_gc_old_full.rb)0
-rw-r--r--benchmark/vm3_gc_old_immediate.rb (renamed from benchmark/vm_gc_old_immediate.rb)0
-rw-r--r--benchmark/vm3_gc_old_lazy.rb (renamed from benchmark/vm_gc_old_lazy.rb)0
-rw-r--r--benchmark/vm_array.yml4
-rw-r--r--benchmark/vm_attr_ivar.yml14
-rw-r--r--benchmark/vm_attr_ivar_set.yml14
-rw-r--r--benchmark/vm_bigarray.yml105
-rw-r--r--benchmark/vm_bighash.yml4
-rw-r--r--benchmark/vm_block.yml9
-rw-r--r--benchmark/vm_block_handler.yml27
-rw-r--r--benchmark/vm_blockparam.yml7
-rw-r--r--benchmark/vm_blockparam_call.yml8
-rw-r--r--benchmark/vm_blockparam_pass.yml12
-rw-r--r--benchmark/vm_blockparam_yield.yml8
-rw-r--r--benchmark/vm_case.yml13
-rw-r--r--benchmark/vm_case_lit.yml23
-rw-r--r--benchmark/vm_const.yml7
-rw-r--r--benchmark/vm_defined_method.yml8
-rw-r--r--benchmark/vm_dstr.yml6
-rw-r--r--benchmark/vm_ensure.yml14
-rw-r--r--benchmark/vm_eval.yml4
-rw-r--r--benchmark/vm_fiber_allocate.yml8
-rw-r--r--benchmark/vm_fiber_count.yml10
-rw-r--r--benchmark/vm_fiber_reuse.yml14
-rw-r--r--benchmark/vm_fiber_reuse_gc.yml12
-rw-r--r--benchmark/vm_fiber_switch.yml9
-rw-r--r--benchmark/vm_float_simple.yml8
-rw-r--r--benchmark/vm_freezestring.yml10
-rw-r--r--benchmark/vm_gc_short_lived.yml9
-rw-r--r--benchmark/vm_gc_short_with_complex_long.yml25
-rw-r--r--benchmark/vm_gc_short_with_long.yml13
-rw-r--r--benchmark/vm_gc_short_with_symbol.yml13
-rw-r--r--benchmark/vm_gc_wb_ary.yml12
-rw-r--r--benchmark/vm_gc_wb_ary_promoted.yml15
-rw-r--r--benchmark/vm_gc_wb_obj.yml15
-rw-r--r--benchmark/vm_gc_wb_obj_promoted.yml17
-rw-r--r--benchmark/vm_iclass_super.yml20
-rw-r--r--benchmark/vm_ivar.yml6
-rw-r--r--benchmark/vm_ivar_init.yml14
-rw-r--r--benchmark/vm_ivar_set.yml5
-rw-r--r--benchmark/vm_ivar_set_subclass.yml17
-rw-r--r--benchmark/vm_length.yml8
-rw-r--r--benchmark/vm_lvar_init.yml21
-rw-r--r--benchmark/vm_lvar_set.yml4
-rw-r--r--benchmark/vm_method.yml8
-rw-r--r--benchmark/vm_method_missing.yml11
-rw-r--r--benchmark/vm_method_with_block.yml8
-rw-r--r--benchmark/vm_module_ann_const_set.yml4
-rw-r--r--benchmark/vm_module_const_set.yml8
-rw-r--r--benchmark/vm_mutex.yml8
-rw-r--r--benchmark/vm_neq.yml7
-rw-r--r--benchmark/vm_newlambda.yml4
-rw-r--r--benchmark/vm_not.yml6
-rw-r--r--benchmark/vm_poly_method.yml24
-rw-r--r--benchmark/vm_poly_method_ov.yml24
-rw-r--r--benchmark/vm_poly_same_method.yml25
-rw-r--r--benchmark/vm_poly_singleton.yml18
-rw-r--r--benchmark/vm_proc.yml12
-rw-r--r--benchmark/vm_raise1.yml16
-rw-r--r--benchmark/vm_raise2.yml16
-rw-r--r--benchmark/vm_regexp.yml8
-rw-r--r--benchmark/vm_rescue.yml6
-rw-r--r--benchmark/vm_send.yml14
-rw-r--r--benchmark/vm_send_cfunc.yml3
-rw-r--r--benchmark/vm_simplereturn.yml7
-rw-r--r--benchmark/vm_string_literal.yml4
-rw-r--r--benchmark/vm_struct_big_aref_hi.yml7
-rw-r--r--benchmark/vm_struct_big_aref_lo.yml7
-rw-r--r--benchmark/vm_struct_big_aset.yml11
-rw-r--r--benchmark/vm_struct_big_href_hi.yml7
-rw-r--r--benchmark/vm_struct_big_href_lo.yml7
-rw-r--r--benchmark/vm_struct_big_hset.yml11
-rw-r--r--benchmark/vm_struct_small_aref.yml7
-rw-r--r--benchmark/vm_struct_small_aset.yml11
-rw-r--r--benchmark/vm_struct_small_href.yml7
-rw-r--r--benchmark/vm_struct_small_hset.yml7
-rw-r--r--benchmark/vm_super.yml17
-rw-r--r--benchmark/vm_swap.yml7
-rw-r--r--benchmark/vm_unif1.yml7
-rw-r--r--benchmark/vm_yield.yml13
-rw-r--r--benchmark/vm_zsuper.yml18
-rw-r--r--bignum.c207
-rwxr-xr-xbin/erb193
-rwxr-xr-xbin/racc2y27
-rwxr-xr-xbin/y2racc27
-rw-r--r--bootstraptest/pending.rb23
-rwxr-xr-xbootstraptest/runner.rb30
-rw-r--r--bootstraptest/test_eval.rb8
-rw-r--r--bootstraptest/test_flow.rb8
-rw-r--r--bootstraptest/test_insns.rb15
-rw-r--r--bootstraptest/test_jump.rb23
-rw-r--r--bootstraptest/test_proc.rb17
-rw-r--r--bootstraptest/test_ractor.rb1382
-rw-r--r--bootstraptest/test_syntax.rb6
-rw-r--r--bootstraptest/test_thread.rb17
-rw-r--r--builtin.c28
-rw-r--r--builtin.h11
-rw-r--r--class.c649
-rw-r--r--common.mk13412
-rw-r--r--compar.c12
-rw-r--r--compile.c2107
-rw-r--r--complex.c108
-rw-r--r--configure.ac869
-rw-r--r--constant.h15
-rw-r--r--cont.c860
-rw-r--r--coroutine/Stack.h16
-rw-r--r--coroutine/amd64/Context.S2
-rw-r--r--coroutine/amd64/Context.h4
-rw-r--r--coroutine/arm32/Context.S23
-rw-r--r--coroutine/arm32/Context.h4
-rw-r--r--coroutine/arm64/Context.S11
-rw-r--r--coroutine/arm64/Context.h4
-rw-r--r--coroutine/copy/Context.c65
-rw-r--r--coroutine/copy/Context.h6
-rw-r--r--coroutine/ppc64le/Context.S9
-rw-r--r--coroutine/ppc64le/Context.h2
-rw-r--r--coroutine/ucontext/Context.c4
-rw-r--r--coroutine/ucontext/Context.h2
-rw-r--r--coroutine/win32/Context.asm2
-rw-r--r--coroutine/win32/Context.h4
-rw-r--r--coroutine/win64/Context.S2
-rw-r--r--coroutine/win64/Context.asm2
-rw-r--r--coroutine/win64/Context.h4
-rw-r--r--coroutine/x86/Context.S2
-rw-r--r--coroutine/x86/Context.h4
-rw-r--r--cygwin/GNUmakefile.in15
-rw-r--r--debug.c292
-rw-r--r--debug_counter.c29
-rw-r--r--debug_counter.h153
-rw-r--r--defs/gmake.mk78
-rw-r--r--dir.c564
-rw-r--r--dir.rb136
-rw-r--r--dln.c5
-rw-r--r--dln.h21
-rw-r--r--dln_find.c34
-rw-r--r--doc/.document1
-rw-r--r--doc/ChangeLog-1.9.32
-rw-r--r--doc/ChangeLog-2.0.06
-rw-r--r--doc/ChangeLog-2.1.04
-rw-r--r--doc/NEWS-2.0.03
-rw-r--r--doc/NEWS-2.2.08
-rw-r--r--doc/NEWS-2.3.070
-rw-r--r--doc/NEWS-2.4.052
-rw-r--r--doc/NEWS-2.6.0218
-rw-r--r--doc/NEWS-2.7.0826
-rw-r--r--doc/contributing.rdoc33
-rw-r--r--doc/contributors.rdoc793
-rw-r--r--doc/csv/arguments/io.rdoc5
-rw-r--r--doc/csv/options/common/col_sep.rdoc63
-rw-r--r--doc/csv/options/common/quote_char.rdoc42
-rw-r--r--doc/csv/options/common/row_sep.rdoc100
-rw-r--r--doc/csv/options/generating/force_quotes.rdoc17
-rw-r--r--doc/csv/options/generating/quote_empty.rdoc12
-rw-r--r--doc/csv/options/generating/write_converters.rdoc33
-rw-r--r--doc/csv/options/generating/write_empty_value.rdoc15
-rw-r--r--doc/csv/options/generating/write_headers.rdoc29
-rw-r--r--doc/csv/options/generating/write_nil_value.rdoc14
-rw-r--r--doc/csv/options/parsing/converters.rdoc46
-rw-r--r--doc/csv/options/parsing/empty_value.rdoc13
-rw-r--r--doc/csv/options/parsing/field_size_limit.rdoc39
-rw-r--r--doc/csv/options/parsing/header_converters.rdoc43
-rw-r--r--doc/csv/options/parsing/headers.rdoc63
-rw-r--r--doc/csv/options/parsing/liberal_parsing.rdoc19
-rw-r--r--doc/csv/options/parsing/nil_value.rdoc12
-rw-r--r--doc/csv/options/parsing/return_headers.rdoc22
-rw-r--r--doc/csv/options/parsing/skip_blanks.rdoc31
-rw-r--r--doc/csv/options/parsing/skip_lines.rdoc37
-rw-r--r--doc/csv/options/parsing/strip.rdoc15
-rw-r--r--doc/csv/options/parsing/unconverted_fields.rdoc27
-rw-r--r--doc/csv/recipes/filtering.rdoc156
-rw-r--r--doc/csv/recipes/generating.rdoc244
-rw-r--r--doc/csv/recipes/parsing.rdoc543
-rw-r--r--doc/csv/recipes/recipes.rdoc6
-rw-r--r--doc/dig_methods.rdoc82
-rw-r--r--doc/dtrace_probes.rdoc78
-rw-r--r--doc/extension.ja.rdoc11
-rw-r--r--doc/extension.rdoc133
-rw-r--r--doc/fiber.md191
-rw-r--r--doc/globals.rdoc3
-rw-r--r--doc/implicit_conversion.rdoc198
-rw-r--r--doc/keywords.rdoc2
-rw-r--r--doc/maintainers.rdoc266
-rw-r--r--doc/make_cheatsheet.md124
-rw-r--r--doc/marshal.rdoc2
-rw-r--r--doc/memory_view.md167
-rw-r--r--doc/method_documentation.rdoc183
-rw-r--r--doc/ractor.md931
-rw-r--r--doc/standard_library.rdoc79
-rw-r--r--doc/syntax.rdoc5
-rw-r--r--doc/syntax/calling_methods.rdoc36
-rw-r--r--doc/syntax/comments.rdoc216
-rw-r--r--doc/syntax/control_expressions.rdoc16
-rw-r--r--doc/syntax/literals.rdoc9
-rw-r--r--doc/syntax/methods.rdoc15
-rw-r--r--doc/syntax/miscellaneous.rdoc30
-rw-r--r--doc/syntax/pattern_matching.rdoc503
-rw-r--r--doc/syntax/refinements.rdoc5
-rw-r--r--enc/Makefile.in1
-rw-r--r--enc/ascii.c2
-rw-r--r--enc/cp949.c2
-rw-r--r--enc/depend5998
-rw-r--r--enc/encdb.c2
-rw-r--r--enc/euc_jp.c4
-rw-r--r--enc/iso_8859_11.c2
-rw-r--r--enc/iso_8859_6.c2
-rw-r--r--enc/iso_8859_8.c2
-rw-r--r--enc/shift_jis.c4
-rw-r--r--enc/trans/escape.trans3
-rw-r--r--enc/trans/ibm720-tbl.rb122
-rw-r--r--enc/trans/newline.trans10
-rw-r--r--enc/trans/single_byte.trans3
-rw-r--r--enc/unicode.c4
-rwxr-xr-x[-rw-r--r--]enc/unicode/case-folding.rb2
-rw-r--r--enc/windows_1250.c2
-rw-r--r--enc/windows_1251.c2
-rw-r--r--enc/windows_1252.c2
-rw-r--r--enc/windows_1253.c2
-rw-r--r--enc/windows_1254.c2
-rw-r--r--enc/windows_1257.c2
-rw-r--r--enc/windows_31j.c2
-rw-r--r--encindex.h5
-rw-r--r--encoding.c658
-rw-r--r--enum.c317
-rw-r--r--enumerator.c615
-rw-r--r--error.c431
-rw-r--r--eval.c150
-rw-r--r--eval_error.c46
-rw-r--r--eval_intern.h32
-rw-r--r--ext/-test-/RUBY_ALIGNOF/c.c15
-rw-r--r--ext/-test-/RUBY_ALIGNOF/cpp.cpp9
-rw-r--r--ext/-test-/RUBY_ALIGNOF/depend163
-rw-r--r--ext/-test-/RUBY_ALIGNOF/extconf.rb6
-rw-r--r--ext/-test-/arith_seq/extract/depend149
-rw-r--r--ext/-test-/array/resize/depend149
-rw-r--r--ext/-test-/bignum/big2str.c2
-rw-r--r--ext/-test-/bignum/bigzero.c2
-rw-r--r--ext/-test-/bignum/depend1049
-rw-r--r--ext/-test-/bignum/div.c2
-rw-r--r--ext/-test-/bignum/intpack.c2
-rw-r--r--ext/-test-/bignum/mul.c2
-rw-r--r--ext/-test-/bignum/str2big.c2
-rw-r--r--ext/-test-/bug-14834/depend149
-rw-r--r--ext/-test-/bug-3571/depend149
-rw-r--r--ext/-test-/bug-5832/depend149
-rw-r--r--ext/-test-/bug_reporter/depend149
-rw-r--r--ext/-test-/class/depend298
-rw-r--r--ext/-test-/cxxanyargs/cxxanyargs.cpp346
-rw-r--r--ext/-test-/cxxanyargs/depend2
-rw-r--r--ext/-test-/cxxanyargs/extconf.rb17
-rw-r--r--ext/-test-/debug/depend447
-rw-r--r--ext/-test-/enumerator_kw/depend149
-rw-r--r--ext/-test-/exception/depend596
-rw-r--r--ext/-test-/fatal/depend149
-rw-r--r--ext/-test-/file/depend447
-rw-r--r--ext/-test-/float/depend298
-rw-r--r--ext/-test-/funcall/depend149
-rw-r--r--ext/-test-/gvl/call_without_gvl/depend149
-rw-r--r--ext/-test-/hash/depend298
-rw-r--r--ext/-test-/integer/core_ext.c2
-rw-r--r--ext/-test-/integer/depend455
-rw-r--r--ext/-test-/iseq_load/depend149
-rw-r--r--ext/-test-/iter/depend447
-rw-r--r--ext/-test-/load/protect/depend149
-rw-r--r--ext/-test-/marshal/compat/depend149
-rw-r--r--ext/-test-/marshal/internal_ivar/depend149
-rw-r--r--ext/-test-/marshal/usr/depend149
-rw-r--r--ext/-test-/memory_status/depend149
-rw-r--r--ext/-test-/memory_view/depend164
-rw-r--r--ext/-test-/memory_view/extconf.rb3
-rw-r--r--ext/-test-/memory_view/memory_view.c446
-rw-r--r--ext/-test-/method/depend298
-rw-r--r--ext/-test-/notimplement/depend149
-rw-r--r--ext/-test-/num2int/depend149
-rw-r--r--ext/-test-/path_to_class/depend149
-rw-r--r--ext/-test-/popen_deadlock/depend149
-rw-r--r--ext/-test-/popen_deadlock/extconf.rb1
-rw-r--r--ext/-test-/postponed_job/depend149
-rw-r--r--ext/-test-/printf/depend149
-rw-r--r--ext/-test-/proc/depend447
-rw-r--r--ext/-test-/random/depend328
-rw-r--r--ext/-test-/random/extconf.rb3
-rw-r--r--ext/-test-/random/init.c11
-rw-r--r--ext/-test-/random/loop.c110
-rw-r--r--ext/-test-/rational/depend161
-rw-r--r--ext/-test-/rational/rat.c10
-rw-r--r--ext/-test-/rb_call_super_kw/depend149
-rw-r--r--ext/-test-/recursion/depend149
-rw-r--r--ext/-test-/regexp/depend298
-rw-r--r--ext/-test-/scan_args/depend149
-rw-r--r--ext/-test-/scan_args/scan_args.c10
-rw-r--r--ext/-test-/st/foreach/depend149
-rw-r--r--ext/-test-/st/numhash/depend149
-rw-r--r--ext/-test-/st/numhash/numhash.c2
-rw-r--r--ext/-test-/st/update/depend149
-rw-r--r--ext/-test-/string/capacity.c2
-rw-r--r--ext/-test-/string/coderange.c8
-rw-r--r--ext/-test-/string/cstr.c3
-rw-r--r--ext/-test-/string/depend2411
-rw-r--r--ext/-test-/string/fstring.c15
-rw-r--r--ext/-test-/string/normalize.c2
-rw-r--r--ext/-test-/string/rb_interned_str.c14
-rw-r--r--ext/-test-/struct/depend596
-rw-r--r--ext/-test-/symbol/depend298
-rw-r--r--ext/-test-/thread_fd_close/depend149
-rw-r--r--ext/-test-/time/depend451
-rw-r--r--ext/-test-/time/leap_second.c3
-rw-r--r--ext/-test-/tracepoint/depend298
-rw-r--r--ext/-test-/tracepoint/gc_hook.c11
-rw-r--r--ext/-test-/typeddata/depend149
-rw-r--r--ext/-test-/typeddata/typeddata.c4
-rw-r--r--ext/-test-/vm/depend149
-rw-r--r--ext/-test-/wait_for_single_fd/depend149
-rw-r--r--ext/-test-/wait_for_single_fd/extconf.rb8
-rw-r--r--ext/.document17
-rw-r--r--ext/Setup1
-rw-r--r--ext/Setup.atheos1
-rw-r--r--ext/Setup.nt1
-rw-r--r--ext/bigdecimal/bigdecimal.c229
-rw-r--r--ext/bigdecimal/bigdecimal.gemspec8
-rw-r--r--ext/bigdecimal/bigdecimal.h4
-rw-r--r--ext/bigdecimal/depend149
-rw-r--r--ext/bigdecimal/extconf.rb5
-rw-r--r--ext/bigdecimal/lib/bigdecimal/util.rb35
-rw-r--r--ext/bigdecimal/util/depend14
-rw-r--r--ext/cgi/escape/depend149
-rw-r--r--ext/cgi/escape/escape.c4
-rw-r--r--ext/continuation/depend149
-rw-r--r--ext/coverage/coverage.c205
-rw-r--r--ext/coverage/depend161
-rw-r--r--ext/date/date.gemspec4
-rw-r--r--ext/date/date_core.c118
-rw-r--r--ext/date/date_parse.c23
-rw-r--r--ext/date/date_strptime.c1
-rw-r--r--ext/date/depend598
-rw-r--r--ext/date/lib/date.rb2
-rw-r--r--ext/date/prereq.mk2
-rw-r--r--ext/date/update-abbr25
-rw-r--r--ext/date/zonetab.list14
-rw-r--r--ext/dbm/dbm.c4
-rw-r--r--ext/dbm/dbm.gemspec3
-rw-r--r--ext/dbm/depend149
-rw-r--r--ext/digest/bubblebabble/depend149
-rw-r--r--ext/digest/depend149
-rw-r--r--ext/digest/digest.c10
-rw-r--r--ext/digest/digest.gemspec47
-rw-r--r--ext/digest/digest.h8
-rw-r--r--ext/digest/digest_conf.rb69
-rw-r--r--ext/digest/md5/depend315
-rw-r--r--ext/digest/md5/md5init.c9
-rw-r--r--ext/digest/md5/md5ossl.h15
-rw-r--r--ext/digest/rmd160/depend315
-rw-r--r--ext/digest/rmd160/extconf.rb2
-rw-r--r--ext/digest/rmd160/rmd160init.c9
-rw-r--r--ext/digest/rmd160/rmd160ossl.h20
-rw-r--r--ext/digest/sha1/depend315
-rw-r--r--ext/digest/sha1/extconf.rb2
-rw-r--r--ext/digest/sha1/sha1init.c9
-rw-r--r--ext/digest/sha1/sha1ossl.h22
-rw-r--r--ext/digest/sha2/depend314
-rw-r--r--ext/digest/sha2/extconf.rb2
-rw-r--r--ext/digest/sha2/sha2init.c8
-rw-r--r--ext/digest/sha2/sha2ossl.h27
-rw-r--r--ext/etc/depend150
-rw-r--r--ext/etc/etc.c46
-rw-r--r--ext/etc/etc.gemspec3
-rw-r--r--ext/etc/extconf.rb5
-rw-r--r--ext/fcntl/depend149
-rw-r--r--ext/fcntl/fcntl.c14
-rw-r--r--ext/fcntl/fcntl.gemspec6
-rw-r--r--ext/fiddle/closure.c9
-rw-r--r--ext/fiddle/conversions.c221
-rw-r--r--ext/fiddle/conversions.h18
-rw-r--r--ext/fiddle/depend1226
-rw-r--r--ext/fiddle/extconf.rb90
-rw-r--r--ext/fiddle/extlibs12
-rw-r--r--ext/fiddle/fiddle.c167
-rw-r--r--ext/fiddle/fiddle.gemspec53
-rw-r--r--ext/fiddle/fiddle.h128
-rw-r--r--ext/fiddle/function.c345
-rw-r--r--ext/fiddle/handle.c14
-rw-r--r--ext/fiddle/lib/fiddle.rb4
-rw-r--r--ext/fiddle/lib/fiddle/cparser.rb115
-rw-r--r--ext/fiddle/lib/fiddle/function.rb5
-rw-r--r--ext/fiddle/lib/fiddle/import.rb8
-rw-r--r--ext/fiddle/lib/fiddle/struct.rb310
-rw-r--r--ext/fiddle/lib/fiddle/version.rb3
-rw-r--r--ext/fiddle/memory_view.c254
-rw-r--r--ext/fiddle/pinned.c123
-rw-r--r--ext/fiddle/pointer.c156
-rwxr-xr-x[-rw-r--r--]ext/fiddle/win32/fficonfig.h0
-rwxr-xr-xext/fiddle/win32/libffi-config.rb2
-rwxr-xr-x[-rw-r--r--]ext/fiddle/win32/libffi.mk.tmpl0
-rw-r--r--ext/gdbm/depend149
-rw-r--r--ext/gdbm/gdbm.gemspec2
-rw-r--r--ext/io/console/console.c113
-rw-r--r--ext/io/console/depend149
-rw-r--r--ext/io/console/extconf.rb12
-rw-r--r--ext/io/console/io-console.gemspec8
-rw-r--r--ext/io/nonblock/depend149
-rw-r--r--ext/io/nonblock/io-nonblock.gemspec25
-rw-r--r--ext/io/wait/depend149
-rw-r--r--ext/io/wait/io-wait.gemspec25
-rw-r--r--ext/io/wait/wait.c213
-rw-r--r--ext/json/VERSION1
-rw-r--r--ext/json/extconf.rb1
-rw-r--r--ext/json/generator/depend150
-rw-r--r--ext/json/generator/generator.c143
-rw-r--r--ext/json/generator/generator.h7
-rw-r--r--ext/json/json.gemspec100
-rw-r--r--ext/json/lib/json.rb578
-rw-r--r--ext/json/lib/json/add/complex.rb1
-rw-r--r--ext/json/lib/json/add/rational.rb1
-rw-r--r--ext/json/lib/json/common.rb493
-rw-r--r--ext/json/lib/json/version.rb2
-rw-r--r--ext/json/parser/depend149
-rw-r--r--ext/json/parser/extconf.rb25
-rw-r--r--ext/json/parser/parser.c231
-rw-r--r--ext/json/parser/parser.h1
-rw-r--r--ext/json/parser/parser.rl93
-rw-r--r--ext/json/parser/prereq.mk1
-rw-r--r--ext/monitor/depend149
-rw-r--r--ext/monitor/lib/monitor.rb6
-rw-r--r--ext/monitor/monitor.c14
-rw-r--r--ext/nkf/depend149
-rw-r--r--ext/nkf/nkf.gemspec24
-rw-r--r--ext/objspace/depend478
-rw-r--r--ext/objspace/lib/objspace.rb91
-rw-r--r--ext/objspace/object_tracing.c88
-rw-r--r--ext/objspace/objspace.c276
-rw-r--r--ext/objspace/objspace_dump.c637
-rw-r--r--ext/openssl/History.md77
-rw-r--r--ext/openssl/depend4869
-rw-r--r--ext/openssl/deprecation.rb27
-rw-r--r--ext/openssl/extconf.rb39
-rw-r--r--ext/openssl/lib/openssl.rb34
-rw-r--r--ext/openssl/lib/openssl/bn.rb2
-rw-r--r--ext/openssl/lib/openssl/buffering.rb33
-rw-r--r--ext/openssl/lib/openssl/cipher.rb2
-rw-r--r--ext/openssl/lib/openssl/config.rb79
-rw-r--r--ext/openssl/lib/openssl/digest.rb22
-rw-r--r--ext/openssl/lib/openssl/hmac.rb13
-rw-r--r--ext/openssl/lib/openssl/marshal.rb30
-rw-r--r--ext/openssl/lib/openssl/pkcs5.rb2
-rw-r--r--ext/openssl/lib/openssl/pkey.rb19
-rw-r--r--ext/openssl/lib/openssl/ssl.rb42
-rw-r--r--ext/openssl/lib/openssl/version.rb5
-rw-r--r--ext/openssl/lib/openssl/x509.rb156
-rw-r--r--ext/openssl/openssl.gemspec47
-rw-r--r--ext/openssl/openssl_missing.h37
-rw-r--r--ext/openssl/ossl.c83
-rw-r--r--ext/openssl/ossl.h10
-rw-r--r--ext/openssl/ossl_asn1.c25
-rw-r--r--ext/openssl/ossl_bn.c75
-rw-r--r--ext/openssl/ossl_bn.h3
-rw-r--r--ext/openssl/ossl_cipher.c31
-rw-r--r--ext/openssl/ossl_digest.c67
-rw-r--r--ext/openssl/ossl_engine.c14
-rw-r--r--ext/openssl/ossl_hmac.c16
-rw-r--r--ext/openssl/ossl_kdf.c22
-rw-r--r--ext/openssl/ossl_ns_spki.c2
-rw-r--r--ext/openssl/ossl_ocsp.c17
-rw-r--r--ext/openssl/ossl_ocsp.h6
-rw-r--r--ext/openssl/ossl_pkcs7.c18
-rw-r--r--ext/openssl/ossl_pkcs7.h16
-rw-r--r--ext/openssl/ossl_pkey.c194
-rw-r--r--ext/openssl/ossl_pkey_dsa.c4
-rw-r--r--ext/openssl/ossl_pkey_ec.c29
-rw-r--r--ext/openssl/ossl_pkey_rsa.c26
-rw-r--r--ext/openssl/ossl_rand.c34
-rw-r--r--ext/openssl/ossl_ssl.c175
-rw-r--r--ext/openssl/ossl_ts.c1514
-rw-r--r--ext/openssl/ossl_ts.h16
-rw-r--r--ext/openssl/ossl_version.h15
-rw-r--r--ext/openssl/ossl_x509.c91
-rw-r--r--ext/openssl/ossl_x509cert.c4
-rw-r--r--ext/openssl/ossl_x509ext.c14
-rw-r--r--ext/openssl/ossl_x509name.c10
-rw-r--r--ext/pathname/depend149
-rw-r--r--ext/pathname/lib/pathname.rb18
-rw-r--r--ext/pathname/pathname.c33
-rw-r--r--ext/pathname/pathname.gemspec25
-rw-r--r--ext/psych/depend745
-rw-r--r--ext/psych/lib/psych.rb108
-rw-r--r--ext/psych/lib/psych/class_loader.rb10
-rw-r--r--ext/psych/lib/psych/nodes/node.rb4
-rw-r--r--ext/psych/lib/psych/scalar_scanner.rb2
-rw-r--r--ext/psych/lib/psych/versions.rb4
-rw-r--r--ext/psych/lib/psych/visitors/to_ruby.rb35
-rw-r--r--ext/psych/lib/psych/visitors/visitor.rb20
-rw-r--r--ext/psych/lib/psych/visitors/yaml_tree.rb4
-rw-r--r--ext/psych/psych.c9
-rw-r--r--ext/psych/psych.gemspec15
-rw-r--r--ext/psych/psych_parser.c34
-rw-r--r--ext/psych/psych_yaml_tree.c12
-rw-r--r--ext/psych/yaml/api.c36
-rw-r--r--ext/psych/yaml/config.h82
-rw-r--r--ext/psych/yaml/dumper.c2
-rw-r--r--ext/psych/yaml/emitter.c54
-rw-r--r--ext/psych/yaml/loader.c306
-rw-r--r--ext/psych/yaml/parser.c7
-rw-r--r--ext/psych/yaml/scanner.c64
-rw-r--r--ext/psych/yaml/yaml.h68
-rw-r--r--ext/psych/yaml/yaml_private.h6
-rw-r--r--ext/pty/depend157
-rw-r--r--ext/pty/extconf.rb4
-rw-r--r--ext/pty/pty.c64
-rw-r--r--ext/racc/cparse/cparse.c36
-rw-r--r--ext/racc/cparse/depend149
-rw-r--r--ext/racc/cparse/extconf.rb2
-rw-r--r--ext/rbconfig/sizeof/depend298
-rw-r--r--ext/readline/depend149
-rw-r--r--ext/readline/depend-gem4
-rw-r--r--ext/readline/extconf.rb1
-rw-r--r--ext/readline/readline-ext.gemspec11
-rw-r--r--ext/readline/readline.c14
-rw-r--r--ext/ripper/depend180
-rw-r--r--ext/ripper/eventids2.c10
-rw-r--r--ext/ripper/lib/ripper/lexer.rb57
-rw-r--r--ext/ripper/lib/ripper/sexp.rb37
-rw-r--r--ext/ripper/tools/dsl.rb3
-rw-r--r--ext/ripper/tools/preproc.rb12
-rw-r--r--ext/sdbm/_sdbm.c952
-rw-r--r--ext/sdbm/depend27
-rw-r--r--ext/sdbm/extconf.rb5
-rw-r--r--ext/sdbm/init.c1067
-rw-r--r--ext/sdbm/sdbm.gemspec21
-rw-r--r--ext/sdbm/sdbm.h86
-rw-r--r--ext/socket/ancdata.c10
-rw-r--r--ext/socket/depend2400
-rw-r--r--ext/socket/extconf.rb2
-rw-r--r--ext/socket/ifaddr.c2
-rw-r--r--ext/socket/init.c179
-rw-r--r--ext/socket/ipsocket.c19
-rw-r--r--ext/socket/option.c4
-rw-r--r--ext/socket/raddrinfo.c122
-rw-r--r--ext/socket/rubysocket.h71
-rw-r--r--ext/socket/socket.c106
-rw-r--r--ext/socket/sockssocket.c2
-rw-r--r--ext/socket/tcpserver.c2
-rw-r--r--ext/socket/tcpsocket.c28
-rw-r--r--ext/socket/udpsocket.c2
-rw-r--r--ext/socket/unixsocket.c8
-rw-r--r--ext/stringio/depend149
-rw-r--r--ext/stringio/stringio.c85
-rw-r--r--ext/stringio/stringio.gemspec4
-rw-r--r--ext/strscan/depend150
-rw-r--r--ext/strscan/strscan.c37
-rw-r--r--ext/strscan/strscan.gemspec16
-rw-r--r--ext/syslog/depend149
-rw-r--r--ext/syslog/syslog.gemspec23
-rw-r--r--ext/win32/lib/Win32API.rb47
-rw-r--r--ext/win32/lib/win32/importer.rb9
-rw-r--r--ext/win32/lib/win32/registry.rb6
-rw-r--r--ext/win32/lib/win32/resolv.rb13
-rw-r--r--ext/win32/lib/win32/resolv9x.rb253
-rw-r--r--ext/win32/lib/win32/sspi.rb627
-rw-r--r--ext/win32ole/win32ole.c4
-rw-r--r--ext/win32ole/win32ole.gemspec21
-rw-r--r--ext/win32ole/win32ole.h4
-rw-r--r--ext/win32ole/win32ole_error.c3
-rw-r--r--ext/win32ole/win32ole_error.h4
-rw-r--r--ext/win32ole/win32ole_method.c2
-rw-r--r--ext/win32ole/win32ole_method.h2
-rw-r--r--ext/win32ole/win32ole_record.c2
-rw-r--r--ext/win32ole/win32ole_record.h2
-rw-r--r--ext/win32ole/win32ole_type.c2
-rw-r--r--ext/win32ole/win32ole_type.h2
-rw-r--r--ext/win32ole/win32ole_typelib.c2
-rw-r--r--ext/win32ole/win32ole_typelib.h2
-rw-r--r--ext/win32ole/win32ole_variable.c2
-rw-r--r--ext/win32ole/win32ole_variable.h2
-rw-r--r--ext/win32ole/win32ole_variant.c2
-rw-r--r--ext/win32ole/win32ole_variant.h2
-rw-r--r--ext/win32ole/win32ole_variant_m.c2
-rw-r--r--ext/win32ole/win32ole_variant_m.h2
-rw-r--r--ext/zlib/depend149
-rw-r--r--ext/zlib/extconf.rb6
-rw-r--r--ext/zlib/extlibs8
-rw-r--r--ext/zlib/win32/zlib-1.2.11-mswin.patch95
-rw-r--r--ext/zlib/zlib.c191
-rw-r--r--ext/zlib/zlib.gemspec2
-rw-r--r--file.c270
-rw-r--r--gc.c3651
-rw-r--r--gc.h13
-rw-r--r--gc.rb94
-rw-r--r--gem_prelude.rb13
-rw-r--r--gems/bundled_gems15
-rw-r--r--goruby.c6
-rw-r--r--hash.c2812
-rw-r--r--id_table.c6
-rw-r--r--id_table.h2
-rw-r--r--include/ruby.h31
-rw-r--r--include/ruby/assert.h254
-rw-r--r--include/ruby/atomic.h236
-rw-r--r--include/ruby/backward.h28
-rw-r--r--include/ruby/backward/2/assume.h43
-rw-r--r--include/ruby/backward/2/attributes.h170
-rw-r--r--include/ruby/backward/2/bool.h37
-rw-r--r--include/ruby/backward/2/gcc_version_since.h38
-rw-r--r--include/ruby/backward/2/inttypes.h132
-rw-r--r--include/ruby/backward/2/limits.h100
-rw-r--r--include/ruby/backward/2/long_long.h65
-rw-r--r--include/ruby/backward/2/r_cast.h33
-rw-r--r--include/ruby/backward/2/rmodule.h37
-rw-r--r--include/ruby/backward/2/stdalign.h30
-rw-r--r--include/ruby/backward/2/stdarg.h47
-rw-r--r--include/ruby/backward/classext.h18
-rw-r--r--include/ruby/backward/cxxanyargs.hpp350
-rw-r--r--include/ruby/backward/rubyio.h6
-rw-r--r--include/ruby/backward/rubysig.h47
-rw-r--r--include/ruby/backward/st.h6
-rw-r--r--include/ruby/backward/util.h6
-rw-r--r--include/ruby/debug.h44
-rw-r--r--include/ruby/defines.h523
-rw-r--r--include/ruby/encoding.h50
-rw-r--r--include/ruby/intern.h1268
-rw-r--r--include/ruby/internal/anyargs.h375
-rw-r--r--include/ruby/internal/arithmetic.h38
-rw-r--r--include/ruby/internal/arithmetic/char.h58
-rw-r--r--include/ruby/internal/arithmetic/double.h39
-rw-r--r--include/ruby/internal/arithmetic/fixnum.h44
-rw-r--r--include/ruby/internal/arithmetic/gid_t.h34
-rw-r--r--include/ruby/internal/arithmetic/int.h163
-rw-r--r--include/ruby/internal/arithmetic/intptr_t.h42
-rw-r--r--include/ruby/internal/arithmetic/long.h244
-rw-r--r--include/ruby/internal/arithmetic/long_long.h53
-rw-r--r--include/ruby/internal/arithmetic/mode_t.h34
-rw-r--r--include/ruby/internal/arithmetic/off_t.h49
-rw-r--r--include/ruby/internal/arithmetic/pid_t.h34
-rw-r--r--include/ruby/internal/arithmetic/short.h54
-rw-r--r--include/ruby/internal/arithmetic/size_t.h56
-rw-r--r--include/ruby/internal/arithmetic/st_data_t.h59
-rw-r--r--include/ruby/internal/arithmetic/uid_t.h34
-rw-r--r--include/ruby/internal/assume.h90
-rw-r--r--include/ruby/internal/attr/alloc_size.h32
-rw-r--r--include/ruby/internal/attr/artificial.h46
-rw-r--r--include/ruby/internal/attr/cold.h37
-rw-r--r--include/ruby/internal/attr/const.h46
-rw-r--r--include/ruby/internal/attr/constexpr.h85
-rw-r--r--include/ruby/internal/attr/deprecated.h63
-rw-r--r--include/ruby/internal/attr/diagnose_if.h42
-rw-r--r--include/ruby/internal/attr/enum_extensibility.h32
-rw-r--r--include/ruby/internal/attr/error.h32
-rw-r--r--include/ruby/internal/attr/flag_enum.h33
-rw-r--r--include/ruby/internal/attr/forceinline.h40
-rw-r--r--include/ruby/internal/attr/format.h38
-rw-r--r--include/ruby/internal/attr/maybe_unused.h38
-rw-r--r--include/ruby/internal/attr/noalias.h58
-rw-r--r--include/ruby/internal/attr/nodiscard.h45
-rw-r--r--include/ruby/internal/attr/noexcept.h91
-rw-r--r--include/ruby/internal/attr/noinline.h35
-rw-r--r--include/ruby/internal/attr/nonnull.h32
-rw-r--r--include/ruby/internal/attr/noreturn.h48
-rw-r--r--include/ruby/internal/attr/pure.h43
-rw-r--r--include/ruby/internal/attr/restrict.h45
-rw-r--r--include/ruby/internal/attr/returns_nonnull.h37
-rw-r--r--include/ruby/internal/attr/warning.h32
-rw-r--r--include/ruby/internal/attr/weakref.h32
-rw-r--r--include/ruby/internal/cast.h53
-rw-r--r--include/ruby/internal/compiler_is.h45
-rw-r--r--include/ruby/internal/compiler_is/apple.h41
-rw-r--r--include/ruby/internal/compiler_is/clang.h38
-rw-r--r--include/ruby/internal/compiler_is/gcc.h46
-rw-r--r--include/ruby/internal/compiler_is/intel.h41
-rw-r--r--include/ruby/internal/compiler_is/msvc.h57
-rw-r--r--include/ruby/internal/compiler_is/sunpro.h55
-rw-r--r--include/ruby/internal/compiler_since.h61
-rw-r--r--include/ruby/internal/config.h144
-rw-r--r--include/ruby/internal/constant_p.h37
-rw-r--r--include/ruby/internal/core.h35
-rw-r--r--include/ruby/internal/core/rarray.h270
-rw-r--r--include/ruby/internal/core/rbasic.h85
-rw-r--r--include/ruby/internal/core/rbignum.h51
-rw-r--r--include/ruby/internal/core/rclass.h47
-rw-r--r--include/ruby/internal/core/rdata.h184
-rw-r--r--include/ruby/internal/core/rfile.h36
-rw-r--r--include/ruby/internal/core/rhash.h62
-rw-r--r--include/ruby/internal/core/rmatch.h73
-rw-r--r--include/ruby/internal/core/robject.h96
-rw-r--r--include/ruby/internal/core/rregexp.h84
-rw-r--r--include/ruby/internal/core/rstring.h215
-rw-r--r--include/ruby/internal/core/rstruct.h73
-rw-r--r--include/ruby/internal/core/rtypeddata.h186
-rw-r--r--include/ruby/internal/ctype.h203
-rw-r--r--include/ruby/internal/dllexport.h92
-rw-r--r--include/ruby/internal/dosish.h63
-rw-r--r--include/ruby/internal/error.h84
-rw-r--r--include/ruby/internal/eval.h50
-rw-r--r--include/ruby/internal/event.h75
-rw-r--r--include/ruby/internal/fl_type.h471
-rw-r--r--include/ruby/internal/gc.h57
-rw-r--r--include/ruby/internal/glob.h35
-rw-r--r--include/ruby/internal/globals.h157
-rw-r--r--include/ruby/internal/has/attribute.h164
-rw-r--r--include/ruby/internal/has/builtin.h105
-rw-r--r--include/ruby/internal/has/c_attribute.h38
-rw-r--r--include/ruby/internal/has/cpp_attribute.h87
-rw-r--r--include/ruby/internal/has/declspec_attribute.h48
-rw-r--r--include/ruby/internal/has/extension.h33
-rw-r--r--include/ruby/internal/has/feature.h31
-rw-r--r--include/ruby/internal/has/warning.h31
-rw-r--r--include/ruby/internal/intern/array.h78
-rw-r--r--include/ruby/internal/intern/bignum.h105
-rw-r--r--include/ruby/internal/intern/class.h57
-rw-r--r--include/ruby/internal/intern/compar.h34
-rw-r--r--include/ruby/internal/intern/complex.h60
-rw-r--r--include/ruby/internal/intern/cont.h41
-rw-r--r--include/ruby/internal/intern/dir.h33
-rw-r--r--include/ruby/internal/intern/enum.h33
-rw-r--r--include/ruby/internal/intern/enumerator.h80
-rw-r--r--include/ruby/internal/intern/error.h82
-rw-r--r--include/ruby/internal/intern/eval.h59
-rw-r--r--include/ruby/internal/intern/file.h42
-rw-r--r--include/ruby/internal/intern/gc.h57
-rw-r--r--include/ruby/internal/intern/hash.h59
-rw-r--r--include/ruby/internal/intern/io.h70
-rw-r--r--include/ruby/internal/intern/load.h44
-rw-r--r--include/ruby/internal/intern/marshal.h35
-rw-r--r--include/ruby/internal/intern/numeric.h42
-rw-r--r--include/ruby/internal/intern/object.h90
-rw-r--r--include/ruby/internal/intern/parse.h64
-rw-r--r--include/ruby/internal/intern/proc.h53
-rw-r--r--include/ruby/internal/intern/process.h46
-rw-r--r--include/ruby/internal/intern/random.h45
-rw-r--r--include/ruby/internal/intern/range.h35
-rw-r--r--include/ruby/internal/intern/rational.h46
-rw-r--r--include/ruby/internal/intern/re.h50
-rw-r--r--include/ruby/internal/intern/ruby.h37
-rw-r--r--include/ruby/internal/intern/select.h52
-rw-r--r--include/ruby/internal/intern/select/largesize.h103
-rw-r--r--include/ruby/internal/intern/select/posix.h82
-rw-r--r--include/ruby/internal/intern/select/win32.h124
-rw-r--r--include/ruby/internal/intern/signal.h39
-rw-r--r--include/ruby/internal/intern/sprintf.h43
-rw-r--r--include/ruby/internal/intern/string.h298
-rw-r--r--include/ruby/internal/intern/struct.h47
-rw-r--r--include/ruby/internal/intern/thread.h76
-rw-r--r--include/ruby/internal/intern/time.h51
-rw-r--r--include/ruby/internal/intern/variable.h83
-rw-r--r--include/ruby/internal/intern/vm.h77
-rw-r--r--include/ruby/internal/interpreter.h93
-rw-r--r--include/ruby/internal/iterator.h65
-rw-r--r--include/ruby/internal/memory.h279
-rw-r--r--include/ruby/internal/method.h39
-rw-r--r--include/ruby/internal/module.h39
-rw-r--r--include/ruby/internal/newobj.h73
-rw-r--r--include/ruby/internal/rgengc.h199
-rw-r--r--include/ruby/internal/scan_args.h401
-rw-r--r--include/ruby/internal/special_consts.h204
-rw-r--r--include/ruby/internal/static_assert.h77
-rw-r--r--include/ruby/internal/stdalign.h133
-rw-r--r--include/ruby/internal/stdbool.h51
-rw-r--r--include/ruby/internal/symbol.h114
-rw-r--r--include/ruby/internal/token_paste.h75
-rw-r--r--include/ruby/internal/value.h66
-rw-r--r--include/ruby/internal/value_type.h354
-rw-r--r--include/ruby/internal/variable.h62
-rw-r--r--include/ruby/internal/warning_push.h91
-rw-r--r--include/ruby/internal/xmalloc.h362
-rw-r--r--include/ruby/io.h71
-rw-r--r--include/ruby/memory_view.h165
-rw-r--r--include/ruby/missing.h134
-rw-r--r--include/ruby/ractor.h68
-rw-r--r--include/ruby/random.h92
-rw-r--r--include/ruby/re.h69
-rw-r--r--include/ruby/regex.h22
-rw-r--r--include/ruby/ruby.h2818
-rw-r--r--include/ruby/st.h2
-rw-r--r--include/ruby/subst.h10
-rw-r--r--include/ruby/thread.h43
-rw-r--r--include/ruby/thread_native.h42
-rw-r--r--include/ruby/util.h68
-rw-r--r--include/ruby/version.h56
-rw-r--r--include/ruby/vm.h42
-rw-r--r--include/ruby/win32.h84
-rw-r--r--inits.c37
-rw-r--r--insns.def103
-rw-r--r--integer.rb150
-rw-r--r--internal.h2706
-rw-r--r--internal/array.h119
-rw-r--r--internal/bignum.h246
-rw-r--r--internal/bits.h566
-rw-r--r--internal/class.h174
-rw-r--r--internal/compar.h50
-rw-r--r--internal/compile.h32
-rw-r--r--internal/compilers.h108
-rw-r--r--internal/complex.h30
-rw-r--r--internal/cont.h25
-rw-r--r--internal/dir.h17
-rw-r--r--internal/enc.h20
-rw-r--r--internal/encoding.h31
-rw-r--r--internal/enum.h19
-rw-r--r--internal/enumerator.h22
-rw-r--r--internal/error.h124
-rw-r--r--internal/eval.h33
-rw-r--r--internal/file.h39
-rw-r--r--internal/fixnum.h185
-rw-r--r--internal/gc.h161
-rw-r--r--internal/hash.h241
-rw-r--r--internal/imemo.h244
-rw-r--r--internal/inits.h51
-rw-r--r--internal/io.h35
-rw-r--r--internal/load.h19
-rw-r--r--internal/loadpath.h17
-rw-r--r--internal/math.h24
-rw-r--r--internal/missing.h19
-rw-r--r--internal/numeric.h255
-rw-r--r--internal/object.h83
-rw-r--r--internal/parse.h23
-rw-r--r--internal/proc.h33
-rw-r--r--internal/process.h136
-rw-r--r--internal/random.h17
-rw-r--r--internal/range.h41
-rw-r--r--internal/rational.h72
-rw-r--r--internal/re.h29
-rw-r--r--internal/sanitizers.h191
-rw-r--r--internal/scheduler.h44
-rw-r--r--internal/serial.h24
-rw-r--r--internal/signal.h22
-rw-r--r--internal/static_assert.h17
-rw-r--r--internal/string.h140
-rw-r--r--internal/struct.h154
-rw-r--r--internal/symbol.h41
-rw-r--r--internal/thread.h54
-rw-r--r--internal/time.h35
-rw-r--r--internal/transcode.h21
-rw-r--r--internal/util.h31
-rw-r--r--internal/variable.h84
-rw-r--r--internal/vm.h131
-rw-r--r--internal/warnings.h17
-rw-r--r--io.c965
-rw-r--r--io.rb4
-rw-r--r--iseq.c280
-rw-r--r--iseq.h19
-rw-r--r--kernel.rb174
-rw-r--r--lib/.document5
-rw-r--r--lib/English.gemspec24
-rw-r--r--lib/abbrev.gemspec22
-rw-r--r--lib/base64.gemspec22
-rw-r--r--lib/benchmark/benchmark.gemspec4
-rw-r--r--lib/benchmark/version.rb2
-rw-r--r--lib/bundler.rb45
-rw-r--r--lib/bundler/build_metadata.rb10
-rw-r--r--lib/bundler/bundler.gemspec11
-rw-r--r--lib/bundler/cli.rb128
-rw-r--r--lib/bundler/cli/add.rb2
-rw-r--r--lib/bundler/cli/binstubs.rb8
-rw-r--r--lib/bundler/cli/cache.rb9
-rw-r--r--lib/bundler/cli/check.rb6
-rw-r--r--lib/bundler/cli/clean.rb2
-rw-r--r--lib/bundler/cli/common.rb31
-rw-r--r--lib/bundler/cli/console.rb2
-rw-r--r--lib/bundler/cli/doctor.rb14
-rw-r--r--lib/bundler/cli/exec.rb8
-rw-r--r--lib/bundler/cli/fund.rb36
-rw-r--r--lib/bundler/cli/gem.rb157
-rw-r--r--lib/bundler/cli/info.rb19
-rw-r--r--lib/bundler/cli/init.rb4
-rw-r--r--lib/bundler/cli/inject.rb2
-rw-r--r--lib/bundler/cli/install.rb40
-rw-r--r--lib/bundler/cli/issue.rb4
-rw-r--r--lib/bundler/cli/list.rb22
-rw-r--r--lib/bundler/cli/lock.rb6
-rw-r--r--lib/bundler/cli/outdated.rb170
-rw-r--r--lib/bundler/cli/package.rb48
-rw-r--r--lib/bundler/cli/plugin.rb10
-rw-r--r--lib/bundler/cli/pristine.rb5
-rw-r--r--lib/bundler/cli/show.rb2
-rw-r--r--lib/bundler/cli/update.rb15
-rw-r--r--lib/bundler/compact_index_client.rb2
-rw-r--r--lib/bundler/compact_index_client/cache.rb20
-rw-r--r--lib/bundler/compact_index_client/gem_parser.rb28
-rw-r--r--lib/bundler/compact_index_client/updater.rb30
-rw-r--r--lib/bundler/current_ruby.rb9
-rw-r--r--lib/bundler/definition.rb339
-rw-r--r--lib/bundler/dep_proxy.rb25
-rw-r--r--lib/bundler/dependency.rb13
-rw-r--r--lib/bundler/dsl.rb65
-rw-r--r--lib/bundler/endpoint_specification.rb2
-rw-r--r--lib/bundler/env.rb2
-rw-r--r--lib/bundler/environment_preserver.rb28
-rw-r--r--lib/bundler/errors.rb1
-rw-r--r--lib/bundler/feature_flag.rb8
-rw-r--r--lib/bundler/fetcher.rb9
-rw-r--r--lib/bundler/fetcher/base.rb2
-rw-r--r--lib/bundler/fetcher/compact_index.rb4
-rw-r--r--lib/bundler/fetcher/downloader.rb17
-rw-r--r--lib/bundler/fetcher/index.rb8
-rw-r--r--lib/bundler/friendly_errors.rb39
-rw-r--r--lib/bundler/gem_helper.rb72
-rw-r--r--lib/bundler/gem_helpers.rb61
-rw-r--r--lib/bundler/gem_remote_fetcher.rb43
-rw-r--r--lib/bundler/gem_version_promoter.rb8
-rw-r--r--lib/bundler/graph.rb2
-rw-r--r--lib/bundler/index.rb22
-rw-r--r--lib/bundler/injector.rb28
-rw-r--r--lib/bundler/inline.rb7
-rw-r--r--lib/bundler/installer.rb91
-rw-r--r--lib/bundler/installer/gem_installer.rb6
-rw-r--r--lib/bundler/installer/parallel_installer.rb71
-rw-r--r--lib/bundler/installer/standalone.rb19
-rw-r--r--lib/bundler/lazy_specification.rb70
-rw-r--r--lib/bundler/lockfile_generator.rb2
-rw-r--r--lib/bundler/lockfile_parser.rb40
-rw-r--r--lib/bundler/man/.document1
-rw-r--r--lib/bundler/man/bundle-add.166
-rw-r--r--lib/bundler/man/bundle-binstubs.142
-rw-r--r--lib/bundler/man/bundle-binstubs.1.ronn41
-rw-r--r--lib/bundler/man/bundle-cache.155
-rw-r--r--lib/bundler/man/bundle-check.131
-rw-r--r--lib/bundler/man/bundle-clean.124
-rw-r--r--lib/bundler/man/bundle-config.1496
-rw-r--r--lib/bundler/man/bundle-config.1.ronn396
-rw-r--r--lib/bundler/man/bundle-doctor.144
-rw-r--r--lib/bundler/man/bundle-exec.1165
-rw-r--r--lib/bundler/man/bundle-gem.1102
-rw-r--r--lib/bundler/man/bundle-gem.1.ronn101
-rw-r--r--lib/bundler/man/bundle-info.120
-rw-r--r--lib/bundler/man/bundle-init.125
-rw-r--r--lib/bundler/man/bundle-inject.133
-rw-r--r--lib/bundler/man/bundle-install.1338
-rw-r--r--lib/bundler/man/bundle-install.1.ronn405
-rw-r--r--lib/bundler/man/bundle-list.150
-rw-r--r--lib/bundler/man/bundle-list.1.ronn33
-rw-r--r--lib/bundler/man/bundle-lock.184
-rw-r--r--lib/bundler/man/bundle-open.132
-rw-r--r--lib/bundler/man/bundle-outdated.1155
-rw-r--r--lib/bundler/man/bundle-platform.161
-rw-r--r--lib/bundler/man/bundle-pristine.134
-rw-r--r--lib/bundler/man/bundle-remove.131
-rw-r--r--lib/bundler/man/bundle-show.123
-rw-r--r--lib/bundler/man/bundle-update.1394
-rw-r--r--lib/bundler/man/bundle-update.1.ronn350
-rw-r--r--lib/bundler/man/bundle-viz.139
-rw-r--r--lib/bundler/man/bundle.1136
-rw-r--r--lib/bundler/man/gemfile.5686
-rw-r--r--lib/bundler/man/gemfile.5.ronn517
-rw-r--r--lib/bundler/man/index.txt25
-rw-r--r--lib/bundler/mirror.rb4
-rw-r--r--lib/bundler/plugin.rb40
-rw-r--r--lib/bundler/plugin/api/source.rb23
-rw-r--r--lib/bundler/plugin/dsl.rb2
-rw-r--r--lib/bundler/plugin/index.rb11
-rw-r--r--lib/bundler/plugin/installer.rb20
-rw-r--r--lib/bundler/plugin/installer/rubygems.rb2
-rw-r--r--lib/bundler/plugin/source_list.rb6
-rw-r--r--lib/bundler/psyched_yaml.rb15
-rw-r--r--lib/bundler/remote_specification.rb7
-rw-r--r--lib/bundler/resolver.rb205
-rw-r--r--lib/bundler/resolver/spec_group.rb109
-rw-r--r--lib/bundler/retry.rb4
-rw-r--r--lib/bundler/ruby_version.rb2
-rw-r--r--lib/bundler/rubygems_ext.rb82
-rw-r--r--lib/bundler/rubygems_gem_installer.rb59
-rw-r--r--lib/bundler/rubygems_integration.rb92
-rw-r--r--lib/bundler/runtime.rb18
-rw-r--r--lib/bundler/settings.rb186
-rw-r--r--lib/bundler/shared_helpers.rb6
-rw-r--r--lib/bundler/similarity_detector.rb2
-rw-r--r--lib/bundler/source.rb19
-rw-r--r--lib/bundler/source/git.rb46
-rw-r--r--lib/bundler/source/git/git_proxy.rb162
-rw-r--r--lib/bundler/source/metadata.rb4
-rw-r--r--lib/bundler/source/path.rb14
-rw-r--r--lib/bundler/source/path/installer.rb20
-rw-r--r--lib/bundler/source/rubygems.rb107
-rw-r--r--lib/bundler/source/rubygems/remote.rb2
-rw-r--r--lib/bundler/source/rubygems_aggregate.rb64
-rw-r--r--lib/bundler/source_list.rb127
-rw-r--r--lib/bundler/source_map.rb58
-rw-r--r--lib/bundler/spec_set.rb54
-rw-r--r--lib/bundler/stub_specification.rb32
-rw-r--r--lib/bundler/templates/Gemfile2
-rw-r--r--lib/bundler/templates/gems.rb2
-rw-r--r--lib/bundler/templates/newgem/CHANGELOG.md.tt5
-rw-r--r--lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt104
-rw-r--r--lib/bundler/templates/newgem/Gemfile.tt10
-rw-r--r--lib/bundler/templates/newgem/README.md.tt11
-rw-r--r--lib/bundler/templates/newgem/Rakefile.tt24
-rw-r--r--lib/bundler/templates/newgem/bin/console.tt1
-rw-r--r--lib/bundler/templates/newgem/circleci/config.yml.tt13
-rw-r--r--lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt2
-rw-r--r--lib/bundler/templates/newgem/github/workflows/main.yml.tt16
-rw-r--r--lib/bundler/templates/newgem/gitlab-ci.yml.tt9
-rw-r--r--lib/bundler/templates/newgem/lib/newgem.rb.tt6
-rw-r--r--lib/bundler/templates/newgem/lib/newgem/version.rb.tt2
-rw-r--r--lib/bundler/templates/newgem/newgem.gemspec.tt24
-rw-r--r--lib/bundler/templates/newgem/rubocop.yml.tt13
-rw-r--r--lib/bundler/templates/newgem/spec/newgem_spec.rb.tt2
-rw-r--r--lib/bundler/templates/newgem/spec/spec_helper.rb.tt3
-rw-r--r--lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt13
-rw-r--r--lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt6
-rw-r--r--lib/bundler/templates/newgem/test/newgem_test.rb.tt11
-rw-r--r--lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt15
-rw-r--r--lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt6
-rw-r--r--lib/bundler/templates/newgem/test/test_helper.rb.tt4
-rw-r--r--lib/bundler/ui/shell.rb10
-rw-r--r--lib/bundler/uri_credentials_filter.rb4
-rw-r--r--lib/bundler/vendor/fileutils/lib/fileutils/version.rb5
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo.rb1
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb26
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb7
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb36
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb4
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb16
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/errors.rb6
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb2
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb13
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb96
-rw-r--r--lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb287
-rw-r--r--lib/bundler/vendor/thor/lib/thor.rb18
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions.rb2
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/create_link.rb3
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb6
-rw-r--r--lib/bundler/vendor/thor/lib/thor/base.rb9
-rw-r--r--lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb12
-rw-r--r--lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb129
-rw-r--r--lib/bundler/vendor/thor/lib/thor/error.rb2
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/arguments.rb6
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/options.rb17
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell/basic.rb7
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell/color.rb6
-rw-r--r--lib/bundler/vendor/thor/lib/thor/version.rb2
-rw-r--r--lib/bundler/vendor/tmpdir/lib/tmpdir.rb154
-rw-r--r--lib/bundler/vendored_persistent.rb7
-rw-r--r--lib/bundler/vendored_tmpdir.rb4
-rw-r--r--lib/bundler/version.rb2
-rw-r--r--lib/bundler/worker.rb2
-rw-r--r--lib/bundler/yaml_serializer.rb2
-rw-r--r--lib/cgi.rb1
-rw-r--r--lib/cgi/cgi.gemspec20
-rw-r--r--lib/cgi/version.rb3
-rw-r--r--lib/csv.rb2284
-rw-r--r--lib/csv/csv.gemspec50
-rw-r--r--lib/csv/fields_converter.rb2
-rw-r--r--lib/csv/parser.rb16
-rw-r--r--lib/csv/row.rb414
-rw-r--r--lib/csv/table.rb319
-rw-r--r--lib/csv/version.rb2
-rw-r--r--lib/csv/writer.rb49
-rw-r--r--lib/debug.gemspec22
-rw-r--r--lib/debug.rb8
-rw-r--r--lib/delegate.rb36
-rw-r--r--lib/delegate/delegate.gemspec20
-rw-r--r--lib/delegate/version.rb3
-rw-r--r--lib/did_you_mean.rb4
-rw-r--r--lib/did_you_mean/experimental/initializer_name_correction.rb20
-rw-r--r--lib/did_you_mean/experimental/ivar_name_correction.rb76
-rw-r--r--lib/did_you_mean/spell_checkers/method_name_checker.rb7
-rw-r--r--lib/did_you_mean/spell_checkers/require_path_checker.rb35
-rw-r--r--lib/did_you_mean/tree_spell_checker.rb150
-rw-r--r--lib/did_you_mean/version.rb2
-rw-r--r--lib/drb/drb.gemspec30
-rw-r--r--lib/drb/drb.rb11
-rw-r--r--lib/drb/observer.rb2
-rw-r--r--lib/drb/ssl.rb2
-rw-r--r--lib/drb/version.rb3
-rw-r--r--lib/erb.gemspec24
-rw-r--r--lib/fileutils.gemspec2
-rw-r--r--lib/fileutils.rb35
-rw-r--r--lib/find.gemspec24
-rw-r--r--lib/forwardable.rb9
-rw-r--r--lib/forwardable/forwardable.gemspec21
-rw-r--r--lib/forwardable/version.rb5
-rw-r--r--lib/getoptlong.rb3
-rw-r--r--lib/getoptlong/getoptlong.gemspec19
-rw-r--r--lib/getoptlong/version.rb3
-rw-r--r--lib/ipaddr.gemspec10
-rw-r--r--lib/irb.rb209
-rw-r--r--lib/irb/.document1
-rw-r--r--lib/irb/cmd/fork.rb4
-rw-r--r--lib/irb/cmd/info.rb25
-rw-r--r--lib/irb/cmd/ls.rb83
-rw-r--r--lib/irb/cmd/measure.rb40
-rw-r--r--lib/irb/cmd/nop.rb14
-rw-r--r--lib/irb/cmd/pushws.rb1
-rw-r--r--lib/irb/cmd/show_source.rb86
-rw-r--r--lib/irb/cmd/whereami.rb20
-rw-r--r--lib/irb/color.rb68
-rw-r--r--lib/irb/color_printer.rb47
-rw-r--r--lib/irb/completion.rb132
-rw-r--r--lib/irb/context.rb39
-rw-r--r--lib/irb/easter-egg.rb138
-rw-r--r--lib/irb/ext/change-ws.rb1
-rw-r--r--lib/irb/ext/history.rb2
-rw-r--r--lib/irb/ext/loader.rb66
-rw-r--r--lib/irb/ext/save-history.rb27
-rw-r--r--lib/irb/ext/tracer.rb1
-rw-r--r--lib/irb/ext/use-loader.rb4
-rw-r--r--lib/irb/ext/workspaces.rb1
-rw-r--r--lib/irb/extend-command.rb48
-rw-r--r--lib/irb/help.rb1
-rw-r--r--lib/irb/init.rb101
-rw-r--r--lib/irb/input-method.rb96
-rw-r--r--lib/irb/inspector.rb30
-rw-r--r--lib/irb/irb.gemspec49
-rw-r--r--lib/irb/lc/.document4
-rw-r--r--lib/irb/lc/help-message12
-rw-r--r--lib/irb/locale.rb11
-rw-r--r--lib/irb/ruby-lex.rb474
-rw-r--r--lib/irb/ruby_logo.aa1
-rw-r--r--lib/irb/version.rb4
-rw-r--r--lib/irb/workspace.rb9
-rw-r--r--lib/irb/xmp.rb2
-rw-r--r--lib/logger.rb9
-rw-r--r--lib/logger/formatter.rb2
-rw-r--r--lib/logger/log_device.rb2
-rw-r--r--lib/logger/logger.gemspec4
-rw-r--r--lib/logger/version.rb2
-rw-r--r--lib/matrix.rb301
-rw-r--r--lib/matrix/matrix.gemspec5
-rw-r--r--lib/matrix/version.rb2
-rw-r--r--lib/mkmf.rb25
-rw-r--r--lib/mutex_m.gemspec4
-rw-r--r--lib/mutex_m.rb3
-rw-r--r--lib/net/ftp.rb100
-rw-r--r--lib/net/http.rb59
-rw-r--r--lib/net/http/header.rb52
-rw-r--r--lib/net/http/net-http.gemspec36
-rw-r--r--lib/net/http/response.rb5
-rw-r--r--lib/net/imap.rb31
-rw-r--r--lib/net/net-ftp.gemspec36
-rw-r--r--lib/net/net-imap.gemspec37
-rw-r--r--lib/net/net-pop.gemspec34
-rw-r--r--lib/net/net-protocol.gemspec36
-rw-r--r--lib/net/net-smtp.gemspec35
-rw-r--r--lib/net/pop.rb7
-rw-r--r--lib/net/pop/net-pop.gemspec27
-rw-r--r--lib/net/pop/version.rb6
-rw-r--r--lib/net/protocol.rb2
-rw-r--r--lib/net/smtp.rb116
-rw-r--r--lib/net/smtp/net-smtp.gemspec27
-rw-r--r--lib/net/smtp/version.rb6
-rw-r--r--lib/observer.rb27
-rw-r--r--lib/observer/observer.gemspec19
-rw-r--r--lib/observer/version.rb3
-rw-r--r--lib/open-uri.gemspec26
-rw-r--r--lib/open-uri.rb27
-rw-r--r--lib/open3.gemspec33
-rw-r--r--lib/open3.rb8
-rw-r--r--lib/open3/open3.gemspec29
-rw-r--r--lib/open3/version.rb3
-rw-r--r--lib/optparse.rb4
-rw-r--r--lib/optparse/optparse.gemspec31
-rw-r--r--lib/ostruct.rb212
-rw-r--r--lib/ostruct/ostruct.gemspec19
-rw-r--r--lib/ostruct/version.rb5
-rw-r--r--lib/pp.gemspec24
-rw-r--r--lib/pp.rb26
-rw-r--r--lib/prettyprint.gemspec22
-rw-r--r--lib/prettyprint.rb6
-rw-r--r--lib/prime.gemspec15
-rw-r--r--lib/prime.rb138
-rw-r--r--lib/pstore.rb2
-rw-r--r--lib/pstore/pstore.gemspec19
-rw-r--r--lib/pstore/version.rb3
-rw-r--r--lib/racc/compat.rb9
-rw-r--r--lib/racc/debugflags.rb9
-rw-r--r--lib/racc/exception.rb5
-rw-r--r--lib/racc/grammar.rb39
-rw-r--r--lib/racc/grammarfileparser.rb13
-rw-r--r--lib/racc/info.rb7
-rw-r--r--lib/racc/iset.rb9
-rw-r--r--lib/racc/logfilegenerator.rb9
-rw-r--r--lib/racc/parser-text.rb24
-rw-r--r--lib/racc/parser.rb24
-rw-r--r--lib/racc/parserfilegenerator.rb12
-rw-r--r--lib/racc/racc.gemspec32
-rw-r--r--lib/racc/sourcetext.rb9
-rw-r--r--lib/racc/state.rb5
-rw-r--r--lib/racc/statetransitiontable.rb13
-rw-r--r--lib/rdoc.rb21
-rw-r--r--lib/rdoc/any_method.rb59
-rw-r--r--lib/rdoc/context.rb12
-rw-r--r--lib/rdoc/context/section.rb13
-rw-r--r--lib/rdoc/cross_reference.rb4
-rw-r--r--lib/rdoc/erb_partial.rb2
-rw-r--r--lib/rdoc/erbio.rb4
-rw-r--r--lib/rdoc/generator/darkfish.rb6
-rw-r--r--lib/rdoc/generator/pot.rb6
-rw-r--r--lib/rdoc/generator/template/darkfish/_head.rhtml9
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml4
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml4
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml14
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml4
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml14
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml12
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml10
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml10
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml10
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml8
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml8
-rw-r--r--lib/rdoc/generator/template/darkfish/class.rhtml88
-rw-r--r--lib/rdoc/generator/template/darkfish/css/rdoc.css22
-rw-r--r--lib/rdoc/generator/template/darkfish/index.rhtml7
-rw-r--r--lib/rdoc/generator/template/darkfish/servlet_root.rhtml31
-rw-r--r--lib/rdoc/generator/template/darkfish/table_of_contents.rhtml32
-rw-r--r--lib/rdoc/i18n.rb2
-rw-r--r--lib/rdoc/markdown.rb444
-rw-r--r--lib/rdoc/markup.rb1
-rw-r--r--lib/rdoc/markup/attr_span.rb10
-rw-r--r--lib/rdoc/markup/attribute_manager.rb121
-rw-r--r--lib/rdoc/markup/formatter.rb2
-rw-r--r--lib/rdoc/markup/pre_process.rb2
-rw-r--r--lib/rdoc/markup/table.rb47
-rw-r--r--lib/rdoc/markup/to_html.rb52
-rw-r--r--lib/rdoc/markup/to_html_crossref.rb18
-rw-r--r--lib/rdoc/markup/to_joined_paragraph.rb1
-rw-r--r--lib/rdoc/markup/to_rdoc.rb28
-rw-r--r--lib/rdoc/markup/to_table_of_contents.rb1
-rw-r--r--lib/rdoc/options.rb36
-rw-r--r--lib/rdoc/parser.rb14
-rw-r--r--lib/rdoc/parser/c.rb82
-rw-r--r--lib/rdoc/parser/changelog.rb159
-rw-r--r--lib/rdoc/rd/block_parser.rb2
-rw-r--r--lib/rdoc/rd/inline_parser.rb2
-rw-r--r--lib/rdoc/rdoc.gemspec2
-rw-r--r--lib/rdoc/rdoc.rb57
-rw-r--r--lib/rdoc/ri/driver.rb14
-rw-r--r--lib/rdoc/ri/paths.rb20
-rw-r--r--lib/rdoc/ri/task.rb2
-rw-r--r--lib/rdoc/rubygems_hook.rb4
-rw-r--r--lib/rdoc/servlet.rb7
-rw-r--r--lib/rdoc/store.rb4
-rw-r--r--lib/rdoc/version.rb2
-rw-r--r--lib/readline.gemspec2
-rw-r--r--lib/reline.rb106
-rw-r--r--lib/reline/ansi.rb158
-rw-r--r--lib/reline/config.rb83
-rw-r--r--lib/reline/general_io.rb26
-rw-r--r--lib/reline/history.rb46
-rw-r--r--lib/reline/key_actor/emacs.rb14
-rw-r--r--lib/reline/key_actor/vi_command.rb8
-rw-r--r--lib/reline/key_actor/vi_insert.rb4
-rw-r--r--lib/reline/key_stroke.rb2
-rw-r--r--lib/reline/kill_ring.rb12
-rw-r--r--lib/reline/line_editor.rb1268
-rw-r--r--lib/reline/reline.gemspec5
-rw-r--r--lib/reline/unicode.rb137
-rw-r--r--lib/reline/unicode/east_asian_width.rb2279
-rw-r--r--lib/reline/version.rb2
-rw-r--r--lib/reline/windows.rb104
-rw-r--r--lib/resolv-replace.gemspec24
-rw-r--r--lib/resolv.gemspec22
-rw-r--r--lib/resolv.rb32
-rw-r--r--lib/rexml/attlistdecl.rb63
-rw-r--r--lib/rexml/attribute.rb205
-rw-r--r--lib/rexml/cdata.rb68
-rw-r--r--lib/rexml/child.rb97
-rw-r--r--lib/rexml/comment.rb80
-rw-r--r--lib/rexml/doctype.rb287
-rw-r--r--lib/rexml/document.rb291
-rw-r--r--lib/rexml/dtd/attlistdecl.rb11
-rw-r--r--lib/rexml/dtd/dtd.rb47
-rw-r--r--lib/rexml/dtd/elementdecl.rb18
-rw-r--r--lib/rexml/dtd/entitydecl.rb57
-rw-r--r--lib/rexml/dtd/notationdecl.rb40
-rw-r--r--lib/rexml/element.rb1269
-rw-r--r--lib/rexml/encoding.rb51
-rw-r--r--lib/rexml/entity.rb171
-rw-r--r--lib/rexml/formatters/default.rb116
-rw-r--r--lib/rexml/formatters/pretty.rb142
-rw-r--r--lib/rexml/formatters/transitive.rb58
-rw-r--r--lib/rexml/functions.rb447
-rw-r--r--lib/rexml/instruction.rb79
-rw-r--r--lib/rexml/light/node.rb196
-rw-r--r--lib/rexml/namespace.rb59
-rw-r--r--lib/rexml/node.rb76
-rw-r--r--lib/rexml/output.rb30
-rw-r--r--lib/rexml/parent.rb166
-rw-r--r--lib/rexml/parseexception.rb52
-rw-r--r--lib/rexml/parsers/baseparser.rb594
-rw-r--r--lib/rexml/parsers/lightparser.rb59
-rw-r--r--lib/rexml/parsers/pullparser.rb197
-rw-r--r--lib/rexml/parsers/sax2parser.rb273
-rw-r--r--lib/rexml/parsers/streamparser.rb61
-rw-r--r--lib/rexml/parsers/treeparser.rb101
-rw-r--r--lib/rexml/parsers/ultralightparser.rb57
-rw-r--r--lib/rexml/parsers/xpathparser.rb675
-rw-r--r--lib/rexml/quickpath.rb266
-rw-r--r--lib/rexml/rexml.gemspec84
-rw-r--r--lib/rexml/rexml.rb32
-rw-r--r--lib/rexml/sax2listener.rb98
-rw-r--r--lib/rexml/security.rb28
-rw-r--r--lib/rexml/source.rb298
-rw-r--r--lib/rexml/streamlistener.rb93
-rw-r--r--lib/rexml/text.rb424
-rw-r--r--lib/rexml/undefinednamespaceexception.rb9
-rw-r--r--lib/rexml/validation/relaxng.rb539
-rw-r--r--lib/rexml/validation/validation.rb144
-rw-r--r--lib/rexml/validation/validationexception.rb10
-rw-r--r--lib/rexml/xmldecl.rb130
-rw-r--r--lib/rexml/xmltokens.rb85
-rw-r--r--lib/rexml/xpath.rb81
-rw-r--r--lib/rexml/xpath_parser.rb968
-rw-r--r--lib/rinda/rinda.gemspec28
-rw-r--r--lib/rss.rb94
-rw-r--r--lib/rss/0.9.rb462
-rw-r--r--lib/rss/1.0.rb485
-rw-r--r--lib/rss/2.0.rb143
-rw-r--r--lib/rss/atom.rb1025
-rw-r--r--lib/rss/content.rb34
-rw-r--r--lib/rss/content/1.0.rb10
-rw-r--r--lib/rss/content/2.0.rb12
-rw-r--r--lib/rss/converter.rb171
-rw-r--r--lib/rss/dublincore.rb164
-rw-r--r--lib/rss/dublincore/1.0.rb13
-rw-r--r--lib/rss/dublincore/2.0.rb13
-rw-r--r--lib/rss/dublincore/atom.rb17
-rw-r--r--lib/rss/image.rb198
-rw-r--r--lib/rss/itunes.rb425
-rw-r--r--lib/rss/maker.rb79
-rw-r--r--lib/rss/maker/0.9.rb509
-rw-r--r--lib/rss/maker/1.0.rb436
-rw-r--r--lib/rss/maker/2.0.rb224
-rw-r--r--lib/rss/maker/atom.rb173
-rw-r--r--lib/rss/maker/base.rb945
-rw-r--r--lib/rss/maker/content.rb22
-rw-r--r--lib/rss/maker/dublincore.rb122
-rw-r--r--lib/rss/maker/entry.rb164
-rw-r--r--lib/rss/maker/feed.rb427
-rw-r--r--lib/rss/maker/image.rb112
-rw-r--r--lib/rss/maker/itunes.rb243
-rw-r--r--lib/rss/maker/slash.rb34
-rw-r--r--lib/rss/maker/syndication.rb19
-rw-r--r--lib/rss/maker/taxonomy.rb119
-rw-r--r--lib/rss/maker/trackback.rb62
-rw-r--r--lib/rss/parser.rb589
-rw-r--r--lib/rss/rexmlparser.rb50
-rw-r--r--lib/rss/rss.gemspec80
-rw-r--r--lib/rss/rss.rb1342
-rw-r--r--lib/rss/slash.rb52
-rw-r--r--lib/rss/syndication.rb69
-rw-r--r--lib/rss/taxonomy.rb148
-rw-r--r--lib/rss/trackback.rb291
-rw-r--r--lib/rss/utils.rb200
-rw-r--r--lib/rss/version.rb4
-rw-r--r--lib/rss/xml-stylesheet.rb106
-rw-r--r--lib/rss/xml.rb72
-rw-r--r--lib/rss/xmlparser.rb95
-rw-r--r--lib/rss/xmlscanner.rb122
-rw-r--r--lib/rubygems.rb333
-rw-r--r--lib/rubygems/available_set.rb10
-rw-r--r--lib/rubygems/basic_specification.rb22
-rw-r--r--lib/rubygems/bundler_version_finder.rb23
-rw-r--r--lib/rubygems/command.rb37
-rw-r--r--lib/rubygems/command_manager.rb11
-rw-r--r--lib/rubygems/commands/build_command.rb62
-rw-r--r--lib/rubygems/commands/cert_command.rb90
-rw-r--r--lib/rubygems/commands/check_command.rb2
-rw-r--r--lib/rubygems/commands/cleanup_command.rb18
-rw-r--r--lib/rubygems/commands/contents_command.rb10
-rw-r--r--lib/rubygems/commands/dependency_command.rb14
-rw-r--r--lib/rubygems/commands/environment_command.rb4
-rw-r--r--lib/rubygems/commands/fetch_command.rb6
-rw-r--r--lib/rubygems/commands/generate_index_command.rb2
-rw-r--r--lib/rubygems/commands/help_command.rb8
-rw-r--r--lib/rubygems/commands/info_command.rb13
-rw-r--r--lib/rubygems/commands/install_command.rb10
-rw-r--r--lib/rubygems/commands/list_command.rb15
-rw-r--r--lib/rubygems/commands/lock_command.rb4
-rw-r--r--lib/rubygems/commands/mirror_command.rb2
-rw-r--r--lib/rubygems/commands/open_command.rb6
-rw-r--r--lib/rubygems/commands/outdated_command.rb2
-rw-r--r--lib/rubygems/commands/owner_command.rb13
-rw-r--r--lib/rubygems/commands/pristine_command.rb16
-rw-r--r--lib/rubygems/commands/push_command.rb57
-rw-r--r--lib/rubygems/commands/query_command.rb358
-rw-r--r--lib/rubygems/commands/rdoc_command.rb2
-rw-r--r--lib/rubygems/commands/search_command.rb14
-rw-r--r--lib/rubygems/commands/server_command.rb4
-rw-r--r--lib/rubygems/commands/setup_command.rb175
-rw-r--r--lib/rubygems/commands/signin_command.rb2
-rw-r--r--lib/rubygems/commands/signout_command.rb2
-rw-r--r--lib/rubygems/commands/sources_command.rb16
-rw-r--r--lib/rubygems/commands/specification_command.rb12
-rw-r--r--lib/rubygems/commands/stale_command.rb4
-rw-r--r--lib/rubygems/commands/uninstall_command.rb6
-rw-r--r--lib/rubygems/commands/unpack_command.rb4
-rw-r--r--lib/rubygems/commands/update_command.rb91
-rw-r--r--lib/rubygems/commands/which_command.rb2
-rw-r--r--lib/rubygems/commands/yank_command.rb13
-rw-r--r--lib/rubygems/config_file.rb26
-rw-r--r--lib/rubygems/core_ext/kernel_require.rb65
-rw-r--r--lib/rubygems/core_ext/kernel_warn.rb25
-rw-r--r--lib/rubygems/core_ext/tcpsocket_init.rb52
-rw-r--r--lib/rubygems/defaults.rb110
-rw-r--r--lib/rubygems/dependency.rb17
-rw-r--r--lib/rubygems/dependency_installer.rb84
-rw-r--r--lib/rubygems/dependency_list.rb16
-rw-r--r--lib/rubygems/deprecate.rb51
-rw-r--r--lib/rubygems/doctor.rb8
-rw-r--r--lib/rubygems/errors.rb17
-rw-r--r--lib/rubygems/exceptions.rb35
-rw-r--r--lib/rubygems/ext.rb12
-rw-r--r--lib/rubygems/ext/build_error.rb2
-rw-r--r--lib/rubygems/ext/builder.rb60
-rw-r--r--lib/rubygems/ext/cmake_builder.rb15
-rw-r--r--lib/rubygems/ext/configure_builder.rb13
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb44
-rw-r--r--lib/rubygems/ext/rake_builder.rb10
-rw-r--r--lib/rubygems/gem_runner.rb13
-rw-r--r--lib/rubygems/gemcutter_utilities.rb130
-rw-r--r--lib/rubygems/indexer.rb25
-rw-r--r--lib/rubygems/install_update_options.rb14
-rw-r--r--lib/rubygems/installer.rb150
-rw-r--r--lib/rubygems/installer_test_case.rb36
-rw-r--r--lib/rubygems/installer_uninstaller_utils.rb29
-rw-r--r--lib/rubygems/local_remote_options.rb2
-rw-r--r--lib/rubygems/mock_gem_ui.rb6
-rw-r--r--lib/rubygems/name_tuple.rb10
-rw-r--r--lib/rubygems/openssl.rb7
-rw-r--r--lib/rubygems/package.rb48
-rw-r--r--lib/rubygems/package/digest_io.rb2
-rw-r--r--lib/rubygems/package/file_source.rb2
-rw-r--r--lib/rubygems/package/io_source.rb2
-rw-r--r--lib/rubygems/package/old.rb4
-rw-r--r--lib/rubygems/package/tar_header.rb10
-rw-r--r--lib/rubygems/package/tar_reader.rb3
-rw-r--r--lib/rubygems/package/tar_reader/entry.rb3
-rw-r--r--lib/rubygems/package/tar_test_case.rb6
-rw-r--r--lib/rubygems/package/tar_writer.rb14
-rw-r--r--lib/rubygems/package_task.rb8
-rw-r--r--lib/rubygems/path_support.rb4
-rw-r--r--lib/rubygems/platform.rb37
-rw-r--r--lib/rubygems/psych_tree.rb2
-rw-r--r--lib/rubygems/query_utils.rb353
-rw-r--r--lib/rubygems/rdoc.rb12
-rw-r--r--lib/rubygems/remote_fetcher.rb55
-rw-r--r--lib/rubygems/request.rb15
-rw-r--r--lib/rubygems/request/connection_pools.rb6
-rw-r--r--lib/rubygems/request/http_pool.rb2
-rw-r--r--lib/rubygems/request/https_pool.rb2
-rw-r--r--lib/rubygems/request_set.rb27
-rw-r--r--lib/rubygems/request_set/gem_dependency_api.rb14
-rw-r--r--lib/rubygems/request_set/lockfile.rb20
-rw-r--r--lib/rubygems/request_set/lockfile/parser.rb2
-rw-r--r--lib/rubygems/request_set/lockfile/tokenizer.rb4
-rw-r--r--lib/rubygems/requirement.rb43
-rw-r--r--lib/rubygems/resolver.rb26
-rw-r--r--lib/rubygems/resolver/activation_request.rb12
-rw-r--r--lib/rubygems/resolver/api_set.rb55
-rw-r--r--lib/rubygems/resolver/api_set/gem_parser.rb20
-rw-r--r--lib/rubygems/resolver/api_specification.rb34
-rw-r--r--lib/rubygems/resolver/best_set.rb6
-rw-r--r--lib/rubygems/resolver/composed_set.rb8
-rw-r--r--lib/rubygems/resolver/conflict.rb6
-rw-r--r--lib/rubygems/resolver/current_set.rb2
-rw-r--r--lib/rubygems/resolver/dependency_request.rb4
-rw-r--r--lib/rubygems/resolver/git_set.rb2
-rw-r--r--lib/rubygems/resolver/git_specification.rb2
-rw-r--r--lib/rubygems/resolver/index_set.rb4
-rw-r--r--lib/rubygems/resolver/index_specification.rb34
-rw-r--r--lib/rubygems/resolver/installed_specification.rb2
-rw-r--r--lib/rubygems/resolver/installer_set.rb73
-rw-r--r--lib/rubygems/resolver/local_specification.rb2
-rw-r--r--lib/rubygems/resolver/lock_set.rb6
-rw-r--r--lib/rubygems/resolver/lock_specification.rb2
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo.rb11
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb7
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb8
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb45
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb1
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb13
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb7
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb63
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb84
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb3
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb14
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb4
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb675
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb5
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/state.rb12
-rw-r--r--lib/rubygems/resolver/requirement_list.rb2
-rw-r--r--lib/rubygems/resolver/set.rb2
-rw-r--r--lib/rubygems/resolver/source_set.rb2
-rw-r--r--lib/rubygems/resolver/spec_specification.rb16
-rw-r--r--lib/rubygems/resolver/specification.rb16
-rw-r--r--lib/rubygems/resolver/stats.rb2
-rw-r--r--lib/rubygems/resolver/vendor_set.rb2
-rw-r--r--lib/rubygems/resolver/vendor_specification.rb2
-rw-r--r--lib/rubygems/s3_uri_signer.rb10
-rw-r--r--lib/rubygems/safe_yaml.rb8
-rw-r--r--lib/rubygems/security.rb61
-rw-r--r--lib/rubygems/security/policy.rb12
-rw-r--r--lib/rubygems/security/signer.rb12
-rw-r--r--lib/rubygems/security/trust_dir.rb5
-rw-r--r--lib/rubygems/server.rb29
-rw-r--r--lib/rubygems/source.rb35
-rw-r--r--lib/rubygems/source/git.rb15
-rw-r--r--lib/rubygems/source/installed.rb2
-rw-r--r--lib/rubygems/source/local.rb6
-rw-r--r--lib/rubygems/source/lock.rb2
-rw-r--r--lib/rubygems/source/specific_file.rb2
-rw-r--r--lib/rubygems/source/vendor.rb2
-rw-r--r--lib/rubygems/source_list.rb11
-rw-r--r--lib/rubygems/source_local.rb7
-rw-r--r--lib/rubygems/source_specific_file.rb6
-rw-r--r--lib/rubygems/spec_fetcher.rb37
-rw-r--r--lib/rubygems/specification.rb277
-rw-r--r--lib/rubygems/specification_policy.rb127
-rw-r--r--lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem (renamed from lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem)0
-rw-r--r--lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem23
-rw-r--r--lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem25
-rw-r--r--lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem21
-rw-r--r--lib/rubygems/stub_specification.rb6
-rw-r--r--lib/rubygems/syck_hack.rb2
-rw-r--r--lib/rubygems/test_case.rb353
-rw-r--r--lib/rubygems/test_utilities.rb31
-rw-r--r--lib/rubygems/uninstaller.rb51
-rw-r--r--lib/rubygems/uri_formatter.rb5
-rw-r--r--lib/rubygems/uri_parser.rb2
-rw-r--r--lib/rubygems/user_interaction.rb27
-rw-r--r--lib/rubygems/util.rb18
-rw-r--r--lib/rubygems/util/licenses.rb119
-rw-r--r--lib/rubygems/util/list.rb2
-rw-r--r--lib/rubygems/validator.rb4
-rw-r--r--lib/rubygems/version.rb12
-rw-r--r--lib/rubygems/version_option.rb6
-rw-r--r--lib/securerandom.gemspec22
-rw-r--r--lib/securerandom.rb46
-rw-r--r--lib/set.rb422
-rw-r--r--lib/set/set.gemspec25
-rw-r--r--lib/set/sorted_set.rb6
-rw-r--r--lib/shellwords.gemspec22
-rw-r--r--lib/shellwords.rb39
-rw-r--r--lib/singleton.rb4
-rw-r--r--lib/singleton/singleton.gemspec19
-rw-r--r--lib/singleton/version.rb3
-rw-r--r--lib/tempfile.gemspec24
-rw-r--r--lib/tempfile.rb42
-rw-r--r--lib/time.gemspec24
-rw-r--r--lib/time.rb17
-rw-r--r--lib/timeout.rb2
-rw-r--r--lib/timeout/timeout.gemspec19
-rw-r--r--lib/timeout/version.rb3
-rw-r--r--lib/tmpdir.gemspec26
-rw-r--r--lib/tmpdir.rb29
-rw-r--r--lib/tracer.rb1
-rw-r--r--lib/tracer/tracer.gemspec20
-rw-r--r--lib/tracer/version.rb5
-rw-r--r--lib/tsort.gemspec22
-rw-r--r--lib/un.gemspec23
-rw-r--r--lib/un.rb18
-rw-r--r--lib/uri.rb21
-rw-r--r--lib/uri/common.rb97
-rw-r--r--lib/uri/ftp.rb1
-rw-r--r--lib/uri/generic.rb11
-rw-r--r--lib/uri/http.rb1
-rw-r--r--lib/uri/https.rb1
-rw-r--r--lib/uri/ldap.rb2
-rw-r--r--lib/uri/mailto.rb1
-rw-r--r--lib/uri/rfc2396_parser.rb15
-rw-r--r--lib/uri/rfc3986_parser.rb13
-rw-r--r--lib/uri/uri.gemspec4
-rw-r--r--lib/uri/version.rb2
-rw-r--r--lib/uri/ws.rb84
-rw-r--r--lib/uri/wss.rb22
-rw-r--r--lib/weakref.rb1
-rw-r--r--lib/weakref/weakref.gemspec34
-rw-r--r--lib/webrick.rb227
-rw-r--r--lib/webrick/.document (renamed from tool/lib/webrick/.document)0
-rw-r--r--lib/webrick/accesslog.rb (renamed from tool/lib/webrick/accesslog.rb)0
-rw-r--r--lib/webrick/cgi.rb (renamed from tool/lib/webrick/cgi.rb)0
-rw-r--r--lib/webrick/compat.rb (renamed from tool/lib/webrick/compat.rb)0
-rw-r--r--lib/webrick/config.rb (renamed from tool/lib/webrick/config.rb)0
-rw-r--r--lib/webrick/cookie.rb (renamed from tool/lib/webrick/cookie.rb)0
-rw-r--r--lib/webrick/htmlutils.rb (renamed from tool/lib/webrick/htmlutils.rb)0
-rw-r--r--lib/webrick/httpauth.rb (renamed from tool/lib/webrick/httpauth.rb)0
-rw-r--r--lib/webrick/httpauth/authenticator.rb117
-rw-r--r--lib/webrick/httpauth/basicauth.rb (renamed from tool/lib/webrick/httpauth/basicauth.rb)0
-rw-r--r--lib/webrick/httpauth/digestauth.rb (renamed from tool/lib/webrick/httpauth/digestauth.rb)0
-rw-r--r--lib/webrick/httpauth/htdigest.rb (renamed from tool/lib/webrick/httpauth/htdigest.rb)0
-rw-r--r--lib/webrick/httpauth/htgroup.rb (renamed from tool/lib/webrick/httpauth/htgroup.rb)0
-rw-r--r--lib/webrick/httpauth/htpasswd.rb (renamed from tool/lib/webrick/httpauth/htpasswd.rb)0
-rw-r--r--lib/webrick/httpauth/userdb.rb (renamed from tool/lib/webrick/httpauth/userdb.rb)0
-rw-r--r--lib/webrick/httpproxy.rb350
-rw-r--r--lib/webrick/httprequest.rb631
-rw-r--r--lib/webrick/httpresponse.rb (renamed from tool/lib/webrick/httpresponse.rb)0
-rw-r--r--lib/webrick/https.rb (renamed from tool/lib/webrick/https.rb)0
-rw-r--r--lib/webrick/httpserver.rb (renamed from tool/lib/webrick/httpserver.rb)0
-rw-r--r--lib/webrick/httpservlet.rb (renamed from tool/lib/webrick/httpservlet.rb)0
-rw-r--r--lib/webrick/httpservlet/abstract.rb (renamed from tool/lib/webrick/httpservlet/abstract.rb)0
-rw-r--r--lib/webrick/httpservlet/cgi_runner.rb (renamed from tool/lib/webrick/httpservlet/cgi_runner.rb)0
-rw-r--r--lib/webrick/httpservlet/cgihandler.rb (renamed from tool/lib/webrick/httpservlet/cgihandler.rb)0
-rw-r--r--lib/webrick/httpservlet/erbhandler.rb (renamed from tool/lib/webrick/httpservlet/erbhandler.rb)0
-rw-r--r--lib/webrick/httpservlet/filehandler.rb541
-rw-r--r--lib/webrick/httpservlet/prochandler.rb (renamed from tool/lib/webrick/httpservlet/prochandler.rb)0
-rw-r--r--lib/webrick/httpstatus.rb (renamed from tool/lib/webrick/httpstatus.rb)0
-rw-r--r--lib/webrick/httputils.rb511
-rw-r--r--lib/webrick/httpversion.rb (renamed from tool/lib/webrick/httpversion.rb)0
-rw-r--r--lib/webrick/log.rb (renamed from tool/lib/webrick/log.rb)0
-rw-r--r--lib/webrick/server.rb378
-rw-r--r--lib/webrick/ssl.rb215
-rw-r--r--lib/webrick/utils.rb270
-rw-r--r--lib/webrick/version.rb18
-rw-r--r--lib/webrick/webrick.gemspec76
-rw-r--r--lib/yaml.rb2
-rw-r--r--lib/yaml/yaml.gemspec6
-rwxr-xr-xlibexec/bundle3
-rwxr-xr-xlibexec/erb174
-rwxr-xr-xlibexec/racc60
-rwxr-xr-xlibexec/racc2y195
-rwxr-xr-xlibexec/y2racc339
-rw-r--r--load.c129
-rw-r--r--localeinit.c5
-rw-r--r--man/bundle-add.166
-rw-r--r--man/bundle-add.1.txt58
-rw-r--r--man/bundle-add.ronn (renamed from lib/bundler/man/bundle-add.1.ronn)0
-rw-r--r--man/bundle-binstubs.140
-rw-r--r--man/bundle-binstubs.1.txt48
-rw-r--r--man/bundle-binstubs.ronn43
-rw-r--r--man/bundle-cache.155
-rw-r--r--man/bundle-cache.1.txt78
-rw-r--r--man/bundle-cache.ronn (renamed from lib/bundler/man/bundle-cache.1.ronn)0
-rw-r--r--man/bundle-check.131
-rw-r--r--man/bundle-check.1.txt33
-rw-r--r--man/bundle-check.ronn (renamed from lib/bundler/man/bundle-check.1.ronn)0
-rw-r--r--man/bundle-clean.124
-rw-r--r--man/bundle-clean.1.txt26
-rw-r--r--man/bundle-clean.ronn (renamed from lib/bundler/man/bundle-clean.1.ronn)0
-rw-r--r--man/bundle-config.1497
-rw-r--r--man/bundle-config.1.txt528
-rw-r--r--man/bundle-config.ronn399
-rw-r--r--man/bundle-doctor.144
-rw-r--r--man/bundle-doctor.1.txt44
-rw-r--r--man/bundle-doctor.ronn (renamed from lib/bundler/man/bundle-doctor.1.ronn)0
-rw-r--r--man/bundle-exec.1165
-rw-r--r--man/bundle-exec.1.txt178
-rw-r--r--man/bundle-exec.ronn (renamed from lib/bundler/man/bundle-exec.1.ronn)0
-rw-r--r--man/bundle-gem.180
-rw-r--r--man/bundle-gem.1.txt91
-rw-r--r--man/bundle-gem.ronn78
-rw-r--r--man/bundle-info.120
-rw-r--r--man/bundle-info.1.txt21
-rw-r--r--man/bundle-info.ronn (renamed from lib/bundler/man/bundle-info.1.ronn)0
-rw-r--r--man/bundle-init.125
-rw-r--r--man/bundle-init.1.txt34
-rw-r--r--man/bundle-init.ronn (renamed from lib/bundler/man/bundle-init.1.ronn)0
-rw-r--r--man/bundle-inject.133
-rw-r--r--man/bundle-inject.1.txt32
-rw-r--r--man/bundle-inject.ronn (renamed from lib/bundler/man/bundle-inject.1.ronn)0
-rw-r--r--man/bundle-install.1311
-rw-r--r--man/bundle-install.1.txt401
-rw-r--r--man/bundle-install.ronn383
-rw-r--r--man/bundle-list.150
-rw-r--r--man/bundle-list.1.txt43
-rw-r--r--man/bundle-list.ronn33
-rw-r--r--man/bundle-lock.184
-rw-r--r--man/bundle-lock.1.txt93
-rw-r--r--man/bundle-lock.ronn (renamed from lib/bundler/man/bundle-lock.1.ronn)0
-rw-r--r--man/bundle-open.132
-rw-r--r--man/bundle-open.1.txt29
-rw-r--r--man/bundle-open.ronn (renamed from lib/bundler/man/bundle-open.1.ronn)0
-rw-r--r--man/bundle-outdated.1155
-rw-r--r--man/bundle-outdated.1.txt131
-rw-r--r--man/bundle-outdated.ronn (renamed from lib/bundler/man/bundle-outdated.1.ronn)0
-rw-r--r--man/bundle-package.155
-rw-r--r--man/bundle-package.1.txt79
-rw-r--r--man/bundle-package.ronn72
-rw-r--r--man/bundle-platform.161
-rw-r--r--man/bundle-platform.1.txt57
-rw-r--r--man/bundle-platform.ronn (renamed from lib/bundler/man/bundle-platform.1.ronn)0
-rw-r--r--man/bundle-pristine.134
-rw-r--r--man/bundle-pristine.1.txt44
-rw-r--r--man/bundle-pristine.ronn (renamed from lib/bundler/man/bundle-pristine.1.ronn)0
-rw-r--r--man/bundle-remove.131
-rw-r--r--man/bundle-remove.1.txt34
-rw-r--r--man/bundle-remove.ronn (renamed from lib/bundler/man/bundle-remove.1.ronn)0
-rw-r--r--man/bundle-show.123
-rw-r--r--man/bundle-show.1.txt27
-rw-r--r--man/bundle-show.ronn (renamed from lib/bundler/man/bundle-show.1.ronn)0
-rw-r--r--man/bundle-update.1394
-rw-r--r--man/bundle-update.1.txt390
-rw-r--r--man/bundle-update.ronn350
-rw-r--r--man/bundle-viz.139
-rw-r--r--man/bundle-viz.1.txt39
-rw-r--r--man/bundle-viz.ronn (renamed from lib/bundler/man/bundle-viz.1.ronn)0
-rw-r--r--man/bundle.1136
-rw-r--r--man/bundle.1.txt116
-rw-r--r--man/bundle.ronn (renamed from lib/bundler/man/bundle.1.ronn)0
-rw-r--r--man/gemfile.5686
-rw-r--r--man/gemfile.5.ronn517
-rw-r--r--man/gemfile.5.txt649
-rw-r--r--man/ruby.12
-rw-r--r--marshal.c123
-rw-r--r--math.c13
-rw-r--r--memory_view.c869
-rw-r--r--method.h24
-rw-r--r--mini_builtin.c3
-rwxr-xr-xmisc/expand_tabs.rb2
-rwxr-xr-xmisc/lldb_cruby.py261
-rw-r--r--misc/lldb_disasm.py239
-rw-r--r--missing/alloca.c2
-rw-r--r--missing/crypt.h5
-rw-r--r--missing/dtoa.c108
-rw-r--r--missing/dup2.c2
-rw-r--r--missing/explicit_bzero.c4
-rw-r--r--missing/file.h3
-rw-r--r--missing/fileblocks.c1
-rw-r--r--missing/flock.c2
-rw-r--r--missing/isinf.c2
-rw-r--r--missing/stdbool.h20
-rw-r--r--missing/tgamma.c2
-rw-r--r--mjit.c365
-rw-r--r--mjit.h125
-rw-r--r--mjit_compile.c270
-rw-r--r--mjit_worker.c687
-rw-r--r--node.c137
-rw-r--r--node.h42
-rw-r--r--numeric.c539
-rw-r--r--object.c611
-rw-r--r--pack.c17
-rw-r--r--pack.rb8
-rw-r--r--parse.y1633
-rw-r--r--prelude.rb15
-rw-r--r--probes.d11
-rw-r--r--probes_helper.h2
-rw-r--r--proc.c403
-rw-r--r--process.c838
-rw-r--r--ractor.c3204
-rw-r--r--ractor.rb838
-rw-r--r--ractor_core.h343
-rw-r--r--random.c611
-rw-r--r--range.c231
-rw-r--r--rational.c356
-rw-r--r--re.c110
-rw-r--r--regcomp.c41
-rw-r--r--regint.h2
-rw-r--r--regparse.c12
-rw-r--r--ruby-runner.c2
-rw-r--r--ruby.c367
-rw-r--r--ruby_assert.h24
-rw-r--r--ruby_atomic.h267
-rw-r--r--safe.c145
-rw-r--r--sample/drb/name.rb3
-rw-r--r--sample/list.rb5
-rw-r--r--sample/openssl/c_rehash.rb2
-rw-r--r--sample/openssl/echo_svr.rb2
-rw-r--r--sample/openssl/gen_csr.rb2
-rw-r--r--sample/trick2013/mame/remarks.markdown4
-rw-r--r--sample/trick2015/kinaba/entry.rb2
-rw-r--r--sample/webrick/demo-app.rb66
-rw-r--r--sample/webrick/demo-multipart.cgi12
-rw-r--r--sample/webrick/demo-servlet.rb6
-rw-r--r--sample/webrick/demo-urlencoded.cgi12
-rw-r--r--sample/webrick/hello.cgi11
-rw-r--r--sample/webrick/hello.rb8
-rw-r--r--sample/webrick/httpd.rb23
-rw-r--r--sample/webrick/httpproxy.rb25
-rw-r--r--sample/webrick/httpsd.rb33
-rw-r--r--scheduler.c188
-rw-r--r--signal.c147
-rw-r--r--siphash.c2
-rw-r--r--spec/README.md2
-rw-r--r--spec/bundler/bundler/bundler_spec.rb22
-rw-r--r--spec/bundler/bundler/cli_spec.rb69
-rw-r--r--spec/bundler/bundler/compact_index_client/updater_spec.rb50
-rw-r--r--spec/bundler/bundler/definition_spec.rb81
-rw-r--r--spec/bundler/bundler/dep_proxy_spec.rb22
-rw-r--r--spec/bundler/bundler/dsl_spec.rb78
-rw-r--r--spec/bundler/bundler/env_spec.rb41
-rw-r--r--spec/bundler/bundler/fetcher/compact_index_spec.rb5
-rw-r--r--spec/bundler/bundler/fetcher/downloader_spec.rb16
-rw-r--r--spec/bundler/bundler/fetcher/index_spec.rb119
-rw-r--r--spec/bundler/bundler/fetcher_spec.rb3
-rw-r--r--spec/bundler/bundler/friendly_errors_spec.rb33
-rw-r--r--spec/bundler/bundler/gem_helper_spec.rb141
-rw-r--r--spec/bundler/bundler/gem_version_promoter_spec.rb4
-rw-r--r--spec/bundler/bundler/installer/parallel_installer_spec.rb33
-rw-r--r--spec/bundler/bundler/installer/spec_installation_spec.rb4
-rw-r--r--spec/bundler/bundler/mirror_spec.rb2
-rw-r--r--spec/bundler/bundler/plugin/api/source_spec.rb6
-rw-r--r--spec/bundler/bundler/plugin/dsl_spec.rb2
-rw-r--r--spec/bundler/bundler/plugin/index_spec.rb13
-rw-r--r--spec/bundler/bundler/plugin_spec.rb10
-rw-r--r--spec/bundler/bundler/settings_spec.rb16
-rw-r--r--spec/bundler/bundler/shared_helpers_spec.rb44
-rw-r--r--spec/bundler/bundler/source/git/git_proxy_spec.rb29
-rw-r--r--spec/bundler/bundler/source/git_spec.rb4
-rw-r--r--spec/bundler/bundler/source_list_spec.rb65
-rw-r--r--spec/bundler/bundler/source_spec.rb2
-rw-r--r--spec/bundler/bundler/stub_specification_spec.rb33
-rw-r--r--spec/bundler/cache/gems_spec.rb37
-rw-r--r--spec/bundler/cache/git_spec.rb59
-rw-r--r--spec/bundler/cache/path_spec.rb31
-rw-r--r--spec/bundler/cache/platform_spec.rb4
-rw-r--r--spec/bundler/commands/add_spec.rb70
-rw-r--r--spec/bundler/commands/binstubs_spec.rb127
-rw-r--r--spec/bundler/commands/cache_spec.rb121
-rw-r--r--spec/bundler/commands/check_spec.rb169
-rw-r--r--spec/bundler/commands/clean_spec.rb131
-rw-r--r--spec/bundler/commands/config_spec.rb101
-rw-r--r--spec/bundler/commands/console_spec.rb51
-rw-r--r--spec/bundler/commands/doctor_spec.rb32
-rw-r--r--spec/bundler/commands/exec_spec.rb451
-rw-r--r--spec/bundler/commands/fund_spec.rb82
-rw-r--r--spec/bundler/commands/help_spec.rb29
-rw-r--r--spec/bundler/commands/info_spec.rb70
-rw-r--r--spec/bundler/commands/init_spec.rb34
-rw-r--r--spec/bundler/commands/inject_spec.rb36
-rw-r--r--spec/bundler/commands/install_spec.rb214
-rw-r--r--spec/bundler/commands/licenses_spec.rb10
-rw-r--r--spec/bundler/commands/list_spec.rb39
-rw-r--r--spec/bundler/commands/lock_spec.rb246
-rw-r--r--spec/bundler/commands/newgem_spec.rb823
-rw-r--r--spec/bundler/commands/open_spec.rb14
-rw-r--r--spec/bundler/commands/outdated_spec.rb882
-rw-r--r--spec/bundler/commands/post_bundle_message_spec.rb136
-rw-r--r--spec/bundler/commands/pristine_spec.rb78
-rw-r--r--spec/bundler/commands/remove_spec.rb178
-rw-r--r--spec/bundler/commands/show_spec.rb35
-rw-r--r--spec/bundler/commands/update_spec.rb719
-rw-r--r--spec/bundler/commands/version_spec.rb12
-rw-r--r--spec/bundler/commands/viz_spec.rb25
-rw-r--r--spec/bundler/install/allow_offline_install_spec.rb20
-rw-r--r--spec/bundler/install/binstubs_spec.rb2
-rw-r--r--spec/bundler/install/bundler_spec.rb145
-rw-r--r--spec/bundler/install/deploy_spec.rb300
-rw-r--r--spec/bundler/install/failure_spec.rb10
-rw-r--r--spec/bundler/install/gemfile/eval_gemfile_spec.rb47
-rw-r--r--spec/bundler/install/gemfile/gemspec_spec.rb180
-rw-r--r--spec/bundler/install/gemfile/git_spec.rb276
-rw-r--r--spec/bundler/install/gemfile/groups_spec.rb176
-rw-r--r--spec/bundler/install/gemfile/install_if.rb44
-rw-r--r--spec/bundler/install/gemfile/install_if_spec.rb44
-rw-r--r--spec/bundler/install/gemfile/lockfile_spec.rb8
-rw-r--r--spec/bundler/install/gemfile/path_spec.rb158
-rw-r--r--spec/bundler/install/gemfile/platform_spec.rb192
-rw-r--r--spec/bundler/install/gemfile/ruby_spec.rb11
-rw-r--r--spec/bundler/install/gemfile/sources_spec.rb1255
-rw-r--r--spec/bundler/install/gemfile/specific_platform_spec.rb300
-rw-r--r--spec/bundler/install/gemfile_spec.rb52
-rw-r--r--spec/bundler/install/gems/compact_index_spec.rb304
-rw-r--r--spec/bundler/install/gems/dependency_api_spec.rb162
-rw-r--r--spec/bundler/install/gems/flex_spec.rb51
-rw-r--r--spec/bundler/install/gems/fund_spec.rb137
-rw-r--r--spec/bundler/install/gems/native_extensions_spec.rb69
-rw-r--r--spec/bundler/install/gems/post_install_spec.rb2
-rw-r--r--spec/bundler/install/gems/resolving_spec.rb169
-rw-r--r--spec/bundler/install/gems/standalone_spec.rb198
-rw-r--r--spec/bundler/install/gems/sudo_spec.rb36
-rw-r--r--spec/bundler/install/gems/win32_spec.rb3
-rw-r--r--spec/bundler/install/gemspecs_spec.rb10
-rw-r--r--spec/bundler/install/git_spec.rb43
-rw-r--r--spec/bundler/install/global_cache_spec.rb101
-rw-r--r--spec/bundler/install/path_spec.rb99
-rw-r--r--spec/bundler/install/prereleases_spec.rb21
-rw-r--r--spec/bundler/install/process_lock_spec.rb2
-rw-r--r--spec/bundler/install/redownload_spec.rb20
-rw-r--r--spec/bundler/install/security_policy_spec.rb16
-rw-r--r--spec/bundler/install/yanked_spec.rb6
-rw-r--r--spec/bundler/lock/lockfile_spec.rb460
-rw-r--r--spec/bundler/other/cli_dispatch_spec.rb6
-rw-r--r--spec/bundler/other/ext_spec.rb4
-rw-r--r--spec/bundler/other/major_deprecation_spec.rb326
-rw-r--r--spec/bundler/other/platform_spec.rb648
-rw-r--r--spec/bundler/plugins/command_spec.rb2
-rw-r--r--spec/bundler/plugins/install_spec.rb42
-rw-r--r--spec/bundler/plugins/source/example_spec.rb92
-rw-r--r--spec/bundler/plugins/source_spec.rb3
-rw-r--r--spec/bundler/plugins/uninstall_spec.rb49
-rw-r--r--spec/bundler/quality_es_spec.rb20
-rw-r--r--spec/bundler/quality_spec.rb149
-rw-r--r--spec/bundler/realworld/dependency_api_spec.rb4
-rw-r--r--spec/bundler/realworld/double_check_spec.rb10
-rw-r--r--spec/bundler/realworld/edgecases_spec.rb464
-rw-r--r--spec/bundler/realworld/fixtures/warbler/.gitignore1
-rw-r--r--spec/bundler/realworld/fixtures/warbler/Gemfile7
-rw-r--r--spec/bundler/realworld/fixtures/warbler/Gemfile.lock30
-rw-r--r--spec/bundler/realworld/fixtures/warbler/bin/warbler-example.rb3
-rw-r--r--spec/bundler/realworld/fixtures/warbler/demo/demo.gemspec10
-rw-r--r--spec/bundler/realworld/gemfile_source_header_spec.rb2
-rw-r--r--spec/bundler/realworld/mirror_probe_spec.rb34
-rw-r--r--spec/bundler/realworld/parallel_spec.rb4
-rw-r--r--spec/bundler/realworld/slow_perf_spec.rb22
-rw-r--r--spec/bundler/resolver/basic_spec.rb2
-rw-r--r--spec/bundler/resolver/platform_spec.rb264
-rw-r--r--spec/bundler/runtime/executable_spec.rb53
-rw-r--r--spec/bundler/runtime/gem_tasks_spec.rb62
-rw-r--r--spec/bundler/runtime/inline_spec.rb147
-rw-r--r--spec/bundler/runtime/load_spec.rb16
-rw-r--r--spec/bundler/runtime/platform_spec.rb175
-rw-r--r--spec/bundler/runtime/require_spec.rb28
-rw-r--r--spec/bundler/runtime/setup_spec.rb299
-rw-r--r--spec/bundler/runtime/with_unbundled_env_spec.rb132
-rw-r--r--spec/bundler/spec_helper.rb79
-rw-r--r--spec/bundler/support/api_request_limit_hax.rb16
-rw-r--r--spec/bundler/support/artifice/compact_index.rb12
-rw-r--r--spec/bundler/support/artifice/compact_index_concurrent_download.rb4
-rw-r--r--spec/bundler/support/artifice/compact_index_creds_diff_host.rb2
-rw-r--r--spec/bundler/support/artifice/compact_index_extra.rb8
-rw-r--r--spec/bundler/support/artifice/compact_index_extra_api.rb10
-rw-r--r--spec/bundler/support/artifice/compact_index_partial_update.rb6
-rw-r--r--spec/bundler/support/artifice/compact_index_partial_update_no_etag_not_incremental.rb40
-rw-r--r--spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb2
-rw-r--r--spec/bundler/support/artifice/endopint_marshal_fail_basic_authentication.rb (renamed from spec/bundler/support/artifice/endpoint_marshal_fail_basic_authentication.rb)0
-rw-r--r--spec/bundler/support/artifice/endpoint.rb71
-rw-r--r--spec/bundler/support/artifice/endpoint_500.rb3
-rw-r--r--spec/bundler/support/artifice/endpoint_creds_diff_host.rb2
-rw-r--r--spec/bundler/support/artifice/endpoint_extra.rb8
-rw-r--r--spec/bundler/support/artifice/endpoint_extra_api.rb8
-rw-r--r--spec/bundler/support/artifice/endpoint_mirror_source.rb2
-rw-r--r--spec/bundler/support/artifice/fail.rb5
-rw-r--r--spec/bundler/support/artifice/vcr.rb6
-rw-r--r--spec/bundler/support/artifice/windows.rb7
-rw-r--r--spec/bundler/support/build_metadata.rb49
-rw-r--r--spec/bundler/support/builders.rb333
-rw-r--r--spec/bundler/support/bundle.rb8
-rw-r--r--spec/bundler/support/command_execution.rb13
-rw-r--r--spec/bundler/support/filters.rb18
-rw-r--r--spec/bundler/support/hax.rb65
-rw-r--r--spec/bundler/support/helpers.rb419
-rw-r--r--spec/bundler/support/indexes.rb13
-rw-r--r--spec/bundler/support/matchers.rb113
-rw-r--r--spec/bundler/support/parallel.rb5
-rw-r--r--spec/bundler/support/path.rb164
-rw-r--r--spec/bundler/support/platforms.rb10
-rw-r--r--spec/bundler/support/rubygems_ext.rb146
-rw-r--r--spec/bundler/support/rubygems_version_manager.rb57
-rw-r--r--spec/bundler/support/sometimes.rb57
-rw-r--r--spec/bundler/support/switch_rubygems.rb4
-rw-r--r--spec/bundler/update/gemfile_spec.rb16
-rw-r--r--spec/bundler/update/gems/fund_spec.rb50
-rw-r--r--spec/bundler/update/gems/post_install_spec.rb8
-rw-r--r--spec/bundler/update/git_spec.rb66
-rw-r--r--spec/bundler/update/redownload_spec.rb8
-rw-r--r--spec/mspec/Gemfile2
-rw-r--r--spec/mspec/Gemfile.lock4
-rw-r--r--spec/mspec/README.md4
-rw-r--r--spec/mspec/lib/mspec/expectations/should.rb10
-rw-r--r--spec/mspec/lib/mspec/guards/bug.rb19
-rw-r--r--spec/mspec/lib/mspec/guards/guard.rb2
-rw-r--r--spec/mspec/lib/mspec/guards/platform.rb13
-rw-r--r--spec/mspec/lib/mspec/guards/version.rb37
-rw-r--r--spec/mspec/lib/mspec/helpers.rb1
-rw-r--r--spec/mspec/lib/mspec/helpers/frozen_error_class.rb17
-rw-r--r--spec/mspec/lib/mspec/helpers/io.rb4
-rw-r--r--spec/mspec/lib/mspec/helpers/numeric.rb8
-rw-r--r--spec/mspec/lib/mspec/helpers/ruby_exe.rb4
-rw-r--r--spec/mspec/lib/mspec/helpers/scratch.rb4
-rw-r--r--spec/mspec/lib/mspec/helpers/tmp.rb13
-rw-r--r--spec/mspec/lib/mspec/matchers/include.rb4
-rw-r--r--spec/mspec/lib/mspec/matchers/raise_error.rb35
-rw-r--r--spec/mspec/lib/mspec/mocks/mock.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/actions/constants_leak_checker.rb11
-rw-r--r--spec/mspec/lib/mspec/runner/actions/leakchecker.rb26
-rw-r--r--spec/mspec/lib/mspec/runner/actions/timeout.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/context.rb35
-rw-r--r--spec/mspec/lib/mspec/runner/example.rb12
-rw-r--r--spec/mspec/lib/mspec/runner/exception.rb31
-rw-r--r--spec/mspec/lib/mspec/runner/formatters.rb1
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/method.rb14
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/spinner.rb2
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/stats.rb57
-rw-r--r--spec/mspec/lib/mspec/runner/mspec.rb86
-rw-r--r--spec/mspec/lib/mspec/runner/object.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/parallel.rb2
-rw-r--r--spec/mspec/lib/mspec/utils/format.rb6
-rw-r--r--spec/mspec/lib/mspec/utils/options.rb16
-rw-r--r--spec/mspec/lib/mspec/utils/script.rb7
-rw-r--r--spec/mspec/lib/mspec/utils/version.rb2
-rw-r--r--spec/mspec/lib/mspec/utils/warnings.rb28
-rw-r--r--spec/mspec/spec/fixtures/config.mspec2
-rwxr-xr-xspec/mspec/spec/fixtures/my_ruby2
-rw-r--r--spec/mspec/spec/guards/guard_spec.rb4
-rw-r--r--spec/mspec/spec/guards/version_spec.rb58
-rw-r--r--spec/mspec/spec/helpers/io_spec.rb2
-rw-r--r--spec/mspec/spec/helpers/tmp_spec.rb2
-rw-r--r--spec/mspec/spec/integration/run_spec.rb2
-rw-r--r--spec/mspec/spec/integration/tag_spec.rb2
-rw-r--r--spec/mspec/spec/matchers/raise_error_spec.rb53
-rw-r--r--spec/mspec/spec/runner/context_spec.rb29
-rw-r--r--spec/mspec/spec/runner/example_spec.rb10
-rw-r--r--spec/mspec/spec/runner/exception_spec.rb2
-rw-r--r--spec/mspec/spec/runner/mspec_spec.rb19
-rw-r--r--spec/mspec/spec/utils/options_spec.rb21
-rw-r--r--spec/mspec/spec/utils/script_spec.rb2
-rw-r--r--spec/mspec/tool/remove_old_guards.rb9
-rw-r--r--spec/mspec/tool/sync/sync-rubyspec.rb44
-rwxr-xr-xspec/mspec/tool/tag_from_output.rb6
-rwxr-xr-xspec/mspec/tool/wrap_with_guard.rb28
-rw-r--r--spec/ruby/.mspec.constants6
-rw-r--r--spec/ruby/.rubocop.yml17
-rw-r--r--spec/ruby/.rubocop_todo.yml67
-rw-r--r--spec/ruby/CONTRIBUTING.md93
-rw-r--r--spec/ruby/README.md28
-rw-r--r--spec/ruby/command_line/dash_e_spec.rb2
-rw-r--r--spec/ruby/command_line/dash_l_spec.rb31
-rw-r--r--spec/ruby/command_line/dash_r_spec.rb19
-rw-r--r--spec/ruby/command_line/dash_upper_k_spec.rb4
-rw-r--r--spec/ruby/command_line/dash_upper_w_spec.rb32
-rw-r--r--spec/ruby/command_line/error_message_spec.rb4
-rw-r--r--spec/ruby/command_line/feature_spec.rb13
-rw-r--r--spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh2
-rw-r--r--spec/ruby/command_line/fixtures/test_file.rb2
-rw-r--r--spec/ruby/command_line/rubyopt_spec.rb20
-rw-r--r--spec/ruby/core/argf/binmode_spec.rb2
-rw-r--r--spec/ruby/core/argf/bytes_spec.rb6
-rw-r--r--spec/ruby/core/argf/chars_spec.rb6
-rw-r--r--spec/ruby/core/argf/codepoints_spec.rb6
-rw-r--r--spec/ruby/core/argf/lines_spec.rb6
-rw-r--r--spec/ruby/core/argf/shared/fileno.rb2
-rw-r--r--spec/ruby/core/array/any_spec.rb6
-rw-r--r--spec/ruby/core/array/append_spec.rb10
-rw-r--r--spec/ruby/core/array/bsearch_index_spec.rb2
-rw-r--r--spec/ruby/core/array/clear_spec.rb6
-rw-r--r--spec/ruby/core/array/clone_spec.rb4
-rw-r--r--spec/ruby/core/array/compact_spec.rb4
-rw-r--r--spec/ruby/core/array/concat_spec.rb8
-rw-r--r--spec/ruby/core/array/deconstruct_spec.rb11
-rw-r--r--spec/ruby/core/array/delete_at_spec.rb4
-rw-r--r--spec/ruby/core/array/delete_if_spec.rb8
-rw-r--r--spec/ruby/core/array/delete_spec.rb4
-rw-r--r--spec/ruby/core/array/element_set_spec.rb59
-rw-r--r--spec/ruby/core/array/empty_spec.rb6
-rw-r--r--spec/ruby/core/array/fill_spec.rb20
-rw-r--r--spec/ruby/core/array/first_spec.rb2
-rw-r--r--spec/ruby/core/array/fixtures/classes.rb4
-rw-r--r--spec/ruby/core/array/flatten_spec.rb52
-rw-r--r--spec/ruby/core/array/frozen_spec.rb6
-rw-r--r--spec/ruby/core/array/hash_spec.rb2
-rw-r--r--spec/ruby/core/array/initialize_spec.rb6
-rw-r--r--spec/ruby/core/array/insert_spec.rb8
-rw-r--r--spec/ruby/core/array/intersection_spec.rb88
-rw-r--r--spec/ruby/core/array/minmax_spec.rb14
-rw-r--r--spec/ruby/core/array/multiply_spec.rb34
-rw-r--r--spec/ruby/core/array/pop_spec.rb14
-rw-r--r--spec/ruby/core/array/prepend_spec.rb6
-rw-r--r--spec/ruby/core/array/reject_spec.rb8
-rw-r--r--spec/ruby/core/array/reverse_spec.rb4
-rw-r--r--spec/ruby/core/array/rotate_spec.rb8
-rw-r--r--spec/ruby/core/array/sample_spec.rb25
-rw-r--r--spec/ruby/core/array/shared/clone.rb8
-rw-r--r--spec/ruby/core/array/shared/collect.rb16
-rw-r--r--spec/ruby/core/array/shared/intersection.rb84
-rw-r--r--spec/ruby/core/array/shared/join.rb14
-rw-r--r--spec/ruby/core/array/shared/keep_if.rb8
-rw-r--r--spec/ruby/core/array/shared/push.rb6
-rw-r--r--spec/ruby/core/array/shared/replace.rb4
-rw-r--r--spec/ruby/core/array/shared/slice.rb83
-rw-r--r--spec/ruby/core/array/shared/union.rb2
-rw-r--r--spec/ruby/core/array/shared/unshift.rb8
-rw-r--r--spec/ruby/core/array/shift_spec.rb8
-rw-r--r--spec/ruby/core/array/shuffle_spec.rb12
-rw-r--r--spec/ruby/core/array/slice_spec.rb16
-rw-r--r--spec/ruby/core/array/sort_by_spec.rb8
-rw-r--r--spec/ruby/core/array/sort_spec.rb22
-rw-r--r--spec/ruby/core/array/uniq_spec.rb32
-rw-r--r--spec/ruby/core/array/values_at_spec.rb7
-rw-r--r--spec/ruby/core/basicobject/instance_eval_spec.rb8
-rw-r--r--spec/ruby/core/basicobject/instance_exec_spec.rb8
-rw-r--r--spec/ruby/core/binding/eval_spec.rb91
-rw-r--r--spec/ruby/core/binding/fixtures/classes.rb14
-rw-r--r--spec/ruby/core/binding/irb_spec.rb22
-rw-r--r--spec/ruby/core/builtin_constants/builtin_constants_spec.rb12
-rw-r--r--spec/ruby/core/class/allocate_spec.rb2
-rw-r--r--spec/ruby/core/class/initialize_spec.rb2
-rw-r--r--spec/ruby/core/class/new_spec.rb15
-rw-r--r--spec/ruby/core/class/superclass_spec.rb2
-rw-r--r--spec/ruby/core/comparable/lt_spec.rb6
-rw-r--r--spec/ruby/core/complex/coerce_spec.rb2
-rw-r--r--spec/ruby/core/complex/comparision_spec.rb27
-rw-r--r--spec/ruby/core/complex/equal_value_spec.rb2
-rw-r--r--spec/ruby/core/complex/exponent_spec.rb2
-rw-r--r--spec/ruby/core/complex/finite_spec.rb12
-rw-r--r--spec/ruby/core/complex/shared/divide.rb4
-rw-r--r--spec/ruby/core/complex/spaceship_spec.rb27
-rw-r--r--spec/ruby/core/complex/to_c_spec.rb12
-rw-r--r--spec/ruby/core/complex/to_f_spec.rb2
-rw-r--r--spec/ruby/core/complex/to_i_spec.rb2
-rw-r--r--spec/ruby/core/complex/to_r_spec.rb2
-rw-r--r--spec/ruby/core/data/constants_spec.rb12
-rw-r--r--spec/ruby/core/dir/children_spec.rb102
-rw-r--r--spec/ruby/core/dir/each_child_spec.rb70
-rw-r--r--spec/ruby/core/dir/exists_spec.rb15
-rw-r--r--spec/ruby/core/dir/fileno_spec.rb2
-rw-r--r--spec/ruby/core/dir/fixtures/common.rb5
-rw-r--r--spec/ruby/core/dir/glob_spec.rb18
-rw-r--r--spec/ruby/core/dir/home_spec.rb6
-rw-r--r--spec/ruby/core/dir/mkdir_spec.rb34
-rw-r--r--spec/ruby/core/dir/shared/glob.rb107
-rw-r--r--spec/ruby/core/dir/shared/open.rb2
-rw-r--r--spec/ruby/core/encoding/converter/constants_spec.rb52
-rw-r--r--spec/ruby/core/encoding/converter/new_spec.rb4
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb1
-rw-r--r--spec/ruby/core/encoding/list_spec.rb14
-rw-r--r--spec/ruby/core/encoding/locale_charmap_spec.rb21
-rw-r--r--spec/ruby/core/enumerable/all_spec.rb139
-rw-r--r--spec/ruby/core/enumerable/any_spec.rb145
-rw-r--r--spec/ruby/core/enumerable/first_spec.rb2
-rw-r--r--spec/ruby/core/enumerable/fixtures/classes.rb2
-rw-r--r--spec/ruby/core/enumerable/grep_spec.rb24
-rw-r--r--spec/ruby/core/enumerable/grep_v_spec.rb24
-rw-r--r--spec/ruby/core/enumerable/minmax_spec.rb34
-rw-r--r--spec/ruby/core/enumerable/none_spec.rb109
-rw-r--r--spec/ruby/core/enumerable/one_spec.rb125
-rw-r--r--spec/ruby/core/enumerable/shared/collect.rb30
-rw-r--r--spec/ruby/core/enumerable/sort_spec.rb2
-rw-r--r--spec/ruby/core/enumerable/uniq_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/exclude_end_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/step_spec.rb2
-rw-r--r--spec/ruby/core/enumerator/each_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/initialize_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/eager_spec.rb29
-rw-r--r--spec/ruby/core/enumerator/lazy/initialize_spec.rb2
-rw-r--r--spec/ruby/core/enumerator/new_spec.rb131
-rw-r--r--spec/ruby/core/enumerator/next_spec.rb11
-rw-r--r--spec/ruby/core/enumerator/produce_spec.rb36
-rw-r--r--spec/ruby/core/enumerator/yielder/append_spec.rb23
-rw-r--r--spec/ruby/core/enumerator/yielder/to_proc_spec.rb18
-rw-r--r--spec/ruby/core/enumerator/yielder/yield_spec.rb10
-rw-r--r--spec/ruby/core/env/delete_spec.rb7
-rw-r--r--spec/ruby/core/env/element_reference_spec.rb3
-rw-r--r--spec/ruby/core/env/empty_spec.rb6
-rw-r--r--spec/ruby/core/env/fetch_spec.rb3
-rw-r--r--spec/ruby/core/env/index_spec.rb14
-rw-r--r--spec/ruby/core/env/shared/key.rb14
-rw-r--r--spec/ruby/core/env/shift_spec.rb7
-rw-r--r--spec/ruby/core/env/values_at_spec.rb3
-rw-r--r--spec/ruby/core/exception/backtrace_spec.rb2
-rw-r--r--spec/ruby/core/exception/destination_encoding_name_spec.rb23
-rw-r--r--spec/ruby/core/exception/destination_encoding_spec.rb23
-rw-r--r--spec/ruby/core/exception/errno_spec.rb18
-rw-r--r--spec/ruby/core/exception/error_bytes_spec.rb12
-rw-r--r--spec/ruby/core/exception/error_char_spec.rb12
-rw-r--r--spec/ruby/core/exception/exit_value_spec.rb10
-rw-r--r--spec/ruby/core/exception/frozen_error_spec.rb8
-rw-r--r--spec/ruby/core/exception/full_message_spec.rb134
-rw-r--r--spec/ruby/core/exception/hierarchy_spec.rb8
-rw-r--r--spec/ruby/core/exception/incomplete_input_spec.rb5
-rw-r--r--spec/ruby/core/exception/initialize_spec.rb1
-rw-r--r--spec/ruby/core/exception/io_error_spec.rb6
-rw-r--r--spec/ruby/core/exception/key_error_spec.rb6
-rw-r--r--spec/ruby/core/exception/name_error_spec.rb18
-rw-r--r--spec/ruby/core/exception/name_spec.rb4
-rw-r--r--spec/ruby/core/exception/no_method_error_spec.rb34
-rw-r--r--spec/ruby/core/exception/range_error_spec.rb7
-rw-r--r--spec/ruby/core/exception/readagain_bytes_spec.rb12
-rw-r--r--spec/ruby/core/exception/reason_spec.rb10
-rw-r--r--spec/ruby/core/exception/receiver_spec.rb6
-rw-r--r--spec/ruby/core/exception/result_spec.rb6
-rw-r--r--spec/ruby/core/exception/signm_spec.rb6
-rw-r--r--spec/ruby/core/exception/signo_spec.rb6
-rw-r--r--spec/ruby/core/exception/source_encoding_name_spec.rb23
-rw-r--r--spec/ruby/core/exception/source_encoding_spec.rb23
-rw-r--r--spec/ruby/core/exception/status_spec.rb6
-rw-r--r--spec/ruby/core/exception/success_spec.rb12
-rw-r--r--spec/ruby/core/exception/system_call_error_spec.rb15
-rw-r--r--spec/ruby/core/exception/system_exit_spec.rb17
-rw-r--r--spec/ruby/core/exception/system_stack_error_spec.rb7
-rw-r--r--spec/ruby/core/exception/top_level_spec.rb47
-rw-r--r--spec/ruby/core/exception/uncaught_throw_error_spec.rb6
-rw-r--r--spec/ruby/core/false/to_s_spec.rb2
-rw-r--r--spec/ruby/core/fiber/fixtures/classes.rb12
-rw-r--r--spec/ruby/core/fiber/raise_spec.rb101
-rw-r--r--spec/ruby/core/fiber/resume_spec.rb37
-rw-r--r--spec/ruby/core/file/absolute_path_spec.rb6
-rw-r--r--spec/ruby/core/file/atime_spec.rb2
-rw-r--r--spec/ruby/core/file/ctime_spec.rb2
-rw-r--r--spec/ruby/core/file/exists_spec.rb6
-rw-r--r--spec/ruby/core/file/expand_path_spec.rb6
-rw-r--r--spec/ruby/core/file/extname_spec.rb10
-rw-r--r--spec/ruby/core/file/ftype_spec.rb8
-rw-r--r--spec/ruby/core/file/join_spec.rb9
-rw-r--r--spec/ruby/core/file/lchmod_spec.rb22
-rw-r--r--spec/ruby/core/file/link_spec.rb2
-rw-r--r--spec/ruby/core/file/lstat_spec.rb4
-rw-r--r--spec/ruby/core/file/lutime_spec.rb58
-rw-r--r--spec/ruby/core/file/mtime_spec.rb2
-rw-r--r--spec/ruby/core/file/open_spec.rb18
-rw-r--r--spec/ruby/core/file/realpath_spec.rb6
-rw-r--r--spec/ruby/core/file/shared/path.rb49
-rw-r--r--spec/ruby/core/file/size_spec.rb4
-rw-r--r--spec/ruby/core/file/stat/nlink_spec.rb2
-rw-r--r--spec/ruby/core/file/stat/owned_spec.rb6
-rw-r--r--spec/ruby/core/file/stat/pipe_spec.rb4
-rw-r--r--spec/ruby/core/file/stat_spec.rb18
-rw-r--r--spec/ruby/core/file/truncate_spec.rb6
-rw-r--r--spec/ruby/core/file/umask_spec.rb4
-rw-r--r--spec/ruby/core/file/utime_spec.rb14
-rw-r--r--spec/ruby/core/filetest/exists_spec.rb6
-rw-r--r--spec/ruby/core/float/comparison_spec.rb22
-rw-r--r--spec/ruby/core/float/finite_spec.rb8
-rw-r--r--spec/ruby/core/float/inspect_spec.rb6
-rw-r--r--spec/ruby/core/float/nan_spec.rb6
-rw-r--r--spec/ruby/core/float/negative_spec.rb33
-rw-r--r--spec/ruby/core/float/next_float_spec.rb2
-rw-r--r--spec/ruby/core/float/positive_spec.rb33
-rw-r--r--spec/ruby/core/float/prev_float_spec.rb2
-rw-r--r--spec/ruby/core/float/round_spec.rb13
-rw-r--r--spec/ruby/core/float/shared/arithmetic_exception_in_coerce.rb32
-rw-r--r--spec/ruby/core/float/shared/comparison_exception_in_coerce.rb34
-rw-r--r--spec/ruby/core/float/shared/quo.rb4
-rw-r--r--spec/ruby/core/float/shared/to_s.rb308
-rw-r--r--spec/ruby/core/float/to_s_spec.rb308
-rw-r--r--spec/ruby/core/float/uminus_spec.rb2
-rw-r--r--spec/ruby/core/float/zero_spec.rb6
-rw-r--r--spec/ruby/core/gc/profiler/disable_spec.rb2
-rw-r--r--spec/ruby/core/gc/profiler/enable_spec.rb2
-rw-r--r--spec/ruby/core/gc/start_spec.rb4
-rw-r--r--spec/ruby/core/hash/any_spec.rb4
-rw-r--r--spec/ruby/core/hash/clear_spec.rb6
-rw-r--r--spec/ruby/core/hash/compact_spec.rb4
-rw-r--r--spec/ruby/core/hash/compare_by_identity_spec.rb6
-rw-r--r--spec/ruby/core/hash/deconstruct_keys_spec.rb25
-rw-r--r--spec/ruby/core/hash/default_proc_spec.rb6
-rw-r--r--spec/ruby/core/hash/default_spec.rb6
-rw-r--r--spec/ruby/core/hash/delete_if_spec.rb6
-rw-r--r--spec/ruby/core/hash/delete_spec.rb6
-rw-r--r--spec/ruby/core/hash/element_reference_spec.rb14
-rw-r--r--spec/ruby/core/hash/empty_spec.rb10
-rw-r--r--spec/ruby/core/hash/except_spec.rb34
-rw-r--r--spec/ruby/core/hash/fixtures/name.rb30
-rw-r--r--spec/ruby/core/hash/index_spec.rb6
-rw-r--r--spec/ruby/core/hash/initialize_spec.rb10
-rw-r--r--spec/ruby/core/hash/keep_if_spec.rb6
-rw-r--r--spec/ruby/core/hash/rehash_spec.rb6
-rw-r--r--spec/ruby/core/hash/reject_spec.rb10
-rw-r--r--spec/ruby/core/hash/ruby2_keywords_hash_spec.rb47
-rw-r--r--spec/ruby/core/hash/shared/each.rb38
-rw-r--r--spec/ruby/core/hash/shared/replace.rb8
-rw-r--r--spec/ruby/core/hash/shared/select.rb8
-rw-r--r--spec/ruby/core/hash/shared/store.rb25
-rw-r--r--spec/ruby/core/hash/shared/update.rb10
-rw-r--r--spec/ruby/core/hash/shift_spec.rb6
-rw-r--r--spec/ruby/core/hash/slice_spec.rb82
-rw-r--r--spec/ruby/core/hash/to_proc_spec.rb16
-rw-r--r--spec/ruby/core/hash/transform_keys_spec.rb200
-rw-r--r--spec/ruby/core/hash/transform_values_spec.rb8
-rw-r--r--spec/ruby/core/integer/allbits_spec.rb62
-rw-r--r--spec/ruby/core/integer/anybits_spec.rb60
-rw-r--r--spec/ruby/core/integer/chr_spec.rb13
-rw-r--r--spec/ruby/core/integer/coerce_spec.rb20
-rw-r--r--spec/ruby/core/integer/comparison_spec.rb30
-rw-r--r--spec/ruby/core/integer/constants_spec.rb32
-rw-r--r--spec/ruby/core/integer/denominator_spec.rb2
-rw-r--r--spec/ruby/core/integer/div_spec.rb2
-rw-r--r--spec/ruby/core/integer/divide_spec.rb8
-rw-r--r--spec/ruby/core/integer/downto_spec.rb2
-rw-r--r--spec/ruby/core/integer/element_reference_spec.rb89
-rw-r--r--spec/ruby/core/integer/even_spec.rb4
-rw-r--r--spec/ruby/core/integer/gcd_spec.rb8
-rw-r--r--spec/ruby/core/integer/gcdlcm_spec.rb8
-rw-r--r--spec/ruby/core/integer/gt_spec.rb8
-rw-r--r--spec/ruby/core/integer/gte_spec.rb8
-rw-r--r--spec/ruby/core/integer/integer_spec.rb6
-rw-r--r--spec/ruby/core/integer/lcm_spec.rb8
-rw-r--r--spec/ruby/core/integer/left_shift_spec.rb25
-rw-r--r--spec/ruby/core/integer/lt_spec.rb8
-rw-r--r--spec/ruby/core/integer/lte_spec.rb13
-rw-r--r--spec/ruby/core/integer/minus_spec.rb8
-rw-r--r--spec/ruby/core/integer/multiply_spec.rb8
-rw-r--r--spec/ruby/core/integer/nobits_spec.rb60
-rw-r--r--spec/ruby/core/integer/plus_spec.rb8
-rw-r--r--spec/ruby/core/integer/pow_spec.rb82
-rw-r--r--spec/ruby/core/integer/right_shift_spec.rb23
-rw-r--r--spec/ruby/core/integer/round_spec.rb26
-rw-r--r--spec/ruby/core/integer/shared/comparison_coerce.rb22
-rw-r--r--spec/ruby/core/integer/shared/equal.rb4
-rw-r--r--spec/ruby/core/integer/shared/integer_rounding.rb16
-rw-r--r--spec/ruby/core/integer/shared/next.rb12
-rw-r--r--spec/ruby/core/integer/sqrt_spec.rb46
-rw-r--r--spec/ruby/core/integer/to_r_spec.rb4
-rw-r--r--spec/ruby/core/integer/uminus_spec.rb2
-rw-r--r--spec/ruby/core/integer/upto_spec.rb2
-rw-r--r--spec/ruby/core/io/bytes_spec.rb64
-rw-r--r--spec/ruby/core/io/chars_spec.rb12
-rw-r--r--spec/ruby/core/io/close_on_exec_spec.rb12
-rw-r--r--spec/ruby/core/io/close_read_spec.rb2
-rw-r--r--spec/ruby/core/io/close_spec.rb30
-rw-r--r--spec/ruby/core/io/close_write_spec.rb2
-rw-r--r--spec/ruby/core/io/codepoints_spec.rb33
-rw-r--r--spec/ruby/core/io/copy_stream_spec.rb40
-rw-r--r--spec/ruby/core/io/dup_spec.rb12
-rw-r--r--spec/ruby/core/io/each_codepoint_spec.rb2
-rw-r--r--spec/ruby/core/io/eof_spec.rb26
-rw-r--r--spec/ruby/core/io/fixtures/classes.rb4
-rw-r--r--spec/ruby/core/io/fixtures/copy_in_out.rb2
-rw-r--r--spec/ruby/core/io/gets_spec.rb8
-rw-r--r--spec/ruby/core/io/initialize_spec.rb2
-rw-r--r--spec/ruby/core/io/ioctl_spec.rb4
-rw-r--r--spec/ruby/core/io/lines_spec.rb52
-rw-r--r--spec/ruby/core/io/pipe_spec.rb12
-rw-r--r--spec/ruby/core/io/popen_spec.rb4
-rw-r--r--spec/ruby/core/io/pread_spec.rb74
-rw-r--r--spec/ruby/core/io/print_spec.rb6
-rw-r--r--spec/ruby/core/io/puts_spec.rb6
-rw-r--r--spec/ruby/core/io/pwrite_spec.rb62
-rw-r--r--spec/ruby/core/io/read_nonblock_spec.rb2
-rw-r--r--spec/ruby/core/io/read_spec.rb2
-rw-r--r--spec/ruby/core/io/readlines_spec.rb58
-rw-r--r--spec/ruby/core/io/reopen_spec.rb8
-rw-r--r--spec/ruby/core/io/rewind_spec.rb2
-rw-r--r--spec/ruby/core/io/seek_spec.rb6
-rw-r--r--spec/ruby/core/io/set_encoding_by_bom_spec.rb57
-rw-r--r--spec/ruby/core/io/shared/each.rb4
-rw-r--r--spec/ruby/core/io/shared/new.rb54
-rw-r--r--spec/ruby/core/io/shared/pos.rb4
-rw-r--r--spec/ruby/core/io/shared/readlines.rb16
-rw-r--r--spec/ruby/core/io/sysopen_spec.rb4
-rw-r--r--spec/ruby/core/io/ungetbyte_spec.rb8
-rw-r--r--spec/ruby/core/io/ungetc_spec.rb25
-rw-r--r--spec/ruby/core/io/write_nonblock_spec.rb2
-rw-r--r--spec/ruby/core/io/write_spec.rb12
-rw-r--r--spec/ruby/core/kernel/Float_spec.rb10
-rw-r--r--spec/ruby/core/kernel/Integer_spec.rb14
-rw-r--r--spec/ruby/core/kernel/__dir___spec.rb23
-rw-r--r--spec/ruby/core/kernel/at_exit_spec.rb31
-rw-r--r--spec/ruby/core/kernel/autoload_spec.rb4
-rw-r--r--spec/ruby/core/kernel/backtick_spec.rb28
-rw-r--r--spec/ruby/core/kernel/caller_locations_spec.rb50
-rw-r--r--spec/ruby/core/kernel/caller_spec.rb22
-rw-r--r--spec/ruby/core/kernel/class_spec.rb2
-rw-r--r--spec/ruby/core/kernel/clone_spec.rb20
-rw-r--r--spec/ruby/core/kernel/dup_spec.rb2
-rw-r--r--spec/ruby/core/kernel/eval_spec.rb68
-rw-r--r--spec/ruby/core/kernel/extend_spec.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/__dir__.rb2
-rw-r--r--spec/ruby/core/kernel/fixtures/at_exit.rb3
-rw-r--r--spec/ruby/core/kernel/fixtures/classes.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_core_method.rb14
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_require.rb1
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_require_caller.rb2
-rw-r--r--spec/ruby/core/kernel/freeze_spec.rb32
-rw-r--r--spec/ruby/core/kernel/frozen_spec.rb40
-rw-r--r--spec/ruby/core/kernel/initialize_copy_spec.rb29
-rw-r--r--spec/ruby/core/kernel/instance_of_spec.rb2
-rw-r--r--spec/ruby/core/kernel/instance_variable_get_spec.rb2
-rw-r--r--spec/ruby/core/kernel/instance_variable_set_spec.rb10
-rw-r--r--spec/ruby/core/kernel/instance_variables_spec.rb4
-rw-r--r--spec/ruby/core/kernel/iterator_spec.rb14
-rw-r--r--spec/ruby/core/kernel/lambda_spec.rb20
-rw-r--r--spec/ruby/core/kernel/p_spec.rb8
-rw-r--r--spec/ruby/core/kernel/pp_spec.rb12
-rw-r--r--spec/ruby/core/kernel/printf_spec.rb17
-rw-r--r--spec/ruby/core/kernel/proc_spec.rb22
-rw-r--r--spec/ruby/core/kernel/raise_spec.rb21
-rw-r--r--spec/ruby/core/kernel/require_relative_spec.rb10
-rw-r--r--spec/ruby/core/kernel/respond_to_spec.rb3
-rw-r--r--spec/ruby/core/kernel/shared/dup_clone.rb34
-rw-r--r--spec/ruby/core/kernel/shared/lambda.rb4
-rw-r--r--spec/ruby/core/kernel/shared/require.rb107
-rw-r--r--spec/ruby/core/kernel/shared/sprintf.rb872
-rw-r--r--spec/ruby/core/kernel/shared/sprintf_encoding.rb18
-rw-r--r--spec/ruby/core/kernel/singleton_class_spec.rb2
-rw-r--r--spec/ruby/core/kernel/sleep_spec.rb2
-rw-r--r--spec/ruby/core/kernel/srand_spec.rb6
-rw-r--r--spec/ruby/core/kernel/system_spec.rb8
-rw-r--r--spec/ruby/core/kernel/taint_spec.rb29
-rw-r--r--spec/ruby/core/kernel/tainted_spec.rb21
-rw-r--r--spec/ruby/core/kernel/trust_spec.rb22
-rw-r--r--spec/ruby/core/kernel/untaint_spec.rb22
-rw-r--r--spec/ruby/core/kernel/untrust_spec.rb21
-rw-r--r--spec/ruby/core/kernel/untrusted_spec.rb26
-rw-r--r--spec/ruby/core/kernel/warn_spec.rb189
-rw-r--r--spec/ruby/core/kernel/yield_self_spec.rb6
-rw-r--r--spec/ruby/core/main/fixtures/classes.rb8
-rw-r--r--spec/ruby/core/main/private_spec.rb31
-rw-r--r--spec/ruby/core/main/public_spec.rb27
-rw-r--r--spec/ruby/core/marshal/dump_spec.rb37
-rw-r--r--spec/ruby/core/marshal/fixtures/marshal_data.rb60
-rw-r--r--spec/ruby/core/marshal/shared/load.rb26
-rw-r--r--spec/ruby/core/matchdata/string_spec.rb4
-rw-r--r--spec/ruby/core/math/tan_spec.rb4
-rw-r--r--spec/ruby/core/method/case_compare_spec.rb6
-rw-r--r--spec/ruby/core/method/compose_spec.rb5
-rw-r--r--spec/ruby/core/method/fixtures/classes.rb6
-rw-r--r--spec/ruby/core/method/shared/to_s.rb49
-rw-r--r--spec/ruby/core/method/source_location_spec.rb22
-rw-r--r--spec/ruby/core/module/alias_method_spec.rb40
-rw-r--r--spec/ruby/core/module/append_features_spec.rb4
-rw-r--r--spec/ruby/core/module/attr_accessor_spec.rb33
-rw-r--r--spec/ruby/core/module/attr_reader_spec.rb23
-rw-r--r--spec/ruby/core/module/attr_spec.rb27
-rw-r--r--spec/ruby/core/module/attr_writer_spec.rb23
-rw-r--r--spec/ruby/core/module/autoload_spec.rb47
-rw-r--r--spec/ruby/core/module/class_variable_defined_spec.rb2
-rw-r--r--spec/ruby/core/module/class_variable_get_spec.rb2
-rw-r--r--spec/ruby/core/module/class_variable_set_spec.rb8
-rw-r--r--spec/ruby/core/module/const_set_spec.rb22
-rw-r--r--spec/ruby/core/module/const_source_location_spec.rb220
-rw-r--r--spec/ruby/core/module/constants_spec.rb14
-rw-r--r--spec/ruby/core/module/define_method_spec.rb15
-rw-r--r--spec/ruby/core/module/fixtures/autoload_during_require_current_file.rb5
-rw-r--r--spec/ruby/core/module/fixtures/autoload_location.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_required_directly_no_constant.rb2
-rw-r--r--spec/ruby/core/module/fixtures/refine.rb12
-rw-r--r--spec/ruby/core/module/included_spec.rb2
-rw-r--r--spec/ruby/core/module/method_added_spec.rb21
-rw-r--r--spec/ruby/core/module/method_defined_spec.rb2
-rw-r--r--spec/ruby/core/module/name_spec.rb26
-rw-r--r--spec/ruby/core/module/prepend_spec.rb39
-rw-r--r--spec/ruby/core/module/private_method_defined_spec.rb2
-rw-r--r--spec/ruby/core/module/protected_method_defined_spec.rb2
-rw-r--r--spec/ruby/core/module/public_method_defined_spec.rb2
-rw-r--r--spec/ruby/core/module/refine_spec.rb474
-rw-r--r--spec/ruby/core/module/remove_method_spec.rb19
-rw-r--r--spec/ruby/core/module/shared/class_eval.rb44
-rw-r--r--spec/ruby/core/module/shared/set_visibility.rb34
-rw-r--r--spec/ruby/core/module/singleton_class_spec.rb10
-rw-r--r--spec/ruby/core/module/undef_method_spec.rb19
-rw-r--r--spec/ruby/core/module/using_spec.rb90
-rw-r--r--spec/ruby/core/mutex/owned_spec.rb12
-rw-r--r--spec/ruby/core/mutex/sleep_spec.rb18
-rw-r--r--spec/ruby/core/mutex/unlock_spec.rb2
-rw-r--r--spec/ruby/core/nil/case_compare_spec.rb13
-rw-r--r--spec/ruby/core/nil/match_spec.rb4
-rw-r--r--spec/ruby/core/nil/nil_spec.rb2
-rw-r--r--spec/ruby/core/nil/to_i_spec.rb2
-rw-r--r--spec/ruby/core/nil/to_s_spec.rb2
-rw-r--r--spec/ruby/core/numeric/clone_spec.rb25
-rw-r--r--spec/ruby/core/numeric/denominator_spec.rb2
-rw-r--r--spec/ruby/core/numeric/dup_spec.rb16
-rw-r--r--spec/ruby/core/numeric/integer_spec.rb2
-rw-r--r--spec/ruby/core/numeric/negative_spec.rb4
-rw-r--r--spec/ruby/core/numeric/positive_spec.rb4
-rw-r--r--spec/ruby/core/numeric/quo_spec.rb2
-rw-r--r--spec/ruby/core/numeric/real_spec.rb4
-rw-r--r--spec/ruby/core/numeric/shared/imag.rb2
-rw-r--r--spec/ruby/core/numeric/shared/rect.rb2
-rw-r--r--spec/ruby/core/numeric/shared/step.rb86
-rw-r--r--spec/ruby/core/numeric/step_spec.rb90
-rw-r--r--spec/ruby/core/numeric/zero_spec.rb4
-rw-r--r--spec/ruby/core/objectspace/_id2ref_spec.rb2
-rw-r--r--spec/ruby/core/objectspace/define_finalizer_spec.rb128
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_key_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_pair_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_value_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/element_reference_spec.rb24
-rw-r--r--spec/ruby/core/objectspace/weakmap/element_set_spec.rb61
-rw-r--r--spec/ruby/core/objectspace/weakmap/include_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/inspect_spec.rb25
-rw-r--r--spec/ruby/core/objectspace/weakmap/key_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/keys_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/length_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/member_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/each.rb10
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/include.rb34
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/members.rb14
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/size.rb14
-rw-r--r--spec/ruby/core/objectspace/weakmap/size_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/values_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap_spec.rb12
-rw-r--r--spec/ruby/core/proc/compose_spec.rb50
-rw-r--r--spec/ruby/core/proc/eql_spec.rb8
-rw-r--r--spec/ruby/core/proc/equal_value_spec.rb8
-rw-r--r--spec/ruby/core/proc/fixtures/source_location.rb2
-rw-r--r--spec/ruby/core/proc/hash_spec.rb2
-rw-r--r--spec/ruby/core/proc/lambda_spec.rb4
-rw-r--r--spec/ruby/core/proc/new_spec.rb14
-rw-r--r--spec/ruby/core/proc/parameters_spec.rb4
-rw-r--r--spec/ruby/core/proc/shared/call_arguments.rb2
-rw-r--r--spec/ruby/core/proc/shared/equal.rb14
-rw-r--r--spec/ruby/core/proc/shared/to_s.rb11
-rw-r--r--spec/ruby/core/proc/source_location_spec.rb10
-rw-r--r--spec/ruby/core/process/clock_getres_spec.rb40
-rw-r--r--spec/ruby/core/process/euid_spec.rb2
-rw-r--r--spec/ruby/core/process/exec_spec.rb20
-rw-r--r--spec/ruby/core/process/fixtures/clocks.rb42
-rw-r--r--spec/ruby/core/process/getpriority_spec.rb8
-rw-r--r--spec/ruby/core/process/groups_spec.rb4
-rw-r--r--spec/ruby/core/process/kill_spec.rb2
-rw-r--r--spec/ruby/core/process/last_status_spec.rb26
-rw-r--r--spec/ruby/core/process/maxgroups_spec.rb2
-rw-r--r--spec/ruby/core/process/pid_spec.rb2
-rw-r--r--spec/ruby/core/process/spawn_spec.rb47
-rw-r--r--spec/ruby/core/process/times_spec.rb25
-rw-r--r--spec/ruby/core/process/wait_spec.rb3
-rw-r--r--spec/ruby/core/random/default_spec.rb35
-rw-r--r--spec/ruby/core/random/new_seed_spec.rb4
-rw-r--r--spec/ruby/core/random/new_spec.rb2
-rw-r--r--spec/ruby/core/random/rand_spec.rb20
-rw-r--r--spec/ruby/core/random/raw_seed_spec.rb7
-rw-r--r--spec/ruby/core/random/urandom_spec.rb9
-rw-r--r--spec/ruby/core/range/bsearch_spec.rb200
-rw-r--r--spec/ruby/core/range/case_compare_spec.rb5
-rw-r--r--spec/ruby/core/range/cover_spec.rb1
-rw-r--r--spec/ruby/core/range/dup_spec.rb4
-rw-r--r--spec/ruby/core/range/each_spec.rb22
-rw-r--r--spec/ruby/core/range/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/range/exclude_end_spec.rb20
-rw-r--r--spec/ruby/core/range/hash_spec.rb10
-rw-r--r--spec/ruby/core/range/initialize_spec.rb15
-rw-r--r--spec/ruby/core/range/inspect_spec.rb7
-rw-r--r--spec/ruby/core/range/last_spec.rb6
-rw-r--r--spec/ruby/core/range/max_spec.rb6
-rw-r--r--spec/ruby/core/range/min_spec.rb7
-rw-r--r--spec/ruby/core/range/minmax_spec.rb170
-rw-r--r--spec/ruby/core/range/new_spec.rb12
-rw-r--r--spec/ruby/core/range/shared/cover.rb2
-rw-r--r--spec/ruby/core/range/shared/cover_and_include.rb7
-rw-r--r--spec/ruby/core/range/shared/equal_value.rb8
-rw-r--r--spec/ruby/core/range/size_spec.rb7
-rw-r--r--spec/ruby/core/range/step_spec.rb137
-rw-r--r--spec/ruby/core/range/to_a_spec.rb6
-rw-r--r--spec/ruby/core/range/to_s_spec.rb7
-rw-r--r--spec/ruby/core/rational/comparison_spec.rb2
-rw-r--r--spec/ruby/core/regexp/casefold_spec.rb4
-rw-r--r--spec/ruby/core/regexp/initialize_spec.rb12
-rw-r--r--spec/ruby/core/regexp/last_match_spec.rb2
-rw-r--r--spec/ruby/core/regexp/new_spec.rb2
-rw-r--r--spec/ruby/core/regexp/options_spec.rb6
-rw-r--r--spec/ruby/core/regexp/shared/new.rb6
-rw-r--r--spec/ruby/core/regexp/union_spec.rb10
-rw-r--r--spec/ruby/core/signal/trap_spec.rb2
-rw-r--r--spec/ruby/core/string/bytes_spec.rb6
-rw-r--r--spec/ruby/core/string/capitalize_spec.rb41
-rw-r--r--spec/ruby/core/string/casecmp_spec.rb24
-rw-r--r--spec/ruby/core/string/center_spec.rb35
-rw-r--r--spec/ruby/core/string/chomp_spec.rb41
-rw-r--r--spec/ruby/core/string/chop_spec.rb28
-rw-r--r--spec/ruby/core/string/clear_spec.rb6
-rw-r--r--spec/ruby/core/string/crypt_spec.rb16
-rw-r--r--spec/ruby/core/string/delete_prefix_spec.rb123
-rw-r--r--spec/ruby/core/string/delete_spec.rb24
-rw-r--r--spec/ruby/core/string/delete_suffix_spec.rb123
-rw-r--r--spec/ruby/core/string/downcase_spec.rb36
-rw-r--r--spec/ruby/core/string/dump_spec.rb22
-rw-r--r--spec/ruby/core/string/each_grapheme_cluster_spec.rb10
-rw-r--r--spec/ruby/core/string/element_set_spec.rb22
-rw-r--r--spec/ruby/core/string/empty_spec.rb10
-rw-r--r--spec/ruby/core/string/encode_spec.rb39
-rw-r--r--spec/ruby/core/string/end_with_spec.rb52
-rw-r--r--spec/ruby/core/string/fixtures/classes.rb11
-rw-r--r--spec/ruby/core/string/force_encoding_spec.rb4
-rw-r--r--spec/ruby/core/string/grapheme_clusters_spec.rb14
-rw-r--r--spec/ruby/core/string/gsub_spec.rb94
-rw-r--r--spec/ruby/core/string/index_spec.rb2
-rw-r--r--spec/ruby/core/string/insert_spec.rb10
-rw-r--r--spec/ruby/core/string/inspect_spec.rb12
-rw-r--r--spec/ruby/core/string/ljust_spec.rb35
-rw-r--r--spec/ruby/core/string/lstrip_spec.rb34
-rw-r--r--spec/ruby/core/string/match_spec.rb2
-rw-r--r--spec/ruby/core/string/modulo_spec.rb43
-rw-r--r--spec/ruby/core/string/ord_spec.rb4
-rw-r--r--spec/ruby/core/string/percent_spec.rb13
-rw-r--r--spec/ruby/core/string/prepend_spec.rb6
-rw-r--r--spec/ruby/core/string/reverse_spec.rb14
-rw-r--r--spec/ruby/core/string/rindex_spec.rb2
-rw-r--r--spec/ruby/core/string/rjust_spec.rb35
-rw-r--r--spec/ruby/core/string/rstrip_spec.rb16
-rw-r--r--spec/ruby/core/string/setbyte_spec.rb4
-rw-r--r--spec/ruby/core/string/shared/chars.rb4
-rw-r--r--spec/ruby/core/string/shared/codepoints.rb4
-rw-r--r--spec/ruby/core/string/shared/concat.rb20
-rw-r--r--spec/ruby/core/string/shared/each_line.rb56
-rw-r--r--spec/ruby/core/string/shared/length.rb13
-rw-r--r--spec/ruby/core/string/shared/replace.rb16
-rw-r--r--spec/ruby/core/string/shared/slice.rb160
-rw-r--r--spec/ruby/core/string/shared/succ.rb26
-rw-r--r--spec/ruby/core/string/shared/to_s.rb4
-rw-r--r--spec/ruby/core/string/shared/to_sym.rb2
-rw-r--r--spec/ruby/core/string/slice_spec.rb164
-rw-r--r--spec/ruby/core/string/split_spec.rb210
-rw-r--r--spec/ruby/core/string/squeeze_spec.rb26
-rw-r--r--spec/ruby/core/string/start_with_spec.rb72
-rw-r--r--spec/ruby/core/string/strip_spec.rb38
-rw-r--r--spec/ruby/core/string/sub_spec.rb69
-rw-r--r--spec/ruby/core/string/swapcase_spec.rb41
-rw-r--r--spec/ruby/core/string/to_i_spec.rb18
-rw-r--r--spec/ruby/core/string/tr_s_spec.rb26
-rw-r--r--spec/ruby/core/string/tr_spec.rb26
-rw-r--r--spec/ruby/core/string/uminus_spec.rb33
-rw-r--r--spec/ruby/core/string/undump_spec.rb834
-rw-r--r--spec/ruby/core/string/unicode_normalized_spec.rb8
-rw-r--r--spec/ruby/core/string/unpack/m_spec.rb14
-rw-r--r--spec/ruby/core/string/unpack/w_spec.rb10
-rw-r--r--spec/ruby/core/string/upcase_spec.rb42
-rw-r--r--spec/ruby/core/string/uplus_spec.rb2
-rw-r--r--spec/ruby/core/string/valid_encoding_spec.rb10
-rw-r--r--spec/ruby/core/struct/deconstruct_keys_spec.rb70
-rw-r--r--spec/ruby/core/struct/deconstruct_spec.rb12
-rw-r--r--spec/ruby/core/struct/hash_spec.rb18
-rw-r--r--spec/ruby/core/struct/new_spec.rb114
-rw-r--r--spec/ruby/core/symbol/all_symbols_spec.rb11
-rw-r--r--spec/ruby/core/symbol/casecmp_spec.rb2
-rw-r--r--spec/ruby/core/symbol/comparison_spec.rb2
-rw-r--r--spec/ruby/core/symbol/end_with_spec.rb10
-rw-r--r--spec/ruby/core/symbol/match_spec.rb17
-rw-r--r--spec/ruby/core/symbol/start_with_spec.rb10
-rw-r--r--spec/ruby/core/symbol/to_proc_spec.rb45
-rw-r--r--spec/ruby/core/systemexit/success_spec.rb4
-rw-r--r--spec/ruby/core/thread/alive_spec.rb20
-rw-r--r--spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb64
-rw-r--r--spec/ruby/core/thread/backtrace/location/base_label_spec.rb27
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/absolute_path_main.rb2
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/path.rb2
-rw-r--r--spec/ruby/core/thread/backtrace/location/lineno_spec.rb10
-rw-r--r--spec/ruby/core/thread/backtrace/location/path_spec.rb35
-rw-r--r--spec/ruby/core/thread/backtrace_locations_spec.rb42
-rw-r--r--spec/ruby/core/thread/backtrace_spec.rb34
-rw-r--r--spec/ruby/core/thread/element_set_spec.rb4
-rw-r--r--spec/ruby/core/thread/exclusive_spec.rb66
-rw-r--r--spec/ruby/core/thread/fetch_spec.rb54
-rw-r--r--spec/ruby/core/thread/join_spec.rb5
-rw-r--r--spec/ruby/core/thread/list_spec.rb4
-rw-r--r--spec/ruby/core/thread/new_spec.rb12
-rw-r--r--spec/ruby/core/thread/raise_spec.rb2
-rw-r--r--spec/ruby/core/thread/report_on_exception_spec.rb24
-rw-r--r--spec/ruby/core/thread/shared/to_s.rb6
-rw-r--r--spec/ruby/core/thread/stop_spec.rb20
-rw-r--r--spec/ruby/core/thread/to_s_spec.rb6
-rw-r--r--spec/ruby/core/time/_dump_spec.rb4
-rw-r--r--spec/ruby/core/time/at_spec.rb90
-rw-r--r--spec/ruby/core/time/ceil_spec.rb7
-rw-r--r--spec/ruby/core/time/dup_spec.rb4
-rw-r--r--spec/ruby/core/time/floor_spec.rb7
-rw-r--r--spec/ruby/core/time/friday_spec.rb4
-rw-r--r--spec/ruby/core/time/gmt_spec.rb4
-rw-r--r--spec/ruby/core/time/hash_spec.rb4
-rw-r--r--spec/ruby/core/time/inspect_spec.rb15
-rw-r--r--spec/ruby/core/time/minus_spec.rb10
-rw-r--r--spec/ruby/core/time/monday_spec.rb4
-rw-r--r--spec/ruby/core/time/new_spec.rb6
-rw-r--r--spec/ruby/core/time/plus_spec.rb10
-rw-r--r--spec/ruby/core/time/saturday_spec.rb4
-rw-r--r--spec/ruby/core/time/shared/now.rb22
-rw-r--r--spec/ruby/core/time/shared/to_i.rb7
-rw-r--r--spec/ruby/core/time/subsec_spec.rb2
-rw-r--r--spec/ruby/core/time/succ_spec.rb56
-rw-r--r--spec/ruby/core/time/sunday_spec.rb4
-rw-r--r--spec/ruby/core/time/thursday_spec.rb4
-rw-r--r--spec/ruby/core/time/tuesday_spec.rb4
-rw-r--r--spec/ruby/core/time/utc_spec.rb2
-rw-r--r--spec/ruby/core/time/wednesday_spec.rb4
-rw-r--r--spec/ruby/core/tracepoint/binding_spec.rb2
-rw-r--r--spec/ruby/core/tracepoint/callee_id_spec.rb1
-rw-r--r--spec/ruby/core/tracepoint/defined_class_spec.rb1
-rw-r--r--spec/ruby/core/tracepoint/disable_spec.rb9
-rw-r--r--spec/ruby/core/tracepoint/enable_spec.rb149
-rw-r--r--spec/ruby/core/tracepoint/enabled_spec.rb5
-rw-r--r--spec/ruby/core/tracepoint/eval_script_spec.rb1
-rw-r--r--spec/ruby/core/tracepoint/event_spec.rb1
-rw-r--r--spec/ruby/core/tracepoint/fixtures/classes.rb6
-rw-r--r--spec/ruby/core/tracepoint/inspect_spec.rb113
-rw-r--r--spec/ruby/core/tracepoint/lineno_spec.rb14
-rw-r--r--spec/ruby/core/tracepoint/method_id_spec.rb10
-rw-r--r--spec/ruby/core/tracepoint/new_spec.rb21
-rw-r--r--spec/ruby/core/tracepoint/parameters_spec.rb11
-rw-r--r--spec/ruby/core/tracepoint/path_spec.rb16
-rw-r--r--spec/ruby/core/tracepoint/raised_exception_spec.rb6
-rw-r--r--spec/ruby/core/tracepoint/return_value_spec.rb6
-rw-r--r--spec/ruby/core/tracepoint/self_spec.rb10
-rw-r--r--spec/ruby/core/tracepoint/trace_spec.rb3
-rw-r--r--spec/ruby/core/true/case_compare_spec.rb13
-rw-r--r--spec/ruby/core/true/to_s_spec.rb2
-rw-r--r--spec/ruby/core/unboundmethod/shared/to_s.rb9
-rw-r--r--spec/ruby/core/unboundmethod/source_location_spec.rb4
-rw-r--r--spec/ruby/core/warning/element_reference_spec.rb14
-rw-r--r--spec/ruby/core/warning/element_set_spec.rb31
-rw-r--r--spec/ruby/core/warning/warn_spec.rb27
-rw-r--r--spec/ruby/default.mspec1
-rw-r--r--spec/ruby/fixtures/code_loading.rb15
-rw-r--r--spec/ruby/fixtures/constants.rb18
-rw-r--r--spec/ruby/language/BEGIN_spec.rb5
-rw-r--r--spec/ruby/language/END_spec.rb15
-rw-r--r--spec/ruby/language/README2
-rw-r--r--spec/ruby/language/alias_spec.rb7
-rw-r--r--spec/ruby/language/block_spec.rb199
-rw-r--r--spec/ruby/language/break_spec.rb18
-rw-r--r--spec/ruby/language/case_spec.rb9
-rw-r--r--spec/ruby/language/class_spec.rb18
-rw-r--r--spec/ruby/language/comment_spec.rb15
-rw-r--r--spec/ruby/language/constants_spec.rb44
-rw-r--r--spec/ruby/language/def_spec.rb47
-rw-r--r--spec/ruby/language/defined_spec.rb44
-rw-r--r--spec/ruby/language/delegation_spec.rb41
-rw-r--r--spec/ruby/language/ensure_spec.rb104
-rw-r--r--spec/ruby/language/fixtures/delegation.rb11
-rw-r--r--spec/ruby/language/fixtures/rescue_captures.rb107
-rw-r--r--spec/ruby/language/fixtures/squiggly_heredoc.rb24
-rw-r--r--spec/ruby/language/fixtures/super.rb46
-rw-r--r--spec/ruby/language/hash_spec.rb8
-rw-r--r--spec/ruby/language/heredoc_spec.rb23
-rw-r--r--spec/ruby/language/lambda_spec.rb83
-rw-r--r--spec/ruby/language/method_spec.rb611
-rw-r--r--spec/ruby/language/module_spec.rb20
-rw-r--r--spec/ruby/language/numbered_parameters_spec.rb106
-rw-r--r--spec/ruby/language/numbers_spec.rb4
-rw-r--r--spec/ruby/language/pattern_matching_spec.rb1035
-rw-r--r--spec/ruby/language/predefined_spec.rb104
-rw-r--r--spec/ruby/language/range_spec.rb7
-rw-r--r--spec/ruby/language/regexp/character_classes_spec.rb6
-rw-r--r--spec/ruby/language/regexp/encoding_spec.rb12
-rw-r--r--spec/ruby/language/regexp_spec.rb12
-rw-r--r--spec/ruby/language/rescue_spec.rb70
-rw-r--r--spec/ruby/language/return_spec.rb380
-rw-r--r--spec/ruby/language/safe_spec.rb14
-rw-r--r--spec/ruby/language/send_spec.rb36
-rw-r--r--spec/ruby/language/singleton_class_spec.rb21
-rw-r--r--spec/ruby/language/string_spec.rb48
-rw-r--r--spec/ruby/language/super_spec.rb46
-rw-r--r--spec/ruby/language/variables_spec.rb39
-rw-r--r--spec/ruby/library/English/English_spec.rb8
-rw-r--r--spec/ruby/library/English/alias_spec.rb14
-rw-r--r--spec/ruby/library/bigdecimal/BigDecimal_spec.rb117
-rw-r--r--spec/ruby/library/bigdecimal/abs_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/add_spec.rb12
-rw-r--r--spec/ruby/library/bigdecimal/comparison_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/constants_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/div_spec.rb16
-rw-r--r--spec/ruby/library/bigdecimal/divmod_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/exponent_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/finite_spec.rb8
-rw-r--r--spec/ruby/library/bigdecimal/fix_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/frac_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/gt_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/gte_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/lt_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/lte_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/minus_spec.rb18
-rw-r--r--spec/ruby/library/bigdecimal/mode_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/nan_spec.rb22
-rw-r--r--spec/ruby/library/bigdecimal/plus_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/precs_spec.rb68
-rw-r--r--spec/ruby/library/bigdecimal/quo_spec.rb4
-rw-r--r--spec/ruby/library/bigdecimal/remainder_spec.rb38
-rw-r--r--spec/ruby/library/bigdecimal/shared/clone.rb17
-rw-r--r--spec/ruby/library/bigdecimal/shared/modulo.rb28
-rw-r--r--spec/ruby/library/bigdecimal/shared/mult.rb20
-rw-r--r--spec/ruby/library/bigdecimal/shared/power.rb4
-rw-r--r--spec/ruby/library/bigdecimal/shared/quo.rb10
-rw-r--r--spec/ruby/library/bigdecimal/shared/to_int.rb2
-rw-r--r--spec/ruby/library/bigdecimal/sub_spec.rb8
-rw-r--r--spec/ruby/library/bigdecimal/to_f_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/to_s_spec.rb17
-rw-r--r--spec/ruby/library/bigdecimal/truncate_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/uminus_spec.rb2
-rw-r--r--spec/ruby/library/bigdecimal/zero_spec.rb26
-rw-r--r--spec/ruby/library/cgi/cookie/to_s_spec.rb13
-rw-r--r--spec/ruby/library/cgi/escapeHTML_spec.rb4
-rw-r--r--spec/ruby/library/cgi/escape_spec.rb16
-rw-r--r--spec/ruby/library/cgi/unescapeHTML_spec.rb5
-rw-r--r--spec/ruby/library/cgi/unescape_spec.rb4
-rw-r--r--spec/ruby/library/conditionvariable/broadcast_spec.rb29
-rw-r--r--spec/ruby/library/conditionvariable/signal_spec.rb33
-rw-r--r--spec/ruby/library/conditionvariable/wait_spec.rb117
-rw-r--r--spec/ruby/library/coverage/fixtures/eval_code.rb11
-rw-r--r--spec/ruby/library/coverage/result_spec.rb14
-rw-r--r--spec/ruby/library/csv/liberal_parsing_spec.rb6
-rw-r--r--spec/ruby/library/date/constants_spec.rb4
-rw-r--r--spec/ruby/library/date/gregorian_spec.rb2
-rw-r--r--spec/ruby/library/date/infinity_spec.rb14
-rw-r--r--spec/ruby/library/date/julian_spec.rb4
-rw-r--r--spec/ruby/library/date/parse_spec.rb17
-rw-r--r--spec/ruby/library/date/shared/civil.rb8
-rw-r--r--spec/ruby/library/delegate/delegator/eql_spec.rb55
-rw-r--r--spec/ruby/library/digest/bubblebabble_spec.rb2
-rw-r--r--spec/ruby/library/digest/hexencode_spec.rb2
-rw-r--r--spec/ruby/library/digest/instance/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/instance/new_spec.rb19
-rw-r--r--spec/ruby/library/digest/instance/shared/update.rb8
-rw-r--r--spec/ruby/library/digest/instance/update_spec.rb7
-rw-r--r--spec/ruby/library/digest/md5/shared/constants.rb1
-rw-r--r--spec/ruby/library/digest/sha1/shared/constants.rb3
-rw-r--r--spec/ruby/library/digest/sha2/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha256/file_spec.rb4
-rw-r--r--spec/ruby/library/digest/sha256/shared/constants.rb1
-rw-r--r--spec/ruby/library/digest/sha384/shared/constants.rb1
-rw-r--r--spec/ruby/library/digest/sha512/shared/constants.rb1
-rw-r--r--spec/ruby/library/erb/util/shared/url_encode.rb16
-rw-r--r--spec/ruby/library/etc/confstr_spec.rb2
-rw-r--r--spec/ruby/library/etc/getgrgid_spec.rb7
-rw-r--r--spec/ruby/library/etc/getgrnam_spec.rb2
-rw-r--r--spec/ruby/library/etc/group_spec.rb2
-rw-r--r--spec/ruby/library/etc/struct_group_spec.rb2
-rw-r--r--spec/ruby/library/etc/struct_passwd_spec.rb2
-rw-r--r--spec/ruby/library/fiber/current_spec.rb16
-rw-r--r--spec/ruby/library/fiber/resume_spec.rb21
-rw-r--r--spec/ruby/library/fiber/transfer_spec.rb56
-rw-r--r--spec/ruby/library/getoptlong/shared/get.rb10
-rw-r--r--spec/ruby/library/getoptlong/terminated_spec.rb6
-rw-r--r--spec/ruby/library/ipaddr/ipv4_conversion_spec.rb8
-rw-r--r--spec/ruby/library/ipaddr/new_spec.rb8
-rw-r--r--spec/ruby/library/logger/logger/debug_spec.rb4
-rw-r--r--spec/ruby/library/logger/logger/error_spec.rb4
-rw-r--r--spec/ruby/library/logger/logger/fatal_spec.rb4
-rw-r--r--spec/ruby/library/logger/logger/info_spec.rb4
-rw-r--r--spec/ruby/library/logger/logger/warn_spec.rb4
-rw-r--r--spec/ruby/library/mathn/bignum/exponent_spec.rb21
-rw-r--r--spec/ruby/library/mathn/complex/Complex_spec.rb14
-rw-r--r--spec/ruby/library/mathn/fixnum/exponent_spec.rb17
-rw-r--r--spec/ruby/library/mathn/float/exponent_spec.rb17
-rw-r--r--spec/ruby/library/mathn/integer/from_prime_division_spec.rb11
-rw-r--r--spec/ruby/library/mathn/integer/prime_division_spec.rb21
-rw-r--r--spec/ruby/library/mathn/math/fixtures/classes.rb3
-rw-r--r--spec/ruby/library/mathn/math/rsqrt_spec.rb17
-rw-r--r--spec/ruby/library/mathn/math/shared/rsqrt.rb21
-rw-r--r--spec/ruby/library/mathn/math/shared/sqrt.rb25
-rw-r--r--spec/ruby/library/mathn/math/sqrt_spec.rb17
-rw-r--r--spec/ruby/library/mathn/mathn_spec.rb13
-rw-r--r--spec/ruby/library/mathn/rational/Rational_spec.rb14
-rw-r--r--spec/ruby/library/mathn/rational/inspect_spec.rb15
-rw-r--r--spec/ruby/library/matrix/coerce_spec.rb2
-rw-r--r--spec/ruby/library/matrix/divide_spec.rb4
-rw-r--r--spec/ruby/library/matrix/hash_spec.rb4
-rw-r--r--spec/ruby/library/matrix/multiply_spec.rb4
-rw-r--r--spec/ruby/library/matrix/normal_spec.rb6
-rw-r--r--spec/ruby/library/matrix/orthogonal_spec.rb6
-rw-r--r--spec/ruby/library/matrix/unitary_spec.rb15
-rw-r--r--spec/ruby/library/matrix/zero_spec.rb10
-rw-r--r--spec/ruby/library/net/ftp/initialize_spec.rb4
-rw-r--r--spec/ruby/library/net/http/http/fixtures/http_server.rb12
-rw-r--r--spec/ruby/library/net/http/http/get2_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/get_spec.rb71
-rw-r--r--spec/ruby/library/net/http/http/head2_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/post2_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/put2_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/request_get_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/request_head_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/request_post_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/request_put_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/send_request_spec.rb2
-rw-r--r--spec/ruby/library/net/http/http/shared/request_get.rb2
-rw-r--r--spec/ruby/library/net/http/http/shared/request_head.rb2
-rw-r--r--spec/ruby/library/net/http/http/shared/request_post.rb2
-rw-r--r--spec/ruby/library/net/http/http/shared/request_put.rb2
-rw-r--r--spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb12
-rw-r--r--spec/ruby/library/objectspace/memsize_of_spec.rb4
-rw-r--r--spec/ruby/library/openssl/config/freeze_spec.rb26
-rw-r--r--spec/ruby/library/openssl/digest_spec.rb63
-rw-r--r--spec/ruby/library/openssl/hmac/digest_spec.rb2
-rw-r--r--spec/ruby/library/openssl/hmac/hexdigest_spec.rb2
-rw-r--r--spec/ruby/library/openstruct/frozen_spec.rb2
-rw-r--r--spec/ruby/library/openstruct/marshal_load_spec.rb2
-rw-r--r--spec/ruby/library/openstruct/method_missing_spec.rb29
-rw-r--r--spec/ruby/library/pathname/absolute_spec.rb8
-rw-r--r--spec/ruby/library/pathname/glob_spec.rb57
-rw-r--r--spec/ruby/library/pathname/new_spec.rb2
-rw-r--r--spec/ruby/library/pathname/pathname_spec.rb30
-rw-r--r--spec/ruby/library/pathname/relative_spec.rb8
-rw-r--r--spec/ruby/library/pathname/root_spec.rb10
-rw-r--r--spec/ruby/library/rbconfig/rbconfig_spec.rb36
-rw-r--r--spec/ruby/library/rbconfig/sizeof/limits_spec.rb58
-rw-r--r--spec/ruby/library/rbconfig/unicode_version_spec.rb6
-rw-r--r--spec/ruby/library/rexml/attribute/clone_spec.rb17
-rw-r--r--spec/ruby/library/rexml/attribute/element_spec.rb33
-rw-r--r--spec/ruby/library/rexml/attribute/equal_value_spec.rb25
-rw-r--r--spec/ruby/library/rexml/attribute/hash_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/initialize_spec.rb45
-rw-r--r--spec/ruby/library/rexml/attribute/inspect_spec.rb29
-rw-r--r--spec/ruby/library/rexml/attribute/namespace_spec.rb39
-rw-r--r--spec/ruby/library/rexml/attribute/node_type_spec.rb15
-rw-r--r--spec/ruby/library/rexml/attribute/prefix_spec.rb25
-rw-r--r--spec/ruby/library/rexml/attribute/remove_spec.rb31
-rw-r--r--spec/ruby/library/rexml/attribute/to_s_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/to_string_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/value_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/write_spec.rb35
-rw-r--r--spec/ruby/library/rexml/attribute/xpath_spec.rb27
-rw-r--r--spec/ruby/library/rexml/attributes/add_spec.rb11
-rw-r--r--spec/ruby/library/rexml/attributes/append_spec.rb11
-rw-r--r--spec/ruby/library/rexml/attributes/delete_all_spec.rb51
-rw-r--r--spec/ruby/library/rexml/attributes/delete_spec.rb43
-rw-r--r--spec/ruby/library/rexml/attributes/each_attribute_spec.rb33
-rw-r--r--spec/ruby/library/rexml/attributes/each_spec.rb37
-rw-r--r--spec/ruby/library/rexml/attributes/element_reference_spec.rb27
-rw-r--r--spec/ruby/library/rexml/attributes/element_set_spec.rb39
-rw-r--r--spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb23
-rw-r--r--spec/ruby/library/rexml/attributes/get_attribute_spec.rb45
-rw-r--r--spec/ruby/library/rexml/attributes/initialize_spec.rb27
-rw-r--r--spec/ruby/library/rexml/attributes/length_spec.rb11
-rw-r--r--spec/ruby/library/rexml/attributes/namespaces_spec.rb9
-rw-r--r--spec/ruby/library/rexml/attributes/prefixes_spec.rb37
-rw-r--r--spec/ruby/library/rexml/attributes/size_spec.rb11
-rw-r--r--spec/ruby/library/rexml/attributes/to_a_spec.rb27
-rw-r--r--spec/ruby/library/rexml/cdata/clone_spec.rb15
-rw-r--r--spec/ruby/library/rexml/cdata/initialize_spec.rb37
-rw-r--r--spec/ruby/library/rexml/cdata/to_s_spec.rb11
-rw-r--r--spec/ruby/library/rexml/cdata/value_spec.rb11
-rw-r--r--spec/ruby/library/rexml/document/add_element_spec.rb51
-rw-r--r--spec/ruby/library/rexml/document/add_spec.rb89
-rw-r--r--spec/ruby/library/rexml/document/clone_spec.rb33
-rw-r--r--spec/ruby/library/rexml/document/doctype_spec.rb23
-rw-r--r--spec/ruby/library/rexml/document/encoding_spec.rb33
-rw-r--r--spec/ruby/library/rexml/document/expanded_name_spec.rb23
-rw-r--r--spec/ruby/library/rexml/document/new_spec.rb55
-rw-r--r--spec/ruby/library/rexml/document/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/document/root_spec.rb17
-rw-r--r--spec/ruby/library/rexml/document/stand_alone_spec.rb31
-rw-r--r--spec/ruby/library/rexml/document/version_spec.rb21
-rw-r--r--spec/ruby/library/rexml/document/write_spec.rb57
-rw-r--r--spec/ruby/library/rexml/document/xml_decl_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/add_attribute_spec.rb65
-rw-r--r--spec/ruby/library/rexml/element/add_attributes_spec.rb35
-rw-r--r--spec/ruby/library/rexml/element/add_element_spec.rb62
-rw-r--r--spec/ruby/library/rexml/element/add_namespace_spec.rb35
-rw-r--r--spec/ruby/library/rexml/element/add_text_spec.rb37
-rw-r--r--spec/ruby/library/rexml/element/attribute_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/attributes_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/cdatas_spec.rb37
-rw-r--r--spec/ruby/library/rexml/element/clone_spec.rb47
-rw-r--r--spec/ruby/library/rexml/element/comments_spec.rb31
-rw-r--r--spec/ruby/library/rexml/element/delete_attribute_spec.rb61
-rw-r--r--spec/ruby/library/rexml/element/delete_element_spec.rb81
-rw-r--r--spec/ruby/library/rexml/element/delete_namespace_spec.rb37
-rw-r--r--spec/ruby/library/rexml/element/document_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb57
-rw-r--r--spec/ruby/library/rexml/element/each_element_with_text_spec.rb49
-rw-r--r--spec/ruby/library/rexml/element/element_reference_spec.rb29
-rw-r--r--spec/ruby/library/rexml/element/get_text_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/has_attributes_spec.rb25
-rw-r--r--spec/ruby/library/rexml/element/has_elements_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/has_text_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/inspect_spec.rb41
-rw-r--r--spec/ruby/library/rexml/element/instructions_spec.rb33
-rw-r--r--spec/ruby/library/rexml/element/namespace_spec.rb41
-rw-r--r--spec/ruby/library/rexml/element/namespaces_spec.rb51
-rw-r--r--spec/ruby/library/rexml/element/new_spec.rb55
-rw-r--r--spec/ruby/library/rexml/element/next_element_spec.rb31
-rw-r--r--spec/ruby/library/rexml/element/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/element/prefixes_spec.rb35
-rw-r--r--spec/ruby/library/rexml/element/previous_element_spec.rb31
-rw-r--r--spec/ruby/library/rexml/element/raw_spec.rb35
-rw-r--r--spec/ruby/library/rexml/element/root_spec.rb43
-rw-r--r--spec/ruby/library/rexml/element/text_spec.rb87
-rw-r--r--spec/ruby/library/rexml/element/texts_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/whitespace_spec.rb33
-rw-r--r--spec/ruby/library/rexml/node/each_recursive_spec.rb35
-rw-r--r--spec/ruby/library/rexml/node/find_first_recursive_spec.rb41
-rw-r--r--spec/ruby/library/rexml/node/index_in_parent_spec.rb23
-rw-r--r--spec/ruby/library/rexml/node/next_sibling_node_spec.rb33
-rw-r--r--spec/ruby/library/rexml/node/parent_spec.rb31
-rw-r--r--spec/ruby/library/rexml/node/previous_sibling_node_spec.rb33
-rw-r--r--spec/ruby/library/rexml/text/append_spec.rb15
-rw-r--r--spec/ruby/library/rexml/text/clone_spec.rb15
-rw-r--r--spec/ruby/library/rexml/text/comparison_spec.rb39
-rw-r--r--spec/ruby/library/rexml/text/empty_spec.rb17
-rw-r--r--spec/ruby/library/rexml/text/indent_text_spec.rb35
-rw-r--r--spec/ruby/library/rexml/text/inspect_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/new_spec.rb91
-rw-r--r--spec/ruby/library/rexml/text/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/normalize_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/read_with_substitution_spec.rb17
-rw-r--r--spec/ruby/library/rexml/text/to_s_spec.rb25
-rw-r--r--spec/ruby/library/rexml/text/unnormalize_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/value_spec.rb55
-rw-r--r--spec/ruby/library/rexml/text/wrap_spec.rb29
-rw-r--r--spec/ruby/library/rexml/text/write_with_substitution_spec.rb53
-rw-r--r--spec/ruby/library/ripper/lex_spec.rb23
-rw-r--r--spec/ruby/library/ripper/sexp_spec.rb13
-rw-r--r--spec/ruby/library/securerandom/random_number_spec.rb2
-rw-r--r--spec/ruby/library/set/case_compare_spec.rb12
-rw-r--r--spec/ruby/library/set/case_equality_spec.rb6
-rw-r--r--spec/ruby/library/set/compare_by_identity_spec.rb16
-rw-r--r--spec/ruby/library/set/enumerable/to_set_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/add_spec.rb59
-rw-r--r--spec/ruby/library/set/sortedset/append_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/case_equality_spec.rb7
-rw-r--r--spec/ruby/library/set/sortedset/classify_spec.rb41
-rw-r--r--spec/ruby/library/set/sortedset/clear_spec.rb25
-rw-r--r--spec/ruby/library/set/sortedset/collect_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/constructor_spec.rb21
-rw-r--r--spec/ruby/library/set/sortedset/delete_if_spec.rb57
-rw-r--r--spec/ruby/library/set/sortedset/delete_spec.rb55
-rw-r--r--spec/ruby/library/set/sortedset/difference_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/divide_spec.rb53
-rw-r--r--spec/ruby/library/set/sortedset/each_spec.rb39
-rw-r--r--spec/ruby/library/set/sortedset/empty_spec.rb15
-rw-r--r--spec/ruby/library/set/sortedset/eql_spec.rb23
-rw-r--r--spec/ruby/library/set/sortedset/equal_value_spec.rb19
-rw-r--r--spec/ruby/library/set/sortedset/exclusion_spec.rb27
-rw-r--r--spec/ruby/library/set/sortedset/filter_spec.rb13
-rw-r--r--spec/ruby/library/set/sortedset/flatten_merge_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/flatten_spec.rb67
-rw-r--r--spec/ruby/library/set/sortedset/hash_spec.rb19
-rw-r--r--spec/ruby/library/set/sortedset/include_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/initialize_spec.rb49
-rw-r--r--spec/ruby/library/set/sortedset/inspect_spec.rb15
-rw-r--r--spec/ruby/library/set/sortedset/intersection_spec.rb17
-rw-r--r--spec/ruby/library/set/sortedset/keep_if_spec.rb47
-rw-r--r--spec/ruby/library/set/sortedset/length_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/map_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/member_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/merge_spec.rb29
-rw-r--r--spec/ruby/library/set/sortedset/minus_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/plus_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb15
-rw-r--r--spec/ruby/library/set/sortedset/pretty_print_spec.rb23
-rw-r--r--spec/ruby/library/set/sortedset/proper_subset_spec.rb51
-rw-r--r--spec/ruby/library/set/sortedset/proper_superset_spec.rb51
-rw-r--r--spec/ruby/library/set/sortedset/reject_spec.rb63
-rw-r--r--spec/ruby/library/set/sortedset/replace_spec.rb25
-rw-r--r--spec/ruby/library/set/sortedset/select_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/size_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/subset_spec.rb51
-rw-r--r--spec/ruby/library/set/sortedset/subtract_spec.rb25
-rw-r--r--spec/ruby/library/set/sortedset/superset_spec.rb51
-rw-r--r--spec/ruby/library/set/sortedset/to_a_spec.rb25
-rw-r--r--spec/ruby/library/set/sortedset/union_spec.rb17
-rw-r--r--spec/ruby/library/set/to_s_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/getnameinfo_spec.rb22
-rw-r--r--spec/ruby/library/socket/addrinfo/initialize_spec.rb50
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb8
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb10
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_linklocal_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_global_spec.rb16
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_linklocal_spec.rb14
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_nodelocal_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_orglocal_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_sitelocal_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb20
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_sitelocal_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_unique_local_spec.rb12
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_unspecified_spec.rb6
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_v4compat_spec.rb10
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_v4mapped_spec.rb10
-rw-r--r--spec/ruby/library/socket/addrinfo/listen_spec.rb2
-rw-r--r--spec/ruby/library/socket/basicsocket/read_nonblock_spec.rb64
-rw-r--r--spec/ruby/library/socket/basicsocket/write_nonblock_spec.rb62
-rw-r--r--spec/ruby/library/socket/constants/constants_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/gethostbyaddr_spec.rb22
-rw-r--r--spec/ruby/library/socket/socket/gethostbyname_spec.rb16
-rw-r--r--spec/ruby/library/socket/socket/listen_spec.rb6
-rw-r--r--spec/ruby/library/socket/socket/tcp_server_sockets_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/tcp_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/udp_server_sockets_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/unix_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb2
-rw-r--r--spec/ruby/library/socket/tcpserver/accept_spec.rb20
-rw-r--r--spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb16
-rw-r--r--spec/ruby/library/socket/udpsocket/inspect_spec.rb14
-rw-r--r--spec/ruby/library/socket/unixsocket/open_spec.rb2
-rw-r--r--spec/ruby/library/socket/unixsocket/shared/new.rb2
-rw-r--r--spec/ruby/library/stringio/append_spec.rb8
-rw-r--r--spec/ruby/library/stringio/binmode_spec.rb14
-rw-r--r--spec/ruby/library/stringio/bytes_spec.rb12
-rw-r--r--spec/ruby/library/stringio/chars_spec.rb12
-rw-r--r--spec/ruby/library/stringio/codepoints_spec.rb9
-rw-r--r--spec/ruby/library/stringio/each_char_spec.rb2
-rw-r--r--spec/ruby/library/stringio/each_codepoint_spec.rb2
-rw-r--r--spec/ruby/library/stringio/getpass_spec.rb11
-rw-r--r--spec/ruby/library/stringio/gets_spec.rb5
-rw-r--r--spec/ruby/library/stringio/initialize_spec.rb25
-rw-r--r--spec/ruby/library/stringio/inspect_spec.rb19
-rw-r--r--spec/ruby/library/stringio/lines_spec.rb24
-rw-r--r--spec/ruby/library/stringio/open_spec.rb4
-rw-r--r--spec/ruby/library/stringio/print_spec.rb10
-rw-r--r--spec/ruby/library/stringio/printf_spec.rb2
-rw-r--r--spec/ruby/library/stringio/puts_spec.rb15
-rw-r--r--spec/ruby/library/stringio/readline_spec.rb5
-rw-r--r--spec/ruby/library/stringio/readlines_spec.rb5
-rw-r--r--spec/ruby/library/stringio/reopen_spec.rb46
-rw-r--r--spec/ruby/library/stringio/shared/each.rb5
-rw-r--r--spec/ruby/library/stringio/shared/read.rb4
-rw-r--r--spec/ruby/library/stringio/shared/write.rb8
-rw-r--r--spec/ruby/library/stringscanner/append_spec.rb2
-rw-r--r--spec/ruby/library/stringscanner/concat_spec.rb2
-rw-r--r--spec/ruby/library/stringscanner/shared/peek.rb2
-rw-r--r--spec/ruby/library/syslog/close_spec.rb2
-rw-r--r--spec/ruby/library/syslog/ident_spec.rb2
-rw-r--r--spec/ruby/library/syslog/log_spec.rb8
-rw-r--r--spec/ruby/library/syslog/mask_spec.rb2
-rw-r--r--spec/ruby/library/syslog/shared/log.rb9
-rw-r--r--spec/ruby/library/timeout/timeout_spec.rb16
-rw-r--r--spec/ruby/library/weakref/weakref_alive_spec.rb2
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/input_spec.rb2
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/value_spec.rb2
-rw-r--r--spec/ruby/library/yaml/add_builtin_type_spec.rb2
-rw-r--r--spec/ruby/library/yaml/add_domain_type_spec.rb2
-rw-r--r--spec/ruby/library/yaml/add_private_type_spec.rb2
-rw-r--r--spec/ruby/library/yaml/add_ruby_type_spec.rb2
-rw-r--r--spec/ruby/library/yaml/detect_implicit_spec.rb2
-rw-r--r--spec/ruby/library/yaml/dump_spec.rb7
-rw-r--r--spec/ruby/library/yaml/each_node_spec.rb2
-rw-r--r--spec/ruby/library/yaml/emitter_spec.rb2
-rw-r--r--spec/ruby/library/yaml/generic_parser_spec.rb2
-rw-r--r--spec/ruby/library/yaml/load_documents_spec.rb10
-rw-r--r--spec/ruby/library/yaml/object_maker_spec.rb2
-rw-r--r--spec/ruby/library/yaml/parse_documents_spec.rb2
-rw-r--r--spec/ruby/library/yaml/parser_spec.rb2
-rw-r--r--spec/ruby/library/yaml/quick_emit_spec.rb2
-rw-r--r--spec/ruby/library/yaml/read_type_class_spec.rb2
-rw-r--r--spec/ruby/library/yaml/tagurize_spec.rb11
-rw-r--r--spec/ruby/library/yaml/transfer_spec.rb2
-rw-r--r--spec/ruby/library/yaml/try_implicit_spec.rb2
-rw-r--r--spec/ruby/library/zlib/adler32_spec.rb2
-rw-r--r--spec/ruby/library/zlib/crc32_spec.rb2
-rw-r--r--spec/ruby/library/zlib/gzipfile/close_spec.rb2
-rw-r--r--spec/ruby/library/zlib/gzipfile/closed_spec.rb4
-rw-r--r--spec/ruby/library/zlib/zstream/flush_next_out_spec.rb2
-rw-r--r--spec/ruby/optional/capi/README9
-rw-r--r--spec/ruby/optional/capi/array_spec.rb38
-rw-r--r--spec/ruby/optional/capi/basic_object_spec.rb24
-rw-r--r--spec/ruby/optional/capi/class_spec.rb66
-rw-r--r--spec/ruby/optional/capi/constants_spec.rb105
-rw-r--r--spec/ruby/optional/capi/encoding_spec.rb175
-rw-r--r--spec/ruby/optional/capi/exception_spec.rb45
-rw-r--r--spec/ruby/optional/capi/ext/array_spec.c16
-rw-r--r--spec/ruby/optional/capi/ext/basic_object_spec.c19
-rw-r--r--spec/ruby/optional/capi/ext/bignum_spec.c4
-rw-r--r--spec/ruby/optional/capi/ext/boolean_spec.c2
-rw-r--r--spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c8
-rw-r--r--spec/ruby/optional/capi/ext/class_spec.c26
-rw-r--r--spec/ruby/optional/capi/ext/class_under_autoload_spec.c8
-rw-r--r--spec/ruby/optional/capi/ext/constants_spec.c383
-rw-r--r--spec/ruby/optional/capi/ext/data_spec.c8
-rw-r--r--spec/ruby/optional/capi/ext/encoding_spec.c123
-rw-r--r--spec/ruby/optional/capi/ext/exception_spec.c8
-rw-r--r--spec/ruby/optional/capi/ext/float_spec.c9
-rw-r--r--spec/ruby/optional/capi/ext/gc_spec.c17
-rw-r--r--spec/ruby/optional/capi/ext/globals_spec.c13
-rw-r--r--spec/ruby/optional/capi/ext/hash_spec.c17
-rw-r--r--spec/ruby/optional/capi/ext/integer_spec.c9
-rw-r--r--spec/ruby/optional/capi/ext/io_spec.c22
-rw-r--r--spec/ruby/optional/capi/ext/kernel_spec.c31
-rw-r--r--spec/ruby/optional/capi/ext/language_spec.c42
-rw-r--r--spec/ruby/optional/capi/ext/module_under_autoload_spec.c8
-rw-r--r--spec/ruby/optional/capi/ext/numeric_spec.c7
-rw-r--r--spec/ruby/optional/capi/ext/object_spec.c45
-rw-r--r--spec/ruby/optional/capi/ext/proc_spec.c5
-rw-r--r--spec/ruby/optional/capi/ext/rbasic_spec.c94
-rw-r--r--spec/ruby/optional/capi/ext/regexp_spec.c14
-rw-r--r--spec/ruby/optional/capi/ext/rubyspec.h35
-rw-r--r--spec/ruby/optional/capi/ext/string_spec.c77
-rw-r--r--spec/ruby/optional/capi/ext/struct_spec.c4
-rw-r--r--spec/ruby/optional/capi/ext/symbol_spec.c15
-rw-r--r--spec/ruby/optional/capi/ext/thread_spec.c6
-rw-r--r--spec/ruby/optional/capi/ext/tracepoint_spec.c49
-rw-r--r--spec/ruby/optional/capi/ext/typed_data_spec.c66
-rw-r--r--spec/ruby/optional/capi/ext/util_spec.c19
-rw-r--r--spec/ruby/optional/capi/float_spec.rb13
-rw-r--r--spec/ruby/optional/capi/gc_spec.rb26
-rw-r--r--spec/ruby/optional/capi/globals_spec.rb29
-rw-r--r--spec/ruby/optional/capi/hash_spec.rb17
-rw-r--r--spec/ruby/optional/capi/integer_spec.rb15
-rw-r--r--spec/ruby/optional/capi/io_spec.rb10
-rw-r--r--spec/ruby/optional/capi/kernel_spec.rb125
-rw-r--r--spec/ruby/optional/capi/language_spec.rb37
-rw-r--r--spec/ruby/optional/capi/module_spec.rb14
-rw-r--r--spec/ruby/optional/capi/numeric_spec.rb51
-rw-r--r--spec/ruby/optional/capi/object_spec.rb106
-rw-r--r--spec/ruby/optional/capi/proc_spec.rb19
-rw-r--r--spec/ruby/optional/capi/rbasic_spec.rb22
-rw-r--r--spec/ruby/optional/capi/regexp_spec.rb14
-rw-r--r--spec/ruby/optional/capi/shared/rbasic.rb83
-rw-r--r--spec/ruby/optional/capi/spec_helper.rb38
-rw-r--r--spec/ruby/optional/capi/string_spec.rb95
-rw-r--r--spec/ruby/optional/capi/struct_spec.rb6
-rw-r--r--spec/ruby/optional/capi/symbol_spec.rb39
-rw-r--r--spec/ruby/optional/capi/thread_spec.rb28
-rw-r--r--spec/ruby/optional/capi/time_spec.rb84
-rw-r--r--spec/ruby/optional/capi/tracepoint_spec.rb56
-rw-r--r--spec/ruby/optional/capi/typed_data_spec.rb17
-rw-r--r--spec/ruby/optional/capi/util_spec.rb113
-rw-r--r--spec/ruby/security/cve_2014_8080_spec.rb51
-rw-r--r--spec/ruby/security/cve_2018_8780_spec.rb20
-rw-r--r--spec/ruby/security/cve_2020_10663_spec.rb41
-rw-r--r--spec/ruby/shared/enumerable/minmax.rb24
-rw-r--r--spec/ruby/shared/enumerator/enum_for.rb7
-rw-r--r--spec/ruby/shared/fiber/resume.rb21
-rw-r--r--spec/ruby/shared/file/executable.rb2
-rw-r--r--spec/ruby/shared/file/identical.rb6
-rw-r--r--spec/ruby/shared/file/readable.rb5
-rw-r--r--spec/ruby/shared/file/world_readable.rb12
-rw-r--r--spec/ruby/shared/file/world_writable.rb12
-rw-r--r--spec/ruby/shared/file/writable.rb2
-rw-r--r--spec/ruby/shared/hash/key_error.rb28
-rw-r--r--spec/ruby/shared/io/putc.rb2
-rw-r--r--spec/ruby/shared/kernel/object_id.rb8
-rw-r--r--spec/ruby/shared/kernel/raise.rb68
-rw-r--r--spec/ruby/shared/process/exit.rb20
-rw-r--r--spec/ruby/shared/rational/arithmetic_exception_in_coerce.rb32
-rw-r--r--spec/ruby/shared/rational/coerce.rb5
-rw-r--r--spec/ruby/shared/rational/comparison.rb30
-rw-r--r--spec/ruby/shared/rational/exponent.rb2
-rw-r--r--spec/ruby/shared/string/end_with.rb54
-rw-r--r--spec/ruby/shared/string/start_with.rb72
-rw-r--r--spec/ruby/shared/string/times.rb28
-rw-r--r--sprintf.c26
-rw-r--r--st.c264
-rw-r--r--strftime.c21
-rw-r--r--string.c1623
-rw-r--r--struct.c107
-rw-r--r--symbol.c511
-rw-r--r--symbol.h8
-rw-r--r--template/Doxyfile.tmpl45
-rw-r--r--template/GNUmakefile.in2
-rw-r--r--template/Makefile.in134
-rw-r--r--template/builtin_binary.inc.tmpl30
-rw-r--r--template/call_iseq_optimized.inc.tmpl68
-rw-r--r--template/configure-ext.mk.tmpl5
-rw-r--r--template/encdb.h.tmpl8
-rw-r--r--template/exts.mk.tmpl16
-rw-r--r--template/id.c.tmpl2
-rw-r--r--template/prelude.c.tmpl39
-rwxr-xr-xtemplate/ruby-gdb.in6
-rwxr-xr-xtemplate/ruby-lldb.in6
-rw-r--r--template/transdb.h.tmpl4
-rw-r--r--test/-ext-/bug_reporter/test_bug_reporter.rb4
-rw-r--r--test/-ext-/debug/test_profile_frames.rb50
-rw-r--r--test/-ext-/funcall/test_passing_block.rb23
-rw-r--r--test/-ext-/rational/test_rat.rb38
-rw-r--r--test/-ext-/string/test_cstr.rb8
-rw-r--r--test/-ext-/string/test_ellipsize.rb2
-rw-r--r--test/-ext-/string/test_fstring.rb16
-rw-r--r--test/-ext-/string/test_interned_str.rb12
-rw-r--r--test/-ext-/string/test_normalize.rb8
-rw-r--r--test/-ext-/symbol/test_inadvertent_creation.rb8
-rw-r--r--test/-ext-/test_notimplement.rb7
-rw-r--r--test/-ext-/test_random.rb27
-rw-r--r--test/-ext-/test_scan_args.rb121
-rw-r--r--test/-ext-/tracepoint/test_tracepoint.rb18
-rw-r--r--test/bigdecimal/test_bigdecimal.rb195
-rw-r--r--test/bigdecimal/test_bigdecimal_util.rb32
-rw-r--r--test/bigdecimal/test_ractor.rb23
-rw-r--r--test/cgi/test_cgi_core.rb4
-rw-r--r--test/coverage/test_coverage.rb20
-rw-r--r--test/csv/helper.rb24
-rw-r--r--test/csv/interface/test_read.rb62
-rw-r--r--test/csv/interface/test_read_write.rb67
-rw-r--r--test/csv/parse/test_general.rb6
-rw-r--r--test/csv/parse/test_skip_lines.rb13
-rw-r--r--test/csv/parse/test_strip.rb5
-rw-r--r--test/csv/test_encodings.rb22
-rw-r--r--test/csv/test_row.rb3
-rw-r--r--test/csv/test_table.rb2
-rw-r--r--test/csv/write/test_converters.rb8
-rw-r--r--test/csv/write/test_force_quotes.rb78
-rw-r--r--test/csv/write/test_general.rb16
-rw-r--r--test/date/test_date_marshal.rb7
-rw-r--r--test/date/test_date_ractor.rb27
-rw-r--r--test/did_you_mean/fixtures/book.rb2
-rw-r--r--test/did_you_mean/spell_checking/test_class_name_check.rb4
-rw-r--r--test/did_you_mean/spell_checking/test_method_name_check.rb7
-rw-r--r--test/did_you_mean/spell_checking/test_require_path_check.rb32
-rw-r--r--test/did_you_mean/test_tree_spell_checker.rb203
-rw-r--r--test/did_you_mean/test_verbose_formatter.rb2
-rw-r--r--test/did_you_mean/tree_spell/human_typo.rb34
-rw-r--r--test/digest/test_digest.rb8
-rw-r--r--test/digest/test_ractor.rb101
-rw-r--r--test/drb/drbtest.rb2
-rw-r--r--test/drb/test_drb.rb20
-rw-r--r--test/drb/test_drbssl.rb3
-rw-r--r--test/drb/ut_drb.rb14
-rw-r--r--test/erb/test_erb_command.rb8
-rw-r--r--test/etc/test_etc.rb27
-rw-r--r--test/fiber/http.rb53
-rw-r--r--test/fiber/scheduler.rb190
-rw-r--r--test/fiber/test_backtrace.rb22
-rw-r--r--test/fiber/test_enumerator.rb51
-rw-r--r--test/fiber/test_io.rb100
-rw-r--r--test/fiber/test_mutex.rb220
-rw-r--r--test/fiber/test_process.rb36
-rw-r--r--test/fiber/test_ractor.rb23
-rw-r--r--test/fiber/test_scheduler.rb76
-rw-r--r--test/fiber/test_sleep.rb46
-rw-r--r--test/fiddle/helper.rb44
-rw-r--r--test/fiddle/test_c_struct_entry.rb130
-rw-r--r--test/fiddle/test_c_union_entity.rb15
-rw-r--r--test/fiddle/test_cparser.rb113
-rw-r--r--test/fiddle/test_func.rb55
-rw-r--r--test/fiddle/test_function.rb32
-rw-r--r--test/fiddle/test_import.rb372
-rw-r--r--test/fiddle/test_memory_view.rb115
-rw-r--r--test/fiddle/test_pinned.rb27
-rw-r--r--test/fiddle/test_pointer.rb95
-rw-r--r--test/fileutils/test_fileutils.rb55
-rw-r--r--test/fixtures/fake_sorted_set_gem/sorted_set.rb9
-rw-r--r--test/gdbm/test_gdbm.rb2
-rw-r--r--test/io/console/test_io_console.rb46
-rw-r--r--test/io/wait/test_io_wait_uncommon.rb1
-rw-r--r--test/io/wait/test_ractor.rb22
-rw-r--r--test/irb/test_cmd.rb429
-rw-r--r--test/irb/test_color.rb31
-rw-r--r--test/irb/test_color_printer.rb68
-rw-r--r--test/irb/test_completion.rb58
-rw-r--r--test/irb/test_context.rb387
-rw-r--r--test/irb/test_history.rb211
-rw-r--r--test/irb/test_init.rb10
-rw-r--r--test/irb/test_raise_no_backtrace_exception.rb9
-rw-r--r--test/irb/test_ruby_lex.rb586
-rw-r--r--test/irb/test_workspace.rb7
-rw-r--r--test/irb/yamatanooroti/test_rendering.rb165
-rw-r--r--test/json/fixtures/fail29.json1
-rw-r--r--test/json/fixtures/fail30.json1
-rw-r--r--test/json/fixtures/fail31.json1
-rw-r--r--test/json/fixtures/fail32.json1
-rw-r--r--test/json/json_addition_test.rb4
-rw-r--r--test/json/json_common_interface_test.rb43
-rw-r--r--test/json/json_fixtures_test.rb10
-rw-r--r--test/json/json_generator_test.rb54
-rw-r--r--test/json/json_parser_test.rb25
-rw-r--r--test/json/ractor_test.rb30
-rw-r--r--test/json/test_helper.rb6
-rw-r--r--test/lib/jit_support.rb31
-rw-r--r--test/logger/test_logdevice.rb2
-rw-r--r--test/logger/test_logger.rb12
-rw-r--r--test/matrix/test_matrix.rb37
-rw-r--r--test/misc/test_ruby_mode.rb183
-rw-r--r--test/mkmf/test_install.rb30
-rw-r--r--test/mkmf/test_mkmf.rb15
-rw-r--r--test/monitor/test_monitor.rb23
-rw-r--r--test/net/ftp/test_ftp.rb235
-rw-r--r--test/net/http/test_http.rb23
-rw-r--r--test/net/http/test_httpresponse.rb2
-rw-r--r--test/net/http/test_https.rb57
-rw-r--r--test/net/http/utils.rb6
-rw-r--r--test/net/imap/test_imap.rb101
-rw-r--r--test/net/smtp/test_smtp.rb104
-rw-r--r--test/net/smtp/test_ssl_socket.rb4
-rw-r--r--test/net/smtp/test_sslcontext.rb129
-rw-r--r--test/net/smtp/test_starttls.rb122
-rw-r--r--test/objspace/test_objspace.rb100
-rw-r--r--test/open-uri/test_open-uri.rb12
-rw-r--r--test/openssl/test_asn1.rb44
-rw-r--r--test/openssl/test_bn.rb10
-rw-r--r--test/openssl/test_buffering.rb11
-rw-r--r--test/openssl/test_cipher.rb27
-rw-r--r--test/openssl/test_config.rb178
-rw-r--r--test/openssl/test_digest.rb64
-rw-r--r--test/openssl/test_engine.rb4
-rw-r--r--test/openssl/test_fips.rb2
-rw-r--r--test/openssl/test_hmac.rb12
-rw-r--r--test/openssl/test_kdf.rb2
-rw-r--r--test/openssl/test_ns_spki.rb6
-rw-r--r--test/openssl/test_ocsp.rb35
-rw-r--r--test/openssl/test_ossl.rb65
-rw-r--r--test/openssl/test_pair.rb28
-rw-r--r--test/openssl/test_pkcs12.rb2
-rw-r--r--test/openssl/test_pkcs7.rb24
-rw-r--r--test/openssl/test_pkey.rb28
-rw-r--r--test/openssl/test_pkey_dh.rb9
-rw-r--r--test/openssl/test_pkey_dsa.rb15
-rw-r--r--test/openssl/test_pkey_ec.rb30
-rw-r--r--test/openssl/test_pkey_rsa.rb157
-rw-r--r--test/openssl/test_random.rb2
-rw-r--r--test/openssl/test_ssl.rb180
-rw-r--r--test/openssl/test_ssl_session.rb2
-rw-r--r--test/openssl/test_ts.rb662
-rw-r--r--test/openssl/test_x509attr.rb12
-rw-r--r--test/openssl/test_x509cert.rb95
-rw-r--r--test/openssl/test_x509crl.rb45
-rw-r--r--test/openssl/test_x509ext.rb15
-rw-r--r--test/openssl/test_x509name.rb36
-rw-r--r--test/openssl/test_x509req.rb33
-rw-r--r--test/openssl/test_x509store.rb18
-rw-r--r--test/openssl/ut_eof.rb10
-rw-r--r--test/openssl/utils.rb92
-rw-r--r--test/ostruct/test_ostruct.rb124
-rw-r--r--test/pathname/test_pathname.rb80
-rw-r--r--test/pathname/test_ractor.rb22
-rw-r--r--test/psych/test_exception.rb15
-rw-r--r--test/psych/test_merge_keys.rb10
-rw-r--r--test/psych/test_nil.rb4
-rw-r--r--test/psych/test_psych.rb79
-rw-r--r--test/psych/test_ractor.rb50
-rw-r--r--test/psych/test_scalar_scanner.rb3
-rw-r--r--test/psych/test_yaml.rb25
-rw-r--r--test/psych/visitors/test_to_ruby.rb1
-rw-r--r--test/racc/assets/ifelse.y14
-rw-r--r--test/racc/helper.rb6
-rw-r--r--test/racc/regress/cadenza190
-rw-r--r--test/racc/regress/cast927
-rw-r--r--test/racc/regress/csspool396
-rw-r--r--test/racc/regress/edtf446
-rw-r--r--test/racc/regress/huia288
-rw-r--r--test/racc/regress/journey2
-rw-r--r--test/racc/regress/liquor218
-rw-r--r--test/racc/regress/machete48
-rw-r--r--test/racc/regress/mediacloth454
-rw-r--r--test/racc/regress/mof186
-rw-r--r--test/racc/regress/namae70
-rw-r--r--test/racc/regress/nasl620
-rw-r--r--test/racc/regress/nokogiri-css124
-rw-r--r--test/racc/regress/opal3522
-rw-r--r--test/racc/regress/php_serialization36
-rw-r--r--test/racc/regress/riml1166
-rw-r--r--test/racc/regress/ruby182277
-rw-r--r--test/racc/regress/ruby223582
-rw-r--r--test/racc/regress/tp_plus430
-rw-r--r--test/racc/regress/twowaysql42
-rw-r--r--test/racc/test_racc_command.rb17
-rw-r--r--test/rdoc/support/test_case.rb12
-rw-r--r--test/rdoc/test_rdoc_context_section.rb8
-rw-r--r--test/rdoc/test_rdoc_markdown.rb61
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb25
-rw-r--r--test/rdoc/test_rdoc_markup_to_html.rb32
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_crossref.rb21
-rw-r--r--test/rdoc/test_rdoc_markup_to_markdown.rb4
-rw-r--r--test/rdoc/test_rdoc_parser_changelog.rb169
-rw-r--r--test/rdoc/test_rdoc_rdoc.rb50
-rw-r--r--test/rdoc/test_rdoc_ri_driver.rb28
-rw-r--r--test/rdoc/test_rdoc_ri_paths.rb10
-rw-r--r--test/rdoc/test_rdoc_rubygems_hook.rb4
-rw-r--r--test/rdoc/test_rdoc_servlet.rb8
-rw-r--r--test/rdoc/test_rdoc_store.rb15
-rw-r--r--test/rdoc/test_rdoc_top_level.rb3
-rw-r--r--test/readline/helper.rb20
-rw-r--r--test/readline/test_readline.rb246
-rw-r--r--test/readline/test_readline_history.rb11
-rw-r--r--test/reline/helper.rb23
-rw-r--r--test/reline/test_config.rb127
-rw-r--r--test/reline/test_history.rb30
-rw-r--r--test/reline/test_key_actor_emacs.rb460
-rw-r--r--test/reline/test_key_actor_vi.rb364
-rw-r--r--test/reline/test_key_stroke.rb19
-rw-r--r--test/reline/test_kill_ring.rb12
-rw-r--r--test/reline/test_macro.rb3
-rw-r--r--test/reline/test_reline.rb69
-rw-r--r--test/reline/test_string_processing.rb58
-rw-r--r--test/reline/test_unicode.rb16
-rw-r--r--test/reline/test_within_pipe.rb28
-rwxr-xr-xtest/reline/yamatanooroti/multiline_repl74
-rw-r--r--test/reline/yamatanooroti/termination_checker.rb30
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb742
-rw-r--r--test/resolv/test_addr.rb22
-rw-r--r--test/resolv/test_dns.rb130
-rw-r--r--test/rexml/data/LostineRiver.kml.gzbin0 -> 50154 bytes-rw-r--r--test/rexml/data/ProductionSupport.xml29
-rw-r--r--test/rexml/data/axis.xml25
-rw-r--r--test/rexml/data/bad.xml5
-rw-r--r--test/rexml/data/basic.xml11
-rw-r--r--test/rexml/data/basicupdate.xml47
-rw-r--r--test/rexml/data/broken.rss20
-rw-r--r--test/rexml/data/contents.xml70
-rw-r--r--test/rexml/data/dash.xml12
-rw-r--r--test/rexml/data/defaultNamespace.xml6
-rw-r--r--test/rexml/data/doctype_test.xml34
-rw-r--r--test/rexml/data/documentation.xml542
-rw-r--r--test/rexml/data/euc.xml296
-rw-r--r--test/rexml/data/evaluate.xml28
-rw-r--r--test/rexml/data/fibo.xml29
-rw-r--r--test/rexml/data/foo.xml10
-rw-r--r--test/rexml/data/google.2.xml156
-rw-r--r--test/rexml/data/id.xml21
-rw-r--r--test/rexml/data/iso8859-1.xml4
-rw-r--r--test/rexml/data/jaxen24.xml2
-rw-r--r--test/rexml/data/jaxen3.xml15
-rw-r--r--test/rexml/data/lang.xml11
-rw-r--r--test/rexml/data/lang0.xml18
-rw-r--r--test/rexml/data/message.xml27
-rw-r--r--test/rexml/data/moreover.xml244
-rw-r--r--test/rexml/data/much_ado.xml6850
-rw-r--r--test/rexml/data/namespaces.xml18
-rw-r--r--test/rexml/data/nitf.xml67
-rw-r--r--test/rexml/data/numbers.xml18
-rw-r--r--test/rexml/data/ofbiz-issues-full-177.xml13971
-rw-r--r--test/rexml/data/pi.xml13
-rw-r--r--test/rexml/data/pi2.xml6
-rw-r--r--test/rexml/data/project.xml1
-rw-r--r--test/rexml/data/simple.xml2
-rw-r--r--test/rexml/data/stream_accents.xml4
-rw-r--r--test/rexml/data/t63-1.xmlbin0 -> 161690 bytes-rw-r--r--test/rexml/data/t63-2.svg2828
-rw-r--r--test/rexml/data/t75.xml31
-rw-r--r--test/rexml/data/test/tests.xml683
-rw-r--r--test/rexml/data/test/tests.xsl369
-rw-r--r--test/rexml/data/testNamespaces.xml22
-rw-r--r--test/rexml/data/testsrc.xml64
-rw-r--r--test/rexml/data/text.xml10
-rw-r--r--test/rexml/data/ticket_61.xml4
-rw-r--r--test/rexml/data/ticket_68.xml590
-rw-r--r--test/rexml/data/tutorial.xml678
-rw-r--r--test/rexml/data/underscore.xml6
-rw-r--r--test/rexml/data/utf16.xmlbin0 -> 207464 bytes-rw-r--r--test/rexml/data/web.xml42
-rw-r--r--test/rexml/data/web2.xml7
-rw-r--r--test/rexml/data/working.rss202
-rw-r--r--test/rexml/data/xmlfile-bug.xml15
-rw-r--r--test/rexml/data/xp.tst27
-rw-r--r--test/rexml/data/yahoo.xml80
-rw-r--r--test/rexml/formatter/test_default.rb19
-rw-r--r--test/rexml/functions/test_base.rb261
-rw-r--r--test/rexml/functions/test_boolean.rb75
-rw-r--r--test/rexml/functions/test_local_name.rb44
-rw-r--r--test/rexml/functions/test_number.rb38
-rw-r--r--test/rexml/listener.rb51
-rw-r--r--test/rexml/parse/test_document_type_declaration.rb50
-rw-r--r--test/rexml/parse/test_element.rb51
-rw-r--r--test/rexml/parse/test_notation_declaration.rb100
-rw-r--r--test/rexml/parse/test_processing_instruction.rb25
-rw-r--r--test/rexml/parser/test_sax2.rb203
-rw-r--r--test/rexml/parser/test_stream.rb32
-rw-r--r--test/rexml/parser/test_tree.rb43
-rw-r--r--test/rexml/parser/test_ultra_light.rb70
-rw-r--r--test/rexml/rexml_test_utils.rb10
-rw-r--r--test/rexml/test_attribute.rb14
-rw-r--r--test/rexml/test_attributes.rb223
-rw-r--r--test/rexml/test_attributes_mixin.rb32
-rw-r--r--test/rexml/test_changing_encoding.rb45
-rw-r--r--test/rexml/test_comment.rb26
-rw-r--r--test/rexml/test_contrib.rb585
-rw-r--r--test/rexml/test_core.rb1517
-rw-r--r--test/rexml/test_doctype.rb157
-rw-r--r--test/rexml/test_document.rb416
-rw-r--r--test/rexml/test_element.rb18
-rw-r--r--test/rexml/test_elements.rb119
-rw-r--r--test/rexml/test_encoding.rb108
-rw-r--r--test/rexml/test_entity.rb206
-rw-r--r--test/rexml/test_instruction.rb14
-rw-r--r--test/rexml/test_jaxen.rb131
-rw-r--r--test/rexml/test_light.rb107
-rw-r--r--test/rexml/test_lightparser.rb16
-rw-r--r--test/rexml/test_listener.rb131
-rw-r--r--test/rexml/test_martin_fowler.rb40
-rw-r--r--test/rexml/test_namespace.rb41
-rw-r--r--test/rexml/test_order.rb110
-rw-r--r--test/rexml/test_preceding_sibling.rb41
-rw-r--r--test/rexml/test_pullparser.rb103
-rw-r--r--test/rexml/test_rexml_issuezilla.rb19
-rw-r--r--test/rexml/test_sax.rb287
-rw-r--r--test/rexml/test_stream.rb130
-rw-r--r--test/rexml/test_text.rb75
-rw-r--r--test/rexml/test_ticket_80.rb59
-rw-r--r--test/rexml/test_validation_rng.rb793
-rw-r--r--test/rexml/test_xml_declaration.rb48
-rw-r--r--test/rexml/xpath/test_attribute.rb38
-rw-r--r--test/rexml/xpath/test_axis_preceding_sibling.rb40
-rw-r--r--test/rexml/xpath/test_base.rb1125
-rw-r--r--test/rexml/xpath/test_compare.rb256
-rw-r--r--test/rexml/xpath/test_node.rb43
-rw-r--r--test/rexml/xpath/test_predicate.rb83
-rw-r--r--test/rexml/xpath/test_text.rb77
-rw-r--r--test/rinda/test_rinda.rb16
-rw-r--r--test/ripper/dummyparser.rb6
-rw-r--r--test/ripper/test_lexer.rb89
-rw-r--r--test/ripper/test_parser_events.rb113
-rw-r--r--test/ripper/test_sexp.rb42
-rw-r--r--test/rss/dot.pngbin0 -> 111 bytes-rw-r--r--test/rss/rss-assertions.rb2120
-rw-r--r--test/rss/rss-testcase.rb479
-rw-r--r--test/rss/test_1.0.rb308
-rw-r--r--test/rss/test_2.0.rb412
-rw-r--r--test/rss/test_accessor.rb104
-rw-r--r--test/rss/test_atom.rb684
-rw-r--r--test/rss/test_content.rb105
-rw-r--r--test/rss/test_dublincore.rb270
-rw-r--r--test/rss/test_image.rb215
-rw-r--r--test/rss/test_inherit.rb41
-rw-r--r--test/rss/test_itunes.rb356
-rw-r--r--test/rss/test_maker_0.9.rb477
-rw-r--r--test/rss/test_maker_1.0.rb519
-rw-r--r--test/rss/test_maker_2.0.rb758
-rw-r--r--test/rss/test_maker_atom_entry.rb394
-rw-r--r--test/rss/test_maker_atom_feed.rb455
-rw-r--r--test/rss/test_maker_content.rb48
-rw-r--r--test/rss/test_maker_dc.rb150
-rw-r--r--test/rss/test_maker_image.rb63
-rw-r--r--test/rss/test_maker_itunes.rb487
-rw-r--r--test/rss/test_maker_slash.rb38
-rw-r--r--test/rss/test_maker_sy.rb45
-rw-r--r--test/rss/test_maker_taxo.rb82
-rw-r--r--test/rss/test_maker_trackback.rb42
-rw-r--r--test/rss/test_maker_xml-stylesheet.rb84
-rw-r--r--test/rss/test_parser.rb121
-rw-r--r--test/rss/test_parser_1.0.rb529
-rw-r--r--test/rss/test_parser_2.0.rb123
-rw-r--r--test/rss/test_parser_atom_entry.rb164
-rw-r--r--test/rss/test_parser_atom_feed.rb277
-rw-r--r--test/rss/test_setup_maker_0.9.rb247
-rw-r--r--test/rss/test_setup_maker_1.0.rb551
-rw-r--r--test/rss/test_setup_maker_2.0.rb309
-rw-r--r--test/rss/test_setup_maker_atom_entry.rb410
-rw-r--r--test/rss/test_setup_maker_atom_feed.rb446
-rw-r--r--test/rss/test_setup_maker_itunes.rb144
-rw-r--r--test/rss/test_setup_maker_slash.rb39
-rw-r--r--test/rss/test_slash.rb65
-rw-r--r--test/rss/test_syndication.rb126
-rw-r--r--test/rss/test_taxonomy.rb173
-rw-r--r--test/rss/test_to_s.rb701
-rw-r--r--test/rss/test_trackback.rb136
-rw-r--r--test/rss/test_xml-stylesheet.rb109
-rw-r--r--test/ruby/enc/test_regex_casefold.rb2
-rw-r--r--test/ruby/test_alias.rb26
-rw-r--r--test/ruby/test_argf.rb63
-rw-r--r--test/ruby/test_arithmetic_sequence.rb18
-rw-r--r--test/ruby/test_array.rb335
-rw-r--r--test/ruby/test_ast.rb35
-rw-r--r--test/ruby/test_autoload.rb24
-rw-r--r--test/ruby/test_backtrace.rb28
-rw-r--r--test/ruby/test_basicinstructions.rb5
-rw-r--r--test/ruby/test_bignum.rb51
-rw-r--r--test/ruby/test_call.rb9
-rw-r--r--test/ruby/test_class.rb49
-rw-r--r--test/ruby/test_complex.rb5
-rw-r--r--test/ruby/test_const.rb28
-rw-r--r--test/ruby/test_defined.rb112
-rw-r--r--test/ruby/test_dir.rb211
-rw-r--r--test/ruby/test_dir_m17n.rb53
-rw-r--r--test/ruby/test_econv.rb19
-rw-r--r--test/ruby/test_encoding.rb31
-rw-r--r--test/ruby/test_enum.rb107
-rw-r--r--test/ruby/test_enumerator.rb9
-rw-r--r--test/ruby/test_env.rb39
-rw-r--r--test/ruby/test_eval.rb13
-rw-r--r--test/ruby/test_exception.rb383
-rw-r--r--test/ruby/test_fiber.rb159
-rw-r--r--test/ruby/test_file_exhaustive.rb9
-rw-r--r--test/ruby/test_fixnum.rb1
-rw-r--r--test/ruby/test_float.rb7
-rw-r--r--test/ruby/test_frozen_error.rb57
-rw-r--r--test/ruby/test_gc.rb47
-rw-r--r--test/ruby/test_gc_compact.rb92
-rw-r--r--test/ruby/test_hash.rb220
-rw-r--r--test/ruby/test_inlinecache.rb110
-rw-r--r--test/ruby/test_integer.rb1
-rw-r--r--test/ruby/test_io.rb141
-rw-r--r--test/ruby/test_io_m17n.rb12
-rw-r--r--test/ruby/test_iseq.rb54
-rw-r--r--test/ruby/test_iterator.rb3
-rw-r--r--test/ruby/test_jit.rb232
-rw-r--r--test/ruby/test_jit_debug.rb17
-rw-r--r--test/ruby/test_keyword.rb2169
-rw-r--r--test/ruby/test_lambda.rb6
-rw-r--r--test/ruby/test_lazy_enumerator.rb8
-rw-r--r--test/ruby/test_literal.rb4
-rw-r--r--test/ruby/test_m17n.rb11
-rw-r--r--test/ruby/test_m17n_comb.rb10
-rw-r--r--test/ruby/test_marshal.rb82
-rw-r--r--test/ruby/test_memory_view.rb341
-rw-r--r--test/ruby/test_method.rb165
-rw-r--r--test/ruby/test_method_cache.rb65
-rw-r--r--test/ruby/test_module.rb604
-rw-r--r--test/ruby/test_name_error.rb156
-rw-r--r--test/ruby/test_nomethod_error.rb109
-rw-r--r--test/ruby/test_notimp.rb85
-rw-r--r--test/ruby/test_numeric.rb67
-rw-r--r--test/ruby/test_object.rb52
-rw-r--r--test/ruby/test_objectspace.rb10
-rw-r--r--test/ruby/test_optimization.rb8
-rw-r--r--test/ruby/test_parse.rb159
-rw-r--r--test/ruby/test_pattern_matching.rb211
-rw-r--r--test/ruby/test_primitive.rb78
-rw-r--r--test/ruby/test_proc.rb318
-rw-r--r--test/ruby/test_process.rb88
-rw-r--r--test/ruby/test_rand.rb353
-rw-r--r--test/ruby/test_range.rb20
-rw-r--r--test/ruby/test_rational.rb34
-rw-r--r--test/ruby/test_refinement.rb181
-rw-r--r--test/ruby/test_regexp.rb113
-rw-r--r--test/ruby/test_require.rb27
-rw-r--r--test/ruby/test_rubyoptions.rb61
-rw-r--r--test/ruby/test_rubyvm.rb4
-rw-r--r--test/ruby/test_settracefunc.rb111
-rw-r--r--test/ruby/test_stack.rb82
-rw-r--r--test/ruby/test_string.rb189
-rw-r--r--test/ruby/test_struct.rb34
-rw-r--r--test/ruby/test_super.rb77
-rw-r--r--test/ruby/test_symbol.rb39
-rw-r--r--test/ruby/test_syntax.rb248
-rw-r--r--test/ruby/test_thread.rb28
-rw-r--r--test/ruby/test_thread_queue.rb7
-rw-r--r--test/ruby/test_time.rb42
-rw-r--r--test/ruby/test_time_tz.rb29
-rw-r--r--test/ruby/test_transcode.rb36
-rw-r--r--test/ruby/test_variable.rb16
-rw-r--r--test/ruby/test_vm_dump.rb2
-rw-r--r--test/rubygems/data/null-required-ruby-version.gemspec.rzbin403 -> 0 bytes-rw-r--r--test/rubygems/data/null-required-rubygems-version.gemspec.rzbin421 -> 0 bytes-rw-r--r--test/rubygems/packages/ascii_binder-0.1.10.1.gembin244736 -> 0 bytes-rw-r--r--test/rubygems/packages/ill-formatted-platform-1.0.0.10.gembin10240 -> 0 bytes-rw-r--r--test/rubygems/plugin/load/rubygems_plugin.rb2
-rw-r--r--test/rubygems/rubygems/commands/crash_command.rb2
-rw-r--r--test/rubygems/rubygems_plugin.rb2
-rw-r--r--test/rubygems/specifications/bar-0.0.2.gemspec2
-rw-r--r--test/rubygems/specifications/rubyforge-0.0.1.gemspec12
-rw-r--r--test/rubygems/test_bundled_ca.rb87
-rw-r--r--test/rubygems/test_config.rb2
-rw-r--r--test/rubygems/test_deprecate.rb93
-rw-r--r--test/rubygems/test_gem.rb403
-rw-r--r--test/rubygems/test_gem_available_set.rb8
-rw-r--r--test/rubygems/test_gem_bundler_version_finder.rb26
-rw-r--r--test/rubygems/test_gem_command.rb45
-rw-r--r--test/rubygems/test_gem_command_manager.rb51
-rw-r--r--test/rubygems/test_gem_commands_build_command.rb277
-rw-r--r--test/rubygems/test_gem_commands_cert_command.rb82
-rw-r--r--test/rubygems/test_gem_commands_check_command.rb12
-rw-r--r--test/rubygems/test_gem_commands_cleanup_command.rb67
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb73
-rw-r--r--test/rubygems/test_gem_commands_dependency_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb46
-rw-r--r--test/rubygems/test_gem_commands_fetch_command.rb20
-rw-r--r--test/rubygems/test_gem_commands_generate_index_command.rb8
-rw-r--r--test/rubygems/test_gem_commands_help_command.rb28
-rw-r--r--test/rubygems/test_gem_commands_info_command.rb14
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb305
-rw-r--r--test/rubygems/test_gem_commands_list_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_lock_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_mirror.rb4
-rw-r--r--test/rubygems/test_gem_commands_open_command.rb25
-rw-r--r--test/rubygems/test_gem_commands_outdated_command.rb18
-rw-r--r--test/rubygems/test_gem_commands_owner_command.rb70
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb83
-rw-r--r--test/rubygems/test_gem_commands_push_command.rb103
-rw-r--r--test/rubygems/test_gem_commands_query_command.rb38
-rw-r--r--test/rubygems/test_gem_commands_search_command.rb2
-rw-r--r--test/rubygems/test_gem_commands_server_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb311
-rw-r--r--test/rubygems/test_gem_commands_signin_command.rb59
-rw-r--r--test/rubygems/test_gem_commands_signout_command.rb7
-rw-r--r--test/rubygems/test_gem_commands_sources_command.rb110
-rw-r--r--test/rubygems/test_gem_commands_specification_command.rb78
-rw-r--r--test/rubygems/test_gem_commands_stale_command.rb2
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb13
-rw-r--r--test/rubygems/test_gem_commands_unpack_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb160
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb14
-rw-r--r--test/rubygems/test_gem_commands_yank_command.rb54
-rw-r--r--test/rubygems/test_gem_config_file.rb47
-rw-r--r--test/rubygems/test_gem_dependency.rb18
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb388
-rw-r--r--test/rubygems/test_gem_dependency_list.rb22
-rw-r--r--test/rubygems/test_gem_dependency_resolution_error.rb4
-rw-r--r--test/rubygems/test_gem_doctor.rb86
-rw-r--r--test/rubygems/test_gem_ext_builder.rb137
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb45
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb36
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb65
-rw-r--r--test/rubygems/test_gem_ext_rake_builder.rb67
-rw-r--r--test/rubygems/test_gem_gem_runner.rb45
-rw-r--r--test/rubygems/test_gem_gemcutter_utilities.rb47
-rw-r--r--test/rubygems/test_gem_impossible_dependencies_error.rb2
-rw-r--r--test/rubygems/test_gem_indexer.rb24
-rw-r--r--test/rubygems/test_gem_install_update_options.rb32
-rw-r--r--test/rubygems/test_gem_installer.rb691
-rw-r--r--test/rubygems/test_gem_local_remote_options.rb4
-rw-r--r--test/rubygems/test_gem_name_tuple.rb2
-rw-r--r--test/rubygems/test_gem_package.rb158
-rw-r--r--test/rubygems/test_gem_package_old.rb20
-rw-r--r--test/rubygems/test_gem_package_tar_header.rb29
-rw-r--r--test/rubygems/test_gem_package_tar_reader.rb2
-rw-r--r--test/rubygems/test_gem_package_tar_reader_entry.rb18
-rw-r--r--test/rubygems/test_gem_package_tar_writer.rb51
-rw-r--r--test/rubygems/test_gem_package_task.rb61
-rw-r--r--test/rubygems/test_gem_path_support.rb4
-rw-r--r--test/rubygems/test_gem_platform.rb77
-rw-r--r--test/rubygems/test_gem_rdoc.rb20
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb448
-rw-r--r--test/rubygems/test_gem_request.rb34
-rw-r--r--test/rubygems/test_gem_request_connection_pools.rb6
-rw-r--r--test/rubygems/test_gem_request_set.rb121
-rw-r--r--test/rubygems/test_gem_request_set_gem_dependency_api.rb40
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb16
-rw-r--r--test/rubygems/test_gem_request_set_lockfile_parser.rb26
-rw-r--r--test/rubygems/test_gem_request_set_lockfile_tokenizer.rb246
-rw-r--r--test/rubygems/test_gem_requirement.rb72
-rw-r--r--test/rubygems/test_gem_resolver.rb36
-rw-r--r--test/rubygems/test_gem_resolver_activation_request.rb2
-rw-r--r--test/rubygems/test_gem_resolver_api_set.rb119
-rw-r--r--test/rubygems/test_gem_resolver_api_specification.rb8
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb35
-rw-r--r--test/rubygems/test_gem_resolver_composed_set.rb2
-rw-r--r--test/rubygems/test_gem_resolver_conflict.rb4
-rw-r--r--test/rubygems/test_gem_resolver_dependency_request.rb2
-rw-r--r--test/rubygems/test_gem_resolver_git_set.rb4
-rw-r--r--test/rubygems/test_gem_resolver_git_specification.rb6
-rw-r--r--test/rubygems/test_gem_resolver_index_set.rb6
-rw-r--r--test/rubygems/test_gem_resolver_index_specification.rb4
-rw-r--r--test/rubygems/test_gem_resolver_installed_specification.rb2
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb24
-rw-r--r--test/rubygems/test_gem_resolver_local_specification.rb4
-rw-r--r--test/rubygems/test_gem_resolver_lock_set.rb8
-rw-r--r--test/rubygems/test_gem_resolver_lock_specification.rb2
-rw-r--r--test/rubygems/test_gem_resolver_requirement_list.rb2
-rw-r--r--test/rubygems/test_gem_resolver_specification.rb6
-rw-r--r--test/rubygems/test_gem_resolver_vendor_set.rb8
-rw-r--r--test/rubygems/test_gem_resolver_vendor_specification.rb2
-rw-r--r--test/rubygems/test_gem_security.rb56
-rw-r--r--test/rubygems/test_gem_security_policy.rb73
-rw-r--r--test/rubygems/test_gem_security_signer.rb36
-rw-r--r--test/rubygems/test_gem_security_trust_dir.rb18
-rw-r--r--test/rubygems/test_gem_server.rb28
-rw-r--r--test/rubygems/test_gem_silent_ui.rb20
-rw-r--r--test/rubygems/test_gem_source.rb41
-rw-r--r--test/rubygems/test_gem_source_fetch_problem.rb4
-rw-r--r--test/rubygems/test_gem_source_git.rb47
-rw-r--r--test/rubygems/test_gem_source_installed.rb16
-rw-r--r--test/rubygems/test_gem_source_list.rb3
-rw-r--r--test/rubygems/test_gem_source_local.rb18
-rw-r--r--test/rubygems/test_gem_source_lock.rb22
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb18
-rw-r--r--test/rubygems/test_gem_source_subpath_problem.rb49
-rw-r--r--test/rubygems/test_gem_source_vendor.rb16
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb17
-rw-r--r--test/rubygems/test_gem_specification.rb530
-rw-r--r--test/rubygems/test_gem_stream_ui.rb8
-rw-r--r--test/rubygems/test_gem_stub_specification.rb19
-rw-r--r--test/rubygems/test_gem_text.rb4
-rw-r--r--test/rubygems/test_gem_uninstaller.rb176
-rw-r--r--test/rubygems/test_gem_unsatisfiable_dependency_error.rb2
-rw-r--r--test/rubygems/test_gem_uri_formatter.rb2
-rw-r--r--test/rubygems/test_gem_util.rb34
-rw-r--r--test/rubygems/test_gem_validator.rb4
-rw-r--r--test/rubygems/test_gem_version.rb21
-rw-r--r--test/rubygems/test_gem_version_option.rb4
-rw-r--r--test/rubygems/test_kernel.rb45
-rw-r--r--test/rubygems/test_project_sanity.rb11
-rw-r--r--test/rubygems/test_remote_fetch_error.rb4
-rw-r--r--test/rubygems/test_require.rb357
-rw-r--r--test/sdbm/test_sdbm.rb544
-rw-r--r--test/socket/test_addrinfo.rb7
-rw-r--r--test/socket/test_basicsocket.rb2
-rw-r--r--test/socket/test_socket.rb2
-rw-r--r--test/socket/test_tcp.rb20
-rw-r--r--test/socket/test_unix.rb20
-rw-r--r--test/stringio/test_ractor.rb23
-rw-r--r--test/stringio/test_stringio.rb56
-rw-r--r--test/strscan/test_ractor.rb28
-rw-r--r--test/test_delegate.rb75
-rw-r--r--test/test_extlibs.rb2
-rw-r--r--test/test_mutex_m.rb32
-rw-r--r--test/test_open3.rb11
-rw-r--r--test/test_pp.rb19
-rw-r--r--test/test_prime.rb19
-rw-r--r--test/test_rbconfig.rb9
-rw-r--r--test/test_securerandom.rb2
-rw-r--r--test/test_set.rb149
-rw-r--r--test/test_sorted_set.rb45
-rw-r--r--test/test_syslog.rb7
-rw-r--r--test/test_tmpdir.rb56
-rw-r--r--test/test_win32api.rb27
-rw-r--r--test/uri/test_generic.rb49
-rw-r--r--test/uri/test_ldap.rb4
-rw-r--r--test/uri/test_ws.rb71
-rw-r--r--test/webrick/.htaccess (renamed from tool/test/webrick/.htaccess)0
-rw-r--r--test/webrick/test_cgi.rb170
-rw-r--r--test/webrick/test_config.rb (renamed from tool/test/webrick/test_config.rb)0
-rw-r--r--test/webrick/test_cookie.rb (renamed from tool/test/webrick/test_cookie.rb)0
-rw-r--r--test/webrick/test_do_not_reverse_lookup.rb (renamed from tool/test/webrick/test_do_not_reverse_lookup.rb)0
-rw-r--r--test/webrick/test_filehandler.rb353
-rw-r--r--test/webrick/test_htgroup.rb (renamed from tool/test/webrick/test_htgroup.rb)0
-rw-r--r--test/webrick/test_htmlutils.rb (renamed from tool/test/webrick/test_htmlutils.rb)0
-rw-r--r--test/webrick/test_httpauth.rb (renamed from tool/test/webrick/test_httpauth.rb)0
-rw-r--r--test/webrick/test_httpproxy.rb466
-rw-r--r--test/webrick/test_httprequest.rb476
-rw-r--r--test/webrick/test_httpresponse.rb282
-rw-r--r--test/webrick/test_https.rb (renamed from tool/test/webrick/test_https.rb)0
-rw-r--r--test/webrick/test_httpserver.rb543
-rw-r--r--test/webrick/test_httpstatus.rb (renamed from tool/test/webrick/test_httpstatus.rb)0
-rw-r--r--test/webrick/test_httputils.rb (renamed from tool/test/webrick/test_httputils.rb)0
-rw-r--r--test/webrick/test_httpversion.rb (renamed from tool/test/webrick/test_httpversion.rb)0
-rw-r--r--test/webrick/test_server.rb163
-rw-r--r--test/webrick/test_ssl_server.rb (renamed from tool/test/webrick/test_ssl_server.rb)0
-rw-r--r--test/webrick/test_utils.rb (renamed from tool/test/webrick/test_utils.rb)0
-rw-r--r--test/webrick/utils.rb (renamed from tool/test/webrick/utils.rb)0
-rw-r--r--test/webrick/webrick.cgi (renamed from tool/test/webrick/webrick.cgi)0
-rw-r--r--test/webrick/webrick.rhtml (renamed from tool/test/webrick/webrick.rhtml)0
-rw-r--r--test/webrick/webrick_long_filename.cgi (renamed from tool/test/webrick/webrick_long_filename.cgi)0
-rw-r--r--test/zlib/test_zlib.rb109
-rw-r--r--thread.c1179
-rw-r--r--thread_pthread.c289
-rw-r--r--thread_pthread.h50
-rw-r--r--thread_sync.c457
-rw-r--r--thread_win32.c95
-rw-r--r--thread_win32.h31
-rw-r--r--time.c633
-rw-r--r--timev.h1
-rwxr-xr-xtool/actions-commit-info.sh17
-rw-r--r--tool/bundler/rubocop_gems.rb11
-rw-r--r--tool/bundler/rubocop_gems.rb.lock59
-rw-r--r--tool/bundler/standard_gems.rb11
-rw-r--r--tool/bundler/standard_gems.rb.lock65
-rw-r--r--tool/bundler/test_gems.rb12
-rw-r--r--tool/bundler/test_gems.rb.lock43
-rw-r--r--tool/downloader.rb11
-rwxr-xr-xtool/extlibs.rb82
-rwxr-xr-xtool/fetch-bundled_gems.rb24
-rw-r--r--tool/gem-unpack.rb3
-rwxr-xr-xtool/leaked-globals4
-rw-r--r--tool/lib/colorize.rb12
-rw-r--r--tool/lib/envutil.rb43
-rw-r--r--tool/lib/leakchecker.rb111
-rw-r--r--tool/lib/minitest/benchmark.rb2
-rw-r--r--tool/lib/minitest/unit.rb59
-rw-r--r--tool/lib/test/unit.rb79
-rw-r--r--tool/lib/test/unit/assertions.rb268
-rw-r--r--tool/lib/test/unit/core_assertions.rb365
-rw-r--r--tool/lib/test/unit/parallel.rb37
-rw-r--r--tool/lib/test/unit/testcase.rb4
-rw-r--r--tool/lib/vcs.rb153
-rw-r--r--tool/lib/webrick.rb232
-rw-r--r--tool/lib/webrick/httpauth/authenticator.rb117
-rw-r--r--tool/lib/webrick/httpproxy.rb354
-rw-r--r--tool/lib/webrick/httprequest.rb636
-rw-r--r--tool/lib/webrick/httpservlet/filehandler.rb552
-rw-r--r--tool/lib/webrick/httputils.rb512
-rw-r--r--tool/lib/webrick/server.rb381
-rw-r--r--tool/lib/webrick/ssl.rb215
-rw-r--r--tool/lib/webrick/utils.rb265
-rw-r--r--tool/lib/webrick/version.rb18
-rw-r--r--tool/m4/ruby_check_builtin_setjmp.m48
-rw-r--r--tool/m4/ruby_check_printf_prefix.m49
-rw-r--r--tool/m4/ruby_check_setjmp.m46
-rw-r--r--tool/m4/ruby_check_sysconf.m46
-rw-r--r--tool/m4/ruby_cppoutfile.m44
-rw-r--r--tool/m4/ruby_decl_attribute.m44
-rw-r--r--tool/m4/ruby_dtrace_available.m42
-rw-r--r--tool/m4/ruby_dtrace_postprocess.m42
-rw-r--r--tool/m4/ruby_mingw32.m44
-rw-r--r--tool/m4/ruby_rm_recursive.m44
-rw-r--r--tool/m4/ruby_setjmp_type.m42
-rw-r--r--tool/m4/ruby_stack_grow_direction.m44
-rw-r--r--tool/m4/ruby_try_cflags.m42
-rw-r--r--tool/m4/ruby_try_cxxflags.m417
-rw-r--r--tool/m4/ruby_try_ldflags.m42
-rw-r--r--tool/m4/ruby_universal_arch.m43
-rwxr-xr-xtool/make-snapshot22
-rw-r--r--tool/mjit_tabs.rb65
-rw-r--r--tool/mk_builtin_binary.rb44
-rw-r--r--tool/mk_builtin_loader.rb298
-rw-r--r--tool/mk_call_iseq_optimized.rb74
-rwxr-xr-xtool/mkconfig.rb14
-rwxr-xr-xtool/mkrunnable.rb8
-rwxr-xr-xtool/pure_parser.rb8
-rwxr-xr-xtool/rbinstall.rb228
-rwxr-xr-xtool/rbuninstall.rb18
-rwxr-xr-xtool/redmine-backporter.rb18
-rwxr-xr-xtool/releng/gen-mail.rb50
-rwxr-xr-xtool/releng/gen-release-note.rb36
-rwxr-xr-xtool/releng/update-www-meta.rb213
-rw-r--r--tool/ruby_vm/helpers/c_escape.rb6
-rw-r--r--tool/ruby_vm/helpers/dumper.rb3
-rw-r--r--tool/ruby_vm/helpers/scanner.rb3
-rw-r--r--tool/ruby_vm/loaders/insns_def.rb8
-rwxr-xr-xtool/ruby_vm/models/bare_instructions.rb4
-rw-r--r--tool/ruby_vm/models/typemap.rb1
-rw-r--r--tool/ruby_vm/views/_insn_entry.erb4
-rw-r--r--tool/ruby_vm/views/_leaf_helpers.erb61
-rw-r--r--tool/ruby_vm/views/_mjit_compile_getinlinecache.erb31
-rw-r--r--tool/ruby_vm/views/_mjit_compile_insn.erb15
-rw-r--r--tool/ruby_vm/views/_mjit_compile_insn_body.erb20
-rw-r--r--tool/ruby_vm/views/_mjit_compile_invokebuiltin.erb29
-rw-r--r--tool/ruby_vm/views/_mjit_compile_ivar.erb75
-rw-r--r--tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb8
-rw-r--r--tool/ruby_vm/views/_mjit_compile_send.erb146
-rw-r--r--tool/ruby_vm/views/_sp_inc_helpers.erb8
-rw-r--r--tool/ruby_vm/views/_trace_instruction.erb2
-rw-r--r--tool/ruby_vm/views/mjit_compile.inc.erb61
-rwxr-xr-xtool/runruby.rb5
-rw-r--r--tool/search-cgvars.rb55
-rw-r--r--tool/sync_default_gems.rb403
-rw-r--r--tool/test-bundled-gems.rb35
-rw-r--r--tool/test-coverage.rb2
-rw-r--r--tool/test/minitest/test_minitest_unit.rb3
-rw-r--r--tool/test/testunit/test_hideskip.rb2
-rw-r--r--tool/test/testunit/test_parallel.rb2
-rw-r--r--tool/test/webrick/test_cgi.rb170
-rw-r--r--tool/test/webrick/test_filehandler.rb402
-rw-r--r--tool/test/webrick/test_httpproxy.rb466
-rw-r--r--tool/test/webrick/test_httprequest.rb488
-rw-r--r--tool/test/webrick/test_httpresponse.rb282
-rw-r--r--tool/test/webrick/test_httpserver.rb543
-rw-r--r--tool/test/webrick/test_server.rb191
-rw-r--r--tool/transcode-tblgen.rb6
-rw-r--r--tool/transform_mjit_header.rb52
-rw-r--r--tool/update-bundled_gems.rb14
-rwxr-xr-xtool/update-deps2
-rwxr-xr-xtool/ytab.sed1
-rw-r--r--trace_point.rb42
-rw-r--r--transcode.c78
-rw-r--r--transcode_data.h5
-rw-r--r--transient_heap.c177
-rw-r--r--transient_heap.h9
-rw-r--r--util.c14
-rw-r--r--util/remove_openssl.rb55
-rw-r--r--variable.c928
-rw-r--r--variable.h15
-rw-r--r--version.h22
-rw-r--r--vm.c667
-rw-r--r--vm_args.c503
-rw-r--r--vm_backtrace.c468
-rw-r--r--vm_callinfo.h455
-rw-r--r--vm_core.h444
-rw-r--r--vm_debug.h88
-rw-r--r--vm_dump.c188
-rw-r--r--vm_eval.c621
-rw-r--r--vm_exec.c49
-rw-r--r--vm_exec.h15
-rw-r--r--vm_insnhelper.c2367
-rw-r--r--vm_insnhelper.h52
-rw-r--r--vm_method.c957
-rw-r--r--vm_opts.h11
-rw-r--r--vm_sync.c299
-rw-r--r--vm_sync.h136
-rw-r--r--vm_trace.c62
-rw-r--r--vsnprintf.c2
-rw-r--r--warning.rb16
-rw-r--r--win32/Makefile.sub45
-rw-r--r--win32/dir.h9
-rw-r--r--win32/file.c5
-rwxr-xr-xwin32/mkexports.rb2
-rw-r--r--win32/setup.mak9
-rw-r--r--win32/win32.c107
4140 files changed, 161385 insertions, 216104 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index 8f4b96445c..7c32d1f7ee 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -24,8 +24,6 @@
(c-mode . ((c-file-style . "ruby")))
- (c++-mode . ((c-file-style . "ruby")))
-
(change-log-mode .
((buffer-file-coding-system . us-ascii)
(indent-tabs-mode . t)
diff --git a/.document b/.document
index 8616203552..8a418e5d4a 100644
--- a/.document
+++ b/.document
@@ -10,17 +10,13 @@
# prelude
prelude.rb
rbconfig.rb
-array.rb
+
ast.rb
-dir.rb
gc.rb
-integer.rb
io.rb
-kernel.rb
pack.rb
trace_point.rb
warning.rb
-ractor.rb
# the lib/ directory (which has its own .document file)
lib
@@ -29,7 +25,7 @@ lib
ext
# rdoc files
-NEWS.md
+NEWS
README.md
README.ja.md
diff --git a/.gdbinit b/.gdbinit
index 49380951b8..0d44622691 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -136,7 +136,7 @@ define rp
printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
if ($flags & RUBY_FL_USER2)
printf "(shared) shared="
- output/x ((struct RArray*)($arg0))->as.heap.aux.shared_root
+ output/x ((struct RArray*)($arg0))->as.heap.aux.shared
printf " "
else
printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa
@@ -156,12 +156,12 @@ define rp
else
if ($flags & RUBY_T_MASK) == RUBY_T_HASH
printf "%sT_HASH%s: ", $color_type, $color_end,
- if (((struct RHash *)($arg0))->basic.flags & RHASH_ST_TABLE_FLAG)
+ if (((struct RHash *)($arg0))->basic->flags & RHASH_ST_TABLE_FLAG)
printf "st len=%ld ", ((struct RHash *)($arg0))->as.st->num_entries
else
printf "li len=%ld bound=%ld ", \
- ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT), \
- ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_BOUND_MASK) >> RHASH_AR_TABLE_BOUND_SHIFT)
+ ((((struct RHash *)($arg0))->basic->flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT), \
+ ((((struct RHash *)($arg0))->basic->flags & RHASH_AR_TABLE_BOUND_MASK) >> RHASH_AR_TABLE_BOUND_SHIFT)
end
print (struct RHash *)($arg0)
else
@@ -265,10 +265,6 @@ define rp
printf "%sT_ZOMBIE%s: ", $color_type, $color_end
print (struct RData *)($arg0)
else
- if ($flags & RUBY_T_MASK) == RUBY_T_MOVED
- printf "%sT_MOVED%s: ", $color_type, $color_end
- print *(struct RMoved *)$arg0
- else
printf "%sunknown%s: ", $color_type, $color_end
print (struct RBasic *)($arg0)
end
@@ -304,7 +300,6 @@ define rp
end
end
end
- end
end
document rp
Print a Ruby's VALUE.
@@ -1279,7 +1274,7 @@ document rb_count_objects
Counts all objects grouped by type.
end
-# Details: https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB
+# Details: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB
define trace_machine_instructions
set logging on
set height 0
diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml
deleted file mode 100644
index 7196708b21..0000000000
--- a/.github/codeql/codeql-config.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: "CodeQL config for the Ruby language"
-
-paths-ignore:
- - '/ext/**/*/conftest.c'
diff --git a/.github/workflows/baseruby.yml b/.github/workflows/baseruby.yml
deleted file mode 100644
index 16d1e4a85a..0000000000
--- a/.github/workflows/baseruby.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: BASERUBY Check
-
-on: [push, pull_request]
-
-jobs:
- baseruby:
- name: BASERUBY
- runs-on: ubuntu-20.04
- if: "!contains(github.event.head_commit.message, '[ci skip]')"
- strategy:
- matrix:
- ruby:
- - ruby-2.2
-# - ruby-2.3
-# - ruby-2.4
-# - ruby-2.5
-# - ruby-2.6
- - ruby-2.7
-
- steps:
- - uses: actions/checkout@v2
- - uses: ruby/setup-ruby@v1
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler: none
- - run: echo "make=make -sj$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: sudo apt-get install build-essential autoconf bison
- - run: ./autogen.sh
- - run: ./configure --disable-install-doc
- - run: $make update-unicode
- - run: $make common-srcs
- - run: $make incs
- - run: $make all
- - run: $make test
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / BASERUBY @ ${{ matrix.ruby }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: failure() && github.event_name == 'push'
diff --git a/.github/workflows/check_branch.yml b/.github/workflows/check_branch.yml
new file mode 100644
index 0000000000..37cf3a9a8f
--- /dev/null
+++ b/.github/workflows/check_branch.yml
@@ -0,0 +1,22 @@
+# We bidirectionally synchronize github.com/ruby/ruby.git's master branch and
+# git.ruby-lang.org/ruby.git's master branch.
+# We can use a pull request's merge button only on the master branch.
+#
+# Therefore, we require to pass this "check_branch" on all protected branches
+# to prevent us from accidentally pushing commits to GitHub directly.
+#
+# Details: https://bugs.ruby-lang.org/issues/16094
+name: Pull Request
+on: [pull_request]
+jobs:
+ check_branch:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check if branch is master
+ run: |
+ if [ "$BASE_REF" != master ]; then
+ echo "Only master branch accepts a pull request, but it's '$BASE_REF'."
+ exit 1
+ fi
+ env:
+ BASE_REF: ${{ github.base_ref }}
diff --git a/.github/workflows/check_dependencies.yml b/.github/workflows/check_dependencies.yml
deleted file mode 100644
index b5c5ea3036..0000000000
--- a/.github/workflows/check_dependencies.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Check Dependencies
-on: [push, pull_request]
-jobs:
- update-deps:
- strategy:
- matrix:
- os: [ubuntu-20.04, macos-latest]
- fail-fast: true
- runs-on: ${{ matrix.os }}
- if: "!contains(github.event.head_commit.message, '[ci skip]')"
- steps:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
- if: "contains(matrix.os, 'ubuntu')"
- - name: Install libraries
- run: |
- brew upgrade
- brew install gdbm gmp libffi openssl@1.1 zlib autoconf automake libtool readline
- if: "contains(matrix.os, 'macos')"
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- - uses: actions/checkout@v2
- - run: ./autogen.sh
- - name: Run configure
- run: ./configure -C --disable-install-doc --disable-rubygems --with-gcc 'optflags=-O0' 'debugflags=-save-temps=obj -g'
- - run: make all golf
- - run: ruby tool/update-deps --fix
- - run: git diff --no-ext-diff --ignore-submodules --exit-code
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / Dependencies need to update",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: failure() && github.event_name == 'push'
diff --git a/.github/workflows/check_misc.yml b/.github/workflows/check_misc.yml
deleted file mode 100644
index 2f4bbc7093..0000000000
--- a/.github/workflows/check_misc.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: Miscellaneous checks
-on: [push, pull_request]
-
-jobs:
- checks:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Check if C-sources are US-ASCII
- run: |
- ! grep -r -n '[^ -~]' *.[chy] include internal win32/*.[ch]
- - name: Check for header macros
- run: |
- ! for header in ruby/*.h; do \
- git grep -l -F -e $header -e HAVE_`echo $header | tr a-z./ A-Z__` -- . > /dev/null || echo $header
- done | grep -F .
- working-directory: include
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 9fbabd35c6..0000000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: "Code scanning - action"
-
-on:
- push:
- pull_request:
- schedule:
- - cron: '0 12 * * 4'
-
-jobs:
- CodeQL-Build:
-
- # CodeQL runs on ubuntu-latest and windows-latest
- runs-on: ubuntu-latest
-
- steps:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
-
- - name: Checkout repository
- uses: actions/checkout@v2
- with:
- fetch-depth: 2
-
- - run: git checkout HEAD^2
- if: ${{ github.event_name == 'pull_request' }}
-
- - name: Remove an obsolete rubygems vendored file
- run: sudo rm /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
-
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v1
- with:
- languages: cpp
- config-file: ./.github/codeql/codeql-config.yml
-
- - name: Autobuild
- uses: github/codeql-action/autobuild@v1
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/compilers.yml b/.github/workflows/compilers.yml
deleted file mode 100644
index b954c64bd8..0000000000
--- a/.github/workflows/compilers.yml
+++ /dev/null
@@ -1,216 +0,0 @@
-name: Compilations
-
-on: [push, pull_request]
-
-# Github actions does not support YAML anchors. This creative use of
-# environment variables (plus the "echo ::set-env" hack) is to reroute that
-# restriction.
-env:
- default_cc: clang-11
- append_cc: ''
- crosshost: ''
-
- # -O1 is faster than -O3 in our tests... Majority of time are consumed trying
- # to optimize binaries. Also Github Actions runs on a relatively modern CPU
- # compared to, say, GCC 4 or Clang 3. We don't specify `-march=native`
- # because compilers tend not understand what the CPU is.
- optflags: '-O1'
-
- # -g0 disables backtraces when SEGV. Do not set that.
- debugflags: '-ggdb3'
-
- default_configure: >-
- --enable-debug-env
- --disable-install-doc
- --with-ext=-test-/cxxanyargs,+
- append_configure: >-
- --without-valgrind
- --without-jemalloc
- --without-gmp
-
- UPDATE_UNICODE: >-
- UNICODE_FILES=.
- UNICODE_PROPERTY_FILES=.
- UNICODE_AUXILIARY_FILES=.
- UNICODE_EMOJI_FILES=.
- CONFIGURE_TTY: never
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- RUBY_DEBUG: ci rgengc
- RUBY_TESTOPTS: >-
- -q
- --color=always
- --tty=no
-
-jobs:
- compile:
- strategy:
- fail-fast: false
- matrix:
- entry:
- - { key: default_cc, name: gcc-10, value: gcc-10 }
-# - { key: default_cc, name: gcc-9, value: gcc-9 }
-# - { key: default_cc, name: gcc-8, value: gcc-8 }
-# - { key: default_cc, name: gcc-7, value: gcc-7 }
-# - { key: default_cc, name: gcc-6, value: gcc-6 }
-# - { key: default_cc, name: gcc-5, value: gcc-5 }
- - { key: default_cc, name: gcc-4.8, value: gcc-4.8 }
- - { key: default_cc, name: clang-12, value: clang-12 }
-# - { key: default_cc, name: clang-11, value: clang-11 }
-# - { key: default_cc, name: clang-10, value: clang-10 }
-# - { key: default_cc, name: clang-9, value: clang-9 }
-# - { key: default_cc, name: clang-8, value: clang-8 }
-# - { key: default_cc, name: clang-7, value: clang-7 }
-# - { key: default_cc, name: clang-6.0, value: clang-6.0 }
-# - { key: default_cc, name: clang-5.0, value: clang-5.0 }
-# - { key: default_cc, name: clang-4.0, value: clang-4.0 }
- - { key: default_cc, name: clang-3.9, value: clang-3.9 }
-
- - { key: crosshost, name: aarch64-linux-gnu, value: aarch64-linux-gnu }
-# - { key: crosshost, name: arm-linux-gnueabi, value: arm-linux-gnueabi }
-# - { key: crosshost, name: arm-linux-gnueabihf, value: arm-linux-gnueabihf }
-# - { key: crosshost, name: i686-w64-mingw32, value: i686-w64-mingw32 }
-# - { key: crosshost, name: powerpc-linux-gnu, value: powerpc-linux-gnu }
- - { key: crosshost, name: powerpc64le-linux-gnu, value: powerpc64le-linux-gnu }
- - { key: crosshost, name: s390x-linux-gnu, value: s390x-linux-gnu }
- - { key: crosshost, name: x86_64-w64-mingw32, value: x86_64-w64-mingw32 }
-
- - { key: append_cc, name: c99, value: '-std=c99 -Werror=pedantic -pedantic-errors' }
-# - { key: append_cc, name: c11, value: '-std=c11 -Werror=pedantic -pedantic-errors' }
-# - { key: append_cc, name: c17, value: '-std=c17 -Werror=pedantic -pedantic-errors' }
- - { key: append_cc, name: c2x, value: '-std=c2x -Werror=pedantic -pedantic-errors' }
- - { key: CXXFLAGS, name: c++98, value: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++11, value: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++14, value: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++17, value: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
- - { key: CXXFLAGS, name: c++2a, value: '-std=c++2a -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-
- - { key: optflags, name: '-O0', value: '-O0 -march=x86-64 -mtune=generic' }
-# - { key: optflags, name: '-O3', value: '-O3 -march=x86-64 -mtune=generic' }
-
- - { key: append_configure, name: gmp, value: '--with-gmp' }
- - { key: append_configure, name: jemalloc, value: '--with-jemalloc' }
- - { key: append_configure, name: valgrind, value: '--with-valgrind' }
- - { key: append_configure, name: 'coroutine=ucontext', value: '--with-coroutine=ucontext' }
- - { key: append_configure, name: 'coroutine=copy', value: '--with-coroutine=copy' }
- - { key: append_configure, name: disable-jit-support, value: '--disable-jit-support' }
- - { key: append_configure, name: disable-dln, value: '--disable-dln' }
- - { key: append_configure, name: disable-rubygems, value: '--disable-rubygems' }
-
- - { key: cppflags, name: OPT_THREADED_CODE=1, value: '-DOPT_THREADED_CODE=1' }
- - { key: cppflags, name: OPT_THREADED_CODE=2, value: '-DOPT_THREADED_CODE=2' }
- - { key: cppflags, name: OPT_THREADED_CODE=3, value: '-DOPT_THREADED_CODE=3' }
-
- - { key: cppflags, name: NDEBUG, value: '-DNDEBUG' }
- - { key: cppflags, name: RUBY_DEBUG, value: '-DRUBY_DEBUG' }
-# - { key: cppflags, name: ARRAY_DEBUG, value: '-DARRAY_DEBUG' }
-# - { key: cppflags, name: BIGNUM_DEBUG, value: '-DBIGNUM_DEBUG' }
-# - { key: cppflags, name: CCAN_LIST_DEBUG, value: '-DCCAN_LIST_DEBUG' }
-# - { key: cppflags, name: CPDEBUG=-1, value: '-DCPDEBUG=-1' }
-# - { key: cppflags, name: ENC_DEBUG, value: '-DENC_DEBUG' }
-# - { key: cppflags, name: GC_DEBUG, value: '-DGC_DEBUG' }
-# - { key: cppflags, name: HASH_DEBUG, value: '-DHASH_DEBUG' }
-# - { key: cppflags, name: ID_TABLE_DEBUG, value: '-DID_TABLE_DEBUG' }
-# - { key: cppflags, name: RGENGC_DEBUG=-1, value: '-DRGENGC_DEBUG=-1' }
-# - { key: cppflags, name: SYMBOL_DEBUG, value: '-DSYMBOL_DEBUG' }
-# - { key: cppflags, name: THREAD_DEBUG=-1, value: '-DTHREAD_DEBUG=-1' }
-
-# - { key: cppflags, name: RGENGC_CHECK_MODE, value: '-DRGENGC_CHECK_MODE' }
-# - { key: cppflags, name: TRANSIENT_HEAP_CHECK_MODE, value: '-DTRANSIENT_HEAP_CHECK_MODE' }
-# - { key: cppflags, name: VM_CHECK_MODE, value: '-DVM_CHECK_MODE' }
-
- - { key: cppflags, name: USE_EMBED_CI=0, value: '-DUSE_EMBED_CI=0' }
- - { key: cppflags, name: USE_FLONUM=0, value: '-DUSE_FLONUM=0' }
-# - { key: cppflags, name: USE_GC_MALLOC_OBJ_INFO_DETAILS, value: '-DUSE_GC_MALLOC_OBJ_INFO_DETAILS' }
- - { key: cppflags, name: USE_LAZY_LOAD, value: '-DUSE_LAZY_LOAD' }
-# - { key: cppflags, name: USE_RINCGC=0, value: '-DUSE_RINCGC=0' }
-# - { key: cppflags, name: USE_SYMBOL_GC=0, value: '-DUSE_SYMBOL_GC=0' }
-# - { key: cppflags, name: USE_THREAD_CACHE=0, value: '-DUSE_THREAD_CACHE=0' }
-# - { key: cppflags, name: USE_TRANSIENT_HEAP=0, value: '-DUSE_TRANSIENT_HEAP=0' }
-# - { key: cppflags, name: USE_RUBY_DEBUG_LOG=1, value: '-DUSE_RUBY_DEBUG_LOG=1' }
-
- - { key: cppflags, name: DEBUG_FIND_TIME_NUMGUESS, value: '-DDEBUG_FIND_TIME_NUMGUESS' }
- - { key: cppflags, name: DEBUG_INTEGER_PACK, value: '-DDEBUG_INTEGER_PACK' }
- - { key: cppflags, name: ENABLE_PATH_CHECK, value: '-DENABLE_PATH_CHECK' }
-
- - { key: cppflags, name: GC_DEBUG_STRESS_TO_CLASS, value: '-DGC_DEBUG_STRESS_TO_CLASS' }
-# - { key: cppflags, name: GC_ENABLE_LAZY_SWEEP=0, value: '-DGC_ENABLE_LAZY_SWEEP=0' }
-# - { key: cppflags, name: GC_PROFILE_DETAIL_MEMOTY, value: '-DGC_PROFILE_DETAIL_MEMOTY' }
-# - { key: cppflags, name: GC_PROFILE_MORE_DETAIL, value: '-DGC_PROFILE_MORE_DETAIL' }
-
-# - { key: cppflags, name: CALC_EXACT_MALLOC_SIZE, value: '-DCALC_EXACT_MALLOC_SIZE' }
-# - { key: cppflags, name: MALLOC_ALLOCATED_SIZE_CHECK, value: '-DMALLOC_ALLOCATED_SIZE_CHECK' }
-
-# - { key: cppflags, name: IBF_ISEQ_ENABLE_LOCAL_BUFFER, value: '-DIBF_ISEQ_ENABLE_LOCAL_BUFFER' }
-
-# - { key: cppflags, name: RGENGC_ESTIMATE_OLDMALLOC, value: '-DRGENGC_ESTIMATE_OLDMALLOC' }
-# - { key: cppflags, name: RGENGC_FORCE_MAJOR_GC, value: '-DRGENGC_FORCE_MAJOR_GC' }
-# - { key: cppflags, name: RGENGC_OBJ_INFO, value: '-DRGENGC_OBJ_INFO' }
-# - { key: cppflags, name: RGENGC_OLD_NEWOBJ_CHECK, value: '-DRGENGC_OLD_NEWOBJ_CHECK' }
-# - { key: cppflags, name: RGENGC_PROFILE, value: '-DRGENGC_PROFILE' }
-
-# - { key: cppflags, name: VM_DEBUG_BP_CHECK, value: '-DVM_DEBUG_BP_CHECK' }
-# - { key: cppflags, name: VM_DEBUG_VERIFY_METHOD_CACHE, value: '-DVM_DEBUG_VERIFY_METHOD_CACHE' }
-
- - { key: cppflags, name: MJIT_FORCE_ENABLE, value: '-DMJIT_FORCE_ENABLE' }
-
- name: ${{ matrix.entry.name }}
- runs-on: ubuntu-latest
- container: ghcr.io/ruby/ruby-ci-image:latest
- if: "!contains(github.event.head_commit.message, '[ci skip]')"
- steps:
- - run: mkdir build
- working-directory:
- - name: setenv
- run: |
- echo "${{ matrix.entry.key }}=${{ matrix.entry.value }}" >> $GITHUB_ENV
- echo "make=make -sj$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- path: src
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: |
- if [ -n "${crosshost}" ]; then
- ../src/configure -C \
- ${default_configure} \
- ${append_configure} \
- --host="${crosshost}"
- else
- ../src/configure -C \
- ${default_configure} \
- ${append_configure} \
- --with-gcc="${default_cc} ${append_cc}"
- fi
- - run: $make extract-extlibs
- - run: $make incs
- - run: $make
- - run: $make test
- - run: $make install
- if: "matrix.entry.name == '-O3'"
- - run: /usr/local/bin/gem install --no-doc timezone tzinfo
- if: "matrix.entry.name == '-O3'"
- - run: $make test-tool
- if: "matrix.entry.name == '-O3'"
- - run: $make test-all TESTS='-- ruby -ext-'
- if: "matrix.entry.name == '-O3'"
- - run: $make test-spec
- if: "matrix.entry.name == '-O3'"
-
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.entry.name }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml
new file mode 100644
index 0000000000..515b47e141
--- /dev/null
+++ b/.github/workflows/cygwin.yml
@@ -0,0 +1,79 @@
+name: Cygwin
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - '*'
+jobs:
+ make:
+ strategy:
+ matrix:
+ test_task: [test]
+ os: [windows-2019]
+ vs: [2019]
+ fail-fast: false
+ runs-on: ${{ matrix.os }}
+ if: "!contains(github.event.head_commit.message, '[ci skip]')"
+ steps:
+ - uses: actions/cache@v1
+ with:
+ path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
+ key: ${{ runner.os }}-cygwin-chocolatey-${{ matrix.os }}-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-cygwin-chocolatey-${{ matrix.os }}-
+ ${{ runner.os }}-cygwin-chocolatey-
+ - name: Install cygwin base packages with chocolatey
+ run: |
+ choco install --no-progress cygwin
+ - uses: actions/cache@v1
+ with:
+ path: C:\tools\cygwin\package
+ key: ${{ runner.os }}-cygwin-package-${{ matrix.os }}-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-cygwin-package-${{ matrix.os }}-
+ ${{ runner.os }}-cygwin-package-
+ - name: Install cygwin additional packages
+ run: |
+ C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -l C:/tools/cygwin/package -s http://mirrors.kernel.org/sourceware/cygwin/ -P autoconf,bison,gcc-core,git,libffi-devel,libgdbm-devel,libgmp-devel,libreadline-devel,libssl-devel,make,patch,ruby,zlib-devel
+ shell: cmd
+ - name: Set ENV
+ run: |
+ echo '::set-env name=PATH::C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin'
+ # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
+ - name: Checkout ruby/ruby
+ run: |
+ git clone --single-branch --shallow-since=yesterday https://github.com/ruby/ruby src
+ git -C src reset --hard ${{ github.sha }}
+ if: github.event_name == 'push'
+ shell: cmd
+ - name: Checkout a pull request
+ run: |
+ git clone --single-branch --shallow-since=yesterday --branch=${{ github.event.pull_request.head.ref }} https://github.com/${{ github.event.pull_request.head.repo.full_name }} src
+ git -C src reset --hard ${{ github.event.pull_request.head.sha }}
+ if: github.event_name == 'pull_request'
+ shell: cmd
+ - run: ./src/tool/actions-commit-info.sh
+ shell: bash
+ id: commit_info
+ - name: Autoconf
+ run: |
+ cd src
+ bash /usr/bin/autoconf
+ shell: cmd
+ - name: Configure
+ run: |
+ md build
+ cd build
+ bash ../src/configure
+ shell: cmd
+ - name: make
+ run: |
+ make -C build
+ shell: cmd
+ # TODO: Fix test fail on cygwin environment on GitHub Actions
+ # - name: make btest
+ # run: |
+ # make -C build btest
+ # shell: cmd
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index c1207aaf01..724081d9dc 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -1,64 +1,81 @@
name: macOS
-on: [push, pull_request]
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - '*'
jobs:
make:
runs-on: macos-latest
strategy:
matrix:
- test_task: [ "check", "test-bundler-parallel", "test-bundled-gems", "leaked-globals" ]
+ test_task: [ "check", "test-bundler", "test-bundled-gems" ]
fail-fast: false
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
if: "!contains(github.event.head_commit.message, '[ci skip]')"
steps:
- - run: mkdir build
- working-directory:
- name: Disable Firewall
run: |
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
- - name: git config
+ # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
+ - name: Checkout ruby/ruby
run: |
- git config --global advice.detachedHead 0
- - uses: actions/checkout@v2
- with:
- path: src
+ git clone --single-branch --shallow-since=yesterday https://github.com/ruby/ruby src
+ git -C src reset --hard "$GITHUB_SHA"
+ if: github.event_name == 'push'
+ - name: Checkout a pull request
+ run: |
+ git clone --single-branch --shallow-since=yesterday "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" src
+ git -C src reset --hard "$GITHUB_REV"
+ env:
+ GITHUB_REV: ${{ github.event.pull_request.head.sha }}
+ GITHUB_BRANCH: ${{ github.event.pull_request.head.ref }}
+ GITHUB_REPO: ${{ github.event.pull_request.head.repo.full_name }}
+ if: github.event_name == 'pull_request'
+ - run: ./src/tool/actions-commit-info.sh
+ id: commit_info
- name: Install libraries
run: |
export WAITS='5 60'
- tool/travis_retry.sh brew upgrade
+ cd src
+ tool/travis_retry.sh brew update
tool/travis_retry.sh brew install gdbm gmp libffi openssl@1.1 zlib autoconf automake libtool readline
- working-directory: src
- name: Set ENV
run: |
- echo "JOBS=-j$((1 + $(sysctl -n hw.activecpu)))" >> $GITHUB_ENV
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: ../src/configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline)
- - run: make $JOBS incs
- - run: make $JOBS
- - run: make prepare-gems
+ echo '::set-env name=JOBS::'-j$((1 + $(sysctl -n hw.activecpu)))
+ - name: Autoconf
+ run: |
+ cd src
+ autoconf
+ - name: Configure
+ run: |
+ mkdir build
+ cd build
+ ../src/configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline)
+ - name: Make
+ run: make -C build $JOBS
+ - name: Extract gems
+ run: make -C build update-gems extract-gems
if: matrix.test_task == 'check'
- - run: make $JOBS -s ${{ matrix.test_task }}
- timeout-minutes: 60
+ - name: Tests
+ run: make -C build $JOBS -s ${{ matrix.test_task }}
env:
RUBY_TESTOPTS: "-q --tty=no"
- TEST_BUNDLED_GEMS_ALLOW_FAILURES: "rexml"
+ - name: Leaked Globals
+ run: make -C build -s leaked-globals
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.test_task }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
+ "attachments": [{
+ "text": "${{ job.status }}: ${{ github.workflow }} / ${{ matrix.test_task }} <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ steps.commit_info.outputs.COMMIT_DATE }} #${{ steps.commit_info.outputs.COMMIT_NUMBER_OF_DAY }}> " +
+ "(<https://github.com/${{ github.repository }}/commit/${{ github.sha }}|" + "${{ github.sha }}".substring(0, 10) + ">) " +
+ "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}",
+ "color": "danger"
+ }]
}
env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml
deleted file mode 100644
index c0366f2942..0000000000
--- a/.github/workflows/mingw.yml
+++ /dev/null
@@ -1,141 +0,0 @@
-name: MinGW
-on: [push, pull_request]
-
-# Notes:
-# Actions console encoding causes issues, see test-all & test-spec steps
-#
-jobs:
- make:
- runs-on: windows-2019
- env:
- MSYSTEM: MINGW64
- MSYSTEM_PREFIX: /mingw64
- MSYS2_ARCH: x86_64
- CHOST: "x86_64-w64-mingw32"
- CFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong"
- CXXFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe"
- CPPFLAGS: "-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048"
- LDFLAGS: "-pipe -fstack-protector-strong"
- UPDATE_UNICODE: "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- strategy:
- matrix:
- test_task: [ "check" ] # to make job names consistent
- fail-fast: false
- if: "!contains(github.event.head_commit.message, '[ci skip]')"
- steps:
- - run: mkdir build
- working-directory:
- - name: git config
- run: |
- git config --system core.autocrlf false
- git config --system core.eol lf
- git config --system advice.detachedHead 0
- - uses: actions/checkout@v2
- with:
- path: src
- - name: Set up Ruby & MSYS2
- uses: MSP-Greg/setup-ruby-pkgs@v1
- with:
- ruby-version: 2.6
- mingw: _upgrade_ gdbm gmp libffi libyaml openssl ragel readline
- msys2: automake1.16 bison
- - name: where check
- run: |
- # show where
- Write-Host
- $where = 'gcc.exe', 'ragel.exe', 'make.exe', 'bison.exe', 'libcrypto-1_1-x64.dll', 'libssl-1_1-x64.dll'
- foreach ($e in $where) {
- $rslt = where.exe $e 2>&1 | Out-String
- if ($rslt.contains($e)) { Write-Host $rslt }
- else { Write-Host "`nCan't find $e" }
- }
- - name: misc setup, autoreconf
- run: |
- mkdir install
- mkdir temp
- cd src
- sh -c "autoreconf -fi"
- working-directory:
-
- - name: configure
- run: |
- # Actions uses UTF8, causes test failures, similar to normal OS setup
- $PSDefaultParameterValues['*:Encoding'] = 'utf8'
- [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- [Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- $config_args = "--build=$env:CHOST --host=$env:CHOST --target=$env:CHOST"
- Write-Host $config_args
- sh -c "../src/configure --disable-install-doc --prefix=/install $config_args"
- # Write-Host "-------------------------------------- config.log"
- # Get-Content ./config.log | foreach {Write-Output $_}
-
- - name: update
- run: |
- $jobs = [int](2 * $env:NUMBER_OF_PROCESSORS)
- make -j $jobs incs
-
- - name: download gems
- run: |
- $jobs = [int](2 * $env:NUMBER_OF_PROCESSORS)
- make -j $jobs update-gems
-
- - name: make all
- timeout-minutes: 40
- run: |
- $jobs = [int](2 * $env:NUMBER_OF_PROCESSORS)
- make -j $jobs
-
- - name: make install
- run: |
- # Actions uses UTF8, causes test failures, similar to normal OS setup
- $PSDefaultParameterValues['*:Encoding'] = 'utf8'
- [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- [Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- make DESTDIR=.. install-nodoc
-
- - name: test
- timeout-minutes: 5
- run: |
- make test
-
- - name: test-all
- timeout-minutes: 60
- run: |
- # Actions uses UTF8, causes test failures, similar to normal OS setup
- $PSDefaultParameterValues['*:Encoding'] = 'utf8'
- [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- [Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- $jobs = [int](1.5 * $env:NUMBER_OF_PROCESSORS)
- if ($env:BUNDLER_VERSION) { Remove-Item env:\BUNDLER_VERSION }
- make test-all TESTOPTS="-j $jobs --retry --job-status=normal --show-skip --timeout-scale=1.5"
-
- - name: test-spec
- timeout-minutes: 10
- working-directory: src/spec/ruby
- run: |
- $env:Path = "$pwd/../../../install/bin;$env:Path"
- # Actions uses UTF8, causes test failures, similar to normal OS setup
- $PSDefaultParameterValues['*:Encoding'] = 'utf8'
- [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- [Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
- ruby -v
- ruby ../mspec/bin/mspec -I../../tool/lib -j
-
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.test_task }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/mjit.yml b/.github/workflows/mjit.yml
index 7695a47359..d23c136619 100644
--- a/.github/workflows/mjit.yml
+++ b/.github/workflows/mjit.yml
@@ -1,77 +1,79 @@
name: MJIT
-on: [push, pull_request]
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - '*'
jobs:
- make:
+ test:
strategy:
matrix:
- test_task: [ "check" ] # to make job names consistent
jit_opts: [ "--jit", "--jit-wait" ]
fail-fast: false
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
- env:
- TESTOPTS: '-q --tty=no'
- RUN_OPTS: '--disable-gems ${{ matrix.jit_opts }} --jit-debug=-ggdb3'
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
steps:
- - run: mkdir build
- working-directory:
- name: Install libraries
run: |
set -x
sudo apt-get update -q || :
sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
- - name: git config
+ # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
+ - name: Checkout ruby/ruby
run: |
- git config --global advice.detachedHead 0
- - uses: actions/checkout@v2
- with:
- path: src
+ git clone --single-branch --shallow-since=yesterday https://github.com/ruby/ruby src
+ git -C src reset --hard "$GITHUB_SHA"
+ if: github.event_name == 'push'
+ - name: Checkout a pull request
+ run: |
+ git clone --single-branch --shallow-since=yesterday "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" src
+ git -C src reset --hard "$GITHUB_REV"
+ env:
+ GITHUB_REV: ${{ github.event.pull_request.head.sha }}
+ GITHUB_BRANCH: ${{ github.event.pull_request.head.ref }}
+ GITHUB_REPO: ${{ github.event.pull_request.head.repo.full_name }}
+ if: github.event_name == 'pull_request'
+ - run: ./src/tool/actions-commit-info.sh
+ id: commit_info
- name: Fixed world writable dirs
run: |
- chmod -v go-w $HOME $HOME/.config
+ chmod go-w $HOME
sudo chmod -R go-w /usr/share
- sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- name: Set ENV
run: |
- echo "JOBS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: ../src/configure -C --disable-install-doc
- - run: make $JOBS incs
- - run: make $JOBS
- - run: sudo make $JOBS -s install
- - run: sudo apt-get install gdb # used by test / test-all failure
- - name: Run test
- run: |
- ulimit -c unlimited
- make $JOBS -s test RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- - name: Run test-all
- run: |
- ulimit -c unlimited
- make $JOBS -s test-all RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- - name: Run test-spec
+ echo '::set-env name=JOBS::'-j$((1 + $(nproc --all)))
+ - name: Autoconf
+ run: cd src && exec autoconf
+ - name: configure
run: |
- ulimit -c unlimited
- make $JOBS -s test-spec RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
+ mkdir build
+ cd build
+ ../src/configure -C --disable-install-doc
+ - name: make all
+ run: make -C build $JOBS
+ - name: make install
+ run: sudo make -C build $JOBS install
+ - name: make test
+ run: "make -C build $JOBS -s test TESTOPTS='-q --tty=no' RUN_OPTS='--disable-gems --jit-warnings ${{ matrix.jit_opts }}'"
+ - name: make test-all
+ run: "make -C build $JOBS -s test-all TESTOPTS='-q --tty=no' RUN_OPTS='--disable-gems --jit-warnings ${{ matrix.jit_opts }}'"
+ - name: make test-spec
+ run: "make -C build $JOBS -s test-spec RUN_OPTS='--disable-gems --jit-warnings ${{ matrix.jit_opts }}'"
+ - name: Leaked Globals
+ run: make -C build -s leaked-globals
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.jit_opts }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
+ "attachments": [{
+ "text": "${{ job.status }}: ${{ github.workflow }} / ${{ matrix.jit_opts }} <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ steps.commit_info.outputs.COMMIT_DATE }} #${{ steps.commit_info.outputs.COMMIT_NUMBER_OF_DAY }}> " +
+ "(<https://github.com/${{ github.repository }}/commit/${{ github.sha }}|" + "${{ github.sha }}".substring(0, 10) + ">) " +
+ "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}",
+ "color": "danger"
+ }]
}
env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/spec_guards.yml b/.github/workflows/spec_guards.yml
deleted file mode 100644
index bf053cdd05..0000000000
--- a/.github/workflows/spec_guards.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: Rubyspec Version Guards Check
-
-on: [push, pull_request]
-
-jobs:
- rubyspec:
- name: Rubyspec
- runs-on: ubuntu-20.04
- if: "!contains(github.event.head_commit.message, '[ci skip]')"
- strategy:
- matrix:
- # Specs from ruby/spec should still run on all supported Ruby versions.
- # This also ensures the needed ruby_version_is guards are there, see spec/README.md.
- ruby:
- - ruby-2.5
-# - ruby-2.6
- - ruby-2.7
- - ruby-3.0
-
- steps:
- - uses: actions/checkout@v2
- - uses: ruby/setup-ruby@v1
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler: none
- - run: gem install webrick
- - run: ruby ../mspec/bin/mspec
- working-directory: spec/ruby
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / rubyspec @ ${{ matrix.ruby }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: failure() && github.event_name == 'push'
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index f222f25e7e..885f078f07 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -1,89 +1,115 @@
name: Ubuntu
-on: [push, pull_request]
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - '*'
jobs:
make:
strategy:
matrix:
- test_task: [ "check", "test-bundler-parallel", "test-bundled-gems", "test-all TESTS=--repeat-count=2", "leaked-globals" ]
- os:
- - ubuntu-20.04
-# - ubuntu-18.04
-# - ubuntu-16.04
- debug: ["", "-DRUBY_DEBUG"]
+ test_task: [ "check", "test-bundler", "test-bundled-gems" ]
+ os: [ubuntu-latest, ubuntu-16.04]
exclude:
- - test_task: test-bundler-parallel
+ - test_task: test-bundler
os: ubuntu-16.04
- test_task: test-bundled-gems
os: ubuntu-16.04
- - test_task: "test-all TESTS=--repeat-count=2"
- os: ubuntu-16.04
- - test_task: leaked-globals
- os: ubuntu-16.04
- - os: ubuntu-16.04
- debug: -DRUBY_DEBUG
- - test_task: "test-all TESTS=--repeat-count=2"
- debug: -DRUBY_DEBUG
- - test_task: leaked-globals
- debug: -DRUBY_DEBUG
fail-fast: false
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- RUBY_DEBUG: ci
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, '[ci skip]')"
steps:
- - run: mkdir build
- working-directory:
+ - run: env | sort
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
+ - name: Dump job context
+ env:
+ JOB_CONTEXT: ${{ toJson(job) }}
+ run: echo "$JOB_CONTEXT"
+ - name: Dump steps context
+ env:
+ STEPS_CONTEXT: ${{ toJson(steps) }}
+ run: echo "$STEPS_CONTEXT"
+ - name: Dump runner context
+ env:
+ RUNNER_CONTEXT: ${{ toJson(runner) }}
+ run: echo "$RUNNER_CONTEXT"
+ - name: Dump strategy context
+ env:
+ STRATEGY_CONTEXT: ${{ toJson(strategy) }}
+ run: echo "$STRATEGY_CONTEXT"
+ - name: Dump matrix context
+ env:
+ MATRIX_CONTEXT: ${{ toJson(matrix) }}
+ run: echo "$MATRIX_CONTEXT"
+
- name: Install libraries
run: |
set -x
sudo apt-get update -q || :
sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
- - name: git config
+ # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
+ - name: Checkout ruby/ruby
run: |
- git config --global advice.detachedHead 0
- - uses: actions/checkout@v2
- with:
- path: src
+ git clone --single-branch --shallow-since=yesterday https://github.com/ruby/ruby src
+ git -C src reset --hard "$GITHUB_SHA"
+ if: github.event_name == 'push'
+ - name: Checkout a pull request
+ run: |
+ git clone --single-branch --shallow-since=yesterday "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" src
+ git -C src reset --hard "$GITHUB_REV"
+ env:
+ GITHUB_REV: ${{ github.event.pull_request.head.sha }}
+ GITHUB_BRANCH: ${{ github.event.pull_request.head.ref }}
+ GITHUB_REPO: ${{ github.event.pull_request.head.repo.full_name }}
+ if: github.event_name == 'pull_request'
+ - run: ./src/tool/actions-commit-info.sh
+ id: commit_info
- name: Fixed world writable dirs
run: |
- chmod -v go-w $HOME $HOME/.config
+ chmod go-w $HOME
sudo chmod -R go-w /usr/share
- sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- name: Set ENV
run: |
- echo "JOBS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: ../src/configure -C --disable-install-doc cppflags=${{ matrix.debug }}
- - run: make $JOBS incs
- - run: make $JOBS
- - run: make prepare-gems
+ echo '::set-env name=JOBS::'-j$((1 + $(nproc --all)))
+ - name: Autoconf
+ run: cd src && exec autoconf
+ - name: configure
+ run: |
+ mkdir build
+ cd build
+ ../src/configure -C --disable-install-doc
+ - name: Make
+ run: make -C build $JOBS
+ - name: Extract gems
+ run: make -C build update-gems extract-gems
if: matrix.test_task == 'check'
- name: Create dummy files in build dir
run: |
+ cd build
./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
if: matrix.test_task == 'check'
- - run: make $JOBS -s ${{ matrix.test_task }}
- timeout-minutes: 30
+ - name: Tests
+ run: make -C build $JOBS -s ${{ matrix.test_task }}
env:
RUBY_TESTOPTS: "-q --tty=no"
- TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
+ - name: Leaked Globals
+ run: make -C build -s leaked-globals
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.debug }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
+ "attachments": [{
+ "text": "${{ job.status }}: ${{ matrix.os }} / ${{ matrix.test_task }} <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ steps.commit_info.outputs.COMMIT_DATE }} #${{ steps.commit_info.outputs.COMMIT_NUMBER_OF_DAY }}> " +
+ "(<https://github.com/${{ github.repository }}/commit/${{ github.sha }}|" + "${{ github.sha }}".substring(0, 10) + ">) " +
+ "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}",
+ "color": "danger"
+ }]
}
env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 98e59ae188..09e588784c 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -1,5 +1,11 @@
name: Windows
-on: [push, pull_request]
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - '*'
jobs:
make:
strategy:
@@ -9,14 +15,9 @@ jobs:
vs: [2019]
fail-fast: false
runs-on: ${{ matrix.os }}
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- VCVARS: C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat
if: "!contains(github.event.head_commit.message, '[ci skip]')"
steps:
- - run: md build
- working-directory:
- - uses: actions/cache@v2
+ - uses: actions/cache@v1
with:
path: C:\vcpkg\downloads
key: ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-${{ github.sha }}
@@ -26,7 +27,7 @@ jobs:
- name: Install libraries with vcpkg
run: |
vcpkg --triplet x64-windows install readline zlib
- - uses: actions/cache@v2
+ - uses: actions/cache@v1
with:
path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
key: ${{ runner.os }}-chocolatey-${{ matrix.os }}-${{ github.sha }}
@@ -35,46 +36,55 @@ jobs:
${{ runner.os }}-chocolatey-
- name: Install libraries with chocolatey
run: |
- choco install --no-progress openssl
- choco install --no-progress winflexbison3 --version=2.5.18.20190508
- - name: git config
+ choco install --no-progress openssl winflexbison3
+ # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
+ - name: Checkout ruby/ruby
run: |
- git config --system advice.detachedHead 0
- - uses: actions/checkout@v2
- with:
- path: src
+ git clone --single-branch --shallow-since=yesterday https://github.com/ruby/ruby src
+ git -C src reset --hard ${{ github.sha }}
+ if: github.event_name == 'push'
+ - name: Checkout a pull request
+ run: |
+ git clone --single-branch --shallow-since=yesterday --branch=${{ github.event.pull_request.head.ref }} https://github.com/${{ github.event.pull_request.head.repo.full_name }} src
+ git -C src reset --hard ${{ github.event.pull_request.head.sha }}
+ if: github.event_name == 'pull_request'
+ - run: ./src/tool/actions-commit-info.sh
+ shell: bash
+ id: commit_info
- name: Configure
run: |
- call "%VCVARS%"
+ md build
+ cd build
+ call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
../src/win32/configure.bat --disable-install-doc --without-ext=+,dbm,gdbm --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows --with-openssl-dir="C:/Program Files/OpenSSL-Win64"
+ shell: cmd
- name: nmake
run: |
- call "%VCVARS%"
+ call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set YACC=win_bison
+ cd build
echo on
- nmake incs
- nmake extract-extlibs
+ nmake up
+ nmake extract-gems
nmake
+ shell: cmd
- name: nmake test
- timeout-minutes: 30
run: |
- call "%VCVARS%"
+ call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
+ cd build
nmake ${{ matrix.test_task }}
+ shell: cmd
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / ${{ matrix.test_task }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
+ "attachments": [{
+ "text": "${{ job.status }}: ${{ matrix.os }} / ${{ matrix.test_task }} <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ steps.commit_info.outputs.COMMIT_DATE }} #${{ steps.commit_info.outputs.COMMIT_NUMBER_OF_DAY }}> " +
+ "(<https://github.com/${{ github.repository }}/commit/${{ github.sha }}|" + "${{ github.sha }}".substring(0, 10) + ">) " +
+ "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}",
+ "color": "danger"
+ }]
}
env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure() && github.event_name == 'push'
-
-defaults:
- run:
- working-directory: build
- shell: cmd
diff --git a/.gitignore b/.gitignore
index 8d11d7278a..487af950f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,6 +27,7 @@
*.swp
*.yarb
*~
+.*-*
.*.list
.*.time
.DS_Store
@@ -37,7 +38,6 @@
.ppack
.svn
.time
-.ruby-version
Makefile
cygruby*.def
extconf.h
@@ -57,8 +57,6 @@ lcov*.info
/*.pc
/*.rc
/*_prelude.c
-/.downloaded-cache
-/.top-enc.mk
/build*/
/COPYING.LIB
/ChangeLog
@@ -119,7 +117,6 @@ lcov*.info
/rename2.h
/repack
/revision.h
-/revision.tmp
/riscos
/rubicon
/ruby
@@ -128,7 +125,6 @@ lcov*.info
/ruby-man.rd.gz
/run.gdb
/sizes.c
-/static-ruby
/test.rb
/test-coverage.dat
/tmp
@@ -194,7 +190,6 @@ lcov*.info
# /ext/ripper/
/ext/ripper/eventids1.c
-/ext/ripper/.eventids2-check
/ext/ripper/eventids2table.c
/ext/ripper/ripper.*
/ext/ripper/ids1
diff --git a/.travis.yml b/.travis.yml
index d480307dd6..71945e349e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,13 +47,15 @@ env:
- RUBY_PREFIX=/tmp/ruby-prefix
- GEMS_FOR_TEST='timezone tzinfo'
- UPDATE_UNICODE="UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
- - BEFORE_INSTALL=true
# https://github.com/travis-ci/travis-build/blob/e411371dda21430a60f61b8f3f57943d2fe4d344/lib/travis/build/bash/travis_apt_get_options.bash#L7
- travis_apt_get_options='--allow-downgrades --allow-remove-essential --allow-change-held-packages'
- travis_apt_get_options="-yq --no-install-suggests --no-install-recommends $travis_apt_get_options"
.org.ruby-lang.ci.matrix-definitions:
+ - &cron-only
+ if: (type = cron) AND (branch = master) AND (fork = false)
+
- &make-test-only
script:
- $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
@@ -66,23 +68,26 @@ env:
# sources:
# - ubuntu-toolchain-r-test
before_install:
- - bash -cx "${BEFORE_INSTALL}"
- tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- ccache
- gcc-8
- g++-8
- libffi-dev
- libgdbm-dev
- libncurses5-dev
- libncursesw5-dev
- libreadline6-dev
- libssl-dev
- libyaml-dev
- openssl
- zlib1g-dev
+ - |-
+ ${BEFORE_INSTALL}
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
+ ccache \
+ gcc-8 \
+ g++-8 \
+ libffi-dev \
+ libgdbm-dev \
+ libgmp-dev \
+ libjemalloc-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libreadline6-dev \
+ libssl-dev \
+ libyaml-dev \
+ openssl \
+ valgrind \
+ zlib1g-dev
- &clang-8
compiler: clang-8
@@ -95,19 +100,22 @@ env:
retries: true
before_install:
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- clang-8
- llvm-8-tools
- libffi-dev
- libgdbm-dev
- libncurses5-dev
- libncursesw5-dev
- libreadline6-dev
- libssl-dev
- libyaml-dev
- openssl
- zlib1g-dev
+ - |-
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
+ clang-8 \
+ llvm-8-tools \
+ libffi-dev \
+ libgdbm-dev \
+ libgmp-dev \
+ libjemalloc-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libreadline6-dev \
+ libssl-dev \
+ libyaml-dev \
+ openssl \
+ valgrind \
+ zlib1g-dev
# --------
@@ -124,6 +132,130 @@ env:
name: s390x-linux
arch: s390x
<<: *gcc-8
+
+ - &jemalloc
+ name: --with-jemalloc
+ <<: *gcc-8
+ <<: *cron-only
+ env:
+ - CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'
+
+ - &assertions
+ name: RUBY_DEBUG=1
+ <<: *gcc-8
+ #<<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cppflags='-DRUBY_DEBUG -DVM_CHECK_MODE=1 -DTRANSIENT_HEAP_CHECK_MODE -DRGENGC_CHECK_MODE -DENC_DEBUG'
+
+ - &VM_CHECK_MODE
+ name: VM_CHECK_MODE=3
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cppflags=-DVM_CHECK_MODE=0x0003
+
+ - &SUPPORT_JOKE
+ name: SUPPORT_JOKE
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - BEFORE_INSTALL="sed vm_opts.h -e 's/OPT_SUPPORT_JOKE *0/OPT_SUPPORT_JOKE 1/' -i"
+
+ - &CPDEBUG
+ name: CPDEBUG
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - cppflags=-DCPDEBUG
+
+ - &WITH_COROUTINE_UCONTEXT
+ name: COROUTINE=ucontext
+ <<: *gcc-8
+ <<: *cron-only
+ env:
+ - CONFIG_FLAG='--with-coroutine=ucontext'
+
+ - &WITH_COROUTINE_COPY
+ name: COROUTINE=copy
+ <<: *gcc-8
+ <<: *cron-only
+ env:
+ - CONFIG_FLAG='--with-coroutine=copy'
+
+ - &TOKEN_THREADED_CODE
+ name: TOKEN_THREADED_CODE
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cppflags=-DOPT_THREADED_CODE=1
+
+ - &CALL_THREADED_CODE
+ name: CALL_THREADED_CODE
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cppflags=-DOPT_THREADED_CODE=2
+
+ - &NO_THREADED_CODE
+ name: NO_THREADED_CODE
+ <<: *gcc-8
+ <<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cppflags=-DOPT_THREADED_CODE=3
+
+ - &ASAN
+ name: -fsanitize=address
+ <<: *clang-8
+ #<<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - ASAN_OPTIONS=detect_leaks=0
+ - cflags='-U_FORTIFY_SOURCE -march=native -fsanitize=address -fno-omit-frame-pointer -fPIC'
+ - debugflags=-ggdb3
+ - optflags=-O1
+ - LD=clang-8
+ - LDFLAGS='-fsanitize=address -fPIC'
+ - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
+
+ - &MSAN
+ name: -fsanitize=memory
+ <<: *clang-8
+ #<<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cflags='-U_FORTIFY_SOURCE -fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -fPIC'
+ - optflags=-O1
+ - LD=clang-8
+ - LDFLAGS='-fsanitize=memory -fPIC'
+ - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
+
+ - &UBSAN
+ name: -fsanitize=undefined
+ <<: *clang-8
+ #<<: *cron-only
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - cflags='-U_FORTIFY_SOURCE -fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
+ - cppflags=-DUNALIGNED_WORD_ACCESS=0
+ - debugflags=-ggdb3
+ - optflags='-O1 -march=native'
+ - LD=clang-8
+ - LDFLAGS='-fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
- &i686-linux
name: i686-linux
@@ -141,26 +273,26 @@ env:
before_install:
- tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- gcc-8-multilib
- g++-8
- g++-8-multilib
- libstdc++-8-dev:i386
- libffi-dev:i386
- libffi6:i386
- libgdbm-dev:i386
- libgdbm3:i386
- libncurses5-dev:i386
- libncurses5:i386
- libncursesw5-dev:i386
- libreadline6-dev:i386
- libreadline6:i386
- libssl-dev:i386
- libssl1.0.0:i386
- linux-libc-dev:i386
- zlib1g-dev:i386
- zlib1g:i386
+ - |-
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
+ gcc-8-multilib \
+ g++-8 \
+ g++-8-multilib \
+ libstdc++-8-dev:i386 \
+ libffi-dev:i386 \
+ libffi6:i386 \
+ libgdbm-dev:i386 \
+ libgdbm3:i386 \
+ libncurses5-dev:i386 \
+ libncurses5:i386 \
+ libncursesw5-dev:i386 \
+ libreadline6-dev:i386 \
+ libreadline6:i386 \
+ libssl-dev:i386 \
+ libssl1.0.0:i386 \
+ linux-libc-dev:i386 \
+ zlib1g-dev:i386 \
+ zlib1g:i386
- &arm32-linux
name: arm32-linux
@@ -173,43 +305,156 @@ env:
before_install:
- sudo dpkg --add-architecture armhf
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
+ - |-
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
+ ccache \
+ crossbuild-essential-armhf \
+ libc6:armhf \
+ libstdc++-5-dev:armhf \
+ libffi-dev:armhf \
+ libffi6:armhf \
+ libgdbm-dev:armhf \
+ libgdbm3:armhf \
+ libncurses5-dev:armhf \
+ libncurses5:armhf \
+ libncursesw5-dev:armhf \
+ libreadline6-dev:armhf \
+ libreadline6:armhf \
+ libssl-dev:armhf \
+ libssl1.0.0:armhf \
+ linux-libc-dev:armhf \
+ zlib1g-dev:armhf \
+ zlib1g:armhf
+
+ - &pedanticism
+ name: -std=c99 -pedantic
+ compiler: clang
+ <<: *make-test-only
+ env:
+ - GEMS_FOR_TEST=
+ - GCC_FLAGS='-std=c99 -Werror=pedantic -pedantic-errors'
+ - CONFIG_FLAG=
+ - JOBS=
- >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- ccache
- crossbuild-essential-armhf
- libc6:armhf
- libstdc++-5-dev:armhf
- libffi-dev:armhf
- libffi6:armhf
- libgdbm-dev:armhf
- libgdbm3:armhf
- libncurses5-dev:armhf
- libncurses5:armhf
- libncursesw5-dev:armhf
- libreadline6-dev:armhf
- libreadline6:armhf
- libssl-dev:armhf
- libssl1.0.0:armhf
- linux-libc-dev:armhf
- zlib1g-dev:armhf
- zlib1g:armhf
+ warnflags='
+ -Wall
+ -Wextra
+ -Werror=deprecated-declarations
+ -Werror=division-by-zero
+ -Werror=extra-tokens
+ -Werror=implicit-function-declaration
+ -Werror=implicit-int
+ -Werror=pointer-arith
+ -Werror=shorten-64-to-32
+ -Werror=write-strings
+ -Wmissing-noreturn
+ -Wno-constant-logical-operand
+ -Wno-missing-field-initializers
+ -Wno-overlength-strings
+ -Wno-parentheses-equality
+ -Wno-self-assign
+ -Wno-tautological-compare
+ -Wno-unused-local-typedef
+ -Wno-unused-parameter
+ -Wunused-variable'
+ - LDFLAGS=-Wno-unused-command-line-argument
+
+ - &rubyspec
+ name: Check ruby/spec version guards on Ruby 2.4
+ language: ruby
+ rvm: 2.4.6
+ before_install:
+ install:
+ before_script: chmod -R u+w spec/ruby
+ # -j randomly hangs.
+ script: ruby -C spec/ruby ../mspec/bin/mspec .
+ after_failure:
+ - echo "ruby/spec failed on Ruby 2.4. This is likely because of a missing ruby_version_is guard, please add it. See spec/README.md."
+
+ - &baseruby
+ name: "BASERUBY: Ruby 2.2"
+ <<: *gcc-8
+ <<: *make-test-only
+ language: ruby
+ rvm: 2.2
+
+ - &dependency
+ name: Check dependencies in makefiles
+ language: ruby
+ before_install:
+ install:
+ before_script:
+ - |-
+ ruby -e 'new = []
+ Dir.glob("ext/**/extconf.rb") {|ex|
+ unless File.exist?(dep = File.dirname(ex)+"/depend")
+ puts "Adding "+dep
+ File.copy_stream("template/depend.tmpl", dep)
+ new << dep
+ end
+ }
+ exec("git", "add", *new) unless new.empty?'
+ - git diff --cached
+ - "> config.status"
+ - "> .rbconfig.time"
+ - sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
+ - make touch-unicode-files
+ - make -s $JOBS $UPDATE_UNICODE up
+ - make -s $JOBS srcs
+ - rm -f config.status Makefile rbconfig.rb .rbconfig.time
+ - $SETARCH ./configure -C --disable-install-doc --prefix=$RUBY_PREFIX --disable-rubygems 'optflags=-O0' 'debugflags=-save-temps=obj -g'
+ - ruby tool/update-deps --fix
+ script:
+ - git diff --no-ext-diff --ignore-submodules --exit-code
+ after_failure:
+ - echo "Dependencies need to update"
+ env:
+ - CONFIG_FLAG=
matrix:
include:
# Build every commit:
+ - <<: *x86_64-linux
+ - <<: *arm64-linux
- <<: *i686-linux
- # Build every commit (Allowed Failures):
- <<: *arm32-linux
- - <<: *arm64-linux
- <<: *s390x-linux
+ - <<: *pedanticism
+ - <<: *assertions
+ - <<: *baseruby
+ - <<: *rubyspec
+ - <<: *dependency
+ # Build every commit (Allowed Failures):
+ - <<: *ASAN
+ - <<: *MSAN
+ - <<: *UBSAN
+ # Cron only:
+ - <<: *jemalloc
+ - <<: *VM_CHECK_MODE
+ - <<: *SUPPORT_JOKE
+ - <<: *CPDEBUG
+ - <<: *WITH_COROUTINE_UCONTEXT
+ - <<: *WITH_COROUTINE_COPY
+ - <<: *TOKEN_THREADED_CODE
+ - <<: *CALL_THREADED_CODE
+ - <<: *NO_THREADED_CODE
allow_failures:
- - name: arm32-linux
- - name: arm64-linux
- name: s390x-linux
+ - name: -fsanitize=address
+ - name: -fsanitize=memory
+ - name: -fsanitize=undefined
fast_finish: true
before_script:
+ - date # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
+ - dpkg --print-architecture
+ - dpkg --print-foreign-architectures
+ - setarch --list
+ - echo JOBS=${JOBS} SETARCH=${SETARCH}
+ - $SETARCH uname -a
+ - $SETARCH uname -r
- rm -fr .ext autom4te.cache
+ - echo $TERM
- |-
[ -d ~/.downloaded-cache ] ||
mkdir ~/.downloaded-cache
@@ -217,9 +462,9 @@ before_script:
- "> config.status"
- "> .rbconfig.time"
- sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
- - make touch-unicode-files
- - make -s $JOBS $UPDATE_UNICODE up
- - make -s $JOBS srcs
+ - date; make touch-unicode-files
+ - date; make -s $JOBS $UPDATE_UNICODE up
+ - date; make -s $JOBS srcs
- rm -f config.status Makefile rbconfig.rb .rbconfig.time
- |-
if [ -d ~/config_2nd ]; then
@@ -231,6 +476,7 @@ before_script:
- chmod -R a-w .
- chmod -R u+w build config_1st config_2nd
- cd build
+ - ccache --show-stats
- |-
case "$CC" in
gcc*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;
@@ -250,7 +496,20 @@ before_script:
- mv ../config_2nd ~
- chmod u-w ..
- $SETARCH make -s $JOBS
- - make -s install
+ - |-
+ date; : # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
+ if ! make install; then
+ if [ "$(uname)" = Darwin ]; then
+ # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
+ set -x
+ date
+ ./miniruby -e 'ARGV.map{|path|[path,File.stat(path)]}.sort_by{|path,st|st.mtime}.each{|path,st|p mtime:st.mtime.to_f, ctime:st.ctime.to_f, path:path}' .ext/.timestamp/.RUBYCOMMONDIR*time .ext/common/bigdecimal/*.rb ../ext/bigdecimal/lib/bigdecimal/*.rb . .. .ext .ext/common .ext/common/bigdecimal ext/bigdecimal ../ext ../ext/bigdecimal ../ext/bigdecimal/lib ../ext/bigdecimal/lib/bigdecimal
+ make COPY='cp -f' install
+ else
+ exit 1
+ fi
+ fi
+ - ccache --show-stats
- |-
[ -z "${GEMS_FOR_TEST}" ] ||
$RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST
@@ -269,7 +528,6 @@ branches:
- ruby_2_4
- ruby_2_5
- ruby_2_6
- - ruby_2_7
# We want to be notified when something happens.
notifications:
@@ -281,10 +539,11 @@ notifications:
template:
- "%{message} by @%{author}: See %{build_url}"
- webhooks:
- urls:
- - secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk= # ruby-lang slack: ruby/simpler-alerts-bot (travis)
- on_success: never
+ slack:
+ rooms:
+ - secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:<token>#alerts
+ on_pull_requests: false
+ on_success: change
on_failure: always
email:
diff --git a/BSDL b/BSDL
index 66d93598aa..a009caefea 100644
--- a/BSDL
+++ b/BSDL
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
+notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
diff --git a/LEGAL b/LEGAL
index 2a7964e771..565c4c9cde 100644
--- a/LEGAL
+++ b/LEGAL
@@ -7,118 +7,92 @@ All the files in this distribution are covered under either the Ruby's
license (see the file COPYING) or public-domain except some files
mentioned below.
-[addr2line.c]
+ccan/build_assert/build_assert.h::
+ccan/check_type/check_type.h::
+ccan/container_of/container_of.h::
+ccan/str/str.h::
- A part of this file is from FreeBSD.
+ These files are licensed under the CC0.
>>>
- Copyright (c) 1986, 1988, 1991, 1993::
- The Regents of the University of California. All rights reserved.
+ https://creativecommons.org/choose/zero/
- (c) UNIX System Laboratories, Inc.
+ccan/list/list.h::
- All or some portions of this file are derived from material licensed
- to the University of California by American Telephone and Telegraph
- Co. or Unix System Laboratories, Inc. and are reproduced herein with
- the permission of UNIX System Laboratories, Inc.
+ This file is licensed under the MIT License.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
+ >>>
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
- @(#)subr_prf.c 8.3 (Berkeley) 1/21/94
-
-
-[ccan/build_assert/build_assert.h]
-[ccan/check_type/check_type.h]
-[ccan/container_of/container_of.h]
-[ccan/str/str.h]
-
- These files are licensed under the {CC0}[https://creativecommons.org/choose/zero/].
-
-[ccan/list/list.h]
-
- This file is licensed under the {MIT License}[rdoc-label:label-MIT+License].
-
-[coroutine]
-
- Unless otherwise specified, these files are licensed under the
- {MIT License}[rdoc-label:label-MIT+License].
-
-[include/ruby/onigmo.h]
-[include/ruby/oniguruma.h]
-[regcomp.c]
-[regenc.c]
-[regenc.h]
-[regerror.c]
-[regexec.c]
-[regint.h]
-[regparse.c]
-[regparse.h]
-[enc/ascii.c]
-[enc/big5.c]
-[enc/cp949.c]
-[enc/emacs_mule.c]
-[enc/encdb.c]
-[enc/euc_jp.c]
-[enc/euc_kr.c]
-[enc/euc_tw.c]
-[enc/gb18030.c]
-[enc/gb2312.c]
-[enc/gbk.c]
-[enc/iso_8859_1.c]
-[enc/iso_8859_10.c]
-[enc/iso_8859_11.c]
-[enc/iso_8859_13.c]
-[enc/iso_8859_14.c]
-[enc/iso_8859_15.c]
-[enc/iso_8859_16.c]
-[enc/iso_8859_2.c]
-[enc/iso_8859_3.c]
-[enc/iso_8859_4.c]
-[enc/iso_8859_5.c]
-[enc/iso_8859_6.c]
-[enc/iso_8859_7.c]
-[enc/iso_8859_8.c]
-[enc/iso_8859_9.c]
-[enc/koi8_r.c]
-[enc/koi8_u.c]
-[enc/shift_jis.c]
-[enc/unicode.c]
-[enc/us_ascii.c]
-[enc/utf_16be.c]
-[enc/utf_16le.c]
-[enc/utf_32be.c]
-[enc/utf_32le.c]
-[enc/utf_8.c]
-[enc/windows_1251.c]
-[enc/windows_31j.c]
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+include/ruby/onigmo.h::
+include/ruby/oniguruma.h::
+regcomp.c::
+regenc.c::
+regenc.h::
+regerror.c::
+regexec.c::
+regint.h::
+regparse.c::
+regparse.h::
+enc/ascii.c::
+enc/big5.c::
+enc/cp949.c::
+enc/emacs_mule.c::
+enc/encdb.c::
+enc/euc_jp.c::
+enc/euc_kr.c::
+enc/euc_tw.c::
+enc/gb18030.c::
+enc/gb2312.c::
+enc/gbk.c::
+enc/iso_8859_1.c::
+enc/iso_8859_10.c::
+enc/iso_8859_11.c::
+enc/iso_8859_13.c::
+enc/iso_8859_14.c::
+enc/iso_8859_15.c::
+enc/iso_8859_16.c::
+enc/iso_8859_2.c::
+enc/iso_8859_3.c::
+enc/iso_8859_4.c::
+enc/iso_8859_5.c::
+enc/iso_8859_6.c::
+enc/iso_8859_7.c::
+enc/iso_8859_8.c::
+enc/iso_8859_9.c::
+enc/koi8_r.c::
+enc/koi8_u.c::
+enc/shift_jis.c::
+enc/unicode.c::
+enc/us_ascii.c::
+enc/utf_16be.c::
+enc/utf_16le.c::
+enc/utf_32be.c::
+enc/utf_32le.c::
+enc/utf_8.c::
+enc/windows_1251.c::
Onigmo (Oniguruma-mod) LICENSE
>>>
- Copyright (c) 2002-2009:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- Copyright (c) 2011-2014:: K.Takata <kentkt AT csc DOT jp>
+ Copyright (c) 2002-2009 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
+ Copyright (c) 2011-2014 K.Takata <kentkt AT csc DOT jp>
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -145,7 +119,7 @@ mentioned below.
Oniguruma LICENSE
>>>
- Copyright (c) 2002-2009:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
+ Copyright (c) 2002-2009 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -176,69 +150,10 @@ mentioned below.
When this software is partly used or it is distributed with Ruby,
this of Ruby follows the license of Ruby.
-[enc/windows_1250.c]
-[enc/windows_1252.c]
-
- >>>
- Copyright (c) 2006-2007:: Byte <byte AT mail DOT kna DOT ru>
- K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[enc/cesu_8.c]
-[enc/windows_1253.c]
-[enc/windows_1254.c]
-[enc/windows_1257.c]
-
- >>>
- Copyright (c) 2002-2007:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[enc/trans/GB/GB12345%UCS.src]
-[enc/trans/GB/UCS%GB12345.src]
-[enc/trans/GB/GB2312%UCS.src]
-[enc/trans/GB/UCS%GB2312.src]
+enc/trans/GB/GB12345%UCS.src::
+enc/trans/GB/UCS%GB12345.src::
+enc/trans/GB/GB2312%UCS.src::
+enc/trans/GB/UCS%GB2312.src::
These files have this explanatory texts.
@@ -250,12 +165,12 @@ mentioned below.
files for any particular purpose, and has ceased to publish the files many
years ago.
-[enc/trans/JIS/JISX0201-KANA%UCS.src]
-[enc/trans/JIS/JISX0208\@1990%UCS.src]
-[enc/trans/JIS/JISX0212%UCS.src]
-[enc/trans/JIS/UCS%JISX0201-KANA.src]
-[enc/trans/JIS/UCS%JISX0208@1990.src]
-[enc/trans/JIS/UCS%JISX0212.src]
+enc/trans/JIS/JISX0201-KANA%UCS.src::
+enc/trans/JIS/JISX0208\@1990%UCS.src::
+enc/trans/JIS/JISX0212%UCS.src::
+enc/trans/JIS/UCS%JISX0201-KANA.src::
+enc/trans/JIS/UCS%JISX0208@1990.src::
+enc/trans/JIS/UCS%JISX0212.src::
These files are copyrighted as the following.
@@ -264,75 +179,49 @@ mentioned below.
For terms of use, see http://www.unicode.org/terms_of_use.html
-[enc/trans/JIS/JISX0213-1%UCS@BMP.src]
-[enc/trans/JIS/JISX0213-1%UCS@SIP.src]
-[enc/trans/JIS/JISX0213-2%UCS@BMP.src]
-[enc/trans/JIS/JISX0213-2%UCS@SIP.src]
+enc/trans/JIS/JISX0213-1%UCS@BMP.src::
+enc/trans/JIS/JISX0213-1%UCS@SIP.src::
+enc/trans/JIS/JISX0213-2%UCS@BMP.src::
+enc/trans/JIS/JISX0213-2%UCS@SIP.src::
These files are copyrighted as the following.
>>>
- Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.
- Copyright (C) 2001:: I'O, All Rights Reserved.
- Copyright (C) 2006:: Project X0213, All Rights Reserved.
+ Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.
+ Copyright (C) 2001 I'O, All Rights Reserved.
+ Copyright (C) 2006 Project X0213, All Rights Reserved.
You can use, modify, distribute this table freely.
-[enc/trans/JIS/UCS@BMP%JISX0213-1.src]
-[enc/trans/JIS/UCS@BMP%JISX0213-2.src]
-[enc/trans/JIS/UCS@SIP%JISX0213-1.src]
-[enc/trans/JIS/UCS@SIP%JISX0213-2.src]
+enc/trans/JIS/UCS@BMP%JISX0213-1.src::
+enc/trans/JIS/UCS@BMP%JISX0213-2.src::
+enc/trans/JIS/UCS@SIP%JISX0213-1.src::
+enc/trans/JIS/UCS@SIP%JISX0213-2.src::
These files are copyrighted as the following.
>>>
- Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.
- Copyright (C) 2001:: I'O, All Rights Reserved.
+ Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.
+ Copyright (C) 2001 I'O, All Rights Reserved.
You can use, modify, distribute this table freely.
-[enc/trans/ucm/glibc-BIG5-2.3.3.ucm]
-[enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm]
-
- >>>
- Copyright (C) 2001-2005:: International Business Machines
- Corporation and others. All Rights Reserved.
-
-[enc/trans/ucm/windows-950-2000.ucm]
-[enc/trans/ucm/windows-950_hkscs-2001.ucm]
-
- >>>
- Copyright (C) 2001-2002:: International Business Machines
- Corporation and others. All Rights Reserved.
-
-
-[configure]
+configure::
This file is free software.
>>>
- Copyright (C) 1992-1996, 1998-2012:: Free Software Foundation, Inc.
+ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
-[aclocal.m4]
-
- This file is free software.
-
- >>>
- Copyright (C) 1996-2020:: Free Software Foundation, Inc.
-
- This file is free software; the Free Software Foundation
- gives unlimited permission to copy and/or distribute it,
- with or without modifications, as long as this notice is preserved.
-
-[tool/config.guess]
-[tool/config.sub]
+tool/config.guess::
+tool/config.sub::
As long as you distribute these files with the file configure, they
are covered under the Ruby's license.
>>>
- Copyright 1992-2018:: Free Software Foundation, Inc.
+ Copyright 1992-2018 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
@@ -354,15 +243,14 @@ mentioned below.
program. This Exception is an additional permission under section 7
of the GNU General Public License, version 3 ("GPLv3").
-[parse.c]
-[parse.h]
+parse.c::
- These files are licensed under the GPL, but are incorporated into Ruby and
+ This file is licensed under the GPL, but is incorporated into Ruby and
redistributed under the terms of the Ruby license, as permitted by the
exception to the GPL below.
>>>
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018:: Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -390,12 +278,12 @@ mentioned below.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison.
-[missing/dtoa.c]
+missing/dtoa.c::
This file is under these licenses.
>>>
- Copyright (c) 1991, 2000, 2001:: by Lucent Technologies.
+ Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
Permission to use, copy, modify, and distribute this software for any
purpose without fee is hereby granted, provided that this entire notice
@@ -409,8 +297,8 @@ mentioned below.
OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
>>>
- Copyright (c) 2004-2008:: David Schultz <das@FreeBSD.ORG>
- All rights reserved.
+ Copyright (c) 2004-2008 David Schultz <das@FreeBSD.ORG>
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -433,24 +321,23 @@ mentioned below.
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-[win32/win32.c]
-[include/ruby/win32.h]
+win32/win32.{c,h}::
You can apply the Artistic License to these files. (or GPL,
alternatively)
>>>
- Copyright (c) 1993:: Intergraph Corporation
+ Copyright (c) 1993, Intergraph Corporation
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the perl README file.
-[missing/mt19937.c]
+missing/mt19937.c::
This file is under the new-style BSD license.
>>>
- A C-program for MT19937, with initialization improved 2002/2/10.::
+ A C-program for MT19937, with initialization improved 2002/2/10.
Coded by Takuji Nishimura and Makoto Matsumoto.
This is a faster version by taking Shawn Cokus's optimization,
Matthe Bellew's simplification, Isaku Wada's real version.
@@ -458,8 +345,8 @@ mentioned below.
Before using, initialize the state by using init_genrand(seed)
or init_by_array(init_key, key_length).
- Copyright (C) 1997 - 2002:: Makoto Matsumoto and Takuji Nishimura,
- All rights reserved.
+ Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -495,13 +382,13 @@ mentioned below.
The Wayback Machine url: http://web.archive.org/web/19990429082237/http://www.math.keio.ac.jp/matumoto/emt.html
-[missing/procstat_vm.c]
+missing/procstat_vm.c::
This file is under the new-style BSD license.
>>>
- Copyright (c) 2007:: Robert N. M. Watson
- All rights reserved.
+ Copyright (c) 2007 Robert N. M. Watson
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -526,69 +413,151 @@ mentioned below.
$FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $
-[vsnprintf.c]
+vsnprintf.c::
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
+ This file is under the old-style BSD license. Note that the
+ paragraph 3 below is now null and void.
>>>
- Copyright (c) 1990, 1993::
+ Copyright (c) 1990, 1993
The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by
Chris Torek.
-[st.c]
-[strftime.c]
-[include/ruby/st.h]
-[missing/acosh.c]
-[missing/alloca.c]
-[missing/dup2.c]
-[missing/erf.c]
-[missing/finite.c]
-[missing/hypot.c]
-[missing/isinf.c]
-[missing/isnan.c]
-[missing/lgamma_r.c]
-[missing/memcmp.c]
-[missing/memmove.c]
-[missing/strchr.c]
-[missing/strerror.c]
-[missing/strstr.c]
-[missing/tgamma.c]
-[ext/date/date_strftime.c]
-[ext/digest/sha1/sha1.c]
-[ext/digest/sha1/sha1.h]
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+ IMPORTANT NOTE:
+ --------------
+ From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+ paragraph 3 above is now null and void.
+
+st.c::
+strftime.c::
+include/ruby/st.h::
+missing/acosh.c::
+missing/alloca.c::
+missing/dup2.c::
+missing/erf.c::
+missing/finite.c::
+missing/hypot.c::
+missing/isinf.c::
+missing/isnan.c::
+missing/lgamma_r.c::
+missing/memcmp.c::
+missing/memmove.c::
+missing/strchr.c::
+missing/strerror.c::
+missing/strstr.c::
+missing/tgamma.c::
+ext/date/date_strftime.c::
+ext/digest/sha1/sha1.c::
+ext/digest/sha1/sha1.h::
+ext/sdbm/_sdbm.c::
+ext/sdbm/sdbm.h::
These files are all under public domain.
-[missing/crypt.c]
+missing/crypt.c::
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
+ This file is under the old-style BSD license. Note that the
+ paragraph 3 below is now null and void.
>>>
- Copyright (c) 1989, 1993::
+ Copyright (c) 1989, 1993
The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by
Tom Truscott.
-[missing/setproctitle.c]
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+missing/setproctitle.c::
+
+ This file is under the old-style BSD license. Note that the
+ paragraph 3 below is now null and void.
>>>
- Copyright 2003:: Damien Miller
- Copyright (c) 1983, 1995-1997:: Eric P. Allman
- Copyright (c) 1988, 1993::
+ Copyright 2003 Damien Miller
+ Copyright (c) 1983, 1995-1997 Eric P. Allman
+ Copyright (c) 1988, 1993
The Regents of the University of California. All rights reserved.
-[missing/strlcat.c]
-[missing/strlcpy.c]
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+missing/strlcat.c::
+missing/strlcpy.c::
These files are under an ISC-style license.
>>>
- Copyright (c) 1998, 2015:: Todd C. Miller <Todd.Miller@courtesan.com>
+ Copyright (c) 1998, 2015 Todd C. Miller <Todd.Miller@courtesan.com>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -602,26 +571,26 @@ mentioned below.
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-[missing/langinfo.c]
+missing/langinfo.c::
This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.
Ruby uses a modified version. The file contains the following
author/copyright notice:
>>>
- Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11::
+ Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11
Permission to use, copy, modify, and distribute this software
for any purpose and without fee is hereby granted. The author
disclaims all warranties with regard to this software.
-[ext/digest/md5/md5.c]
-[ext/digest/md5/md5.h]
+ext/digest/md5/md5.c::
+ext/digest/md5/md5.h::
These files are under the following license. Ruby uses modified
versions of them.
>>>
- Copyright (C) 1999, 2000:: Aladdin Enterprises. All rights reserved.
+ Copyright (C) 1999, 2000 Aladdin Enterprises. All rights reserved.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -642,8 +611,8 @@ mentioned below.
L. Peter Deutsch
ghost@aladdin.com
-[ext/digest/rmd160/rmd160.c]
-[ext/digest/rmd160/rmd160.h]
+ext/digest/rmd160/rmd160.c::
+ext/digest/rmd160/rmd160.h::
These files have the following copyright information, and by the
author we are allowed to use it under the new-style BSD license.
@@ -653,16 +622,16 @@ mentioned below.
(Arranged for libc by Todd C. Miller)
DATE:: 1 March 1996
- Copyright (c):: Katholieke Universiteit Leuven
+ Copyright (c) Katholieke Universiteit Leuven
1996, All Rights Reserved
-[ext/digest/sha2/sha2.c]
-[ext/digest/sha2/sha2.h]
+ext/digest/sha2/sha2.c::
+ext/digest/sha2/sha2.h::
These files are under the new-style BSD license.
>>>
- Copyright 2000:: Aaron D. Gifford. All rights reserved.
+ Copyright 2000 Aaron D. Gifford. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -688,12 +657,12 @@ mentioned below.
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-[ext/json/generator/generator.c]
+ext/json/generator/generator.c::
The file contains the following copyright notice.
>>>
- Copyright 2001-2004:: Unicode, Inc.
+ Copyright 2001-2004 Unicode, Inc.
Disclaimer::
@@ -713,15 +682,15 @@ mentioned below.
for internal or external distribution as long as this notice
remains attached.
-[ext/nkf/nkf-utf8/config.h]
-[ext/nkf/nkf-utf8/nkf.c]
-[ext/nkf/nkf-utf8/utf8tbl.c]
+ext/nkf/nkf-utf8/config.h::
+ext/nkf/nkf-utf8/nkf.c::
+ext/nkf/nkf-utf8/utf8tbl.c::
These files are under the following license. So to speak, it is
copyrighted semi-public-domain software.
>>>
- Copyright (C) 1987:: Fujitsu LTD. (Itaru ICHIKAWA)
+ Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
Everyone is permitted to do anything on this program
including copying, modifying, improving,
@@ -731,14 +700,14 @@ mentioned below.
You don't have to ask before copying, redistribution or publishing.
THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.
-[ext/psych]
-[test/psych]
+ext/psych::
+test/psych::
The files under these directories are under the following license, except for
ext/psych/yaml.
>>>
- Copyright 2009:: Aaron Patterson, et al.
+ Copyright 2009 Aaron Patterson, et al.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the 'Software'), to deal in
@@ -758,12 +727,12 @@ mentioned below.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-[ext/psych/yaml]
+ext/psych/yaml::
The files under this directory are under the following license.
>>>
- Copyright (c) 2006:: Kirill Simonov
+ Copyright (c) 2006 Kirill Simonov
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
@@ -783,28 +752,14 @@ mentioned below.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-[ext/pty/pty.c]
-
- >>>
- C) Copyright 1998:: by Akinori Ito.
-
- This software may be redistributed freely for this purpose, in full
- or in part, provided that this entire copyright notice is included
- on any copies of this software and applications and derivations thereof.
-
- This software is provided on an "as is" basis, without warranty of any
- kind, either expressed or implied, as to any matter including, but not
- limited to warranty of fitness of purpose, or merchantability, or
- results obtained from use of this software.
-
-[ext/socket/addrinfo.h]
-[ext/socket/getaddrinfo.c]
-[ext/socket/getnameinfo.c]
+ext/socket/addrinfo.h::
+ext/socket/getaddrinfo.c::
+ext/socket/getnameinfo.c::
These files are under the new-style BSD license.
>>>
- Copyright (C) 1995, 1996, 1997, 1998, and 1999:: WIDE Project.
+ Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -831,16 +786,16 @@ mentioned below.
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-[ext/win32ole/win32ole.c]
+ext/win32ole/win32ole.c::
You can apply the Artistic License to this file. (or GPL,
alternatively)
>>>
- (c) 1995:: Microsoft Corporation. All rights reserved.
+ (c) 1995 Microsoft Corporation. All rights reserved.
Developed by ActiveWare Internet Corp., http://www.ActiveWare.com
- Other modifications Copyright (c) 1997, 1998:: by Gurusamy Sarathy
+ Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy
<gsar@umich.edu> and Jan Dubois <jan.dubois@ibm.net>
You may distribute under the terms of either the GNU General Public
@@ -849,17 +804,20 @@ mentioned below.
The Wayback Machine url: http://web.archive.org/web/19970607104352/http://www.activeware.com:80/
-[lib/rdoc/generator/template/darkfish/css/fonts.css]
+lib/rdoc/generator/template/darkfish/css/fonts.css::
+
+ This file is licensed under the SIL Open Font License.
- This file is licensed under the {SIL Open Font License}[http://scripts.sil.org/OFL].
+ >>>
+ http://scripts.sil.org/OFL
-[spec/mspec]
-[spec/ruby]
+spec/mspec::
+spec/ruby::
The files under these directories are under the following license.
>>>
- Copyright (c) 2008:: Engine Yard, Inc. All rights reserved.
+ Copyright (c) 2008 Engine Yard, Inc. All rights reserved.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@@ -882,17 +840,17 @@ mentioned below.
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
-[lib/rubygems.rb]
-[lib/rubygems]
-[test/rubygems]
+lib/rubygems.rb::
+lib/rubygems::
+test/rubygems::
RubyGems is under the following license.
>>>
RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
Weirich and others. You can redistribute it and/or modify it under
- either the terms of the {MIT license}[rdoc-label:label-MIT+License], or the conditions
- below:
+ either the terms of the MIT license (see the file MIT.txt), or the
+ conditions below:
1. You may make and give away verbatim copies of the source form of the
software without restriction, provided that you duplicate all of the
@@ -943,63 +901,20 @@ mentioned below.
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
-[lib/bundler]
-[lib/bundler.rb]
-[lib/bundler.gemspec]
-[spec/bundler]
-[man/bundle-*,gemfile.*]
+lib/bundler::
+lib/bundler.rb::
+lib/bundler.gemspec::
+spec/bundler::
+man/bundle-*,gemfile.*::
Bundler is under the following license.
>>>
- Portions copyright (c) 2010:: Andre Arko
- Portions copyright (c) 2009:: Engine Yard
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/did_you_mean]
-[lib/did_you_mean.rb]
-[test/did_you_mean]
+ Portions copyright (c) 2010 Andre Arko
+ Portions copyright (c) 2009 Engine Yard
- did_you_mean is under the following license.
+ MIT License::
- >>>
- Copyright (c) 2014-2016 Yuki Nishijima
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[benchmark/so_ackermann.rb]
-[benchmark/so_array.rb]
-[benchmark/so_binary_trees.rb]
-[benchmark/so_concatenate.rb]
-[benchmark/so_count_words.yml]
-[benchmark/so_exception.rb]
-[benchmark/so_fannkuch.rb]
-[benchmark/so_fasta.rb]
-[benchmark/so_k_nucleotide.yml]
-[benchmark/so_lists.rb]
-[benchmark/so_mandelbrot.rb]
-[benchmark/so_matrix.rb]
-[benchmark/so_meteor_contest.rb]
-[benchmark/so_nbody.rb]
-[benchmark/so_nested_loop.rb]
-[benchmark/so_nsieve.rb]
-[benchmark/so_nsieve_bits.rb]
-[benchmark/so_object.rb]
-[benchmark/so_partial_sums.rb]
-[benchmark/so_pidigits.rb]
-[benchmark/so_random.rb]
-[benchmark/so_reverse_complement.yml]
-[benchmark/so_sieve.rb]
-[benchmark/so_spectralnorm.rb]
-
- These files are very old copy of then-called "The Great Computer Language
- Shootout". LEGAL SITUATION OF THESE FILES ARE UNCLEAR because the original
- site has been lost. Upstream diverged to delete several benchmarks listed
- above.
-
-== MIT License
->>>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
@@ -1018,34 +933,3 @@ mentioned below.
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-== Old-style BSD license
->>>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- IMPORTANT NOTE::
-
- From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
- paragraph 3 above is now null and void.
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000000..e1adb5115d
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,826 @@
+# -*- rdoc -*-
+
+= NEWS for Ruby 2.7.0
+
+This document is a list of user visible feature changes made between
+releases except for bug fixes.
+
+Note that each entry is kept so brief that no reason behind or reference
+information is supplied with. For a full list of changes with all
+sufficient information, see the ChangeLog file or Redmine
+(e.g. <tt>https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER</tt>).
+
+== Changes since the 2.6.0 release
+
+=== Language changes
+
+==== Pattern matching
+
+* Pattern matching is introduced as an experimental feature. [Feature #14912]
+
+ case [0, [1, 2, 3]]
+ in [a, [b, *c]]
+ p a #=> 0
+ p b #=> 1
+ p c #=> [2, 3]
+ end
+
+ case {a: 0, b: 1}
+ in {a: 0, x: 1}
+ :unreachable
+ in {a: 0, b: var}
+ p var #=> 1
+ end
+
+ case -1
+ in 0 then :unreachable
+ in 1 then :unreachable
+ end #=> NoMatchingPatternError
+
+ json = <<END
+ {
+ "name": "Alice",
+ "age": 30,
+ "children": [{ "name": "Bob", "age": 2 }]
+ }
+ END
+
+ JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: name, age: age}]}
+
+ p name #=> "Bob"
+ p age #=> 2
+
+ JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: "Charlie", age: age}]}
+ #=> NoMatchingPatternError
+
+* See the following slides for more details:
+ * https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7
+ * Note that the slides are slightly obsolete.
+
+* The warning against pattern matching can be suppressed with
+ {-W:no-experimental option}[#label-Warning+option].
+
+==== The spec of keyword arguments is changed towards 3.0
+
+* Automatic conversion of keyword arguments and positional arguments is
+ deprecated, and conversion will be removed in Ruby 3. [Feature #14183]
+
+ * When a method call passes a Hash at the last argument, and when it
+ passes no keywords, and when the called method accepts keywords,
+ a warning is emitted. To continue treating the hash as keywords,
+ add a double splat operator to avoid the warning and ensure
+ correct behavior in Ruby 3.
+
+ def foo(key: 42); end; foo({key: 42}) # warned
+ def foo(**kw); end; foo({key: 42}) # warned
+ def foo(key: 42); end; foo(**{key: 42}) # OK
+ def foo(**kw); end; foo(**{key: 42}) # OK
+
+ * When a method call passes keywords to a method that accepts keywords,
+ but it does not pass enough required positional arguments, the
+ keywords are treated as a final required positional argument, and a
+ warning is emitted. Pass the argument as a hash instead of keywords
+ to avoid the warning and ensure correct behavior in Ruby 3.
+
+ def foo(h, **kw); end; foo(key: 42) # warned
+ def foo(h, key: 42); end; foo(key: 42) # warned
+ def foo(h, **kw); end; foo({key: 42}) # OK
+ def foo(h, key: 42); end; foo({key: 42}) # OK
+
+ * When a method accepts specific keywords but not a keyword splat, and
+ a hash or keywords splat is passed to the method that includes both
+ Symbol and non-Symbol keys, the hash will continue to be split, and
+ a warning will be emitted. You will need to update the calling code
+ to pass separate hashes to ensure correct behavior in Ruby 3.
+
+ def foo(h={}, key: 42); end; foo("key" => 43, key: 42) # warned
+ def foo(h={}, key: 42); end; foo({"key" => 43, key: 42}) # warned
+ def foo(h={}, key: 42); end; foo({"key" => 43}, key: 42) # OK
+
+ * If a method does not accept keywords, and is called with keywords,
+ the keywords are still treated as a positional hash, with no warning.
+ This behavior will continue to work in Ruby 3.
+
+ def foo(opt={}); end; foo( key: 42 ) # OK
+
+* Non-symbols are allowed as keyword argument keys if the method accepts
+ arbitrary keywords. [Feature #14183]
+
+ * Non-Symbol keys in a keyword arguments hash were prohibited in 2.6.0,
+ but are now allowed again. [Bug #15658]
+
+ def foo(**kw); p kw; end; foo("str" => 1) #=> {"str"=>1}
+
+* <code>**nil</code> is allowed in method definitions to explicitly mark
+ that the method accepts no keywords. Calling such a method with keywords
+ will result in an ArgumentError. [Feature #14183]
+
+ def foo(h, **nil); end; foo(key: 1) # ArgumentError
+ def foo(h, **nil); end; foo(**{key: 1}) # ArgumentError
+ def foo(h, **nil); end; foo("str" => 1) # ArgumentError
+ def foo(h, **nil); end; foo({key: 1}) # OK
+ def foo(h, **nil); end; foo({"str" => 1}) # OK
+
+* Passing an empty keyword splat to a method that does not accept keywords
+ no longer passes an empty hash, unless the empty hash is necessary for
+ a required parameter, in which case a warning will be emitted. Remove
+ the double splat to continue passing a positional hash. [Feature #14183]
+
+ h = {}; def foo(*a) a end; foo(**h) # []
+ h = {}; def foo(a) a end; foo(**h) # {} and warning
+ h = {}; def foo(*a) a end; foo(h) # [{}]
+ h = {}; def foo(a) a end; foo(h) # {}
+
+* Above warnings can be suppressed also with {-W:no-deprecated option}[#label-Warning+option].
+
+==== Numbered parameters
+
+* Numbered parameters as default block parameters are introduced.
+ [Feature #4475]
+
+ [1, 2, 10].map { _1.to_s(16) } #=> ["1", "2", "a"]
+ [[1, 2], [3, 4]].map { _1 + _2 } #=> [3, 7]
+
+ You can still define a local variable named +_1+ and so on,
+ and that is honored when present, but renders a warning.
+
+ _1 = 0 #=> warning: `_1' is reserved for numbered parameter; consider another name
+ [1].each { p _1 } # prints 0 instead of 1
+
+==== proc/lambda without block is deprecated
+
+* Proc.new and Kernel#proc with no block in a method called with a block is
+ warned now.
+
+ def foo
+ proc
+ end
+ foo { puts "Hello" } #=> warning: Capturing the given block using Kernel#proc is deprecated; use `&block` instead
+
+ This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
+
+* Kernel#lambda with no block in a method called with a block raises an exception.
+
+ def bar
+ lambda
+ end
+ bar { puts "Hello" } #=> tried to create Proc object without a block (ArgumentError)
+
+==== Other miscellaneous changes
+
+* A beginless range is experimentally introduced. It might be useful
+ in +case+, new call-sequence of the <code>Comparable#clamp</code>,
+ constants and DSLs. [Feature #14799]
+
+ ary[..3] # identical to ary[0..3]
+
+ case RUBY_VERSION
+ when ..."2.4" then puts "EOL"
+ # ...
+ end
+
+ age.clamp(..100)
+
+ where(sales: ..100)
+
+* Setting <code>$;</code> to a non-nil value is warned now. [Feature #14240]
+ Use of it in String#split is warned too.
+ This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
+
+* Setting <code>$,</code> to a non-nil value is warned now. [Feature #14240]
+ Use of it in Array#join is warned too.
+ This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
+
+* Quoted here-document identifiers must end within the same line.
+
+ <<"EOS
+ " # This had been warned since 2.4; Now it raises a SyntaxError
+ EOS
+
+* The flip-flop syntax deprecation is reverted. [Feature #5400]
+
+* Comment lines can be placed between fluent dot now.
+
+ foo
+ # .bar
+ .baz # => foo.baz
+
+* Calling a private method with a literal +self+ as the receiver
+ is now allowed. [Feature #11297] [Feature #16123]
+
+* Modifier rescue now operates the same for multiple assignment as single
+ assignment. [Bug #8279]
+
+ a, b = raise rescue [1, 2]
+ # Previously parsed as: (a, b = raise) rescue [1, 2]
+ # Now parsed as: a, b = (raise rescue [1, 2])
+
+* +yield+ in singleton class syntax is warned and will be deprecated later. [Feature #15575].
+
+ def foo
+ class << Object.new
+ yield #=> warning: `yield' in class syntax will not be supported from Ruby 3.0. [Feature #15575]
+ end
+ end
+ foo { p :ok }
+
+ This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
+
+* Argument forwarding by <code>(...)</code> is introduced. [Feature #16253]
+
+ def foo(...)
+ bar(...)
+ end
+
+ All arguments to +foo+ are forwarded to +bar+, including keyword and
+ block arguments.
+ Note that the parentheses are mandatory. <code>bar ...</code> is parsed
+ as an endless range.
+
+* Access and setting of <code>$SAFE</code> is now always warned. <code>$SAFE</code>
+ will become a normal global variable in Ruby 3.0. [Feature #16131]
+
+* <code>Object#{taint,untaint,trust,untrust}</code> and related functions in the C-API
+ no longer have an effect (all objects are always considered untainted), and are now
+ warned in verbose mode. This warning will be disabled even in non-verbose mode in
+ Ruby 3.0, and the methods and C functions will be removed in Ruby 3.2. [Feature #16131]
+
+* Refinements take place at Object#method and Module#instance_method. [Feature #15373]
+
+=== Command line options
+
+==== Warning option
+
+The +-W+ option has been extended with a following +:+, to manage categorized
+warnings. [Feature #16345] [Feature #16420]
+
+* To suppress deprecation warnings:
+
+ $ ruby -e '$; = ""'
+ -e:1: warning: `$;' is deprecated
+
+ $ ruby -W:no-deprecated -e '$; = //'
+
+* It works with the +RUBYOPT+ environment variable:
+
+ $ RUBYOPT=-W:no-deprecated ruby -e '$; = //'
+
+* To suppress experimental feature warnings:
+
+ $ ruby -e '0 in a'
+ -e:1: warning: Pattern matching is experimental, and the behavior may change in future versions of Ruby!
+
+ $ ruby -W:no-experimental -e '0 in a'
+
+* To suppress both by using +RUBYOPT+, set space separated values:
+
+ $ RUBYOPT='-W:no-deprecated -W:no-experimental' ruby -e '($; = "") in a'
+
+See also Warning in {Core classes updates}[#label-Core+classes+updates+-28outstanding+ones+only-29].
+
+=== Core classes updates (outstanding ones only)
+
+Array::
+
+ New methods::
+
+ * Added Array#intersection. [Feature #16155]
+
+ * Added Array#minmax, with a faster implementation than Enumerable#minmax. [Bug #15929]
+
+Comparable::
+
+ Modified method::
+
+ * Comparable#clamp now accepts a Range argument. [Feature #14784]
+
+ -1.clamp(0..2) #=> 0
+ 1.clamp(0..2) #=> 1
+ 3.clamp(0..2) #=> 2
+ # With beginless and endless ranges:
+ -1.clamp(0..) #=> 0
+ 3.clamp(..2) #=> 2
+
+
+Complex::
+
+ New method::
+
+ * Added Complex#<=>.
+ So <code>0 <=> 0i</code> will not raise NoMethodError. [Bug #15857]
+
+Dir::
+
+ Modified methods::
+
+ * Dir.glob and Dir.[] no longer allow NUL-separated glob pattern.
+ Use Array instead. [Feature #14643]
+
+Encoding::
+
+ New encoding::
+
+ * Added new encoding CESU-8. [Feature #15931]
+
+Enumerable::
+
+ New methods::
+
+ * Added Enumerable#filter_map. [Feature #15323]
+
+ [1, 2, 3].filter_map {|x| x.odd? ? x.to_s : nil } #=> ["1", "3"]
+
+ * Added Enumerable#tally. [Feature #11076]
+
+ ["A", "B", "C", "B", "A"].tally #=> {"A"=>2, "B"=>2, "C"=>1}
+
+Enumerator::
+
+ New methods::
+
+ * Added Enumerator.produce to generate an Enumerator from any custom
+ data transformation. [Feature #14781]
+
+ require "date"
+ dates = Enumerator.produce(Date.today, &:succ) #=> infinite sequence of dates
+ dates.detect(&:tuesday?) #=> next Tuesday
+
+ * Added Enumerator::Lazy#eager that generates a non-lazy enumerator
+ from a lazy enumerator. [Feature #15901]
+
+ a = %w(foo bar baz)
+ e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.eager
+ p e.class #=> Enumerator
+ p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]
+
+ * Added Enumerator::Yielder#to_proc so that a Yielder object
+ can be directly passed to another method as a block
+ argument. [Feature #15618]
+
+Fiber::
+
+ New method::
+
+ * Added Fiber#raise that behaves like Fiber#resume but raises an
+ exception on the resumed fiber. [Feature #10344]
+
+File::
+
+ Modified method::
+
+ * File.extname now returns a dot string for names ending with a dot on
+ non-Windows platforms. [Bug #15267]
+
+ File.extname("foo.") #=> "."
+
+FrozenError::
+
+ New method::
+
+ * Added FrozenError#receiver to return the frozen object on which
+ modification was attempted. To set this object when raising
+ FrozenError in Ruby code, FrozenError.new accepts a +:receiver+
+ option. [Feature #15751]
+
+GC::
+
+ New method::
+
+ * Added GC.compact method for compacting the heap.
+ This function compacts live objects in the heap so that fewer pages may
+ be used, and the heap may be more CoW (copy-on-write) friendly. [Feature #15626]
+
+ Details on the algorithm and caveats can be found here:
+ https://bugs.ruby-lang.org/issues/15626
+
+IO::
+
+ New method::
+
+ * Added IO#set_encoding_by_bom to check the BOM and set the external
+ encoding. [Bug #15210]
+
+Integer::
+
+ Modified method::
+
+ * Integer#[] now supports range operations. [Feature #8842]
+
+ 0b01001101[2, 4] #=> 0b0011
+ 0b01001100[2..5] #=> 0b0011
+ 0b01001100[2...6] #=> 0b0011
+ # ^^^^
+
+Method::
+
+ Modified method::
+
+ * Method#inspect shows more information. [Feature #14145]
+
+Module::
+
+ New methods::
+
+ * Added Module#const_source_location to retrieve the location where a
+ constant is defined. [Feature #10771]
+
+ * Added Module#ruby2_keywords for marking a method as passing keyword
+ arguments through a regular argument splat, useful when delegating
+ all arguments to another method in a way that can be backwards
+ compatible with older Ruby versions. [Bug #16154]
+
+ Modified methods::
+
+ * Module#autoload? now takes an +inherit+ optional argument, like
+ Module#const_defined?. [Feature #15777]
+
+ * Module#name now always returns a frozen String. The returned String is
+ always the same for a given Module. This change is
+ experimental. [Feature #16150]
+
+NilClass / TrueClass / FalseClass::
+
+ Modified methods::
+
+ * NilClass#to_s, TrueClass#to_s, and FalseClass#to_s now always return a
+ frozen String. The returned String is always the same for each of these
+ values. This change is experimental. [Feature #16150]
+
+ObjectSpace::WeakMap::
+
+ Modified method::
+
+ * ObjectSpace::WeakMap#[]= now accepts special objects as either key or
+ values. [Feature #16035]
+
+Proc::
+
+ New method::
+
+ * Added Proc#ruby2_keywords for marking the proc as passing keyword
+ arguments through a regular argument splat, useful when delegating
+ all arguments to another method or proc in a way that can be backwards
+ compatible with older Ruby versions. [Feature #16404]
+
+Range::
+
+ New method::
+
+ * Added Range#minmax, with a faster implementation than Enumerable#minmax.
+ It returns a maximum that now corresponds to Range#max. [Bug #15807]
+
+ Modified method::
+
+ * Range#=== now uses Range#cover? for String arguments, too (in Ruby 2.6, it was
+ changed from Range#include? for all types except strings). [Bug #15449]
+
+
+RubyVM::
+
+ Removed method::
+
+ * +RubyVM.resolve_feature_path+ moved to
+ <code>$LOAD_PATH.resolve_feature_path</code>. [Feature #15903] [Feature #15230]
+
+String::
+
+ Unicode::
+
+ * Update Unicode version and Emoji version from 11.0.0 to
+ 12.0.0. [Feature #15321]
+
+ * Update Unicode version to 12.1.0, adding support for
+ U+32FF SQUARE ERA NAME REIWA. [Feature #15195]
+
+ * Update Unicode Emoji version to 12.1. [Feature #16272]
+
+Symbol::
+
+ New methods::
+
+ * Added Symbol#start_with? and Symbol#end_with? methods. [Feature #16348]
+
+Time::
+
+ New methods::
+
+ * Added Time#ceil method. [Feature #15772]
+
+ * Added Time#floor method. [Feature #15653]
+
+ Modified method::
+
+ * Time#inspect is separated from Time#to_s and it shows
+ the time's sub second. [Feature #15958]
+
+UnboundMethod::
+
+ New method::
+
+ * Added UnboundMethod#bind_call method. [Feature #15955]
+
+ <code>umethod.bind_call(obj, ...)</code> is semantically equivalent
+ to <code>umethod.bind(obj).call(...)</code>. This idiom is used in
+ some libraries to call a method that is overridden. The added
+ method does the same without allocation of an intermediate Method
+ object.
+
+ class Foo
+ def add_1(x)
+ x + 1
+ end
+ end
+ class Bar < Foo
+ def add_1(x) # override
+ x + 2
+ end
+ end
+
+ obj = Bar.new
+ p obj.add_1(1) #=> 3
+ p Foo.instance_method(:add_1).bind(obj).call(1) #=> 2
+ p Foo.instance_method(:add_1).bind_call(obj, 1) #=> 2
+
+Warning::
+
+ New methods::
+
+ * Added Warning.[] and Warning.[]= to manage emitting/suppressing
+ some categories of warnings. [Feature #16345] [Feature #16420]
+
+$LOAD_PATH::
+
+ New method::
+
+ * Added <code>$LOAD_PATH.resolve_feature_path</code>. [Feature #15903] [Feature #15230]
+
+=== Stdlib updates (outstanding ones only)
+
+Bundler::
+
+ * Upgrade to Bundler 2.1.2.
+ See https://github.com/bundler/bundler/releases/tag/v2.1.2
+
+CGI::
+
+ * CGI.escapeHTML becomes 2~5x faster when there is at least one escaped character.
+ See https://github.com/ruby/ruby/pull/2226
+
+CSV::
+
+ * Upgrade to 3.1.2.
+ See https://github.com/ruby/csv/blob/master/NEWS.md.
+
+Date::
+
+ * Date.jisx0301, Date#jisx0301, and Date.parse support the new Japanese
+ era. [Feature #15742]
+
+Delegator::
+
+ * Object#DelegateClass accepts a block and module_evals it in the context
+ of the returned class, similar to Class.new and Struct.new.
+
+ERB::
+
+ * Prohibit marshaling ERB instance.
+
+IRB::
+
+ * Introduce syntax highlighting inspired by the Pry gem to Binding#irb
+ source lines, REPL input, and inspect output of some core-class objects.
+
+ * Introduce multiline editing mode provided by Reline.
+
+ * Show documentation when completion.
+
+ * Enable auto indent and save/load history by default.
+
+JSON::
+
+ * Upgrade to 2.3.0.
+
+Net::FTP::
+
+ * Add Net::FTP#features to check available features, and Net::FTP#option to
+ enable/disable each of them. [Feature #15964]
+
+Net::HTTP::
+
+ * Add +ipaddr+ optional parameter to Net::HTTP#start to replace the address for
+ the TCP/IP connection. [Feature #5180]
+
+Net::IMAP::
+
+ * Add Server Name Indication (SNI) support. [Feature #15594]
+
+open-uri::
+
+ * Warn open-uri's "open" method at Kernel.
+ Use URI.open instead. [Misc #15893]
+
+ * The default charset of "text/*" media type is UTF-8 instead of
+ ISO-8859-1. [Bug #15933]
+
+OptionParser::
+
+ * Now show "Did you mean?" for unknown options. [Feature #16256]
+
+ test.rb:
+
+ require "optparse"
+ OptionParser.new do |opts|
+ opts.on("-f", "--foo", "foo") {|v| }
+ opts.on("-b", "--bar", "bar") {|v| }
+ opts.on("-c", "--baz", "baz") {|v| }
+ end.parse!
+
+ example:
+
+ $ ruby test.rb --baa
+ Traceback (most recent call last):
+ test.rb:7:in `<main>': invalid option: --baa (OptionParser::InvalidOption)
+ Did you mean? baz
+ bar
+
+Pathname::
+
+ * Pathname.glob now delegates 3 arguments to Dir.glob
+ to accept +base+ keyword. [Feature #14405]
+
+Racc::
+
+ * Merge 1.4.15 from upstream repository and added cli of racc.
+
+Reline::
+
+ * New stdlib that is compatible with the readline stdlib but is
+ implemented in pure Ruby. It also provides a multiline editing mode.
+
+REXML::
+
+ * Upgrade to 3.2.3.
+ See https://github.com/ruby/rexml/blob/master/NEWS.md.
+
+RSS::
+
+ * Upgrade to RSS 0.2.8.
+ See https://github.com/ruby/rss/blob/master/NEWS.md.
+
+RubyGems::
+
+ * Upgrade to RubyGems 3.1.2.
+ * https://github.com/rubygems/rubygems/releases/tag/v3.1.0
+ * https://github.com/rubygems/rubygems/releases/tag/v3.1.1
+ * https://github.com/rubygems/rubygems/releases/tag/v3.1.2
+
+StringScanner::
+
+ * Upgrade to 1.0.3.
+ See https://github.com/ruby/strscan/blob/master/NEWS.md.
+
+=== Compatibility issues (excluding feature bug fixes)
+
+* The following libraries are no longer bundled gems.
+ Install corresponding gems to use these features.
+ * CMath (cmath gem)
+ * Scanf (scanf gem)
+ * Shell (shell gem)
+ * Synchronizer (sync gem)
+ * ThreadsWait (thwait gem)
+ * E2MM (e2mmap gem)
+
+Proc::
+ * The Proc#to_s format was changed. [Feature #16101]
+
+Range::
+ * Range#minmax used to iterate on the range to determine the maximum.
+ It now uses the same algorithm as Range#max. In rare cases (e.g.
+ ranges of Floats or Strings), this may yield different results. [Bug #15807]
+
+=== Stdlib compatibility issues (excluding feature bug fixes)
+
+* Promote stdlib to default gems
+ * The following default gems were published on rubygems.org
+ * benchmark
+ * cgi
+ * delegate
+ * getoptlong
+ * net-pop
+ * net-smtp
+ * open3
+ * pstore
+ * readline
+ * readline-ext
+ * singleton
+ * The following default gems were only promoted at ruby-core,
+ but not yet published on rubygems.org.
+ * monitor
+ * observer
+ * timeout
+ * tracer
+ * uri
+ * yaml
+* The <tt>did_you_mean</tt> gem has been promoted up to a default gem from a bundled gem
+
+pathname::
+
+ * Kernel#Pathname when called with a Pathname argument now returns
+ the argument instead of creating a new Pathname. This is more
+ similar to other Kernel methods, but can break code that modifies
+ the return value and expects the argument not to be modified.
+
+profile.rb, Profiler__::
+
+ * Removed from standard library. It was unmaintained since Ruby 2.0.0.
+
+=== C API updates
+
+* Many <code>*_kw</code> functions have been added for setting whether
+ the final argument being passed should be treated as keywords. You
+ may need to switch to these functions to avoid keyword argument
+ separation warnings, and to ensure correct behavior in Ruby 3.
+
+* The <code>:</code> character in rb_scan_args format string is now
+ treated as keyword arguments. Passing a positional hash instead of
+ keyword arguments will emit a deprecation warning.
+
+* C API declarations with +ANYARGS+ are changed not to use +ANYARGS+.
+ See https://github.com/ruby/ruby/pull/2404
+
+=== Implementation improvements
+
+Fiber::
+
+ * Allow selecting different coroutine implementations by using
+ +--with-coroutine=+, e.g.
+
+ $ ./configure --with-coroutine=ucontext
+ $ ./configure --with-coroutine=copy
+
+ * Replace previous stack cache with fiber pool cache. The fiber pool
+ allocates many stacks in a single memory region. Stack allocation
+ becomes O(log N) and fiber creation is amortized O(1). Around 10x
+ performance improvement was measured in micro-benchmarks.
+ https://github.com/ruby/ruby/pull/2224
+
+File::
+ * File.realpath now uses realpath(3) on many platforms, which can
+ significantly improve performance. [Feature #15797]
+
+Hash::
+ * Change data structure of small Hash objects. [Feature #15602]
+
+Monitor::
+ * Monitor class is written in C-extension. [Feature #16255]
+
+Thread::
+
+ * VM stack memory allocation is now combined with native thread stack,
+ improving thread allocation performance and reducing allocation related
+ failures. Around 10x performance improvement was measured in micro-benchmarks.
+
+JIT::
+
+ * JIT-ed code is recompiled to less-optimized code when an optimization assumption is invalidated.
+
+ * Method inlining is performed when a method is considered as pure.
+ This optimization is still experimental and many methods are NOT considered as pure yet.
+
+ * The default value of +--jit-max-cache+ is changed from 1,000 to 100.
+
+ * The default value of +--jit-min-calls+ is changed from 5 to 10,000.
+
+RubyVM::
+
+ * Per-call-site method cache, which has been there since around 1.9, was
+ improved: cache hit rate raised from 89% to 94%.
+ See https://github.com/ruby/ruby/pull/2583
+
+RubyVM::InstructionSequence::
+
+ * RubyVM::InstructionSequence#to_binary method generates compiled binary.
+ The binary size is reduced. [Feature #16163]
+
+=== Miscellaneous changes
+
+* Support for IA64 architecture has been removed. Hardware for testing was
+ difficult to find, native fiber code is difficult to implement, and it added
+ non-trivial complexity to the interpreter. [Feature #15894]
+
+* Require compilers to support C99. [Misc #15347]
+
+ * Details of our dialect: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/C99
+
+* Ruby's upstream repository is changed from Subversion to Git.
+
+ * https://git.ruby-lang.org/ruby.git
+
+ * RUBY_REVISION class is changed from Integer to String.
+
+ * RUBY_DESCRIPTION includes Git revision instead of Subversion's one.
+
+* Support built-in methods in Ruby with the <code>_\_builtin_</code> syntax. [Feature #16254]
+
+ Some methods are defined in *.rb (such as trace_point.rb).
+ For example, it is easy to define a method which accepts keyword arguments.
diff --git a/NEWS.md b/NEWS.md
deleted file mode 100644
index 2dcfacb6e2..0000000000
--- a/NEWS.md
+++ /dev/null
@@ -1,820 +0,0 @@
-# NEWS for Ruby 3.0.0
-
-This document is a list of user visible feature changes
-since the **2.7.0** release, except for bug fixes.
-
-Note that each entry is kept so brief that no reason behind or reference
-information is supplied with. For a full list of changes with all
-sufficient information, see the ChangeLog file or Redmine
-(e.g. `https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER`).
-
-## Language changes
-
-* Keyword arguments are now separated from positional arguments.
- Code that resulted in deprecation warnings in Ruby 2.7 will now
- result in ArgumentError or different behavior. [[Feature #14183]]
-
-* Procs accepting a single rest argument and keywords are no longer
- subject to autosplatting. This now matches the behavior of Procs
- accepting a single rest argument and no keywords.
- [[Feature #16166]]
-
- ```ruby
- pr = proc{|*a, **kw| [a, kw]}
-
- pr.call([1])
- # 2.7 => [[1], {}]
- # 3.0 => [[[1]], {}]
-
- pr.call([1, {a: 1}])
- # 2.7 => [[1], {:a=>1}] # and deprecation warning
- # 3.0 => [[[1, {:a=>1}]], {}]
- ```
-
-* Arguments forwarding (`...`) now supports leading arguments.
- [[Feature #16378]]
-
- ```ruby
- def method_missing(meth, ...)
- send(:"do_#{meth}", ...)
- end
- ```
-
-* Pattern matching (`case/in`) is no longer experimental. [[Feature #17260]]
-
-* One-line pattern matching is redesigned. [EXPERIMENTAL]
-
- * `=>` is added. It can be used like a rightward assignment.
- [[Feature #17260]]
-
- ```ruby
- 0 => a
- p a #=> 0
-
- {b: 0, c: 1} => {b:}
- p b #=> 0
- ```
-
- * `in` is changed to return `true` or `false`. [[Feature #17371]]
-
- ```ruby
- # version 3.0
- 0 in 1 #=> false
-
- # version 2.7
- 0 in 1 #=> raise NoMatchingPatternError
- ```
-
-* Find-pattern is added. [EXPERIMENTAL]
- [[Feature #16828]]
-
- ```ruby
- case ["a", 1, "b", "c", 2, "d", "e", "f", 3]
- in [*pre, String => x, String => y, *post]
- p pre #=> ["a", 1]
- p x #=> "b"
- p y #=> "c"
- p post #=> [2, "d", "e", "f", 3]
- end
- ```
-
-* Endless method definition is added. [EXPERIMENTAL]
- [[Feature #16746]]
-
- ```ruby
- def square(x) = x * x
- ```
-
-* Interpolated String literals are no longer frozen when
- `# frozen-string-literal: true` is used. [[Feature #17104]]
-
-* Magic comment `shareable_constant_value` added to freeze constants.
- See {Magic Comments}[rdoc-ref:doc/syntax/comments.rdoc@Magic+Comments] for more details.
- [[Feature #17273]]
-
-* A {static analysis}[rdoc-label:label-Static+analysis] foundation is
- introduced.
- * {RBS}[rdoc-label:label-RBS] is introduced. It is a type definition
- language for Ruby programs.
- * {TypeProf}[rdoc-label:label-TypeProf] is experimentally bundled. It is a
- type analysis tool for Ruby programs.
-
-* Deprecation warnings are no longer shown by default (since Ruby 2.7.2).
- Turn them on with `-W:deprecated` (or with `-w` to show other warnings too).
- [[Feature #16345]]
-
-* $SAFE and $KCODE are now normal global variables with no special behavior.
- C-API methods related to $SAFE have been removed.
- [[Feature #16131]] [[Feature #17136]]
-
-* yield in singleton class definitions in methods is now a SyntaxError
- instead of a warning. yield in a class definition outside of a method
- is now a SyntaxError instead of a LocalJumpError. [[Feature #15575]]
-
-* When a class variable is overtaken by the same definition in an
- ancestor class/module, a RuntimeError is now raised (previously,
- it only issued a warning in verbose mode). Additionally, accessing a
- class variable from the toplevel scope is now a RuntimeError.
- [[Bug #14541]]
-
-* Assigning to a numbered parameter is now a SyntaxError instead of
- a warning.
-
-## Command line options
-
-### `--help` option
-
-When the environment variable `RUBY_PAGER` or `PAGER` is present and has
-a non-empty value, and the standard input and output are tty, the `--help`
-option shows the help message via the pager designated by the value.
-[[Feature #16754]]
-
-### `--backtrace-limit` option
-
-The `--backtrace-limit` option limits the maximum length of a backtrace.
-[[Feature #8661]]
-
-## Core classes updates
-
-Outstanding ones only.
-
-* Array
-
- * The following methods now return Array instances instead of
- subclass instances when called on subclass instances:
- [[Bug #6087]]
-
- * Array#drop
- * Array#drop_while
- * Array#flatten
- * Array#slice!
- * Array#slice / Array#[]
- * Array#take
- * Array#take_while
- * Array#uniq
- * Array#*
-
- * Can be sliced with Enumerator::ArithmeticSequence
-
- ```ruby
- dirty_data = ['--', 'data1', '--', 'data2', '--', 'data3']
- dirty_data[(1..).step(2)] # take each second element
- # => ["data1", "data2", "data3"]
- ```
-
-* Binding
-
- * Binding#eval when called with one argument will use "(eval)"
- for `__FILE__` and 1 for `__LINE__` in the evaluated code.
- [[Bug #4352]] [[Bug #17419]]
-
-* ConditionVariable
-
- * ConditionVariable#wait may now invoke the `block`/`unblock` scheduler
- hooks in a non-blocking context. [[Feature #16786]]
-
-* Dir
-
- * Dir.glob and Dir.[] now sort the results by default, and
- accept the `sort:` keyword option. [[Feature #8709]]
-
-* ENV
-
- * ENV.except has been added, which returns a hash excluding the
- given keys and their values. [[Feature #15822]]
-
- * Windows: Read ENV names and values as UTF-8 encoded Strings
- [[Feature #12650]]
-
-* Encoding
-
- * Added new encoding IBM720. [[Feature #16233]]
-
- * Changed default for Encoding.default_external to UTF-8 on Windows
- [[Feature #16604]]
-
-* Fiber
-
- * Fiber.new(blocking: true/false) allows you to create non-blocking
- execution contexts. [[Feature #16786]]
-
- * Fiber#blocking? tells whether the fiber is non-blocking. [[Feature #16786]]
-
- * Fiber#backtrace and Fiber#backtrace_locations provide per-fiber backtrace.
- [[Feature #16815]]
-
- * The limitation of Fiber#transfer is relaxed. [[Bug #17221]]
-
-* GC
-
- * GC.auto_compact= and GC.auto_compact have been added to control
- when compaction runs. Setting `auto_compact=` to true will cause
- compaction to occur during major collections. At the moment,
- compaction adds significant overhead to major collections, so please
- test first! [[Feature #17176]]
-
-* Hash
-
- * Hash#transform_keys and Hash#transform_keys! now accept a hash that maps
- keys to new keys. [[Feature #16274]]
-
- * Hash#except has been added, which returns a hash excluding the
- given keys and their values. [[Feature #15822]]
-
-* IO
-
- * IO#nonblock? now defaults to `true`. [[Feature #16786]]
-
- * IO#wait_readable, IO#wait_writable, IO#read, IO#write and other
- related methods (e.g. IO#puts, IO#gets) may invoke the scheduler hook
- `#io_wait(io, events, timeout)` in a non-blocking execution context.
- [[Feature #16786]]
-
-* Kernel
-
- * Kernel#clone when called with the `freeze: false` keyword will call
- `#initialize_clone` with the `freeze: false` keyword.
- [[Bug #14266]]
-
- * Kernel#clone when called with the `freeze: true` keyword will call
- `#initialize_clone` with the `freeze: true` keyword, and will
- return a frozen copy even if the receiver is unfrozen.
- [[Feature #16175]]
-
- * Kernel#eval when called with two arguments will use "(eval)"
- for `__FILE__` and 1 for `__LINE__` in the evaluated code.
- [[Bug #4352]]
-
- * Kernel#lambda now warns if called without a literal block.
- [[Feature #15973]]
-
- * Kernel.sleep invokes the scheduler hook `#kernel_sleep(...)` in a
- non-blocking execution context. [[Feature #16786]]
-
-* Module
-
- * Module#include and Module#prepend now affect classes and modules
- that have already included or prepended the receiver, mirroring the
- behavior if the arguments were included in the receiver before
- the other modules and classes included or prepended the receiver.
- [[Feature #9573]]
-
- ```ruby
- class C; end
- module M1; end
- module M2; end
- C.include M1
- M1.include M2
- p C.ancestors #=> [C, M1, M2, Object, Kernel, BasicObject]
- ```
-
- * Module#public, Module#protected, Module#private, Module#public_class_method,
- Module#private_class_method, toplevel "private" and "public" methods
- now accept single array argument with a list of method names. [[Feature #17314]]
-
- * Module#attr_accessor, Module#attr_reader, Module#attr_writer and Module#attr
- methods now return an array of defined method names as symbols.
- [[Feature #17314]]
-
- * Module#alias_method now returns the defined alias as a symbol.
- [[Feature #17314]]
-
-* Mutex
-
- * `Mutex` is now acquired per-`Fiber` instead of per-`Thread`. This change
- should be compatible for essentially all usages and avoids blocking when
- using a scheduler. [[Feature #16792]]
-
-* Proc
-
- * Proc#== and Proc#eql? are now defined and will return true for
- separate Proc instances if the procs were created from the same block.
- [[Feature #14267]]
-
-* Queue / SizedQueue
-
- * Queue#pop, SizedQueue#push and related methods may now invoke the
- `block`/`unblock` scheduler hooks in a non-blocking context.
- [[Feature #16786]]
-
-* Ractor
-
- * New class added to enable parallel execution. See rdoc-ref:ractor.md for
- more details.
-
-* Random
-
- * `Random::DEFAULT` now refers to the `Random` class instead of being a `Random` instance,
- so it can work with `Ractor`.
- [[Feature #17322]]
-
- * `Random::DEFAULT` is deprecated since its value is now confusing and it is no longer global,
- use `Kernel.rand`/`Random.rand` directly, or create a `Random` instance with `Random.new` instead.
- [[Feature #17351]]
-
-
-* String
-
- * The following methods now return or yield String instances
- instead of subclass instances when called on subclass instances:
- [[Bug #10845]]
-
- * String#*
- * String#capitalize
- * String#center
- * String#chomp
- * String#chop
- * String#delete
- * String#delete_prefix
- * String#delete_suffix
- * String#downcase
- * String#dump
- * String#each_char
- * String#each_grapheme_cluster
- * String#each_line
- * String#gsub
- * String#ljust
- * String#lstrip
- * String#partition
- * String#reverse
- * String#rjust
- * String#rpartition
- * String#rstrip
- * String#scrub
- * String#slice!
- * String#slice / String#[]
- * String#split
- * String#squeeze
- * String#strip
- * String#sub
- * String#succ / String#next
- * String#swapcase
- * String#tr
- * String#tr_s
- * String#upcase
-
-* Symbol
-
- * Symbol#to_proc now returns a lambda Proc. [[Feature #16260]]
-
- * Symbol#name has been added, which returns the name of the symbol
- if it is named. The returned string is frozen. [[Feature #16150]]
-
-* Fiber
-
- * Introduce Fiber.set_scheduler for intercepting blocking operations and
- Fiber.scheduler for accessing the current scheduler. See
- rdoc-ref:fiber.md for more details about what operations are supported and
- how to implement the scheduler hooks. [[Feature #16786]]
-
- * Fiber.blocking? tells whether the current execution context is
- blocking. [[Feature #16786]]
-
- * Thread#join invokes the scheduler hooks `block`/`unblock` in a
- non-blocking execution context. [[Feature #16786]]
-
-* Thread
-
- * Thread.ignore_deadlock accessor has been added for disabling the
- default deadlock detection, allowing the use of signal handlers to
- break deadlock. [[Bug #13768]]
-
-* Warning
-
- * Warning#warn now supports a category keyword argument.
- [[Feature #17122]]
-
-## Stdlib updates
-
-Outstanding ones only.
-
-* BigDecimal
-
- * Update to BigDecimal 3.0.0
-
- * This version is Ractor compatible.
-
-* Bundler
-
- * Update to Bundler 2.2.3
-
-* CGI
-
- * Update to 0.2.0
-
- * This version is Ractor compatible.
-
-* CSV
-
- * Update to CSV 3.1.9
-
-* Date
-
- * Update to Date 3.1.1
-
- * This version is Ractor compatible.
-
-* Digest
-
- * Update to Digest 3.0.0
-
- * This version is Ractor compatible.
-
-* Etc
-
- * Update to Etc 1.2.0
-
- * This version is Ractor compatible.
-
-* Fiddle
-
- * Update to Fiddle 1.0.5
-
-* IRB
-
- * Update to IRB 1.2.6
-
-* JSON
-
- * Update to JSON 2.5.0
-
- * This version is Ractor compatible.
-
-* Set
-
- * Update to set 1.0.0
-
- * SortedSet has been removed for dependency and performance reasons.
-
- * Set#join is added as a shorthand for `.to_a.join`.
-
- * Set#<=> is added.
-
-* Socket
-
- * Add :connect_timeout to TCPSocket.new [[Feature #17187]]
-
-* Net::HTTP
-
- * Net::HTTP#verify_hostname= and Net::HTTP#verify_hostname have been
- added to skip hostname verification. [[Feature #16555]]
-
- * Net::HTTP.get, Net::HTTP.get_response, and Net::HTTP.get_print
- can take the request headers as a Hash in the second argument when the
- first argument is a URI. [[Feature #16686]]
-
-* Net::SMTP
-
- * Add SNI support.
-
- * Net::SMTP.start arguments are keyword arguments.
-
- * TLS should not check the host name by default.
-
-* OpenStruct
-
- * Initialization is no longer lazy. [[Bug #12136]]
-
- * Builtin methods can now be overridden safely. [[Bug #15409]]
-
- * Implementation uses only methods ending with `!`.
-
- * Ractor compatible.
-
- * Improved support for YAML. [[Bug #8382]]
-
- * Use officially discouraged. Read OpenStruct@Caveats section.
-
-* Pathname
-
- * Ractor compatible.
-
-* Psych
-
- * Update to Psych 3.3.0
-
- * This version is Ractor compatible.
-
-* Reline
-
- * Update to Reline 0.1.5
-
-* RubyGems
-
- * Update to RubyGems 3.2.3
-
-* StringIO
-
- * Update to StringIO 3.0.0
-
- * This version is Ractor compatible.
-
-* StringScanner
-
- * Update to StringScanner 3.0.0
-
- * This version is Ractor compatible.
-
-## Compatibility issues
-
-Excluding feature bug fixes.
-
-* Regexp literals and all Range objects are frozen. [[Feature #8948]] [[Feature #16377]] [[Feature #15504]]
-
- ```ruby
- /foo/.frozen? #=> true
- (42...).frozen? # => true
- ```
-
-* EXPERIMENTAL: Hash#each consistently yields a 2-element array. [[Bug #12706]]
-
- * Now `{ a: 1 }.each(&->(k, v) { })` raises an ArgumentError
- due to lambda's arity check.
-
-* When writing to STDOUT redirected to a closed pipe, no broken pipe
- error message will be shown now. [[Feature #14413]]
-
-* `TRUE`/`FALSE`/`NIL` constants are no longer defined.
-
-* Integer#zero? overrides Numeric#zero? for optimization. [[Misc #16961]]
-
-* Enumerable#grep and Enumerable#grep_v when passed a Regexp and no block no longer modify
- Regexp.last_match. [[Bug #17030]]
-
-* Requiring 'open-uri' no longer redefines `Kernel#open`.
- Call `URI.open` directly or `use URI#open` instead. [[Misc #15893]]
-
-* SortedSet has been removed for dependency and performance reasons.
-
-## Stdlib compatibility issues
-
-* Default gems
-
- * The following libraries are promoted to default gems from stdlib.
-
- * English
- * abbrev
- * base64
- * drb
- * debug
- * erb
- * find
- * net-ftp
- * net-http
- * net-imap
- * net-protocol
- * open-uri
- * optparse
- * pp
- * prettyprint
- * resolv-replace
- * resolv
- * rinda
- * set
- * securerandom
- * shellwords
- * tempfile
- * tmpdir
- * time
- * tsort
- * un
- * weakref
-
- * The following extensions are promoted to default gems from stdlib.
-
- * digest
- * io-nonblock
- * io-wait
- * nkf
- * pathname
- * syslog
- * win32ole
-
-* Bundled gems
-
- * net-telnet and xmlrpc have been removed from the bundled gems.
- If you are interested in maintaining them, please comment on
- your plan to https://github.com/ruby/xmlrpc
- or https://github.com/ruby/net-telnet.
-
-* SDBM has been removed from the Ruby standard library. [[Bug #8446]]
-
- * The issues of sdbm will be handled at https://github.com/ruby/sdbm
-
-* WEBrick has been removed from the Ruby standard library. [[Feature #17303]]
-
- * The issues of WEBrick will be handled at https://github.com/ruby/webrick
-
-## C API updates
-
-* C API functions related to $SAFE have been removed.
- [[Feature #16131]]
-
-* C API header file `ruby/ruby.h` was split. [[GH-2991]]
-
- This should have no impact on extension libraries,
- but users might experience slow compilations.
-
-* Memory view interface [EXPERIMENTAL]
-
- * The memory view interface is a C-API set to exchange a raw memory area,
- such as a numeric array or a bitmap image, between extension libraries.
- The extension libraries can share also the metadata of the memory area
- that consists of the shape, the element format, and so on.
- Using these kinds of metadata, the extension libraries can share even
- a multidimensional array appropriately.
- This feature is designed by referring to Python's buffer protocol.
- [[Feature #13767]] [[Feature #14722]]
-
-* Ractor related C APIs are introduced (experimental) in "include/ruby/ractor.h".
-
-## Implementation improvements
-
-* New method cache mechanism for Ractor. [[Feature #16614]]
-
- * Inline method caches pointed from ISeq can be accessed by multiple Ractors
- in parallel and synchronization is needed even for method caches. However,
- such synchronization can be overhead so introducing new inline method cache
- mechanisms, (1) Disposable inline method cache (2) per-Class method cache
- and (3) new invalidation mechanism. (1) can avoid per-method call
- synchronization because it only uses atomic operations.
- See the ticket for more details.
-
-* The number of hashes allocated when using a keyword splat in
- a method call has been reduced to a maximum of 1, and passing
- a keyword splat to a method that accepts specific keywords
- does not allocate a hash.
-
-* `super` is optimized when the same type of method is called in the previous call
- if it's not refinements or an attr reader or writer.
-
-### JIT
-
-* Performance improvements of JIT-ed code
-
- * Microarchitectural optimizations
-
- * Native functions shared by multiple methods are deduplicated on JIT compaction.
-
- * Decrease code size of hot paths by some optimizations and partitioning cold paths.
-
- * Instance variables
-
- * Eliminate some redundant checks.
-
- * Skip checking a class and a object multiple times in a method when possible.
-
- * Optimize accesses in some core classes like Hash and their subclasses.
-
- * Method inlining support for some C methods
-
- * `Kernel`: `#class`, `#frozen?`
-
- * `Integer`: `#-@`, `#~`, `#abs`, `#bit_length`, `#even?`, `#integer?`, `#magnitude`,
- `#odd?`, `#ord`, `#to_i`, `#to_int`, `#zero?`
-
- * `Struct`: reader methods for 10th or later members
-
- * Constant references are inlined.
-
- * Always generate appropriate code for `==`, `nil?`, and `!` calls depending on
- a receiver class.
-
- * Reduce the number of PC accesses on branches and method returns.
-
- * Optimize C method calls a little.
-
-* Compilation process improvements
-
- * It does not keep temporary files in /tmp anymore.
-
- * Throttle GC and compaction of JIT-ed code.
-
- * Avoid GC-ing JIT-ed code when not necessary.
-
- * GC-ing JIT-ed code is executed in a background thread.
-
- * Reduce the number of locks between Ruby and JIT threads.
-
-## Static analysis
-
-### RBS
-
-* RBS is a new language for type definition of Ruby programs.
- It allows writing types of classes and modules with advanced
- types including union types, overloading, generics, and
- _interface types_ for duck typing.
-
-* Ruby ships with type definitions for core/stdlib classes.
-
-* `rbs` gem is bundled to load and process RBS files.
-
-### TypeProf
-
-* TypeProf is a type analysis tool for Ruby code based on abstract interpretation.
-
- * It reads non-annotated Ruby code, tries inferring its type signature, and prints
- the analysis result in RBS format.
-
- * Though it supports only a subset of the Ruby language yet, we will continuously
- improve the coverage of language features, analysis performance, and usability.
-
-```ruby
-# test.rb
-def foo(x)
- if x > 10
- x.to_s
- else
- nil
- end
-end
-
-foo(42)
-```
-
-```
-$ typeprof test.rb
-# Classes
-class Object
- def foo : (Integer) -> String?
-end
-```
-
-## Miscellaneous changes
-
-* Methods using `ruby2_keywords` will no longer keep empty keyword
- splats, those are now removed just as they are for methods not
- using `ruby2_keywords`.
-
-* When an exception is caught in the default handler, the error
- message and backtrace are printed in order from the innermost.
- [[Feature #8661]]
-
-* Accessing an uninitialized instance variable no longer emits a
- warning in verbose mode. [[Feature #17055]]
-
-[Bug #4352]: https://bugs.ruby-lang.org/issues/4352
-[Bug #6087]: https://bugs.ruby-lang.org/issues/6087
-[Bug #8382]: https://bugs.ruby-lang.org/issues/8382
-[Bug #8446]: https://bugs.ruby-lang.org/issues/8446
-[Feature #8661]: https://bugs.ruby-lang.org/issues/8661
-[Feature #8709]: https://bugs.ruby-lang.org/issues/8709
-[Feature #8948]: https://bugs.ruby-lang.org/issues/8948
-[Feature #9573]: https://bugs.ruby-lang.org/issues/9573
-[Bug #10845]: https://bugs.ruby-lang.org/issues/10845
-[Bug #12136]: https://bugs.ruby-lang.org/issues/12136
-[Feature #12650]: https://bugs.ruby-lang.org/issues/12650
-[Bug #12706]: https://bugs.ruby-lang.org/issues/12706
-[Feature #13767]: https://bugs.ruby-lang.org/issues/13767
-[Bug #13768]: https://bugs.ruby-lang.org/issues/13768
-[Feature #14183]: https://bugs.ruby-lang.org/issues/14183
-[Bug #14266]: https://bugs.ruby-lang.org/issues/14266
-[Feature #14267]: https://bugs.ruby-lang.org/issues/14267
-[Feature #14413]: https://bugs.ruby-lang.org/issues/14413
-[Bug #14541]: https://bugs.ruby-lang.org/issues/14541
-[Feature #14722]: https://bugs.ruby-lang.org/issues/14722
-[Bug #15409]: https://bugs.ruby-lang.org/issues/15409
-[Feature #15504]: https://bugs.ruby-lang.org/issues/15504
-[Feature #15575]: https://bugs.ruby-lang.org/issues/15575
-[Feature #15822]: https://bugs.ruby-lang.org/issues/15822
-[Misc #15893]: https://bugs.ruby-lang.org/issues/15893
-[Feature #15921]: https://bugs.ruby-lang.org/issues/15921
-[Feature #15973]: https://bugs.ruby-lang.org/issues/15973
-[Feature #16131]: https://bugs.ruby-lang.org/issues/16131
-[Feature #16150]: https://bugs.ruby-lang.org/issues/16150
-[Feature #16166]: https://bugs.ruby-lang.org/issues/16166
-[Feature #16175]: https://bugs.ruby-lang.org/issues/16175
-[Feature #16233]: https://bugs.ruby-lang.org/issues/16233
-[Feature #16260]: https://bugs.ruby-lang.org/issues/16260
-[Feature #16274]: https://bugs.ruby-lang.org/issues/16274
-[Feature #16345]: https://bugs.ruby-lang.org/issues/16345
-[Feature #16377]: https://bugs.ruby-lang.org/issues/16377
-[Feature #16378]: https://bugs.ruby-lang.org/issues/16378
-[Feature #16555]: https://bugs.ruby-lang.org/issues/16555
-[Feature #16604]: https://bugs.ruby-lang.org/issues/16604
-[Feature #16614]: https://bugs.ruby-lang.org/issues/16614
-[Feature #16686]: https://bugs.ruby-lang.org/issues/16686
-[Feature #16746]: https://bugs.ruby-lang.org/issues/16746
-[Feature #16754]: https://bugs.ruby-lang.org/issues/16754
-[Feature #16786]: https://bugs.ruby-lang.org/issues/16786
-[Feature #16792]: https://bugs.ruby-lang.org/issues/16792
-[Feature #16815]: https://bugs.ruby-lang.org/issues/16815
-[Feature #16828]: https://bugs.ruby-lang.org/issues/16828
-[Misc #16961]: https://bugs.ruby-lang.org/issues/16961
-[Bug #17030]: https://bugs.ruby-lang.org/issues/17030
-[Feature #17055]: https://bugs.ruby-lang.org/issues/17055
-[Feature #17104]: https://bugs.ruby-lang.org/issues/17104
-[Feature #17122]: https://bugs.ruby-lang.org/issues/17122
-[Feature #17136]: https://bugs.ruby-lang.org/issues/17136
-[Feature #17176]: https://bugs.ruby-lang.org/issues/17176
-[Feature #17187]: https://bugs.ruby-lang.org/issues/17187
-[Bug #17221]: https://bugs.ruby-lang.org/issues/17221
-[Feature #17260]: https://bugs.ruby-lang.org/issues/17260
-[Feature #17273]: https://bugs.ruby-lang.org/issues/17273
-[Feature #17303]: https://bugs.ruby-lang.org/issues/17303
-[Feature #17314]: https://bugs.ruby-lang.org/issues/17314
-[Feature #17322]: https://bugs.ruby-lang.org/issues/17322
-[Feature #17351]: https://bugs.ruby-lang.org/issues/17351
-[Feature #17371]: https://bugs.ruby-lang.org/issues/17371
-[Bug #17419]: https://bugs.ruby-lang.org/issues/17419
-[GH-2991]: https://github.com/ruby/ruby/pull/2991
diff --git a/README.ja.md b/README.ja.md
index 6663b94680..4e1e6b9d87 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -1,10 +1,10 @@
[![Build Status](https://travis-ci.org/ruby/ruby.svg?branch=master)](https://travis-ci.org/ruby/ruby)
[![Build status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)
-[![Actions Status](https://github.com/ruby/ruby/workflows/macOS/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"macOS")
-[![Actions Status](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")
-[![Actions Status](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")
-[![Actions Status](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")
-[![Actions Status](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")
+![](https://github.com/ruby/ruby/workflows/Cygwin/badge.svg)
+![](https://github.com/ruby/ruby/workflows/macOS/badge.svg)
+![](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)
+![](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)
+![](https://github.com/ruby/ruby/workflows/Windows/badge.svg)
# Rubyã¨ã¯
@@ -52,11 +52,11 @@ Rubyリãƒã‚¸ãƒˆãƒªã®æœ¬æ¥ã®master㯠https://git.ruby-lang.org/ruby.git ã«ã
### Subversion
-å¤ã„Rubyã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚å–å¾—ã§ãã¾ã™ï¼Ž
+å¤ã„Rubyã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§å–å¾—ã§ãã¾ã™ï¼Ž
$ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby
-ä»–ã®ãƒ–ランãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž
+ä»–ã«é–‹ç™ºä¸­ã®ãƒ–ランãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž
$ svn ls https://svn.ruby-lang.org/repos/ruby/branches/
@@ -71,33 +71,38 @@ https://www.ruby-lang.org/
## メーリングリスト
-Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚りã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-list-request@ruby-lang.org] ã¾ã§æœ¬æ–‡ã«
+Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚りã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯
+
+mailto:ruby-list-request@ruby-lang.org
+
+ã¾ã§æœ¬æ–‡ã«
subscribe
ã¨æ›¸ã„ã¦é€ã£ã¦ä¸‹ã•ã„.
-Ruby開発者å‘ã‘メーリングリストもã‚りã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•様拡張ãªã©å®Ÿè£…上ã®å•題ã«ã¤ã„ã¦è­°è«–ã•れã¦ã„ã¾ã™ï¼Ž
-å‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-dev-request@ruby-lang.org] ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„.
+Ruby開発者å‘ã‘メーリングリストもã‚りã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•様拡張ãªã©å®Ÿè£…上ã®å•題ã«ã¤ã„ã¦è­°è«–ã•れã¦ã„ã¾ã™ï¼Ž å‚åŠ å¸Œæœ›ã®æ–¹ã¯
+
+mailto:ruby-dev-request@ruby-lang.org
+
+ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„.
Ruby拡張モジュールã«ã¤ã„ã¦è©±ã—åˆã†ruby-extãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨æ•°å­¦é–¢ä¿‚ã®è©±é¡Œã«ã¤ã„ã¦è©±ã—åˆã†ruby-mathメーリングリストã¨
英語ã§rubyã«ã¤ã„ã¦è©±ã—åˆã†ruby-talkメーリングリストもã‚りã¾ã™ï¼Žå‚加方法ã¯ã©ã‚Œã‚‚åŒã˜ã§ã™ï¼Ž
-[ruby-list-request@ruby-lang.org]: mailto:ruby-list-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
-[ruby-dev-request@ruby-lang.org]: mailto:ruby-dev-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
-
## コンパイル・インストール
ä»¥ä¸‹ã®æ‰‹é †ã§è¡Œã£ã¦ãã ã•ã„.
-1. (Gitリãƒã‚¸ãƒˆãƒªã‹ã‚‰å–å¾—ã—ãŸã‚½ãƒ¼ã‚¹ã‚’ビルドã™ã‚‹å ´åˆ) `./autogen.sh` を実行ã—ã¦æ–°ã—ã `configure` を生æˆã™ã‚‹
+1. ã‚‚ã— `configure` ファイルãŒè¦‹ã¤ã‹ã‚‰ãªã„,もã—ã㯠`configure.ac` よりå¤ã„よã†ãªã‚‰ï¼Œ `autoconf` を実行ã—ã¦
+ æ–°ã—ã `configure` を生æˆã™ã‚‹
2. `configure` を実行ã—㦠`Makefile` ãªã©ã‚’生æˆã™ã‚‹
環境ã«ã‚ˆã£ã¦ã¯ãƒ‡ãƒ•ォルトã®Cコンパイラ用オプションãŒä»˜ãã¾ã™ï¼Ž `configure` オプション㧠`optflags=..`
`warnflags=..` ç­‰ã§ä¸Šæ›¸ãã§ãã¾ã™ï¼Ž
-3. (å¿…è¦ãªã‚‰ã°)`include/ruby/defines.h` を編集ã™ã‚‹
+3. (å¿…è¦ãªã‚‰ã°)`defines.h` を編集ã™ã‚‹
多分,必è¦ç„¡ã„ã¨æ€ã„ã¾ã™ï¼Ž
diff --git a/README.md b/README.md
index bd7c7813a7..1e935095c6 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
[![Build Status](https://travis-ci.org/ruby/ruby.svg?branch=master)](https://travis-ci.org/ruby/ruby)
[![Build status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)
-[![Actions Status](https://github.com/ruby/ruby/workflows/macOS/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"macOS")
-[![Actions Status](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")
-[![Actions Status](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")
-[![Actions Status](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")
-[![Actions Status](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")
+![](https://github.com/ruby/ruby/workflows/Cygwin/badge.svg)
+![](https://github.com/ruby/ruby/workflows/macOS/badge.svg)
+![](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)
+![](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)
+![](https://github.com/ruby/ruby/workflows/Windows/badge.svg)
# What's Ruby
@@ -24,8 +24,8 @@ It is simple, straightforward, and extensible.
* Garbage Collection
* Dynamic Loading of Object Files (on some architectures)
* Highly Portable (works on many Unix-like/POSIX compatible platforms as
- well as Windows, macOS, etc.) cf.
- https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#label-Platform+Maintainers
+ well as Windows, macOS, Haiku, etc.) cf.
+ https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#platform-maintainers
## How to get Ruby
@@ -51,8 +51,7 @@ if you are a committer.
### Subversion
-Stable branches for older Ruby versions can be checked out with also the
-following command:
+Stable branches for older Ruby versions can be checked out with the following command:
$ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby
@@ -72,17 +71,16 @@ send the following phrase:
subscribe
-in the mail body (not subject) to the address [ruby-talk-request@ruby-lang.org].
-
-[ruby-talk-request@ruby-lang.org]: mailto:ruby-talk-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
+in the mail body (not subject) to the address
+[ruby-talk-request@ruby-lang.org](mailto:ruby-talk-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe).
## How to compile and install
1. If you want to use Microsoft Visual C++ to compile Ruby, read
[win32/README.win32](win32/README.win32) instead of this document.
-2. Run `./autogen.sh` to generate configure, when you build the source checked
- out from the Git repository.
+2. If `./configure` does not exist or is older than `configure.ac`, run
+ `autoconf` to (re)generate configure.
3. Run `./configure`, which will generate `config.h` and `Makefile`.
@@ -90,7 +88,7 @@ in the mail body (not subject) to the address [ruby-talk-request@ruby-lang.org].
environment. Specify `optflags=..` and `warnflags=..` as necessary to
override them.
-4. Edit `include/ruby/defines.h` if you need. Usually this step will not be needed.
+4. Edit `defines.h` if you need. Usually this step will not be needed.
5. Remove comment mark(`#`) before the module names from `ext/Setup` (or add
module names if not present), if you want to link modules statically.
@@ -110,7 +108,12 @@ in the mail body (not subject) to the address [ruby-talk-request@ruby-lang.org].
interpreter works well. If you see the message "`check succeeded`", your
Ruby works as it should (hopefully).
-8. Run '`make install`'.
+8. Optionally, run `make update-gems` and `make extract-gems`.
+
+ If you want to install bundled gems, run `make update-gems` and
+ `make extract-gems` before running `make install`.
+
+9. Run '`make install`'.
This command will create the following directories and install files into
them.
diff --git a/aclocal.m4 b/aclocal.m4
index e69de29bb2..ed7d14ef63 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -0,0 +1,47 @@
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_include([tool/m4/_colorize_result_prepare.m4])
+m4_include([tool/m4/ac_msg_result.m4])
+m4_include([tool/m4/colorize_result.m4])
+m4_include([tool/m4/ruby_append_option.m4])
+m4_include([tool/m4/ruby_append_options.m4])
+m4_include([tool/m4/ruby_check_builtin_func.m4])
+m4_include([tool/m4/ruby_check_builtin_setjmp.m4])
+m4_include([tool/m4/ruby_check_printf_prefix.m4])
+m4_include([tool/m4/ruby_check_setjmp.m4])
+m4_include([tool/m4/ruby_check_signedness.m4])
+m4_include([tool/m4/ruby_check_sizeof.m4])
+m4_include([tool/m4/ruby_check_sysconf.m4])
+m4_include([tool/m4/ruby_cppoutfile.m4])
+m4_include([tool/m4/ruby_decl_attribute.m4])
+m4_include([tool/m4/ruby_default_arch.m4])
+m4_include([tool/m4/ruby_define_if.m4])
+m4_include([tool/m4/ruby_defint.m4])
+m4_include([tool/m4/ruby_dtrace_available.m4])
+m4_include([tool/m4/ruby_dtrace_postprocess.m4])
+m4_include([tool/m4/ruby_func_attribute.m4])
+m4_include([tool/m4/ruby_mingw32.m4])
+m4_include([tool/m4/ruby_prepend_option.m4])
+m4_include([tool/m4/ruby_prog_gnu_ld.m4])
+m4_include([tool/m4/ruby_replace_funcs.m4])
+m4_include([tool/m4/ruby_replace_type.m4])
+m4_include([tool/m4/ruby_rm_recursive.m4])
+m4_include([tool/m4/ruby_setjmp_type.m4])
+m4_include([tool/m4/ruby_stack_grow_direction.m4])
+m4_include([tool/m4/ruby_try_cflags.m4])
+m4_include([tool/m4/ruby_try_ldflags.m4])
+m4_include([tool/m4/ruby_type_attribute.m4])
+m4_include([tool/m4/ruby_universal_arch.m4])
+m4_include([tool/m4/ruby_werror_flag.m4])
diff --git a/addr2line.c b/addr2line.c
index 9669427d36..635194b96b 100644
--- a/addr2line.c
+++ b/addr2line.c
@@ -13,7 +13,7 @@
#pragma clang diagnostic ignored "-Wgcc-compat"
#endif
-#include "ruby/internal/config.h"
+#include "ruby/config.h"
#include "ruby/defines.h"
#include "ruby/missing.h"
#include "addr2line.h"
@@ -25,7 +25,11 @@
#include <libproc.h>
#endif
-#include "ruby/internal/stdbool.h"
+#ifdef HAVE_STDBOOL_H
+#include <stdbool.h>
+#else
+#include "missing/stdbool.h"
+#endif
#if defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H)
@@ -526,25 +530,13 @@ append_obj(obj_info_t **objp)
}
#ifdef USE_ELF
-/* Ideally we should check 4 paths to follow gnu_debuglink:
- *
- * - /usr/lib/debug/.build-id/ab/cdef1234.debug
- * - /usr/bin/ruby.debug
- * - /usr/bin/.debug/ruby.debug
- * - /usr/lib/debug/usr/bin/ruby.debug.
- *
- * but we handle only two cases for now as the two formats are
- * used by some linux distributions.
- *
- * See GDB's info for detail.
- * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
- */
-
-// check the path pattern of "/usr/lib/debug/usr/bin/ruby.debug"
static void
follow_debuglink(const char *debuglink, int num_traces, void **traces,
obj_info_t **objp, line_info_t *lines, int offset)
{
+ /* Ideally we should check 4 paths to follow gnu_debuglink,
+ but we handle only one case for now as this format is used
+ by some linux distributions. See GDB's info for detail. */
static const char global_debug_dir[] = "/usr/lib/debug";
const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;
char *p;
@@ -571,37 +563,6 @@ follow_debuglink(const char *debuglink, int num_traces, void **traces,
o2->path = o1->path;
fill_lines(num_traces, traces, 0, objp, lines, offset);
}
-
-// check the path pattern of "/usr/lib/debug/.build-id/ab/cdef1234.debug"
-static void
-follow_debuglink_build_id(const char *build_id, size_t build_id_size, int num_traces, void **traces,
- obj_info_t **objp, line_info_t *lines, int offset)
-{
- static const char global_debug_dir[] = "/usr/lib/debug/.build-id/";
- const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;
- char *p;
- obj_info_t *o1 = *objp, *o2;
- size_t i;
-
- if (PATH_MAX < global_debug_dir_len + 1 + build_id_size * 2 + 6) return;
-
- memcpy(binary_filename, global_debug_dir, global_debug_dir_len);
- p = binary_filename + global_debug_dir_len;
- for (i = 0; i < build_id_size; i++) {
- static const char tbl[] = "0123456789abcdef";
- unsigned char n = build_id[i];
- *p++ = tbl[n / 16];
- *p++ = tbl[n % 16];
- if (i == 0) *p++ = '/';
- }
- strcpy(p, ".debug");
-
- append_obj(objp);
- o2 = *objp;
- o2->base_addr = o1->base_addr;
- o2->path = o1->path;
- fill_lines(num_traces, traces, 0, objp, lines, offset);
-}
#endif
enum
@@ -957,7 +918,6 @@ debug_info_reader_init(DebugInfoReader *reader, obj_info_t *obj)
reader->p = obj->debug_info.ptr;
reader->pend = obj->debug_info.ptr + obj->debug_info.size;
reader->debug_line_cu_end = obj->debug_line.ptr;
- reader->current_low_pc = 0;
}
static void
@@ -1659,7 +1619,6 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
ElfW(Ehdr) *ehdr;
ElfW(Shdr) *shdr, *shstr_shdr;
ElfW(Shdr) *gnu_debuglink_shdr = NULL;
- ElfW(Shdr) *note_gnu_build_id = NULL;
int fd;
off_t filesize;
char *file;
@@ -1732,11 +1691,6 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
/* if (!strcmp(section_name, ".dynsym")) */
dynsym_shdr = shdr + i;
break;
- case SHT_NOTE:
- if (!strcmp(section_name, ".note.gnu.build-id")) {
- note_gnu_build_id = shdr + i;
- }
- break;
case SHT_PROGBITS:
if (!strcmp(section_name, ".gnu_debuglink")) {
gnu_debuglink_shdr = shdr + i;
@@ -1852,13 +1806,6 @@ use_symtab:
num_traces, traces,
objp, lines, offset);
}
- if (note_gnu_build_id && check_debuglink) {
- ElfW(Nhdr) *nhdr = (ElfW(Nhdr)*) (file + note_gnu_build_id->sh_offset);
- const char *build_id = (char *)(nhdr + 1) + nhdr->n_namesz;
- follow_debuglink_build_id(build_id, nhdr->n_descsz,
- num_traces, traces,
- objp, lines, offset);
- }
goto finish;
}
@@ -2101,15 +2048,11 @@ fail:
* and returns strlen(binary_filename).
* it is NUL terminated.
*/
-#if defined(__linux__) || defined(__NetBSD__)
+#if defined(__linux__)
static ssize_t
main_exe_path(void)
{
-# if defined(__linux__)
-# define PROC_SELF_EXE "/proc/self/exe"
-# elif defined(__NetBSD__)
-# define PROC_SELF_EXE "/proc/curproc/exe"
-# endif
+# define PROC_SELF_EXE "/proc/self/exe"
ssize_t len = readlink(PROC_SELF_EXE, binary_filename, PATH_MAX);
if (len < 0) return 0;
binary_filename[len] = 0;
diff --git a/addr2line.h b/addr2line.h
index f09b665800..4f6cf179ef 100644
--- a/addr2line.h
+++ b/addr2line.h
@@ -1,5 +1,3 @@
-#ifndef RUBY_ADDR2LINE_H
-#define RUBY_ADDR2LINE_H
/**********************************************************************
addr2line.h -
@@ -10,6 +8,9 @@
**********************************************************************/
+#ifndef RUBY_ADDR2LINE_H
+#define RUBY_ADDR2LINE_H
+
#if (defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H))
void
diff --git a/appveyor.yml b/appveyor.yml
index d31d4b2df9..bf10c97222 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,15 +1,19 @@
---
version: '{build}'
-init:
- - git config --global user.name git
- - git config --global user.email svn-admin@ruby-lang.org
-clone_depth: 10
+shallow_clone: true
platform:
- x64
+branches:
+ except:
+ - trunk # mirrored from trunk. avoid doubly building on it
environment:
ruby_version: "24-%Platform%"
zlib_version: "1.2.11"
matrix:
+ # to reduce time for finishing all jobs, run the slowest msys2 build first.
+ - build: msys2
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+ GEMS_FOR_TEST: "timezone tzinfo"
- build: vs
vs: 120
ssl: OpenSSL
@@ -47,15 +51,13 @@ for:
- echo>> Makefile BUILTIN_ENCOBJS=nul
- type win32\Makefile.sub >> Makefile
- nmake %mflags% touch-unicode-files
- - nmake %mflags% %UPDATE_UNICODE% incs
- - nmake %mflags% extract-extlibs
+ - nmake %mflags% %UPDATE_UNICODE% up incs
- del Makefile
- mkdir \usr\local\bin
- mkdir \usr\local\include
- mkdir \usr\local\lib
- - SET ZLIB_ZIP=.downloaded-cache\zlib%zlib_version:.=%.zip
- - if not exist %ZLIB_ZIP% curl -fsSL -o %ZLIB_ZIP% --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
- - 7z x -aos -o%APPVEYOR_BUILD_FOLDER%\ext\zlib %ZLIB_ZIP%
+ - curl -fsSL -o zlib%zlib_version:.=%.zip --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
+ - 7z x -o%APPVEYOR_BUILD_FOLDER%\ext\zlib zlib%zlib_version:.=%.zip
- for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I
- attrib +r /s /d
- mkdir %Platform%-mswin_%vs%
@@ -76,21 +78,70 @@ for:
# separately execute tests without -j which may crash worker with -j.
- nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb"
- nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
+-
+ matrix:
+ only:
+ - build: msys2
+ install:
+ - ver
+ - chcp
+ - set /a JOBS=%NUMBER_OF_PROCESSORS%
+ - set MSYS_NO_PATHCONV=1
+ - SET MSYSTEM=%Platform:x86=32%
+ - SET MSYSTEM=%MSYSTEM:x=MINGW%
+ - SET MSYS2_ARCH=%Platform:x86=i686%
+ - SET MSYS2_ARCH=%MSYS2_ARCH:x64=x86_64%
+ - set MSYSTEM_PREFIX=/mingw64
+ - set MINGW_CHOST=%MSYS2_ARCH%-w64-mingw32
+ - SET ruby_path=C:\Ruby%ruby_version:-x86=%
+ - cd ..
+ - mkdir build
+ - mkdir install
+ - SET PATH=%ruby_path%\bin;C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%PATH%
+ - ruby --version
+ build_script:
+ - pacman -Syd --noconfirm --noprogressbar --needed mingw-w64-x86_64-binutils mingw-w64-x86_64-isl mingw-w64-x86_64-libiconv mingw-w64-x86_64-mpc mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-windows-default-manifest mingw-w64-x86_64-winpthreads mingw-w64-x86_64-gcc
+ # when fixed in MSYS2 / Mingw-w64, remove above and use normal code below
+ #- pacman -Sy --noconfirm --noprogressbar --needed mingw-w64-x86_64-toolchain
+ - pacman -S --noconfirm --noprogressbar --needed mingw-w64-x86_64-gdbm mingw-w64-x86_64-gmp mingw-w64-x86_64-libffi mingw-w64-x86_64-libyaml mingw-w64-x86_64-openssl mingw-w64-x86_64-ragel mingw-w64-x86_64-readline mingw-w64-x86_64-zlib
+ - cd %APPVEYOR_BUILD_FOLDER%
+ - set CFLAGS=-march=%MSYS2_ARCH:_=-% -mtune=generic -O3 -pipe
+ - set CXXFLAGS=%CFLAGS%
+ - set CPPFLAGS=-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048
+ - set LDFLAGS=-pipe
+ - sh -c "autoreconf -fi"
+ - cd ..\build
+ - sh ../ruby/configure --disable-install-doc --prefix=/. --build=%MINGW_CHOST% --host=%MINGW_CHOST% --target=%MINGW_CHOST%
+ - mingw32-make %mflags% touch-unicode-files
+ - mingw32-make -j%JOBS% %UPDATE_UNICODE% up incs
+ - mingw32-make -j%JOBS% V=1
+ - mingw32-make DESTDIR=../install install-nodoc
+ - if not "%GEMS_FOR_TEST%" == "" ..\install\bin\gem install --no-document %GEMS_FOR_TEST%
+ - ..\install\bin\ruby.exe -v -ropenssl -e "puts 'Build ' + OpenSSL::OPENSSL_VERSION, 'Runtime ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
+ test_script:
+ - mingw32-make test
+ - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri"
+ # separately execute tests without -j which may crash worker with -j.
+ - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb"
+ - mingw32-make test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
notifications:
+ # Using "Webhook" with templated body to skip notification on Pull Request
- provider: Webhook
method: POST
url:
- secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # ruby-lang slack: ruby/simpler-alerts-bot
+ secure: iMINHMS0nZabaDsxN9omRDsekxzVvAAzEq5ev7lN6vb+gUETT+rbDKLGxBxBpEpxlnPlLdzroIJ+DTKlwfJA8VkGawTn9EXNsucH0OkSf2M= # AppVeyor CI
body: >-
{{^isPullRequest}}
{
- "ci": "AppVeyor CI",
- "env": "Visual Studio 2013 / 2015",
- "url": "{{buildUrl}}",
- "commit": "{{commitId}}",
- "branch": "{{branch}}"
+ "attachments": [
+ {
+ "text": "Build <{{buildUrl}}|#{{buildVersion}}> (<{{commitUrl}}|{{commitId}}>) of {{repositoryName}}@{{branch}} by {{commitAuthor}} {{status}}",
+ "color": "{{#passed}}good{{/passed}}{{#failed}}danger{{/failed}}"
+ }
+ ],
+ "channel": "#alerts"
}
{{/isPullRequest}}
on_build_success: false
on_build_failure: true
- on_build_status_changed: false
+ on_build_status_changed: true
diff --git a/array.c b/array.c
index c0c8016813..28bd8c866b 100644
--- a/array.c
+++ b/array.c
@@ -10,29 +10,16 @@
Copyright (C) 2000 Information-technology Promotion Agency, Japan
**********************************************************************/
-
-#include "debug_counter.h"
-#include "id.h"
-#include "internal.h"
-#include "internal/array.h"
-#include "internal/compar.h"
-#include "internal/enum.h"
-#include "internal/gc.h"
-#include "internal/hash.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/proc.h"
-#include "internal/rational.h"
-#include "internal/vm.h"
-#include "probes.h"
#include "ruby/encoding.h"
-#include "ruby/st.h"
#include "ruby/util.h"
+#include "ruby/st.h"
+#include "probes.h"
+#include "id.h"
+#include "debug_counter.h"
#include "transient_heap.h"
-#include "builtin.h"
+#include "internal.h"
#if !ARRAY_DEBUG
-# undef NDEBUG
# define NDEBUG
#endif
#include "ruby_assert.h"
@@ -46,14 +33,12 @@ VALUE rb_cArray;
#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))
#define SMALL_ARRAY_LEN 16
-RBIMPL_ATTR_MAYBE_UNUSED()
static int
should_be_T_ARRAY(VALUE ary)
{
return RB_TYPE_P(ary, T_ARRAY);
}
-RBIMPL_ATTR_MAYBE_UNUSED()
static int
should_not_be_shared_and_embedded(VALUE ary)
{
@@ -219,11 +204,9 @@ ary_verify_(VALUE ary, const char *file, int line)
#endif
}
-#if USE_TRANSIENT_HEAP
if (RARRAY_TRANSIENT_P(ary)) {
assert(rb_transient_heap_managed_ptr_p(RARRAY_CONST_PTR_TRANSIENT(ary)));
}
-#endif
rb_transient_heap_verify();
@@ -562,33 +545,34 @@ rb_ary_modify_check(VALUE ary)
}
void
-rb_ary_cancel_sharing(VALUE ary)
+rb_ary_modify(VALUE ary)
{
+ rb_ary_modify_check(ary);
if (ARY_SHARED_P(ary)) {
- long shared_len, len = RARRAY_LEN(ary);
+ long shared_len, len = RARRAY_LEN(ary);
VALUE shared_root = ARY_SHARED_ROOT(ary);
ary_verify(shared_root);
if (len <= RARRAY_EMBED_LEN_MAX) {
- const VALUE *ptr = ARY_HEAP_PTR(ary);
+ const VALUE *ptr = ARY_HEAP_PTR(ary);
FL_UNSET_SHARED(ary);
FL_SET_EMBED(ary);
- MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);
+ MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);
rb_ary_decrement_share(shared_root);
ARY_SET_EMBED_LEN(ary, len);
}
else if (ARY_SHARED_ROOT_OCCUPIED(shared_root) && len > ((shared_len = RARRAY_LEN(shared_root))>>1)) {
long shift = RARRAY_CONST_PTR_TRANSIENT(ary) - RARRAY_CONST_PTR_TRANSIENT(shared_root);
- FL_UNSET_SHARED(ary);
+ FL_UNSET_SHARED(ary);
ARY_SET_PTR(ary, RARRAY_CONST_PTR_TRANSIENT(shared_root));
- ARY_SET_CAPA(ary, shared_len);
+ ARY_SET_CAPA(ary, shared_len);
RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr, ptr+shift, VALUE, len);
- });
+ MEMMOVE(ptr, ptr+shift, VALUE, len);
+ });
FL_SET_EMBED(shared_root);
rb_ary_decrement_share(shared_root);
- }
+ }
else {
VALUE *ptr = ary_heap_alloc(ary, len);
MEMCPY(ptr, ARY_HEAP_PTR(ary), VALUE, len);
@@ -597,18 +581,11 @@ rb_ary_cancel_sharing(VALUE ary)
ARY_SET_PTR(ary, ptr);
}
- rb_gc_writebarrier_remember(ary);
+ rb_gc_writebarrier_remember(ary);
}
ary_verify(ary);
}
-void
-rb_ary_modify(VALUE ary)
-{
- rb_ary_modify_check(ary);
- rb_ary_cancel_sharing(ary);
-}
-
static VALUE
ary_ensure_room_for_push(VALUE ary, long add_len)
{
@@ -659,15 +636,12 @@ ary_ensure_room_for_push(VALUE ary, long add_len)
/*
* call-seq:
- * array.freeze -> self
+ * ary.freeze -> ary
*
- * Freezes +self+; returns +self+:
- * a = []
- * a.frozen? # => false
- * a.freeze
- * a.frozen? # => true
+ * Calls Object#freeze on +ary+ to prevent any further
+ * modification. A RuntimeError will be raised if a modification
+ * attempt is made.
*
- * An attempt to modify a frozen \Array raises FrozenError.
*/
VALUE
@@ -790,58 +764,6 @@ rb_ary_new_from_values(long n, const VALUE *elts)
return rb_ary_tmp_new_from_values(rb_cArray, n, elts);
}
-static VALUE
-ec_ary_alloc(rb_execution_context_t *ec, VALUE klass)
-{
- RB_EC_NEWOBJ_OF(ec, ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
- /* Created array is:
- * FL_SET_EMBED((VALUE)ary);
- * ARY_SET_EMBED_LEN((VALUE)ary, 0);
- */
- return (VALUE)ary;
-}
-
-static VALUE
-ec_ary_new(rb_execution_context_t *ec, VALUE klass, long capa)
-{
- VALUE ary,*ptr;
-
- if (capa < 0) {
- rb_raise(rb_eArgError, "negative array size (or size too big)");
- }
- if (capa > ARY_MAX_SIZE) {
- rb_raise(rb_eArgError, "array size too big");
- }
-
- RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);
-
- ary = ec_ary_alloc(ec, klass);
-
- if (capa > RARRAY_EMBED_LEN_MAX) {
- ptr = ary_heap_alloc(ary, capa);
- FL_UNSET_EMBED(ary);
- ARY_SET_PTR(ary, ptr);
- ARY_SET_CAPA(ary, capa);
- ARY_SET_HEAP_LEN(ary, 0);
- }
-
- return ary;
-}
-
-VALUE
-rb_ec_ary_new_from_values(rb_execution_context_t *ec, long n, const VALUE *elts)
-{
- VALUE ary;
-
- ary = ec_ary_new(ec, rb_cArray, n);
- if (n > 0 && elts) {
- ary_memcpy(ary, 0, n, elts);
- ARY_SET_LEN(ary, n);
- }
-
- return ary;
-}
-
VALUE
rb_ary_tmp_new(long capa)
{
@@ -932,26 +854,25 @@ ary_make_shared(VALUE ary)
long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);
const VALUE *ptr;
NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
- VALUE vshared = (VALUE)shared;
rb_ary_transient_heap_evacuate(ary, TRUE);
ptr = ARY_HEAP_PTR(ary);
- FL_UNSET_EMBED(vshared);
- ARY_SET_LEN(vshared, capa);
- ARY_SET_PTR(vshared, ptr);
- ary_mem_clear(vshared, len, capa - len);
- FL_SET_SHARED_ROOT(vshared);
- ARY_SET_SHARED_ROOT_REFCNT(vshared, 1);
+ FL_UNSET_EMBED(shared);
+ ARY_SET_LEN((VALUE)shared, capa);
+ ARY_SET_PTR((VALUE)shared, ptr);
+ ary_mem_clear((VALUE)shared, len, capa - len);
+ FL_SET_SHARED_ROOT(shared);
+ ARY_SET_SHARED_ROOT_REFCNT((VALUE)shared, 1);
FL_SET_SHARED(ary);
RB_DEBUG_COUNTER_INC(obj_ary_shared_create);
- ARY_SET_SHARED(ary, vshared);
- OBJ_FREEZE(vshared);
+ ARY_SET_SHARED(ary, (VALUE)shared);
+ OBJ_FREEZE(shared);
- ary_verify(vshared);
+ ary_verify((VALUE)shared);
ary_verify(ary);
- return vshared;
+ return (VALUE)shared;
}
}
@@ -998,16 +919,21 @@ rb_check_to_array(VALUE ary)
/*
* call-seq:
- * Array.try_convert(object) -> object, new_array, or nil
+ * Array.try_convert(obj) -> array or nil
*
- * If +object+ is an \Array object, returns +object+.
+ * Tries to convert +obj+ into an array, using the +to_ary+ method. Returns
+ * the converted array or +nil+ if +obj+ cannot be converted.
+ * This method can be used to check if an argument is an array.
*
- * Otherwise if +object+ responds to <tt>:to_ary</tt>,
- * calls <tt>object.to_ary</tt> and returns the result.
+ * Array.try_convert([1]) #=> [1]
+ * Array.try_convert("1") #=> nil
*
- * Returns +nil+ if +object+ does not respond to <tt>:to_ary</tt>
+ * if tmp = Array.try_convert(arg)
+ * # the argument is an array
+ * elsif tmp = String.try_convert(arg)
+ * # the argument is a string
+ * end
*
- * Raises an exception unless <tt>object.to_ary</tt> returns an \Array object.
*/
static VALUE
@@ -1018,46 +944,58 @@ rb_ary_s_try_convert(VALUE dummy, VALUE ary)
/*
* call-seq:
- * Array.new -> new_empty_array
- * Array.new(array) -> new_array
- * Array.new(size) -> new_array
- * Array.new(size, default_value) -> new_array
- * Array.new(size) {|index| ... } -> new_array
- *
- * Returns a new \Array.
- *
- * With no block and no arguments, returns a new empty \Array object.
- *
- * With no block and a single \Array argument +array+,
- * returns a new \Array formed from +array+:
- * a = Array.new([:foo, 'bar', 2])
- * a.class # => Array
- * a # => [:foo, "bar", 2]
- *
- * With no block and a single \Integer argument +size+,
- * returns a new \Array of the given size
- * whose elements are all +nil+:
- * a = Array.new(3)
- * a # => [nil, nil, nil]
- *
- * With no block and arguments +size+ and +default_value+,
- * returns an \Array of the given size;
- * each element is that same +default_value+:
- * a = Array.new(3, 'x')
- * a # => ['x', 'x', 'x']
- *
- * With a block and argument +size+,
- * returns an \Array of the given size;
- * the block is called with each successive integer +index+;
- * the element for that +index+ is the return value from the block:
- * a = Array.new(3) {|index| "Element #{index}" }
- * a # => ["Element 0", "Element 1", "Element 2"]
- *
- * Raises ArgumentError if +size+ is negative.
- *
- * With a block and no argument,
- * or a single argument +0+,
- * ignores the block and returns a new empty \Array.
+ * Array.new(size=0, default=nil)
+ * Array.new(array)
+ * Array.new(size) {|index| block }
+ *
+ * Returns a new array.
+ *
+ * In the first form, if no arguments are sent, the new array will be empty.
+ * When a +size+ and an optional +default+ are sent, an array is created with
+ * +size+ copies of +default+. Take notice that all elements will reference the
+ * same object +default+.
+ *
+ * The second form creates a copy of the array passed as a parameter (the
+ * array is generated by calling to_ary on the parameter).
+ *
+ * first_array = ["Matz", "Guido"]
+ *
+ * second_array = Array.new(first_array) #=> ["Matz", "Guido"]
+ *
+ * first_array.equal? second_array #=> false
+ *
+ * In the last form, an array of the given size is created. Each element in
+ * this array is created by passing the element's index to the given block
+ * and storing the return value.
+ *
+ * Array.new(3) {|index| index ** 2}
+ * # => [0, 1, 4]
+ *
+ * == Common gotchas
+ *
+ * When sending the second parameter, the same object will be used as the
+ * value for all the array elements:
+ *
+ * a = Array.new(2, Hash.new)
+ * # => [{}, {}]
+ *
+ * a[0]['cat'] = 'feline'
+ * a # => [{"cat"=>"feline"}, {"cat"=>"feline"}]
+ *
+ * a[1]['cat'] = 'Felix'
+ * a # => [{"cat"=>"Felix"}, {"cat"=>"Felix"}]
+ *
+ * Since all the Array elements store the same hash, changes to one of them
+ * will affect them all.
+ *
+ * If multiple copies are what you want, you should use the block
+ * version which uses the result of that block each time an element
+ * of the array needs to be initialized:
+ *
+ * a = Array.new(2) {Hash.new}
+ * a[0]['cat'] = 'feline'
+ * a # => [{"cat"=>"feline"}, {}]
+ *
*/
static VALUE
@@ -1199,55 +1137,9 @@ ary_make_partial(VALUE ary, VALUE klass, long offset, long len)
}
static VALUE
-ary_make_partial_step(VALUE ary, VALUE klass, long offset, long len, long step)
-{
- assert(offset >= 0);
- assert(len >= 0);
- assert(offset+len <= RARRAY_LEN(ary));
- assert(step != 0);
-
- const VALUE *values = RARRAY_CONST_PTR_TRANSIENT(ary);
- const long orig_len = len;
-
- if ((step > 0 && step >= len) || (step < 0 && (step < -len))) {
- VALUE result = ary_new(klass, 1);
- VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);
- RB_OBJ_WRITE(result, ptr, values[offset]);
- ARY_SET_EMBED_LEN(result, 1);
- return result;
- }
-
- long ustep = (step < 0) ? -step : step;
- len = (len + ustep - 1) / ustep;
-
- long i;
- long j = offset + ((step > 0) ? 0 : (orig_len - 1));
- VALUE result = ary_new(klass, len);
- if (len <= RARRAY_EMBED_LEN_MAX) {
- VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);
- for (i = 0; i < len; ++i) {
- RB_OBJ_WRITE(result, ptr+i, values[j]);
- j += step;
- }
- ARY_SET_EMBED_LEN(result, len);
- }
- else {
- RARRAY_PTR_USE_TRANSIENT(result, ptr, {
- for (i = 0; i < len; ++i) {
- RB_OBJ_WRITE(result, ptr+i, values[j]);
- j += step;
- }
- });
- ARY_SET_LEN(result, len);
- }
-
- return result;
-}
-
-static VALUE
ary_make_shared_copy(VALUE ary)
{
- return ary_make_partial(ary, rb_cArray, 0, RARRAY_LEN(ary));
+ return ary_make_partial(ary, rb_obj_class(ary), 0, RARRAY_LEN(ary));
}
enum ary_take_pos_flags
@@ -1285,16 +1177,18 @@ ary_take_first_or_last(int argc, const VALUE *argv, VALUE ary, enum ary_take_pos
/*
* call-seq:
- * array << object -> self
+ * ary << obj -> ary
*
- * Appends +object+ to +self+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a << :baz # => [:foo, "bar", 2, :baz]
+ * Append---Pushes the given object on to the end of this array. This
+ * expression returns the array itself, so several appends
+ * may be chained together.
+ *
+ * a = [ 1, 2 ]
+ * a << "c" << "d" << [ 3, 4 ]
+ * #=> [ 1, 2, "c", "d", [ 3, 4 ] ]
+ * a
+ * #=> [ 1, 2, "c", "d", [ 3, 4 ] ]
*
- * Appends +object+ as one element, even if it is another \Array:
- * a = [:foo, 'bar', 2]
- * a1 = a << [3, 4]
- * a1 # => [:foo, "bar", 2, [3, 4]]
*/
VALUE
@@ -1322,22 +1216,19 @@ rb_ary_cat(VALUE ary, const VALUE *argv, long len)
/*
* call-seq:
- * array.push(*objects) -> self
- *
- * Appends trailing elements.
- *
- * Appends each argument in +objects+ to +self+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a.push(:baz, :bat) # => [:foo, "bar", 2, :baz, :bat]
- *
- * Appends each argument as one element, even if it is another \Array:
- * a = [:foo, 'bar', 2]
- * a1 = a.push([:baz, :bat], [:bam, :bad])
- * a1 # => [:foo, "bar", 2, [:baz, :bat], [:bam, :bad]]
- *
- * Array#append is an alias for \Array#push.
- *
- * Related: #pop, #shift, #unshift.
+ * ary.push(obj, ...) -> ary
+ * ary.append(obj, ...) -> ary
+ *
+ * Append --- Pushes the given object(s) on to the end of this array. This
+ * expression returns the array itself, so several appends
+ * may be chained together. See also Array#pop for the opposite
+ * effect.
+ *
+ * a = [ "a", "b", "c" ]
+ * a.push("d", "e", "f")
+ * #=> ["a", "b", "c", "d", "e", "f"]
+ * [1, 2, 3].push(4).push(5)
+ * #=> [1, 2, 3, 4, 5]
*/
static VALUE
@@ -1367,30 +1258,20 @@ rb_ary_pop(VALUE ary)
/*
* call-seq:
- * array.pop -> object or nil
- * array.pop(n) -> new_array
- *
- * Removes and returns trailing elements.
- *
- * When no argument is given and +self+ is not empty,
- * removes and returns the last element:
- * a = [:foo, 'bar', 2]
- * a.pop # => 2
- * a # => [:foo, "bar"]
+ * ary.pop -> obj or nil
+ * ary.pop(n) -> new_ary
*
- * Returns +nil+ if the array is empty.
+ * Removes the last element from +self+ and returns it, or
+ * +nil+ if the array is empty.
*
- * When a non-negative \Integer argument +n+ is given and is in range,
- * removes and returns the last +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.pop(2) # => ["bar", 2]
+ * If a number +n+ is given, returns an array of the last +n+ elements
+ * (or less) just like <code>array.slice!(-n, n)</code> does. See also
+ * Array#push for the opposite effect.
*
- * If +n+ is positive and out of range,
- * removes and returns all elements:
- * a = [:foo, 'bar', 2]
- * a.pop(50) # => [:foo, "bar", 2]
- *
- * Related: #push, #shift, #unshift.
+ * a = [ "a", "b", "c", "d" ]
+ * a.pop #=> "d"
+ * a.pop(2) #=> ["b", "c"]
+ * a #=> ["a"]
*/
static VALUE
@@ -1445,32 +1326,25 @@ rb_ary_shift(VALUE ary)
/*
* call-seq:
- * array.shift -> object or nil
- * array.shift(n) -> new_array
- *
- * Removes and returns leading elements.
- *
- * When no argument is given, removes and returns the first element:
- * a = [:foo, 'bar', 2]
- * a.shift # => :foo
- * a # => ['bar', 2]
+ * ary.shift -> obj or nil
+ * ary.shift(n) -> new_ary
*
- * Returns +nil+ if +self+ is empty.
+ * Removes the first element of +self+ and returns it (shifting all
+ * other elements down by one). Returns +nil+ if the array
+ * is empty.
*
- * When positive \Integer argument +n+ is given, removes the first +n+ elements;
- * returns those elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.shift(2) # => [:foo, 'bar']
- * a # => [2]
+ * If a number +n+ is given, returns an array of the first +n+ elements
+ * (or less) just like <code>array.slice!(0, n)</code> does. With +ary+
+ * containing only the remainder elements, not including what was shifted to
+ * +new_ary+. See also Array#unshift for the opposite effect.
*
- * If +n+ is as large as or larger than <tt>self.length</tt>,
- * removes all elements; returns those elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.shift(3) # => [:foo, 'bar', 2]
+ * args = [ "-m", "-q", "filename" ]
+ * args.shift #=> "-m"
+ * args #=> ["-q", "filename"]
*
- * If +n+ is zero, returns a new empty \Array; +self+ is unmodified.
- *
- * Related: #push, #pop, #unshift.
+ * args = [ "-m", "-q", "filename" ]
+ * args.shift(2) #=> ["-m", "-q"]
+ * args #=> ["filename"]
*/
static VALUE
@@ -1491,75 +1365,59 @@ rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)
return result;
}
-static VALUE
-behead_shared(VALUE ary, long n)
-{
- assert(ARY_SHARED_P(ary));
- rb_ary_modify_check(ary);
- if (ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary))) {
- ary_mem_clear(ary, 0, n);
- }
- ARY_INCREASE_PTR(ary, n);
- ARY_INCREASE_LEN(ary, -n);
- ary_verify(ary);
- return ary;
-}
-
-static VALUE
-behead_transient(VALUE ary, long n)
-{
- rb_ary_modify_check(ary);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr, ptr+n, VALUE, RARRAY_LEN(ary)-n);
- }); /* WB: no new reference */
- ARY_INCREASE_LEN(ary, -n);
- ary_verify(ary);
- return ary;
-}
-
MJIT_FUNC_EXPORTED VALUE
rb_ary_behead(VALUE ary, long n)
{
- if (n <= 0) {
- return ary;
- }
- else if (ARY_SHARED_P(ary)) {
- return behead_shared(ary, n);
- }
- else if (RARRAY_LEN(ary) >= ARY_DEFAULT_SIZE) {
- ary_make_shared(ary);
- return behead_shared(ary, n);
+ if (n<=0) return ary;
+
+ rb_ary_modify_check(ary);
+ if (ARY_SHARED_P(ary)) {
+ if (ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary))) {
+ setup_occupied_shared:
+ ary_mem_clear(ary, 0, n);
+ }
+ ARY_INCREASE_PTR(ary, n);
}
else {
- return behead_transient(ary, n);
- }
-}
-
-static VALUE
-make_room_for_unshift(VALUE ary, const VALUE *head, VALUE *sharedp, int argc, long capa, long len)
-{
- if (head - sharedp < argc) {
- long room = capa - len - argc;
-
- room -= room >> 4;
- MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);
- head = sharedp + argc + room;
+ if (RARRAY_LEN(ary) < ARY_DEFAULT_SIZE) {
+ RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
+ MEMMOVE(ptr, ptr+n, VALUE, RARRAY_LEN(ary)-n);
+ }); /* WB: no new reference */
+ }
+ else {
+ ary_make_shared(ary);
+ goto setup_occupied_shared;
+ }
}
- ARY_SET_PTR(ary, head - argc);
- assert(ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary)));
+ ARY_INCREASE_LEN(ary, -n);
ary_verify(ary);
- return ARY_SHARED_ROOT(ary);
+ return ary;
}
static VALUE
-ary_modify_for_unshift(VALUE ary, int argc)
+ary_ensure_room_for_unshift(VALUE ary, int argc)
{
long len = RARRAY_LEN(ary);
long new_len = len + argc;
long capa;
const VALUE *head, *sharedp;
+ if (len > ARY_MAX_SIZE - argc) {
+ rb_raise(rb_eIndexError, "index %ld too big", new_len);
+ }
+
+ if (ARY_SHARED_P(ary)) {
+ VALUE shared_root = ARY_SHARED_ROOT(ary);
+ capa = RARRAY_LEN(shared_root);
+ if (ARY_SHARED_ROOT_OCCUPIED(shared_root) && capa > new_len) {
+ rb_ary_modify_check(ary);
+ head = RARRAY_CONST_PTR_TRANSIENT(ary);
+ sharedp = RARRAY_CONST_PTR_TRANSIENT(shared_root);
+ goto makeroom_if_need;
+ }
+ }
+
rb_ary_modify(ary);
capa = ARY_CAPA(ary);
if (capa - (capa >> 6) <= new_len) {
@@ -1575,7 +1433,21 @@ ary_modify_for_unshift(VALUE ary, int argc)
ary_make_shared(ary);
head = sharedp = RARRAY_CONST_PTR_TRANSIENT(ary);
- return make_room_for_unshift(ary, head, (void *)sharedp, argc, capa, len);
+ goto makeroom;
+ makeroom_if_need:
+ if (head - sharedp < argc) {
+ long room;
+ makeroom:
+ room = capa - new_len;
+ room -= room >> 4;
+ MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);
+ head = sharedp + argc + room;
+ }
+ ARY_SET_PTR(ary, head - argc);
+ assert(ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary)));
+
+ ary_verify(ary);
+ return ARY_SHARED_ROOT(ary);
}
else {
/* sliding items */
@@ -1588,49 +1460,17 @@ ary_modify_for_unshift(VALUE ary, int argc)
}
}
-static VALUE
-ary_ensure_room_for_unshift(VALUE ary, int argc)
-{
- long len = RARRAY_LEN(ary);
- long new_len = len + argc;
-
- if (len > ARY_MAX_SIZE - argc) {
- rb_raise(rb_eIndexError, "index %ld too big", new_len);
- }
- else if (! ARY_SHARED_P(ary)) {
- return ary_modify_for_unshift(ary, argc);
- }
- else {
- VALUE shared_root = ARY_SHARED_ROOT(ary);
- long capa = RARRAY_LEN(shared_root);
-
- if (! ARY_SHARED_ROOT_OCCUPIED(shared_root)) {
- return ary_modify_for_unshift(ary, argc);
- }
- else if (new_len > capa) {
- return ary_modify_for_unshift(ary, argc);
- }
- else {
- const VALUE * head = RARRAY_CONST_PTR_TRANSIENT(ary);
- void *sharedp = (void *)RARRAY_CONST_PTR_TRANSIENT(shared_root);
-
- rb_ary_modify_check(ary);
- return make_room_for_unshift(ary, head, sharedp, argc, capa, len);
- }
- }
-}
-
/*
* call-seq:
- * array.unshift(*objects) -> self
+ * ary.unshift(obj, ...) -> ary
+ * ary.prepend(obj, ...) -> ary
*
- * Prepends the given +objects+ to +self+:
- * a = [:foo, 'bar', 2]
- * a.unshift(:bam, :bat) # => [:bam, :bat, :foo, "bar", 2]
+ * Prepends objects to the front of +self+, moving other elements upwards.
+ * See also Array#shift for the opposite effect.
*
- * Array#prepend is an alias for Array#unshift.
- *
- * Related: #push, #pop, #shift.
+ * a = [ "b", "c", "d" ]
+ * a.unshift("a") #=> ["a", "b", "c", "d"]
+ * a.unshift(1, 2) #=> [ 1, 2, "a", "b", "c", "d"]
*/
static VALUE
@@ -1675,7 +1515,7 @@ rb_ary_entry(VALUE ary, long offset)
}
VALUE
-rb_ary_subseq_step(VALUE ary, long beg, long len, long step)
+rb_ary_subseq(VALUE ary, long beg, long len)
{
VALUE klass;
long alen = RARRAY_LEN(ary);
@@ -1686,116 +1526,48 @@ rb_ary_subseq_step(VALUE ary, long beg, long len, long step)
if (alen < len || alen < beg + len) {
len = alen - beg;
}
- klass = rb_cArray;
+ klass = rb_obj_class(ary);
if (len == 0) return ary_new(klass, 0);
- if (step == 0)
- rb_raise(rb_eArgError, "slice step cannot be zero");
- if (step == 1)
- return ary_make_partial(ary, klass, beg, len);
- else
- return ary_make_partial_step(ary, klass, beg, len, step);
-}
-VALUE
-rb_ary_subseq(VALUE ary, long beg, long len)
-{
- return rb_ary_subseq_step(ary, beg, len, 1);
+ return ary_make_partial(ary, klass, beg, len);
}
static VALUE rb_ary_aref2(VALUE ary, VALUE b, VALUE e);
/*
* call-seq:
- * array[index] -> object or nil
- * array[start, length] -> object or nil
- * array[range] -> object or nil
- * array[aseq] -> object or nil
- * array.slice(index) -> object or nil
- * array.slice(start, length) -> object or nil
- * array.slice(range) -> object or nil
- * array.slice(aseq) -> object or nil
- *
- * Returns elements from +self+; does not modify +self+.
- *
- * When a single \Integer argument +index+ is given, returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a[0] # => :foo
- * a[2] # => 2
- * a # => [:foo, "bar", 2]
- *
- * If +index+ is negative, counts relative to the end of +self+:
- * a = [:foo, 'bar', 2]
- * a[-1] # => 2
- * a[-2] # => "bar"
- *
- * If +index+ is out of range, returns +nil+.
- *
- * When two \Integer arguments +start+ and +length+ are given,
- * returns a new \Array of size +length+ containing successive elements beginning at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0, 2] # => [:foo, "bar"]
- * a[1, 2] # => ["bar", 2]
- *
- * If <tt>start + length</tt> is greater than <tt>self.length</tt>,
- * returns all elements from offset +start+ to the end:
- * a = [:foo, 'bar', 2]
- * a[0, 4] # => [:foo, "bar", 2]
- * a[1, 3] # => ["bar", 2]
- * a[2, 2] # => [2]
- *
- * If <tt>start == self.size</tt> and <tt>length >= 0</tt>,
- * returns a new empty \Array.
- *
- * If +length+ is negative, returns +nil+.
- *
- * When a single \Range argument +range+ is given,
- * treats <tt>range.min</tt> as +start+ above
- * and <tt>range.size</tt> as +length+ above:
- * a = [:foo, 'bar', 2]
- * a[0..1] # => [:foo, "bar"]
- * a[1..2] # => ["bar", 2]
- *
- * Special case: If <tt>range.start == a.size</tt>, returns a new empty \Array.
- *
- * If <tt>range.end</tt> is negative, calculates the end index from the end:
- * a = [:foo, 'bar', 2]
- * a[0..-1] # => [:foo, "bar", 2]
- * a[0..-2] # => [:foo, "bar"]
- * a[0..-3] # => [:foo]
- *
- * If <tt>range.start</tt> is negative, calculates the start index from the end:
- * a = [:foo, 'bar', 2]
- * a[-1..2] # => [2]
- * a[-2..2] # => ["bar", 2]
- * a[-3..2] # => [:foo, "bar", 2]
- *
- * If <tt>range.start</tt> is larger than the array size, returns +nil+.
- * a = [:foo, 'bar', 2]
- * a[4..1] # => nil
- * a[4..0] # => nil
- * a[4..-1] # => nil
- *
- * When a single Enumerator::ArithmeticSequence argument +aseq+ is given,
- * returns an Array of elements corresponding to the indexes produced by
- * the sequence.
- * a = ['--', 'data1', '--', 'data2', '--', 'data3']
- * a[(1..).step(2)] # => ["data1", "data2", "data3"]
- *
- * Unlike slicing with range, if the start or the end of the arithmetic sequence
- * is larger than array size, throws RangeError.
- * a = ['--', 'data1', '--', 'data2', '--', 'data3']
- * a[(1..11).step(2)]
- * # RangeError (((1..11).step(2)) out of range)
- * a[(7..).step(2)]
- * # RangeError (((7..).step(2)) out of range)
- *
- * If given a single argument, and its type is not one of the listed, tries to
- * convert it to Integer, and raises if it is impossible:
- * a = [:foo, 'bar', 2]
- * # Raises TypeError (no implicit conversion of Symbol into Integer):
- * a[:foo]
- *
- * Array#slice is an alias for Array#[].
+ * ary[index] -> obj or nil
+ * ary[start, length] -> new_ary or nil
+ * ary[range] -> new_ary or nil
+ * ary.slice(index) -> obj or nil
+ * ary.slice(start, length) -> new_ary or nil
+ * ary.slice(range) -> new_ary or nil
+ *
+ * Element Reference --- Returns the element at +index+, or returns a
+ * subarray starting at the +start+ index and continuing for +length+
+ * elements, or returns a subarray specified by +range+ of indices.
+ *
+ * Negative indices count backward from the end of the array (-1 is the last
+ * element). For +start+ and +range+ cases the starting index is just before
+ * an element. Additionally, an empty array is returned when the starting
+ * index for an element range is at the end of the array.
+ *
+ * Returns +nil+ if the index (or starting index) are out of range.
+ *
+ * a = [ "a", "b", "c", "d", "e" ]
+ * a[2] + a[0] + a[1] #=> "cab"
+ * a[6] #=> nil
+ * a[1, 2] #=> [ "b", "c" ]
+ * a[1..3] #=> [ "b", "c", "d" ]
+ * a[4..7] #=> [ "e" ]
+ * a[6..10] #=> nil
+ * a[-3, 3] #=> [ "c", "d", "e" ]
+ * # special cases
+ * a[5] #=> nil
+ * a[6, 1] #=> nil
+ * a[5, 1] #=> []
+ * a[5..10] #=> []
+ *
*/
VALUE
@@ -1808,7 +1580,7 @@ rb_ary_aref(int argc, const VALUE *argv, VALUE ary)
return rb_ary_aref1(ary, argv[0]);
}
-static VALUE
+VALUE
rb_ary_aref2(VALUE ary, VALUE b, VALUE e)
{
long beg = NUM2LONG(b);
@@ -1822,33 +1594,35 @@ rb_ary_aref2(VALUE ary, VALUE b, VALUE e)
MJIT_FUNC_EXPORTED VALUE
rb_ary_aref1(VALUE ary, VALUE arg)
{
- long beg, len, step;
+ long beg, len;
/* special case - speeding up */
if (FIXNUM_P(arg)) {
return rb_ary_entry(ary, FIX2LONG(arg));
}
- /* check if idx is Range or ArithmeticSequence */
- switch (rb_arithmetic_sequence_beg_len_step(arg, &beg, &len, &step, RARRAY_LEN(ary), 0)) {
+ /* check if idx is Range */
+ switch (rb_range_beg_len(arg, &beg, &len, RARRAY_LEN(ary), 0)) {
case Qfalse:
- break;
+ break;
case Qnil:
- return Qnil;
+ return Qnil;
default:
- return rb_ary_subseq_step(ary, beg, len, step);
+ return rb_ary_subseq(ary, beg, len);
}
-
return rb_ary_entry(ary, NUM2LONG(arg));
}
/*
* call-seq:
- * array.at(index) -> object
+ * ary.at(index) -> obj or nil
*
- * Returns the element at \Integer offset +index+; does not modify +self+.
- * a = [:foo, 'bar', 2]
- * a.at(0) # => :foo
- * a.at(2) # => 2
+ * Returns the element at +index+. A negative index counts from the end of
+ * +self+. Returns +nil+ if the index is out of range. See also
+ * Array#[].
+ *
+ * a = [ "a", "b", "c", "d", "e" ]
+ * a.at(0) #=> "a"
+ * a.at(-1) #=> "e"
*/
VALUE
@@ -1859,33 +1633,19 @@ rb_ary_at(VALUE ary, VALUE pos)
/*
* call-seq:
- * array.first -> object or nil
- * array.first(n) -> new_array
- *
- * Returns elements from +self+; does not modify +self+.
- *
- * When no argument is given, returns the first element:
- * a = [:foo, 'bar', 2]
- * a.first # => :foo
- * a # => [:foo, "bar", 2]
- *
- * If +self+ is empty, returns +nil+.
- *
- * When non-negative \Integer argument +n+ is given,
- * returns the first +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.first(2) # => [:foo, "bar"]
- *
- * If <tt>n >= array.size</tt>, returns all elements:
- * a = [:foo, 'bar', 2]
- * a.first(50) # => [:foo, "bar", 2]
+ * ary.first -> obj or nil
+ * ary.first(n) -> new_ary
*
- * If <tt>n == 0</tt> returns an new empty \Array:
- * a = [:foo, 'bar', 2]
- * a.first(0) # []
+ * Returns the first element, or the first +n+ elements, of the array.
+ * If the array is empty, the first form returns +nil+, and the
+ * second form returns an empty array. See also Array#last for
+ * the opposite effect.
*
- * Related: #last.
+ * a = [ "q", "r", "s", "t" ]
+ * a.first #=> "q"
+ * a.first(2) #=> ["q", "r"]
*/
+
static VALUE
rb_ary_first(int argc, VALUE *argv, VALUE ary)
{
@@ -1900,32 +1660,17 @@ rb_ary_first(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.last -> object or nil
- * array.last(n) -> new_array
- *
- * Returns elements from +self+; +self+ is not modified.
- *
- * When no argument is given, returns the last element:
- * a = [:foo, 'bar', 2]
- * a.last # => 2
- * a # => [:foo, "bar", 2]
- *
- * If +self+ is empty, returns +nil+.
- *
- * When non-negative \Innteger argument +n+ is given,
- * returns the last +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.last(2) # => ["bar", 2]
+ * ary.last -> obj or nil
+ * ary.last(n) -> new_ary
*
- * If <tt>n >= array.size</tt>, returns all elements:
- * a = [:foo, 'bar', 2]
- * a.last(50) # => [:foo, "bar", 2]
+ * Returns the last element(s) of +self+. If the array is empty,
+ * the first form returns +nil+.
*
- * If <tt>n == 0</tt>, returns an new empty \Array:
- * a = [:foo, 'bar', 2]
- * a.last(0) # []
+ * See also Array#first for the opposite effect.
*
- * Related: #first.
+ * a = [ "w", "x", "y", "z" ]
+ * a.last #=> "z"
+ * a.last(2) #=> ["y", "z"]
*/
VALUE
@@ -1943,35 +1688,26 @@ rb_ary_last(int argc, const VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.fetch(index) -> element
- * array.fetch(index, default_value) -> element
- * array.fetch(index) {|index| ... } -> element
- *
- * Returns the element at offset +index+.
- *
- * With the single \Integer argument +index+,
- * returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.fetch(1) # => "bar"
- *
- * If +index+ is negative, counts from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.fetch(-1) # => 2
- * a.fetch(-2) # => "bar"
- *
- * With arguments +index+ and +default_value+,
- * returns the element at offset +index+ if index is in range,
- * otherwise returns +default_value+:
- * a = [:foo, 'bar', 2]
- * a.fetch(1, nil) # => "bar"
- *
- * With argument +index+ and a block,
- * returns the element at offset +index+ if index is in range
- * (and the block is not called); otherwise calls the block with index and returns its return value:
- *
- * a = [:foo, 'bar', 2]
- * a.fetch(1) {|index| raise 'Cannot happen' } # => "bar"
- * a.fetch(50) {|index| "Value for #{index}" } # => "Value for 50"
+ * ary.fetch(index) -> obj
+ * ary.fetch(index, default) -> obj
+ * ary.fetch(index) {|index| block} -> obj
+ *
+ * Tries to return the element at position +index+, but throws an IndexError
+ * exception if the referenced +index+ lies outside of the array bounds. This
+ * error can be prevented by supplying a second argument, which will act as a
+ * +default+ value.
+ *
+ * Alternatively, if a block is given it will only be executed when an
+ * invalid +index+ is referenced.
+ *
+ * Negative values of +index+ count from the end of the array.
+ *
+ * a = [ 11, 22, 33, 44 ]
+ * a.fetch(1) #=> 22
+ * a.fetch(-1) #=> 44
+ * a.fetch(4, 'cat') #=> "cat"
+ * a.fetch(100) {|i| puts "#{i} is out of bounds"}
+ * #=> "100 is out of bounds"
*/
static VALUE
@@ -2004,37 +1740,28 @@ rb_ary_fetch(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.index(object) -> integer or nil
- * array.index {|element| ... } -> integer or nil
- * array.index -> new_enumerator
+ * ary.find_index(obj) -> int or nil
+ * ary.find_index {|item| block} -> int or nil
+ * ary.find_index -> Enumerator
+ * ary.index(obj) -> int or nil
+ * ary.index {|item| block} -> int or nil
+ * ary.index -> Enumerator
*
- * Returns the index of a specified element.
+ * Returns the _index_ of the first object in +ary+ such that the object is
+ * <code>==</code> to +obj+.
*
- * When argument +object+ is given but no block,
- * returns the index of the first element +element+
- * for which <tt>object == element</tt>:
- * a = [:foo, 'bar', 2, 'bar']
- * a.index('bar') # => 1
+ * If a block is given instead of an argument, returns the _index_ of the
+ * first object for which the block returns +true+. Returns +nil+ if no
+ * match is found.
*
- * Returns +nil+ if no such element found.
+ * See also Array#rindex.
*
- * When both argument +object+ and a block are given,
- * calls the block with each successive element;
- * returns the index of the first element for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, 'bar']
- * a.index {|element| element == 'bar' } # => 1
+ * An Enumerator is returned if neither a block nor argument is given.
*
- * Returns +nil+ if the block never returns a truthy value.
- *
- * When neither an argument nor a block is given, returns a new Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.index
- * e # => #<Enumerator: [:foo, "bar", 2]:index>
- * e.each {|element| element == 'bar' } # => 1
- *
- * Array#find_index is an alias for Array#index.
- *
- * Related: #rindex.
+ * a = [ "a", "b", "c" ]
+ * a.index("b") #=> 1
+ * a.index("z") #=> nil
+ * a.index {|x| x == "b"} #=> 1
*/
static VALUE
@@ -2067,33 +1794,26 @@ rb_ary_index(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.rindex(object) -> integer or nil
- * array.rindex {|element| ... } -> integer or nil
- * array.rindex -> new_enumerator
+ * ary.rindex(obj) -> int or nil
+ * ary.rindex {|item| block} -> int or nil
+ * ary.rindex -> Enumerator
*
- * Returns the index of the last element for which <tt>object == element</tt>.
+ * Returns the _index_ of the last object in +self+ <code>==</code> to +obj+.
*
- * When argument +object+ is given but no block, returns the index of the last such element found:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rindex('bar') # => 3
+ * If a block is given instead of an argument, returns the _index_ of the
+ * first object for which the block returns +true+, starting from the last
+ * object.
*
- * Returns +nil+ if no such object found.
+ * Returns +nil+ if no match is found.
*
- * When a block is given but no argument, calls the block with each successive element;
- * returns the index of the last element for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rindex {|element| element == 'bar' } # => 3
+ * See also Array#index.
*
- * Returns +nil+ if the block never returns a truthy value.
+ * If neither block nor argument is given, an Enumerator is returned instead.
*
- * When neither an argument nor a block is given, returns a new \Enumerator:
- *
- * a = [:foo, 'bar', 2, 'bar']
- * e = a.rindex
- * e # => #<Enumerator: [:foo, "bar", 2, "bar"]:rindex>
- * e.each {|element| element == 'bar' } # => 3
- *
- * Related: #index.
+ * a = [ "a", "b", "b", "b", "c" ]
+ * a.rindex("b") #=> 3
+ * a.rindex("z") #=> nil
+ * a.rindex {|x| x == "b"} #=> 3
*/
static VALUE
@@ -2270,175 +1990,88 @@ rb_ary_resize(VALUE ary, long len)
return ary;
}
-static VALUE
-ary_aset_by_rb_ary_store(VALUE ary, long key, VALUE val)
-{
- rb_ary_store(ary, key, val);
- return val;
-}
-
-static VALUE
-ary_aset_by_rb_ary_splice(VALUE ary, long beg, long len, VALUE val)
-{
- VALUE rpl = rb_ary_to_ary(val);
- rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR_TRANSIENT(rpl), RARRAY_LEN(rpl));
- RB_GC_GUARD(rpl);
- return val;
-}
-
/*
* call-seq:
- * array[index] = object -> object
- * array[start, length] = object -> object
- * array[range] = object -> object
- *
- * Assigns elements in +self+; returns the given +object+.
- *
- * When \Integer argument +index+ is given, assigns +object+ to an element in +self+.
- *
- * If +index+ is non-negative, assigns +object+ the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a[0] = 'foo' # => "foo"
- * a # => ["foo", "bar", 2]
- *
- * If +index+ is greater than <tt>self.length</tt>, extends the array:
- * a = [:foo, 'bar', 2]
- * a[7] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, nil, "foo"]
- *
- * If +index+ is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-1] = 'two' # => "two"
- * a # => [:foo, "bar", "two"]
- *
- * When \Integer arguments +start+ and +length+ are given and +object+ is not an \Array,
- * removes <tt>length - 1</tt> elements beginning at offset +start+,
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0, 2] = 'foo' # => "foo"
- * a # => ["foo", 2]
- *
- * If +start+ is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-2, 2] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * If +start+ is non-negative and outside the array (<tt> >= self.size</tt>),
- * extends the array with +nil+, assigns +object+ at offset +start+,
- * and ignores +length+:
- * a = [:foo, 'bar', 2]
- * a[6, 50] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
- *
- * If +length+ is zero, shifts elements at and following offset +start+
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[1, 0] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- *
- * If +length+ is too large for the existing array, does not extend the array:
- * a = [:foo, 'bar', 2]
- * a[1, 5] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * When \Range argument +range+ is given and +object+ is an \Array,
- * removes <tt>length - 1</tt> elements beginning at offset +start+,
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0..1] = 'foo' # => "foo"
- * a # => ["foo", 2]
- *
- * if <tt>range.begin</tt> is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-2..2] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * If the array length is less than <tt>range.begin</tt>,
- * assigns +object+ at offset <tt>range.begin</tt>, and ignores +length+:
- * a = [:foo, 'bar', 2]
- * a[6..50] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
- *
- * If <tt>range.end</tt> is zero, shifts elements at and following offset +start+
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[1..0] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- *
- * If <tt>range.end</tt> is negative, assigns +object+ at offset +start+,
- * retains <tt>range.end.abs -1</tt> elements past that, and removes those beyond:
- * a = [:foo, 'bar', 2]
- * a[1..-1] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- * a = [:foo, 'bar', 2]
- * a[1..-2] = 'foo' # => "foo"
- * a # => [:foo, "foo", 2]
- * a = [:foo, 'bar', 2]
- * a[1..-3] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- * a = [:foo, 'bar', 2]
- *
- * If <tt>range.end</tt> is too large for the existing array,
- * replaces array elements, but does not extend the array with +nil+ values:
- * a = [:foo, 'bar', 2]
- * a[1..5] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
+ * ary[index] = obj -> obj
+ * ary[start, length] = obj or other_ary or nil -> obj or other_ary or nil
+ * ary[range] = obj or other_ary or nil -> obj or other_ary or nil
+ *
+ * Element Assignment --- Sets the element at +index+, or replaces a subarray
+ * from the +start+ index for +length+ elements, or replaces a subarray
+ * specified by the +range+ of indices.
+ *
+ * If indices are greater than the current capacity of the array, the array
+ * grows automatically. Elements are inserted into the array at +start+ if
+ * +length+ is zero.
+ *
+ * Negative indices will count backward from the end of the array. For
+ * +start+ and +range+ cases the starting index is just before an element.
+ *
+ * An IndexError is raised if a negative index points past the beginning of
+ * the array.
+ *
+ * See also Array#push, and Array#unshift.
+ *
+ * a = Array.new
+ * a[4] = "4"; #=> [nil, nil, nil, nil, "4"]
+ * a[0, 3] = [ 'a', 'b', 'c' ] #=> ["a", "b", "c", nil, "4"]
+ * a[1..2] = [ 1, 2 ] #=> ["a", 1, 2, nil, "4"]
+ * a[0, 2] = "?" #=> ["?", 2, nil, "4"]
+ * a[0..2] = "A" #=> ["A", "4"]
+ * a[-1] = "Z" #=> ["A", "Z"]
+ * a[1..-1] = nil #=> ["A", nil]
+ * a[1..-1] = [] #=> ["A"]
+ * a[0, 0] = [ 1, 2 ] #=> [1, 2, "A"]
+ * a[3, 0] = "B" #=> [1, 2, "A", "B"]
*/
static VALUE
rb_ary_aset(int argc, VALUE *argv, VALUE ary)
{
long offset, beg, len;
+ VALUE rpl;
- rb_check_arity(argc, 2, 3);
- rb_ary_modify_check(ary);
if (argc == 3) {
+ rb_ary_modify_check(ary);
beg = NUM2LONG(argv[0]);
len = NUM2LONG(argv[1]);
- return ary_aset_by_rb_ary_splice(ary, beg, len, argv[2]);
+ goto range;
}
+ rb_check_arity(argc, 2, 2);
+ rb_ary_modify_check(ary);
if (FIXNUM_P(argv[0])) {
offset = FIX2LONG(argv[0]);
- return ary_aset_by_rb_ary_store(ary, offset, argv[1]);
+ goto fixnum;
}
if (rb_range_beg_len(argv[0], &beg, &len, RARRAY_LEN(ary), 1)) {
/* check if idx is Range */
- return ary_aset_by_rb_ary_splice(ary, beg, len, argv[1]);
+ range:
+ rpl = rb_ary_to_ary(argv[argc-1]);
+ rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR_TRANSIENT(rpl), RARRAY_LEN(rpl));
+ RB_GC_GUARD(rpl);
+ return argv[argc-1];
}
offset = NUM2LONG(argv[0]);
- return ary_aset_by_rb_ary_store(ary, offset, argv[1]);
+fixnum:
+ rb_ary_store(ary, offset, argv[1]);
+ return argv[1];
}
/*
* call-seq:
- * array.insert(index, *objects) -> self
+ * ary.insert(index, obj...) -> ary
*
- * Inserts given +objects+ before or after the element at \Integer index +offset+;
- * returns +self+.
+ * Inserts the given values before the element with the given +index+.
*
- * When +index+ is non-negative, inserts all given +objects+
- * before the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.insert(1, :bat, :bam) # => [:foo, :bat, :bam, "bar", 2]
- *
- * Extends the array if +index+ is beyond the array (<tt>index >= self.size</tt>):
- * a = [:foo, 'bar', 2]
- * a.insert(5, :bat, :bam)
- * a # => [:foo, "bar", 2, nil, nil, :bat, :bam]
- *
- * Does nothing if no objects given:
- * a = [:foo, 'bar', 2]
- * a.insert(1)
- * a.insert(50)
- * a.insert(-50)
- * a # => [:foo, "bar", 2]
- *
- * When +index+ is negative, inserts all given +objects+
- * _after_ the element at offset <tt>index+self.size</tt>:
- * a = [:foo, 'bar', 2]
- * a.insert(-2, :bat, :bam)
- * a # => [:foo, "bar", :bat, :bam, 2]
+ * Negative indices count backwards from the end of the array, where +-1+ is
+ * the last element. If a negative index is used, the given values will be
+ * inserted after that element, so using an index of +-1+ will insert the
+ * values at the end of the array.
+ *
+ * a = %w{ a b c d }
+ * a.insert(2, 99) #=> ["a", "b", 99, "c", "d"]
+ * a.insert(-2, 1, 2, 3) #=> ["a", "b", 99, "c", 1, 2, 3, "d"]
*/
static VALUE
@@ -2476,41 +2109,20 @@ ary_enum_length(VALUE ary, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.each {|element| ... } -> self
- * array.each -> Enumerator
- *
- * Iterates over array elements.
- *
- * When a block given, passes each successive array element to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.each {|element| puts "#{element.class} #{element}" }
+ * ary.each {|item| block} -> ary
+ * ary.each -> Enumerator
*
- * Output:
- * Symbol foo
- * String bar
- * Integer 2
+ * Calls the given block once for each element in +self+, passing that element
+ * as a parameter. Returns the array itself.
*
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.each {|element| puts element; a.clear if element.to_s.start_with?('b') }
+ * If no block is given, an Enumerator is returned.
*
- * Output:
- * foo
- * bar
+ * a = [ "a", "b", "c" ]
+ * a.each {|x| print x, " -- " }
*
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.each
- * e # => #<Enumerator: [:foo, "bar", 2]:each>
- * a1 = e.each {|element| puts "#{element.class} #{element}" }
+ * produces:
*
- * Output:
- * Symbol foo
- * String bar
- * Integer 2
- *
- * Related: #each_index, #reverse_each.
+ * a -- b -- c --
*/
VALUE
@@ -2527,41 +2139,20 @@ rb_ary_each(VALUE ary)
/*
* call-seq:
- * array.each_index {|index| ... } -> self
- * array.each_index -> Enumerator
- *
- * Iterates over array indexes.
+ * ary.each_index {|index| block} -> ary
+ * ary.each_index -> Enumerator
*
- * When a block given, passes each successive array index to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.each_index {|index| puts "#{index} #{a[index]}" }
+ * Same as Array#each, but passes the +index+ of the element instead of the
+ * element itself.
*
- * Output:
- * 0 foo
- * 1 bar
- * 2 2
+ * An Enumerator is returned if no block is given.
*
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.each_index {|index| puts index; a.clear if index > 0 }
+ * a = [ "a", "b", "c" ]
+ * a.each_index {|x| print x, " -- " }
*
- * Output:
- * 0
- * 1
+ * produces:
*
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.each_index
- * e # => #<Enumerator: [:foo, "bar", 2]:each_index>
- * a1 = e.each {|index| puts "#{index} #{a[index]}"}
- *
- * Output:
- * 0 foo
- * 1 bar
- * 2 2
- *
- * Related: #each, #reverse_each.
+ * 0 -- 1 -- 2 --
*/
static VALUE
@@ -2578,40 +2169,17 @@ rb_ary_each_index(VALUE ary)
/*
* call-seq:
- * array.reverse_each {|element| ... } -> self
- * array.reverse_each -> Enumerator
- *
- * Iterates backwards over array elements.
- *
- * When a block given, passes, in reverse order, each element to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.reverse_each {|element| puts "#{element.class} #{element}" }
- *
- * Output:
- * Integer 2
- * String bar
- * Symbol foo
- *
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.reverse_each {|element| puts element; a.clear if element.to_s.start_with?('b') }
- *
- * Output:
- * 2
- * bar
- *
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.reverse_each
- * e # => #<Enumerator: [:foo, "bar", 2]:reverse_each>
- * a1 = e.each {|element| puts "#{element.class} #{element}" }
- * Output:
- * Integer 2
- * String bar
- * Symbol foo
- *
- * Related: #each, #each_index.
+ * ary.reverse_each {|item| block} -> ary
+ * ary.reverse_each -> Enumerator
+ *
+ * Same as Array#each, but traverses +self+ in reverse order.
+ *
+ * a = [ "a", "b", "c" ]
+ * a.reverse_each {|x| print x, " " }
+ *
+ * produces:
+ *
+ * c b a
*/
static VALUE
@@ -2634,9 +2202,12 @@ rb_ary_reverse_each(VALUE ary)
/*
* call-seq:
- * array.length -> an_integer
+ * ary.length -> int
*
- * Returns the count of elements in +self+.
+ * Returns the number of elements in +self+. May be zero.
+ *
+ * [ 1, 2, 3, 4, 5 ].length #=> 5
+ * [].length #=> 0
*/
static VALUE
@@ -2648,10 +2219,11 @@ rb_ary_length(VALUE ary)
/*
* call-seq:
- * array.empty? -> true or false
+ * ary.empty? -> true or false
+ *
+ * Returns +true+ if +self+ contains no elements.
*
- * Returns +true+ if the count of elements in +self+ is zero,
- * +false+ otherwise.
+ * [].empty? #=> true
*/
static VALUE
@@ -2703,7 +2275,7 @@ recursive_join(VALUE obj, VALUE argp, int recur)
return Qnil;
}
-static long
+static void
ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)
{
long i;
@@ -2712,40 +2284,10 @@ ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)
if (max > 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));
for (i=0; i<max; i++) {
val = RARRAY_AREF(ary, i);
- if (!RB_TYPE_P(val, T_STRING)) break;
if (i > 0 && !NIL_P(sep))
rb_str_buf_append(result, sep);
rb_str_buf_append(result, val);
}
- return i;
-}
-
-static void
-ary_join_1_str(VALUE dst, VALUE src, int *first)
-{
- rb_str_buf_append(dst, src);
- if (*first) {
- rb_enc_copy(dst, src);
- *first = FALSE;
- }
-}
-
-static void
-ary_join_1_ary(VALUE obj, VALUE ary, VALUE sep, VALUE result, VALUE val, int *first)
-{
- if (val == ary) {
- rb_raise(rb_eArgError, "recursive array join");
- }
- else {
- VALUE args[4];
-
- *first = FALSE;
- args[0] = val;
- args[1] = sep;
- args[2] = result;
- args[3] = (VALUE)first;
- rb_exec_recursive(recursive_join, obj, (VALUE)args);
- }
}
static void
@@ -2759,19 +2301,44 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)
val = RARRAY_AREF(ary, i);
if (RB_TYPE_P(val, T_STRING)) {
- ary_join_1_str(result, val, first);
+ str_join:
+ rb_str_buf_append(result, val);
+ if (*first) {
+ rb_enc_copy(result, val);
+ *first = FALSE;
+ }
}
else if (RB_TYPE_P(val, T_ARRAY)) {
- ary_join_1_ary(val, ary, sep, result, val, first);
+ obj = val;
+ ary_join:
+ if (val == ary) {
+ rb_raise(rb_eArgError, "recursive array join");
+ }
+ else {
+ VALUE args[4];
+
+ *first = FALSE;
+ args[0] = val;
+ args[1] = sep;
+ args[2] = result;
+ args[3] = (VALUE)first;
+ rb_exec_recursive(recursive_join, obj, (VALUE)args);
+ }
}
- else if (!NIL_P(tmp = rb_check_string_type(val))) {
- ary_join_1_str(result, tmp, first);
- }
- else if (!NIL_P(tmp = rb_check_array_type(val))) {
- ary_join_1_ary(val, ary, sep, result, tmp, first);
- }
- else {
- ary_join_1_str(result, rb_obj_as_string(val), first);
+ else {
+ tmp = rb_check_string_type(val);
+ if (!NIL_P(tmp)) {
+ val = tmp;
+ goto str_join;
+ }
+ tmp = rb_check_array_type(val);
+ if (!NIL_P(tmp)) {
+ obj = val;
+ val = tmp;
+ goto ary_join;
+ }
+ val = rb_obj_as_string(val);
+ goto str_join;
}
}
}
@@ -2794,11 +2361,9 @@ rb_ary_join(VALUE ary, VALUE sep)
if (NIL_P(tmp) || tmp != val) {
int first;
- long n = RARRAY_LEN(ary);
- if (i > n) i = n;
- result = rb_str_buf_new(len + (n-i)*10);
+ result = rb_str_buf_new(len + (RARRAY_LEN(ary)-i)*10);
rb_enc_associate(result, rb_usascii_encoding());
- i = ary_join_0(ary, sep, i, result);
+ ary_join_0(ary, sep, i, result);
first = i == 0;
ary_join_1(ary, ary, sep, i, result, &first);
return result;
@@ -2817,27 +2382,22 @@ rb_ary_join(VALUE ary, VALUE sep)
/*
* call-seq:
- * array.join ->new_string
- * array.join(separator = $,) -> new_string
- *
- * Returns the new \String formed by joining the array elements after conversion.
- * For each element +element+
- * - Uses <tt>element.to_s</tt> if +element+ is not a <tt>kind_of?(Array)</tt>.
- * - Uses recursive <tt>element.join(separator)</tt> if +element+ is a <tt>kind_of?(Array)</tt>.
- *
- * With no argument, joins using the output field separator, <tt>$,</tt>:
- * a = [:foo, 'bar', 2]
- * $, # => nil
- * a.join # => "foobar2"
- *
- * With \string argument +separator+, joins using that separator:
- * a = [:foo, 'bar', 2]
- * a.join("\n") # => "foo\nbar\n2"
- *
- * Joins recursively for nested Arrays:
- * a = [:foo, [:bar, [:baz, :bat]]]
- * a.join # => "foobarbazbat"
+ * ary.join(separator=$,) -> str
+ *
+ * Returns a string created by converting each element of the array to
+ * a string, separated by the given +separator+.
+ * If the +separator+ is +nil+, it uses current <code>$,</code>.
+ * If both the +separator+ and <code>$,</code> are +nil+,
+ * it uses an empty string.
+ *
+ * [ "a", "b", "c" ].join #=> "abc"
+ * [ "a", "b", "c" ].join("-") #=> "a-b-c"
+ *
+ * For nested arrays, join is applied recursively:
+ *
+ * [ "a", [1, 2, [:x, :y]], "b" ].join("-") #=> "a-1-2-x-y-b"
*/
+
static VALUE
rb_ary_join_m(int argc, VALUE *argv, VALUE ary)
{
@@ -2846,7 +2406,7 @@ rb_ary_join_m(int argc, VALUE *argv, VALUE ary)
if (rb_check_arity(argc, 0, 1) == 0 || NIL_P(sep = argv[0])) {
sep = rb_output_fs;
if (!NIL_P(sep)) {
- rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "$, is set to non-nil value");
+ rb_warn("$, is set to non-nil value");
}
}
@@ -2873,14 +2433,13 @@ inspect_ary(VALUE ary, VALUE dummy, int recur)
/*
* call-seq:
- * array.inspect -> new_string
+ * ary.inspect -> string
+ * ary.to_s -> string
*
- * Returns the new \String formed by calling method <tt>#inspect</tt>
- * on each array element:
- * a = [:foo, 'bar', 2]
- * a.inspect # => "[:foo, \"bar\", 2]"
+ * Creates a string representation of +self+, by calling #inspect
+ * on each element.
*
- * Array#to_s is an alias for Array#inspect.
+ * [ "a", "b", "c" ].to_s #=> "[\"a\", \"b\", \"c\"]"
*/
static VALUE
@@ -2898,20 +2457,11 @@ rb_ary_to_s(VALUE ary)
/*
* call-seq:
- * to_a -> self or new_array
- *
- * When +self+ is an instance of \Array, returns +self+:
- * a = [:foo, 'bar', 2]
- * a.to_a # => [:foo, "bar", 2]
- *
- * Otherwise, returns a new \Array containing the elements of +self+:
- * class MyArray < Array; end
- * a = MyArray.new(['foo', 'bar', 'two'])
- * a.instance_of?(Array) # => false
- * a.kind_of?(Array) # => true
- * a1 = a.to_a
- * a1 # => ["foo", "bar", "two"]
- * a1.class # => Array # Not MyArray
+ * ary.to_a -> ary
+ *
+ * Returns +self+.
+ *
+ * If called on a subclass of Array, converts the receiver to an Array object.
*/
static VALUE
@@ -2927,24 +2477,20 @@ rb_ary_to_a(VALUE ary)
/*
* call-seq:
- * array.to_h -> new_hash
- * array.to_h {|item| ... } -> new_hash
- *
- * Returns a new \Hash formed from +self+.
- *
- * When a block is given, calls the block with each array element;
- * the block must return a 2-element \Array whose two elements
- * form a key-value pair in the returned \Hash:
- * a = ['foo', :bar, 1, [2, 3], {baz: 4}]
- * h = a.to_h {|item| [item, item] }
- * h # => {"foo"=>"foo", :bar=>:bar, 1=>1, [2, 3]=>[2, 3], {:baz=>4}=>{:baz=>4}}
- *
- * When no block is given, +self+ must be an \Array of 2-element sub-arrays,
- * each sub-array is formed into a key-value pair in the new \Hash:
- * [].to_h # => {}
- * a = [['foo', 'zero'], ['bar', 'one'], ['baz', 'two']]
- * h = a.to_h
- * h # => {"foo"=>"zero", "bar"=>"one", "baz"=>"two"}
+ * ary.to_h -> hash
+ * ary.to_h {|item| block } -> hash
+ *
+ * Returns the result of interpreting <i>ary</i> as an array of
+ * <tt>[key, value]</tt> pairs.
+ *
+ * [[:foo, :bar], [1, 2]].to_h
+ * # => {:foo => :bar, 1 => 2}
+ *
+ * If a block is given, the results of the block on each element of
+ * the array will be used as pairs.
+ *
+ * ["foo", "bar"].to_h {|s| [s.ord, s]}
+ * # => {102=>"foo", 98=>"bar"}
*/
static VALUE
@@ -2973,7 +2519,7 @@ rb_ary_to_h(VALUE ary)
/*
* call-seq:
- * array.to_ary -> self
+ * ary.to_ary -> ary
*
* Returns +self+.
*/
@@ -3012,11 +2558,13 @@ rb_ary_reverse(VALUE ary)
/*
* call-seq:
- * array.reverse! -> self
+ * ary.reverse! -> ary
*
- * Reverses +self+ in place:
- * a = ['foo', 'bar', 'two']
- * a.reverse! # => ["two", "bar", "foo"]
+ * Reverses +self+ in place.
+ *
+ * a = [ "a", "b", "c" ]
+ * a.reverse! #=> ["c", "b", "a"]
+ * a #=> ["c", "b", "a"]
*/
static VALUE
@@ -3027,12 +2575,12 @@ rb_ary_reverse_bang(VALUE ary)
/*
* call-seq:
- * array.reverse -> new_array
+ * ary.reverse -> new_ary
+ *
+ * Returns a new array containing +self+'s elements in reverse order.
*
- * Returns a new \Array with the elements of +self+ in reverse order.
- * a = ['foo', 'bar', 'two']
- * a1 = a.reverse
- * a1 # => ["two", "bar", "foo"]
+ * [ "a", "b", "c" ].reverse #=> ["c", "b", "a"]
+ * [ 1 ].reverse #=> [1]
*/
static VALUE
@@ -3059,20 +2607,10 @@ rotate_count(long cnt, long len)
static void
ary_rotate_ptr(VALUE *ptr, long len, long cnt)
{
- if (cnt == 1) {
- VALUE tmp = *ptr;
- memmove(ptr, ptr + 1, sizeof(VALUE)*(len - 1));
- *(ptr + len - 1) = tmp;
- } else if (cnt == len - 1) {
- VALUE tmp = *(ptr + len - 1);
- memmove(ptr + 1, ptr, sizeof(VALUE)*(len - 1));
- *ptr = tmp;
- } else {
- --len;
- if (cnt < len) ary_reverse(ptr + cnt, ptr + len);
- if (--cnt > 0) ary_reverse(ptr, ptr + cnt);
- if (len > 0) ary_reverse(ptr, ptr + len);
- }
+ --len;
+ if (cnt < len) ary_reverse(ptr + cnt, ptr + len);
+ if (--cnt > 0) ary_reverse(ptr, ptr + cnt);
+ if (len > 0) ary_reverse(ptr, ptr + len);
}
VALUE
@@ -3082,7 +2620,7 @@ rb_ary_rotate(VALUE ary, long cnt)
if (cnt != 0) {
long len = RARRAY_LEN(ary);
- if (len > 1 && (cnt = rotate_count(cnt, len)) > 0) {
+ if (len > 0 && (cnt = rotate_count(cnt, len)) > 0) {
RARRAY_PTR_USE_TRANSIENT(ary, ptr, ary_rotate_ptr(ptr, len, cnt));
return ary;
}
@@ -3092,41 +2630,19 @@ rb_ary_rotate(VALUE ary, long cnt)
/*
* call-seq:
- * array.rotate! -> self
- * array.rotate!(count) -> self
- *
- * Rotates +self+ in place by moving elements from one end to the other; returns +self+.
- *
- * When no argument given, rotates the first element to the last position:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rotate! # => ["bar", 2, "bar", :foo]
- *
- * When given a non-negative \Integer +count+,
- * rotates +count+ elements from the beginning to the end:
- * a = [:foo, 'bar', 2]
- * a.rotate!(2)
- * a # => [2, :foo, "bar"]
- *
- * If +count+ is large, uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a.rotate!(20)
- * a # => [2, :foo, "bar"]
- *
- * If +count+ is zero, returns +self+ unmodified:
- * a = [:foo, 'bar', 2]
- * a.rotate!(0)
- * a # => [:foo, "bar", 2]
- *
- * When given a negative Integer +count+, rotates in the opposite direction,
- * from end to beginning:
- * a = [:foo, 'bar', 2]
- * a.rotate!(-2)
- * a # => ["bar", 2, :foo]
- *
- * If +count+ is small (far from zero), uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a.rotate!(-5)
- * a # => ["bar", 2, :foo]
+ * ary.rotate!(count=1) -> ary
+ *
+ * Rotates +self+ in place so that the element at +count+ comes first, and
+ * returns +self+.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of the array where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate! #=> ["b", "c", "d", "a"]
+ * a #=> ["b", "c", "d", "a"]
+ * a.rotate!(2) #=> ["d", "a", "b", "c"]
+ * a.rotate!(-3) #=> ["a", "b", "c", "d"]
*/
static VALUE
@@ -3139,44 +2655,19 @@ rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.rotate -> new_array
- * array.rotate(count) -> new_array
- *
- * Returns a new \Array formed from +self+ with elements
- * rotated from one end to the other.
- *
- * When no argument given, returns a new \Array that is like +self+,
- * except that the first element has been rotated to the last position:
- * a = [:foo, 'bar', 2, 'bar']
- * a1 = a.rotate
- * a1 # => ["bar", 2, "bar", :foo]
- *
- * When given a non-negative \Integer +count+,
- * returns a new \Array with +count+ elements rotated from the beginning to the end:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(2)
- * a1 # => [2, :foo, "bar"]
- *
- * If +count+ is large, uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(20)
- * a1 # => [2, :foo, "bar"]
- *
- * If +count+ is zero, returns a copy of +self+, unmodified:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(0)
- * a1 # => [:foo, "bar", 2]
- *
- * When given a negative \Integer +count+, rotates in the opposite direction,
- * from end to beginning:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(-2)
- * a1 # => ["bar", 2, :foo]
- *
- * If +count+ is small (far from zero), uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(-5)
- * a1 # => ["bar", 2, :foo]
+ * ary.rotate(count=1) -> new_ary
+ *
+ * Returns a new array by rotating +self+ so that the element at +count+ is
+ * the first element of the new array.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of +self+ where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate #=> ["b", "c", "d", "a"]
+ * a #=> ["a", "b", "c", "d"]
+ * a.rotate(2) #=> ["c", "d", "a", "b"]
+ * a.rotate(-3) #=> ["b", "c", "d", "a"]
*/
static VALUE
@@ -3239,7 +2730,7 @@ sort_2(const void *ap, const void *bp, void *dummy)
VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;
int n;
- if (FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(data->cmp_opt, Integer)) {
+ if (FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(data->cmp_opt, Fixnum)) {
if ((long)a > (long)b) return 1;
if ((long)a < (long)b) return -1;
return 0;
@@ -3260,38 +2751,26 @@ sort_2(const void *ap, const void *bp, void *dummy)
/*
* call-seq:
- * array.sort! -> self
- * array.sort! {|a, b| ... } -> self
- *
- * Returns +self+ with its elements sorted in place.
- *
- * With no block, compares elements using operator <tt><=></tt>
- * (see Comparable):
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort!
- * a # => ["a", "b", "c", "d", "e"]
- *
- * With a block, calls the block with each element pair;
- * for each element pair +a+ and +b+, the block should return an integer:
- * - Negative when +b+ is to follow +a+.
- * - Zero when +a+ and +b+ are equivalent.
- * - Positive when +a+ is to follow +b+.
- *
- * Example:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort! {|a, b| a <=> b }
- * a # => ["a", "b", "c", "d", "e"]
- * a.sort! {|a, b| b <=> a }
- * a # => ["e", "d", "c", "b", "a"]
- *
- * When the block returns zero, the order for +a+ and +b+ is indeterminate,
- * and may be unstable:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort! {|a, b| 0 }
- * a # => ["d", "e", "c", "a", "b"]
+ * ary.sort! -> ary
+ * ary.sort! {|a, b| block} -> ary
+ *
+ * Sorts +self+ in place.
+ *
+ * Comparisons for the sort will be done using the <code><=></code> operator
+ * or using an optional code block.
+ *
+ * The block must implement a comparison between +a+ and +b+ and return
+ * an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+
+ * are equivalent, or an integer greater than 0 when +a+ follows +b+.
+ *
+ * The result is not guaranteed to be stable. When the comparison of two
+ * elements returns +0+, the order of the elements is unpredictable.
+ *
+ * ary = [ "d", "a", "e", "c", "b" ]
+ * ary.sort! #=> ["a", "b", "c", "d", "e"]
+ * ary.sort! {|a, b| b <=> a} #=> ["e", "d", "c", "b", "a"]
+ *
+ * See also Enumerable#sort_by.
*/
VALUE
@@ -3356,40 +2835,31 @@ rb_ary_sort_bang(VALUE ary)
/*
* call-seq:
- * array.sort -> new_array
- * array.sort {|a, b| ... } -> new_array
- *
- * Returns a new \Array whose elements are those from +self+, sorted.
- *
- * With no block, compares elements using operator <tt><=></tt>
- * (see Comparable):
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort
- * a1 # => ["a", "b", "c", "d", "e"]
- *
- * With a block, calls the block with each element pair;
- * for each element pair +a+ and +b+, the block should return an integer:
- * - Negative when +b+ is to follow +a+.
- * - Zero when +a+ and +b+ are equivalent.
- * - Positive when +a+ is to follow +b+.
- *
- * Example:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort {|a, b| a <=> b }
- * a1 # => ["a", "b", "c", "d", "e"]
- * a2 = a.sort {|a, b| b <=> a }
- * a2 # => ["e", "d", "c", "b", "a"]
- *
- * When the block returns zero, the order for +a+ and +b+ is indeterminate,
- * and may be unstable:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort {|a, b| 0 }
- * a1 # => ["c", "e", "b", "d", "a"]
- *
- * Related: Enumerable#sort_by.
+ * ary.sort -> new_ary
+ * ary.sort {|a, b| block} -> new_ary
+ *
+ * Returns a new array created by sorting +self+.
+ *
+ * Comparisons for the sort will be done using the <code><=></code> operator
+ * or using an optional code block.
+ *
+ * The block must implement a comparison between +a+ and +b+ and return
+ * an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+
+ * are equivalent, or an integer greater than 0 when +a+ follows +b+.
+ *
+ * The result is not guaranteed to be stable. When the comparison of two
+ * elements returns +0+, the order of the elements is unpredictable.
+ *
+ * ary = [ "d", "a", "e", "c", "b" ]
+ * ary.sort #=> ["a", "b", "c", "d", "e"]
+ * ary.sort {|a, b| b <=> a} #=> ["e", "d", "c", "b", "a"]
+ *
+ * To produce the reverse order, the following can also be used
+ * (and may be faster):
+ *
+ * ary.sort.reverse! #=> ["e", "d", "c", "b", "a"]
+ *
+ * See also Enumerable#sort_by.
*/
VALUE
@@ -3404,93 +2874,55 @@ static VALUE rb_ary_bsearch_index(VALUE ary);
/*
* call-seq:
- * array.bsearch {|element| ... } -> object
- * array.bsearch -> new_enumerator
- *
- * Returns an element from +self+ selected by a binary search.
- * +self+ should be sorted, but this is not checked.
+ * ary.bsearch {|x| block } -> elem
*
* By using binary search, finds a value from this array which meets
- * the given condition in <tt>O(log n)</tt> where +n+ is the size of the array.
- *
- * There are two search modes:
- * - <b>Find-minimum mode</b>: the block should return +true+ or +false+.
- * - <b>Find-any mode</b>: the block should return a numeric value.
- *
- * The block should not mix the modes by and sometimes returning +true+ or +false+
- * and sometimes returning a numeric value, but this is not checked.
- *
- * <b>Find-Minimum Mode</b>
- *
- * In find-minimum mode, the block always returns +true+ or +false+.
- * The further requirement (though not checked) is that
- * there are no indexes +i+ and +j+ such that:
- * - <tt>0 <= i < j <= self.size</tt>.
- * - The block returns +true+ for <tt>self[i]</tt> and +false+ for <tt>self[j]</tt>.
- *
- * In find-minimum mode, method bsearch returns the first element for which the block returns true.
- *
- * Examples:
- * a = [0, 4, 7, 10, 12]
- * a.bsearch {|x| x >= 4 } # => 4
- * a.bsearch {|x| x >= 6 } # => 7
- * a.bsearch {|x| x >= -1 } # => 0
- * a.bsearch {|x| x >= 100 } # => nil
- *
- * Less formally: the block is such that all +false+-evaluating elements
- * precede all +true+-evaluating elements.
- *
- * These make sense as blocks in find-minimum mode:
- * a = [0, 4, 7, 10, 12]
- * a.map {|x| x >= 4 } # => [false, true, true, true, true]
- * a.map {|x| x >= 6 } # => [false, false, true, true, true]
- * a.map {|x| x >= -1 } # => [true, true, true, true, true]
- * a.map {|x| x >= 100 } # => [false, false, false, false, false]
- *
- * This would not make sense:
- * a = [0, 4, 7, 10, 12]
- * a.map {|x| x == 7 } # => [false, false, true, false, false]
- *
- * <b>Find-Any Mode</b>
- *
- * In find-any mode, the block always returns a numeric value.
- * The further requirement (though not checked) is that
- * there are no indexes +i+ and +j+ such that:
- * - <tt>0 <= i < j <= self.size</tt>.
- * - The block returns a negative value for <tt>self[i]</tt>
- * and a positive value for <tt>self[j]</tt>.
- * - The block returns a negative value for <tt>self[i]</tt> and zero <tt>self[j]</tt>.
- * - The block returns zero for <tt>self[i]</tt> and a positive value for <tt>self[j]</tt>.
- *
- * In find-any mode, method bsearch returns some element
- * for which the block returns zero, or +nil+ if no such element is found.
- *
- * Examples:
- * a = [0, 4, 7, 10, 12]
- * a.bsearch {|element| 7 <=> element } # => 7
- * a.bsearch {|element| -1 <=> element } # => nil
- * a.bsearch {|element| 5 <=> element } # => nil
- * a.bsearch {|element| 15 <=> element } # => nil
- *
- * Less formally: the block is such that:
- * - All positive-evaluating elements precede all zero-evaluating elements.
- * - All positive-evaluating elements precede all negative-evaluating elements.
- * - All zero-evaluating elements precede all negative-evaluating elements.
- *
- * These make sense as blocks in find-any mode:
- * a = [0, 4, 7, 10, 12]
- * a.map {|element| 7 <=> element } # => [1, 1, 0, -1, -1]
- * a.map {|element| -1 <=> element } # => [-1, -1, -1, -1, -1]
- * a.map {|element| 5 <=> element } # => [1, 1, -1, -1, -1]
- * a.map {|element| 15 <=> element } # => [1, 1, 1, 1, 1]
- *
- * This would not make sense:
- * a = [0, 4, 7, 10, 12]
- * a.map {|element| element <=> 7 } # => [-1, -1, 0, 1, 1]
- *
- * Returns an enumerator if no block given:
- * a = [0, 4, 7, 10, 12]
- * a.bsearch # => #<Enumerator: [0, 4, 7, 10, 12]:bsearch>
+ * the given condition in O(log n) where n is the size of the array.
+ *
+ * You can use this method in two modes: a find-minimum mode and
+ * a find-any mode. In either case, the elements of the array must be
+ * monotone (or sorted) with respect to the block.
+ *
+ * In find-minimum mode (this is a good choice for typical use cases),
+ * the block must always return true or false, and there must be an index i
+ * (0 <= i <= ary.size) so that:
+ *
+ * - the block returns false for any element whose index is less than
+ * i, and
+ * - the block returns true for any element whose index is greater
+ * than or equal to i.
+ *
+ * This method returns the i-th element. If i is equal to ary.size,
+ * it returns nil.
+ *
+ * ary = [0, 4, 7, 10, 12]
+ * ary.bsearch {|x| x >= 4 } #=> 4
+ * ary.bsearch {|x| x >= 6 } #=> 7
+ * ary.bsearch {|x| x >= -1 } #=> 0
+ * ary.bsearch {|x| x >= 100 } #=> nil
+ *
+ * In find-any mode (this behaves like libc's bsearch(3)), the block
+ * must always return a number, and there must be two indices i and j
+ * (0 <= i <= j <= ary.size) so that:
+ *
+ * - the block returns a positive number for ary[k] if 0 <= k < i,
+ * - the block returns zero for ary[k] if i <= k < j, and
+ * - the block returns a negative number for ary[k] if
+ * j <= k < ary.size.
+ *
+ * Under this condition, this method returns any element whose index
+ * is within i...j. If i is equal to j (i.e., there is no element
+ * that satisfies the block), this method returns nil.
+ *
+ * ary = [0, 4, 7, 10, 12]
+ * # try to find v such that 4 <= v < 8
+ * ary.bsearch {|x| 1 - x / 4 } #=> 4 or 7
+ * # try to find v such that 8 <= v < 10
+ * ary.bsearch {|x| 4 - x / 2 } #=> nil
+ *
+ * You must not mix the two modes at a time; the block must always
+ * return either true/false, or always return a number. It is
+ * undefined which value is actually picked up at each iteration.
*/
static VALUE
@@ -3506,11 +2938,15 @@ rb_ary_bsearch(VALUE ary)
/*
* call-seq:
- * array.bsearch_index {|element| ... } -> integer or nil
- * array.bsearch_index -> new_enumerator
+ * ary.bsearch_index {|x| block } -> int or nil
*
- * Searches +self+ as described at method #bsearch,
- * but returns the _index_ of the found element instead of the element itself.
+ * By using binary search, finds an index of a value from this array which
+ * meets the given condition in O(log n) where n is the size of the array.
+ *
+ * It supports two modes, depending on the nature of the block. They are
+ * exactly the same as in the case of the #bsearch method, with the only difference
+ * being that this method returns the index of the element instead of the
+ * element itself. For more details consult the documentation for #bsearch.
*/
static VALUE
@@ -3569,26 +3005,18 @@ sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, dummy))
/*
* call-seq:
- * array.sort_by! {|element| ... } -> self
- * array.sort_by! -> new_enumerator
- *
- * Sorts the elements of +self+ in place,
- * using an ordering determined by the block; returns self.
- *
- * Calls the block with each successive element;
- * sorts elements based on the values returned from the block.
+ * ary.sort_by! {|obj| block} -> ary
+ * ary.sort_by! -> Enumerator
*
- * For duplicates returned by the block, the ordering is indeterminate, and may be unstable.
+ * Sorts +self+ in place using a set of keys generated by mapping the
+ * values in +self+ through the given block.
*
- * This example sorts strings based on their sizes:
- * a = ['aaaa', 'bbb', 'cc', 'd']
- * a.sort_by! {|element| element.size }
- * a # => ["d", "cc", "bbb", "aaaa"]
+ * The result is not guaranteed to be stable. When two keys are equal,
+ * the order of the corresponding elements is unpredictable.
*
- * Returns a new \Enumerator if no block given:
+ * If no block is given, an Enumerator is returned instead.
*
- * a = ['aaaa', 'bbb', 'cc', 'd']
- * a.sort_by! # => #<Enumerator: ["aaaa", "bbb", "cc", "d"]:sort_by!>
+ * See also Enumerable#sort_by.
*/
static VALUE
@@ -3606,21 +3034,23 @@ rb_ary_sort_by_bang(VALUE ary)
/*
* call-seq:
- * array.map {|element| ... } -> new_array
- * array.map -> new_enumerator
+ * ary.collect {|item| block} -> new_ary
+ * ary.map {|item| block} -> new_ary
+ * ary.collect -> Enumerator
+ * ary.map -> Enumerator
*
- * Calls the block, if given, with each element of +self+;
- * returns a new \Array whose elements are the return values from the block:
- * a = [:foo, 'bar', 2]
- * a1 = a.map {|element| element.class }
- * a1 # => [Symbol, String, Integer]
+ * Invokes the given block once for each element of +self+.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a1 = a.map
- * a1 # => #<Enumerator: [:foo, "bar", 2]:map>
+ * Creates a new array containing the values returned by the block.
*
- * Array#collect is an alias for Array#map.
+ * See also Enumerable#collect.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.collect {|x| x + "!"} #=> ["a!", "b!", "c!", "d!"]
+ * a.map.with_index {|x, i| x * i} #=> ["", "b", "cc", "ddd"]
+ * a #=> ["a", "b", "c", "d"]
*/
static VALUE
@@ -3640,20 +3070,23 @@ rb_ary_collect(VALUE ary)
/*
* call-seq:
- * array.map! {|element| ... } -> self
- * array.map! -> new_enumerator
+ * ary.collect! {|item| block } -> ary
+ * ary.map! {|item| block } -> ary
+ * ary.collect! -> Enumerator
+ * ary.map! -> Enumerator
+ *
+ * Invokes the given block once for each element of +self+, replacing the
+ * element with the value returned by the block.
*
- * Calls the block, if given, with each element;
- * replaces the element with the block's return value:
- * a = [:foo, 'bar', 2]
- * a.map! { |element| element.class } # => [Symbol, String, Integer]
+ * See also Enumerable#collect.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a1 = a.map!
- * a1 # => #<Enumerator: [:foo, "bar", 2]:map!>
+ * If no block is given, an Enumerator is returned instead.
*
- * Array#collect! is an alias for Array#map!.
+ * a = [ "a", "b", "c", "d" ]
+ * a.map! {|x| x + "!" }
+ * a #=> [ "a!", "b!", "c!", "d!" ]
+ * a.collect!.with_index {|x, i| x[0...i] }
+ * a #=> ["", "b", "c!", "d!"]
*/
static VALUE
@@ -3725,36 +3158,20 @@ append_values_at_single(VALUE result, VALUE ary, long olen, VALUE idx)
/*
* call-seq:
- * array.values_at(*indexes) -> new_array
- *
- * Returns a new \Array whose elements are the elements
- * of +self+ at the given \Integer +indexes+.
- *
- * For each positive +index+, returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, 2) # => [:foo, 2]
+ * ary.values_at(selector, ...) -> new_ary
*
- * The given +indexes+ may be in any order, and may repeat:
- * a = [:foo, 'bar', 2]
- * a.values_at(2, 0, 1, 0, 2) # => [2, :foo, "bar", :foo, 2]
+ * Returns an array containing the elements in +self+ corresponding to the
+ * given +selector+(s).
*
- * Assigns +nil+ for an +index+ that is too large:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, 3, 1, 3) # => [:foo, nil, "bar", nil]
+ * The selectors may be either integer indices or ranges.
*
- * Returns a new empty \Array if no arguments given.
+ * See also Array#select.
*
- * For each negative +index+, counts backward from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.values_at(-1, -3) # => [2, :foo]
- *
- * Assigns +nil+ for an +index+ that is too small:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, -5, 1, -6, 2) # => [:foo, nil, "bar", nil, 2]
- *
- * The given +indexes+ may have a mixture of signs:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, -2, 1, -1) # => [:foo, "bar", "bar", 2]
+ * a = %w{ a b c d e f }
+ * a.values_at(1, 3, 5) # => ["b", "d", "f"]
+ * a.values_at(1, 3, 5, 7) # => ["b", "d", "f", nil]
+ * a.values_at(-1, -2, -2, -7) # => ["f", "e", "e", nil]
+ * a.values_at(4..6, 3...6) # => ["e", "f", nil, "d", "e", "f"]
*/
static VALUE
@@ -3772,19 +3189,22 @@ rb_ary_values_at(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.select {|element| ... } -> new_array
- * array.select -> new_enumerator
+ * ary.select {|item| block} -> new_ary
+ * ary.select -> Enumerator
+ * ary.filter {|item| block} -> new_ary
+ * ary.filter -> Enumerator
+ *
+ * Returns a new array containing all elements of +ary+
+ * for which the given +block+ returns a true value.
*
- * Calls the block, if given, with each element of +self+;
- * returns a new \Array containing those elements of +self+
- * for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, :bam]
- * a1 = a.select {|element| element.to_s.start_with?('b') }
- * a1 # => ["bar", :bam]
+ * If no block is given, an Enumerator is returned instead.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.select # => #<Enumerator: [:foo, "bar", 2, :bam]:select>
+ * [1,2,3,4,5].select {|num| num.even? } #=> [2, 4]
+ *
+ * a = %w[ a b c d e f ]
+ * a.select {|v| v =~ /[aeiou]/ } #=> ["a", "e"]
+ *
+ * See also Enumerable#select.
*
* Array#filter is an alias for Array#select.
*/
@@ -3838,7 +3258,6 @@ select_bang_ensure(VALUE a)
if (i2 < len && i2 < i1) {
long tail = 0;
- rb_ary_modify(ary);
if (i1 < len) {
tail = len - i1;
RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
@@ -3852,21 +3271,21 @@ select_bang_ensure(VALUE a)
/*
* call-seq:
- * array.select! {|element| ... } -> self or nil
- * array.select! -> new_enumerator
+ * ary.select! {|item| block } -> ary or nil
+ * ary.select! -> Enumerator
+ * ary.filter! {|item| block } -> ary or nil
+ * ary.filter! -> Enumerator
*
- * Calls the block, if given with each element of +self+;
- * removes from +self+ those elements for which the block returns +false+ or +nil+.
+ * Invokes the given block passing in successive elements from +self+,
+ * deleting elements for which the block returns a +false+ value.
*
- * Returns +self+ if any elements were removed:
- * a = [:foo, 'bar', 2, :bam]
- * a.select! {|element| element.to_s.start_with?('b') } # => ["bar", :bam]
+ * The array may not be changed instantly every time the block is called.
*
- * Returns +nil+ if no elements were removed.
+ * If changes were made, it will return +self+, otherwise it returns +nil+.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.select! # => #<Enumerator: [:foo, "bar", 2, :bam]:select!>
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * See also Array#keep_if.
*
* Array#filter! is an alias for Array#select!.
*/
@@ -3886,17 +3305,19 @@ rb_ary_select_bang(VALUE ary)
/*
* call-seq:
- * array.keep_if {|element| ... } -> self
- * array.keep_if -> new_enumeration
+ * ary.keep_if {|item| block} -> ary
+ * ary.keep_if -> Enumerator
+ *
+ * Deletes every element of +self+ for which the given block evaluates to
+ * +false+, and returns +self+.
+ *
+ * If no block is given, an Enumerator is returned instead.
*
- * Retains those elements for which the block returns a truthy value;
- * deletes all other elements; returns +self+:
- * a = [:foo, 'bar', 2, :bam]
- * a.keep_if {|element| element.to_s.start_with?('b') } # => ["bar", :bam]
+ * a = %w[ a b c d e f ]
+ * a.keep_if {|v| v =~ /[aeiou]/ } #=> ["a", "e"]
+ * a #=> ["a", "e"]
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.keep_if # => #<Enumerator: [:foo, "bar", 2, :bam]:keep_if>
+ * See also Array#select!.
*/
static VALUE
@@ -3922,34 +3343,22 @@ ary_resize_smaller(VALUE ary, long len)
/*
* call-seq:
- * array.delete(obj) -> deleted_object
- * array.delete(obj) {|nosuch| ... } -> deleted_object or block_return
- *
- * Removes zero or more elements from +self+; returns +self+.
- *
- * When no block is given,
- * removes from +self+ each element +ele+ such that <tt>ele == obj</tt>;
- * returns the last deleted element:
- * s1 = 'bar'; s2 = 'bar'
- * a = [:foo, s1, 2, s2]
- * a.delete('bar') # => "bar"
- * a # => [:foo, 2]
- *
- * Returns +nil+ if no elements removed.
- *
- * When a block is given,
- * removes from +self+ each element +ele+ such that <tt>ele == obj</tt>.
- *
- * If any such elements are found, ignores the block
- * and returns the last deleted element:
- * s1 = 'bar'; s2 = 'bar'
- * a = [:foo, s1, 2, s2]
- * deleted_obj = a.delete('bar') {|obj| fail 'Cannot happen' }
- * a # => [:foo, 2]
- *
- * If no such elements are found, returns the block's return value:
- * a = [:foo, 'bar', 2]
- * a.delete(:nosuch) {|obj| "#{obj} not found" } # => "nosuch not found"
+ * ary.delete(obj) -> item or nil
+ * ary.delete(obj) {block} -> item or result of block
+ *
+ * Deletes all items from +self+ that are equal to +obj+.
+ *
+ * Returns the last deleted item, or +nil+ if no matching item is found.
+ *
+ * If the optional code block is given, the result of the block is returned if
+ * the item is not found. (To remove +nil+ elements and get an informative
+ * return value, use Array#compact!)
+ *
+ * a = [ "a", "b", "b", "b", "c" ]
+ * a.delete("b") #=> "b"
+ * a #=> ["a", "c"]
+ * a.delete("z") #=> nil
+ * a.delete("z") {"not found"} #=> "not found"
*/
VALUE
@@ -4030,23 +3439,17 @@ rb_ary_delete_at(VALUE ary, long pos)
/*
* call-seq:
- * array.delete_at(index) -> deleted_object or nil
- *
- * Deletes an element from +self+, per the given \Integer +index+.
+ * ary.delete_at(index) -> obj or nil
*
- * When +index+ is non-negative, deletes the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.delete_at(1) # => "bar"
- * a # => [:foo, 2]
+ * Deletes the element at the specified +index+, returning that element, or
+ * +nil+ if the +index+ is out of range.
*
- * If index is too large, returns +nil+.
+ * See also Array#slice!
*
- * When +index+ is negative, counts backward from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.delete_at(-2) # => "bar"
- * a # => [:foo, 2]
- *
- * If +index+ is too small (far from zero), returns nil.
+ * a = ["ant", "bat", "cat", "dog"]
+ * a.delete_at(2) #=> "cat"
+ * a #=> ["ant", "bat", "dog"]
+ * a.delete_at(99) #=> nil
*/
static VALUE
@@ -4055,118 +3458,63 @@ rb_ary_delete_at_m(VALUE ary, VALUE pos)
return rb_ary_delete_at(ary, NUM2LONG(pos));
}
-static VALUE
-ary_slice_bang_by_rb_ary_splice(VALUE ary, long pos, long len)
-{
- const long orig_len = RARRAY_LEN(ary);
-
- if (len < 0) {
- return Qnil;
- }
- else if (pos < -orig_len) {
- return Qnil;
- }
- else if (pos < 0) {
- pos += orig_len;
- }
- else if (orig_len < pos) {
- return Qnil;
- }
- else if (orig_len < pos + len) {
- len = orig_len - pos;
- }
- if (len == 0) {
- return rb_ary_new2(0);
- }
- else {
- VALUE arg2 = rb_ary_new4(len, RARRAY_CONST_PTR_TRANSIENT(ary)+pos);
- rb_ary_splice(ary, pos, len, 0, 0);
- return arg2;
- }
-}
-
/*
* call-seq:
- * array.slice!(n) -> object or nil
- * array.slice!(start, length) -> new_array or nil
- * array.slice!(range) -> new_array or nil
- *
- * Removes and returns elements from +self+.
- *
- * When the only argument is an \Integer +n+,
- * removes and returns the _nth_ element in +self+:
- * a = [:foo, 'bar', 2]
- * a.slice!(1) # => "bar"
- * a # => [:foo, 2]
- *
- * If +n+ is negative, counts backwards from the end of +self+:
- * a = [:foo, 'bar', 2]
- * a.slice!(-1) # => 2
- * a # => [:foo, "bar"]
- *
- * If +n+ is out of range, returns +nil+.
- *
- * When the only arguments are Integers +start+ and +length+,
- * removes +length+ elements from +self+ beginning at offset +start+;
- * returns the deleted objects in a new Array:
- * a = [:foo, 'bar', 2]
- * a.slice!(0, 2) # => [:foo, "bar"]
- * a # => [2]
- *
- * If <tt>start + length</tt> exceeds the array size,
- * removes and returns all elements from offset +start+ to the end:
- * a = [:foo, 'bar', 2]
- * a.slice!(1, 50) # => ["bar", 2]
- * a # => [:foo]
- *
- * If <tt>start == a.size</tt> and +length+ is non-negative,
- * returns a new empty \Array.
- *
- * If +length+ is negative, returns +nil+.
- *
- * When the only argument is a \Range object +range+,
- * treats <tt>range.min</tt> as +start+ above and <tt>range.size</tt> as +length+ above:
- * a = [:foo, 'bar', 2]
- * a.slice!(1..2) # => ["bar", 2]
- * a # => [:foo]
- *
- * If <tt>range.start == a.size</tt>, returns a new empty \Array.
- *
- * If <tt>range.start</tt> is larger than the array size, returns +nil+.
- *
- * If <tt>range.end</tt> is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.slice!(0..-2) # => [:foo, "bar"]
- * a # => [2]
- *
- * If <tt>range.start</tt> is negative,
- * calculates the start index backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.slice!(-2..2) # => ["bar", 2]
- * a # => [:foo]
+ * ary.slice!(index) -> obj or nil
+ * ary.slice!(start, length) -> new_ary or nil
+ * ary.slice!(range) -> new_ary or nil
+ *
+ * Deletes the element(s) given by an +index+ (optionally up to +length+
+ * elements) or by a +range+.
+ *
+ * Returns the deleted object (or objects), or +nil+ if the +index+ is out of
+ * range.
+ *
+ * a = [ "a", "b", "c" ]
+ * a.slice!(1) #=> "b"
+ * a #=> ["a", "c"]
+ * a.slice!(-1) #=> "c"
+ * a #=> ["a"]
+ * a.slice!(100) #=> nil
+ * a #=> ["a"]
*/
static VALUE
rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)
{
- VALUE arg1;
- long pos, len;
+ VALUE arg1, arg2;
+ long pos, len, orig_len;
rb_ary_modify_check(ary);
- rb_check_arity(argc, 1, 2);
- arg1 = argv[0];
-
if (argc == 2) {
pos = NUM2LONG(argv[0]);
len = NUM2LONG(argv[1]);
- return ary_slice_bang_by_rb_ary_splice(ary, pos, len);
+ delete_pos_len:
+ if (len < 0) return Qnil;
+ orig_len = RARRAY_LEN(ary);
+ if (pos < 0) {
+ pos += orig_len;
+ if (pos < 0) return Qnil;
+ }
+ else if (orig_len < pos) return Qnil;
+ if (orig_len < pos + len) {
+ len = orig_len - pos;
+ }
+ if (len == 0) return rb_ary_new2(0);
+ arg2 = rb_ary_new4(len, RARRAY_CONST_PTR_TRANSIENT(ary)+pos);
+ RBASIC_SET_CLASS(arg2, rb_obj_class(ary));
+ rb_ary_splice(ary, pos, len, 0, 0);
+ return arg2;
}
+ rb_check_arity(argc, 1, 2);
+ arg1 = argv[0];
+
if (!FIXNUM_P(arg1)) {
switch (rb_range_beg_len(arg1, &pos, &len, RARRAY_LEN(ary), 0)) {
case Qtrue:
/* valid range */
- return ary_slice_bang_by_rb_ary_splice(ary, pos, len);
+ goto delete_pos_len;
case Qnil:
/* invalid range */
return Qnil;
@@ -4224,20 +3572,17 @@ ary_reject_bang(VALUE ary)
/*
* call-seq:
- * array.reject! {|element| ... } -> self or nil
- * array.reject! -> new_enumerator
+ * ary.reject! {|item| block} -> ary or nil
+ * ary.reject! -> Enumerator
*
- * Removes each element for which the block returns a truthy value.
+ * Deletes every element of +self+ for which the block evaluates to +true+,
+ * if no changes were made returns +nil+.
*
- * Returns +self+ if any elements removed:
- * a = [:foo, 'bar', 2, 'bat']
- * a.reject! {|element| element.to_s.start_with?('b') } # => [:foo, 2]
+ * The array may not be changed instantly every time the block is called.
*
- * Returns +nil+ if no elements removed.
+ * See also Enumerable#reject and Array#delete_if.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.reject! # => #<Enumerator: [:foo, "bar", 2]:reject!>
+ * If no block is given, an Enumerator is returned instead.
*/
static VALUE
@@ -4250,18 +3595,15 @@ rb_ary_reject_bang(VALUE ary)
/*
* call-seq:
- * array.reject {|element| ... } -> new_array
- * array.reject -> new_enumerator
- *
- * Returns a new \Array whose elements are all those from +self+
- * for which the block returns +false+ or +nil+:
- * a = [:foo, 'bar', 2, 'bat']
- * a1 = a.reject {|element| element.to_s.start_with?('b') }
- * a1 # => [:foo, 2]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.reject # => #<Enumerator: [:foo, "bar", 2]:reject>
+ * ary.reject {|item| block } -> new_ary
+ * ary.reject -> Enumerator
+ *
+ * Returns a new array containing the items in +self+ for which the given
+ * block is not +true+. The ordering of non-rejected elements is maintained.
+ *
+ * See also Array#delete_if
+ *
+ * If no block is given, an Enumerator is returned instead.
*/
static VALUE
@@ -4277,17 +3619,20 @@ rb_ary_reject(VALUE ary)
/*
* call-seq:
- * array.delete_if {|element| ... } -> self
- * array.delete_if -> Enumerator
+ * ary.delete_if {|item| block} -> ary
+ * ary.delete_if -> Enumerator
+ *
+ * Deletes every element of +self+ for which block evaluates to +true+.
*
- * Removes each element in +self+ for which the block returns a truthy value;
- * returns +self+:
- * a = [:foo, 'bar', 2, 'bat']
- * a.delete_if {|element| element.to_s.start_with?('b') } # => [:foo, 2]
+ * The array is changed instantly every time the block is called, not after
+ * the iteration is over.
*
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.delete_if # => #<Enumerator: [:foo, "bar", 2]:delete_if>
+ * See also Array#reject!
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * scores = [ 97, 42, 75 ]
+ * scores.delete_if {|score| score < 80 } #=> [97]
*/
static VALUE
@@ -4328,51 +3673,26 @@ take_items(VALUE obj, long n)
/*
* call-seq:
- * array.zip(*other_arrays) -> new_array
- * array.zip(*other_arrays) {|other_array| ... } -> nil
- *
- * When no block given, returns a new \Array +new_array+ of size <tt>self.size</tt>
- * whose elements are Arrays.
- *
- * Each nested array <tt>new_array[n]</tt> is of size <tt>other_arrays.size+1</tt>,
- * and contains:
- * - The _nth_ element of +self+.
- * - The _nth_ element of each of the +other_arrays+.
- *
- * If all +other_arrays+ and +self+ are the same size:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3]
- * c = [:c0, :c1, :c2, :c3]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]
- *
- * If any array in +other_arrays+ is smaller than +self+,
- * fills to <tt>self.size</tt> with +nil+:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2]
- * c = [:c0, :c1]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, nil], [:a3, nil, nil]]
- *
- * If any array in +other_arrays+ is larger than +self+,
- * its trailing elements are ignored:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3, :b4]
- * c = [:c0, :c1, :c2, :c3, :c4, :c5]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]
- *
- * When a block is given, calls the block with each of the sub-arrays (formed as above); returns nil
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3]
- * c = [:c0, :c1, :c2, :c3]
- * a.zip(b, c) {|sub_array| p sub_array} # => nil
- *
- * Output:
- * [:a0, :b0, :c0]
- * [:a1, :b1, :c1]
- * [:a2, :b2, :c2]
- * [:a3, :b3, :c3]
+ * ary.zip(arg, ...) -> new_ary
+ * ary.zip(arg, ...) {|arr| block} -> nil
+ *
+ * Converts any arguments to arrays, then merges elements of +self+ with
+ * corresponding elements from each argument.
+ *
+ * This generates a sequence of <code>ary.size</code> _n_-element arrays,
+ * where _n_ is one more than the count of arguments.
+ *
+ * If the size of any argument is less than the size of the initial array,
+ * +nil+ values are supplied.
+ *
+ * If a block is given, it is invoked for each output +array+, otherwise an
+ * array of arrays is returned.
+ *
+ * a = [ 4, 5, 6 ]
+ * b = [ 7, 8, 9 ]
+ * [1, 2, 3].zip(a, b) #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
+ * [1, 2].zip(a, b) #=> [[1, 4, 7], [2, 5, 8]]
+ * a.zip([1, 2], [8]) #=> [[4, 1, 8], [5, 2, nil], [6, nil, nil]]
*/
static VALUE
@@ -4435,12 +3755,15 @@ rb_ary_zip(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.transpose -> new_array
+ * ary.transpose -> new_ary
+ *
+ * Assumes that +self+ is an array of arrays and transposes the rows and
+ * columns.
*
- * Transposes the rows and columns in an \Array of Arrays;
- * the nested Arrays must all be the same size:
- * a = [[:a0, :a1], [:b0, :b1], [:c0, :c1]]
- * a.transpose # => [[:a0, :b0, :c0], [:a1, :b1, :c1]]
+ * a = [[1,2], [3,4], [5,6]]
+ * a.transpose #=> [[1, 3, 5], [2, 4, 6]]
+ *
+ * If the length of the subarrays don't match, an IndexError is raised.
*/
static VALUE
@@ -4473,11 +3796,15 @@ rb_ary_transpose(VALUE ary)
/*
* call-seq:
- * array.replace(other_array) -> self
+ * ary.replace(other_ary) -> ary
+ * ary.initialize_copy(other_ary) -> ary
+ *
+ * Replaces the contents of +self+ with the contents of +other_ary+,
+ * truncating or expanding if necessary.
*
- * Replaces the content of +self+ with the content of +other_array+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a.replace(['foo', :bar, 3]) # => ["foo", :bar, 3]
+ * a = [ "a", "b", "c", "d", "e" ]
+ * a.replace([ "x", "y", "z" ]) #=> ["x", "y", "z"]
+ * a #=> ["x", "y", "z"]
*/
VALUE
@@ -4523,11 +3850,12 @@ rb_ary_replace(VALUE copy, VALUE orig)
/*
* call-seq:
- * array.clear -> self
+ * ary.clear -> ary
+ *
+ * Removes all elements from +self+.
*
- * Removes all elements from +self+:
- * a = [:foo, 'bar', 2]
- * a.clear # => []
+ * a = [ "a", "b", "c", "d", "e" ]
+ * a.clear #=> [ ]
*/
VALUE
@@ -4553,171 +3881,32 @@ rb_ary_clear(VALUE ary)
/*
* call-seq:
- * array.fill(obj) -> self
- * array.fill(obj, start) -> self
- * array.fill(obj, start, length) -> self
- * array.fill(obj, range) -> self
- * array.fill {|index| ... } -> self
- * array.fill(start) {|index| ... } -> self
- * array.fill(start, length) {|index| ... } -> self
- * array.fill(range) {|index| ... } -> self
- *
- * Replaces specified elements in +self+ with specified objects; returns +self+.
- *
- * With argument +obj+ and no block given, replaces all elements with that one object:
- * a = ['a', 'b', 'c', 'd']
- * a # => ["a", "b", "c", "d"]
- * a.fill(:X) # => [:X, :X, :X, :X]
- *
- * With arguments +obj+ and \Integer +start+, and no block given,
- * replaces elements based on the given start.
- *
- * If +start+ is in range (<tt>0 <= start < array.size</tt>),
- * replaces all elements from offset +start+ through the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 2) # => ["a", "b", :X, :X]
- *
- * If +start+ is too large (<tt>start >= array.size</tt>), does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 4) # => ["a", "b", "c", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5) # => ["a", "b", "c", "d"]
- *
- * If +start+ is negative, counts from the end (starting index is <tt>start + array.size</tt>):
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -2) # => ["a", "b", :X, :X]
- *
- * If +start+ is too small (less than and far from zero), replaces all elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -6) # => [:X, :X, :X, :X]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -50) # => [:X, :X, :X, :X]
- *
- * With arguments +obj+, \Integer +start+, and \Integer +length+, and no block given,
- * replaces elements based on the given +start+ and +length+.
- *
- * If +start+ is in range, replaces +length+ elements beginning at offset +start+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 1, 1) # => ["a", :X, "c", "d"]
- *
- * If +start+ is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -2, 1) # => ["a", "b", :X, "d"]
- *
- * If +start+ is large (<tt>start >= array.size</tt>), extends +self+ with +nil+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5, 0) # => ["a", "b", "c", "d", nil]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5, 2) # => ["a", "b", "c", "d", nil, :X, :X]
- *
- * If +length+ is zero or negative, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 1, 0) # => ["a", "b", "c", "d"]
- * a.fill(:X, 1, -1) # => ["a", "b", "c", "d"]
- *
- * With arguments +obj+ and \Range +range+, and no block given,
- * replaces elements based on the given range.
- *
- * If the range is positive and ascending (<tt>0 < range.begin <= range.end</tt>),
- * replaces elements from <tt>range.begin</tt> to <tt>range.end</tt>:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (1..1)) # => ["a", :X, "c", "d"]
- *
- * If <tt>range.first</tt> is negative, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-1..1)) # => ["a", "b", "c", "d"]
- *
- * If <tt>range.last</tt> is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (0..-2)) # => [:X, :X, :X, "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (1..-2)) # => ["a", :X, :X, "d"]
- *
- * If <tt>range.last</tt> and <tt>range.last</tt> are both negative,
- * both count from the end of the array:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-1..-1)) # => ["a", "b", "c", :X]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-2..-2)) # => ["a", "b", :X, "d"]
- *
- * With no arguments and a block given, calls the block with each index;
- * replaces the corresponding element with the block's return value:
- * a = ['a', 'b', 'c', 'd']
- * a.fill { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- *
- * With argument +start+ and a block given, calls the block with each index
- * from offset +start+ to the end; replaces the corresponding element
- * with the block's return value:
- *
- * If start is in range (<tt>0 <= start < array.size</tt>),
- * replaces from offset +start+ to the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1) { |index| "new_#{index}" } # => ["a", "new_1", "new_2", "new_3"]
- *
- * If +start+ is too large(<tt>start >= array.size</tt>), does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(4) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(4) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- *
- * If +start+ is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2) { |index| "new_#{index}" } # => ["a", "b", "new_2", "new_3"]
- *
- * If start is too small (<tt>start <= -array.size</tt>, replaces all elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-6) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-50) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- *
- * With arguments +start+ and +length+, and a block given,
- * calls the block for each index specified by start length;
- * replaces the corresponding element with the block's return value.
- *
- * If +start+ is in range, replaces +length+ elements beginning at offset +start+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1, 1) { |index| "new_#{index}" } # => ["a", "new_1", "c", "d"]
- *
- * If start is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2, 1) { |index| "new_#{index}" } # => ["a", "b", "new_2", "d"]
- *
- * If +start+ is large (<tt>start >= array.size</tt>), extends +self+ with +nil+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(5, 0) { |index| "new_#{index}" } # => ["a", "b", "c", "d", nil]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(5, 2) { |index| "new_#{index}" } # => ["a", "b", "c", "d", nil, "new_5", "new_6"]
- *
- * If +length+ is zero or less, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1, 0) { |index| "new_#{index}" } # => ["a", "b", "c", "d"]
- * a.fill(1, -1) { |index| "new_#{index}" } # => ["a", "b", "c", "d"]
- *
- * With arguments +obj+ and +range+, and a block given,
- * calls the block with each index in the given range;
- * replaces the corresponding element with the block's return value.
- *
- * If the range is positive and ascending (<tt>range 0 < range.begin <= range.end</tt>,
- * replaces elements from <tt>range.begin</tt> to <tt>range.end</tt>:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1..1) { |index| "new_#{index}" } # => ["a", "new_1", "c", "d"]
- *
- * If +range.first+ is negative, does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-1..1) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- *
- * If <tt>range.last</tt> is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(0..-2) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1..-2) { |index| "new_#{index}" } # => ["a", "new_1", "new_2", "d"]
- *
- * If <tt>range.first</tt> and <tt>range.last</tt> are both negative,
- * both count from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-1..-1) { |index| "new_#{index}" } # => ["a", "b", "c", "new_3"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2..-2) { |index| "new_#{index}" } # => ["a", "b", "new_2", "d"]
+ * ary.fill(obj) -> ary
+ * ary.fill(obj, start [, length]) -> ary
+ * ary.fill(obj, range) -> ary
+ * ary.fill {|index| block} -> ary
+ * ary.fill(start [, length]) {|index| block} -> ary
+ * ary.fill(range) {|index| block} -> ary
+ *
+ * The first three forms set the selected elements of +self+ (which
+ * may be the entire array) to +obj+.
+ *
+ * A +start+ of +nil+ is equivalent to zero.
+ *
+ * A +length+ of +nil+ is equivalent to the length of the array.
+ *
+ * The last three forms fill the array with the value of the given block,
+ * which is passed the absolute index of each element to be filled.
+ *
+ * Negative values of +start+ count from the end of the array, where +-1+ is
+ * the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.fill("x") #=> ["x", "x", "x", "x"]
+ * a.fill("z", 2, 2) #=> ["x", "x", "z", "z"]
+ * a.fill("y", 0..1) #=> ["y", "y", "z", "z"]
+ * a.fill {|i| i*i} #=> [0, 1, 4, 9]
+ * a.fill(-2) {|i| i*i*i} #=> [0, 1, 8, 27]
*/
static VALUE
@@ -4786,14 +3975,25 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array + other_array -> new_array
+ * ary + other_ary -> new_ary
+ *
+ * Concatenation --- Returns a new array built by concatenating the
+ * two arrays together to produce a third array.
+ *
+ * [ 1, 2, 3 ] + [ 4, 5 ] #=> [ 1, 2, 3, 4, 5 ]
+ * a = [ "a", "b", "c" ]
+ * c = a + [ "d", "e", "f" ]
+ * c #=> [ "a", "b", "c", "d", "e", "f" ]
+ * a #=> [ "a", "b", "c" ]
*
- * Returns a new \Array containing all elements of +array+
- * followed by all elements of +other_array+:
- * a = [0, 1] + [2, 3]
- * a # => [0, 1, 2, 3]
+ * Note that
+ * x += y
+ * is the same as
+ * x = x + y
+ * This means that it produces a new array. As a consequence,
+ * repeated use of <code>+=</code> on arrays can be quite inefficient.
*
- * Related: #concat.
+ * See also Array#concat.
*/
VALUE
@@ -4826,11 +4026,22 @@ ary_append(VALUE x, VALUE y)
/*
* call-seq:
- * array.concat(*other_arrays) -> self
+ * ary.concat(other_ary1, other_ary2, ...) -> ary
*
- * Adds to +array+ all elements from each \Array in +other_arrays+; returns +self+:
- * a = [0, 1]
- * a.concat([2, 3], [4, 5]) # => [0, 1, 2, 3, 4, 5]
+ * Appends the elements of <code>other_ary</code>s to +self+.
+ *
+ * [ "a", "b" ].concat( ["c", "d"]) #=> [ "a", "b", "c", "d" ]
+ * [ "a" ].concat( ["b"], ["c", "d"]) #=> [ "a", "b", "c", "d" ]
+ * [ "a" ].concat #=> [ "a" ]
+ *
+ * a = [ 1, 2, 3 ]
+ * a.concat( [ 4, 5 ])
+ * a #=> [ 1, 2, 3, 4, 5 ]
+ *
+ * a = [ 1, 2 ]
+ * a.concat(a, a) #=> [1, 2, 1, 2, 1, 2]
+ *
+ * See also Array#+.
*/
static VALUE
@@ -4862,17 +4073,19 @@ rb_ary_concat(VALUE x, VALUE y)
/*
* call-seq:
- * array * n -> new_array
- * array * string_separator -> new_string
+ * ary * int -> new_ary
+ * ary * str -> new_string
+ *
+ * Repetition --- With a String argument, equivalent to
+ * <code>ary.join(str)</code>.
+ *
+ * Otherwise, returns a new array built by concatenating the +int+ copies of
+ * +self+.
*
- * When non-negative argument \Integer +n+ is given,
- * returns a new \Array built by concatenating the +n+ copies of +self+:
- * a = ['x', 'y']
- * a * 3 # => ["x", "y", "x", "y", "x", "y"]
*
- * When \String argument +string_separator+ is given,
- * equivalent to <tt>array.join(string_separator)</tt>:
- * [0, [0, 1], {foo: 0}] * ', ' # => "0, 0, 1, {:foo=>0}"
+ * [ 1, 2, 3 ] * 3 #=> [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]
+ * [ 1, 2, 3 ] * "," #=> "1,2,3"
+ *
*/
static VALUE
@@ -4889,7 +4102,7 @@ rb_ary_times(VALUE ary, VALUE times)
len = NUM2LONG(times);
if (len == 0) {
- ary2 = ary_new(rb_cArray, 0);
+ ary2 = ary_new(rb_obj_class(ary), 0);
goto out;
}
if (len < 0) {
@@ -4900,7 +4113,7 @@ rb_ary_times(VALUE ary, VALUE times)
}
len *= RARRAY_LEN(ary);
- ary2 = ary_new(rb_cArray, len);
+ ary2 = ary_new(rb_obj_class(ary), len);
ARY_SET_LEN(ary2, len);
ptr = RARRAY_CONST_PTR_TRANSIENT(ary);
@@ -4921,16 +4134,22 @@ rb_ary_times(VALUE ary, VALUE times)
/*
* call-seq:
- * array.assoc(obj) -> found_array or nil
+ * ary.assoc(obj) -> element_ary or nil
+ *
+ * Searches through an array whose elements are also arrays comparing +obj+
+ * with the first element of each contained array using <code>obj.==</code>.
*
- * Returns the first element in +self+ that is an \Array
- * whose first element <tt>==</tt> +obj+:
- * a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]
- * a.assoc(4) # => [4, 5, 6]
+ * Returns the first contained array that matches (that is, the first
+ * associated array), or +nil+ if no match is found.
*
- * Returns +nil+ if no such element is found.
+ * See also Array#rassoc
*
- * Related: #rassoc.
+ * s1 = [ "colors", "red", "blue", "green" ]
+ * s2 = [ "letters", "a", "b", "c" ]
+ * s3 = "foo"
+ * a = [ s1, s2, s3 ]
+ * a.assoc("letters") #=> [ "letters", "a", "b", "c" ]
+ * a.assoc("foo") #=> nil
*/
VALUE
@@ -4950,16 +4169,20 @@ rb_ary_assoc(VALUE ary, VALUE key)
/*
* call-seq:
- * array.rassoc(obj) -> found_array or nil
+ * ary.rassoc(obj) -> element_ary or nil
+ *
+ * Searches through the array whose elements are also arrays.
*
- * Returns the first element in +self+ that is an \Array
- * whose second element <tt>==</tt> +obj+:
- * a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]
- * a.rassoc(4) # => [2, 4]
+ * Compares +obj+ with the second element of each contained array using
+ * <code>obj.==</code>.
*
- * Returns +nil+ if no such element is found.
+ * Returns the first contained array that matches +obj+.
*
- * Related: #assoc.
+ * See also Array#assoc.
+ *
+ * a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]
+ * a.rassoc("two") #=> [2, "two"]
+ * a.rassoc("four") #=> nil
*/
VALUE
@@ -5014,19 +4237,16 @@ recursive_equal(VALUE ary1, VALUE ary2, int recur)
/*
* call-seq:
- * array == other_array -> true or false
+ * ary == other_ary -> bool
*
- * Returns +true+ if both <tt>array.size == other_array.size</tt>
- * and for each index +i+ in +array+, <tt>array[i] == other_array[i]</tt>:
- * a0 = [:foo, 'bar', 2]
- * a1 = [:foo, 'bar', 2.0]
- * a1 == a0 # => true
- * [] == [] # => true
+ * Equality --- Two arrays are equal if they contain the same number of
+ * elements and if each element is equal to (according to Object#==) the
+ * corresponding element in +other_ary+.
*
- * Otherwise, returns +false+.
+ * [ "a", "c" ] == [ "a", "c", 7 ] #=> false
+ * [ "a", "c", 7 ] == [ "a", "c", 7 ] #=> true
+ * [ "a", "c", 7 ] == [ "a", "d", "f" ] #=> false
*
- * This method is different from method Array#eql?,
- * which compares elements using <tt>Object#eql?</tt>.
*/
static VALUE
@@ -5059,18 +4279,10 @@ recursive_eql(VALUE ary1, VALUE ary2, int recur)
/*
* call-seq:
- * array.eql? other_array -> true or false
- *
- * Returns +true+ if +self+ and +other_array+ are the same size,
- * and if, for each index +i+ in +self+, <tt>self[i].eql? other_array[i]</tt>:
- * a0 = [:foo, 'bar', 2]
- * a1 = [:foo, 'bar', 2]
- * a1.eql?(a0) # => true
+ * ary.eql?(other) -> true or false
*
- * Otherwise, returns +false+.
- *
- * This method is different from method {Array#==}[#method-i-3D-3D],
- * which compares using method <tt>Object#==</tt>.
+ * Returns +true+ if +self+ and +other+ are the same object,
+ * or are both arrays with the same content (according to Object#eql?).
*/
static VALUE
@@ -5085,13 +4297,14 @@ rb_ary_eql(VALUE ary1, VALUE ary2)
/*
* call-seq:
- * array.hash -> integer
+ * ary.hash -> integer
+ *
+ * Compute a hash-code for this array.
*
- * Returns the integer hash value for +self+.
+ * Two arrays with the same content will have the same hash code (and will
+ * compare using #eql?).
*
- * Two arrays with the same content will have the same hash code (and will compare using eql?):
- * [0, 1, 2].hash == [0, 1, 2].hash # => true
- * [0, 1, 2].hash == [0, 1, 3].hash # => false
+ * See also Object#hash.
*/
static VALUE
@@ -5113,12 +4326,14 @@ rb_ary_hash(VALUE ary)
/*
* call-seq:
- * array.include?(obj) -> true or false
+ * ary.include?(object) -> true or false
+ *
+ * Returns +true+ if the given +object+ is present in +self+ (that is, if any
+ * element <code>==</code> +object+), otherwise returns +false+.
*
- * Returns +true+ if for some index +i+ in +self+, <tt>obj == self[i]</tt>;
- * otherwise +false+:
- * [0, 1, 2].include?(2) # => true
- * [0, 1, 2].include?(3) # => false
+ * a = [ "a", "b", "c" ]
+ * a.include?("b") #=> true
+ * a.include?("z") #=> false
*/
VALUE
@@ -5173,24 +4388,32 @@ recursive_cmp(VALUE ary1, VALUE ary2, int recur)
/*
* call-seq:
- * array <=> other_array -> -1, 0, or 1
+ * ary <=> other_ary -> -1, 0, +1 or nil
+ *
+ * Comparison --- Returns an integer (+-1+, +0+, or <code>+1</code>) if this
+ * array is less than, equal to, or greater than +other_ary+.
+ *
+ * Each object in each array is compared (using the <=> operator).
+ *
+ * Arrays are compared in an "element-wise" manner; the first element of +ary+
+ * is compared with the first one of +other_ary+ using the <=> operator, then
+ * each of the second elements, etc...
+ * As soon as the result of any such comparison is non zero (i.e. the two
+ * corresponding elements are not equal), that result is returned for the
+ * whole array comparison.
*
- * Returns -1, 0, or 1 as +self+ is less than, equal to, or greater than +other_array+.
- * For each index +i+ in +self+, evaluates <tt>result = self[i] <=> other_array[i]</tt>.
+ * If all the elements are equal, then the result is based on a comparison of
+ * the array lengths. Thus, two arrays are "equal" according to Array#<=> if,
+ * and only if, they have the same length and the value of each element is
+ * equal to the value of the corresponding element in the other array.
*
- * Returns -1 if any result is -1:
- * [0, 1, 2] <=> [0, 1, 3] # => -1
+ * +nil+ is returned if the +other_ary+ is not an array or if the comparison
+ * of two elements returned +nil+.
*
- * Returns 1 if any result is 1:
- * [0, 1, 2] <=> [0, 1, 1] # => 1
+ * [ "a", "a", "c" ] <=> [ "a", "b", "c" ] #=> -1
+ * [ 1, 2, 3, 4, 5, 6 ] <=> [ 1, 2 ] #=> +1
+ * [ 1, 2 ] <=> [ 1, :two ] #=> nil
*
- * When all results are zero:
- * - Returns -1 if +array+ is smaller than +other_array+:
- * [0, 1, 2] <=> [0, 1, 2, 3] # => -1
- * - Returns 1 if +array+ is larger than +other_array+:
- * [0, 1, 2] <=> [0, 1] # => 1
- * - Returns 0 if +array+ and +other_array+ are the same size:
- * [0, 1, 2] <=> [0, 1, 2] # => 0
*/
VALUE
@@ -5271,17 +4494,25 @@ ary_recycle_hash(VALUE hash)
/*
* call-seq:
- * array - other_array -> new_array
+ * ary - other_ary -> new_ary
+ *
+ * Array Difference
+ *
+ * Returns a new array that is a copy of the original array, removing all
+ * occurrences of any item that also appear in +other_ary+. The order is
+ * preserved from the original array.
+ *
+ * It compares elements using their #hash and #eql? methods for efficiency.
+ *
+ * [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]
+ *
+ * Note that while 1 and 2 were only present once in the array argument, and
+ * were present twice in the receiver array, all occurrences of each Integer are
+ * removed in the returned array.
*
- * Returns a new \Array containing only those elements from +array+
- * that are not found in \Array +other_array+;
- * items are compared using <tt>eql?</tt>;
- * the order from +array+ is preserved:
- * [0, 1, 1, 2, 1, 1, 3, 1, 1] - [1] # => [0, 2, 3]
- * [0, 1, 2, 3] - [3, 0] # => [1, 2]
- * [0, 1, 2] - [4] # => [0, 1, 2]
+ * If you need set-like behavior, see the library class Set.
*
- * Related: Array#difference.
+ * See also Array#difference.
*/
static VALUE
@@ -5314,18 +4545,31 @@ rb_ary_diff(VALUE ary1, VALUE ary2)
/*
* call-seq:
- * array.difference(*other_arrays) -> new_array
+ * ary.difference(other_ary1, other_ary2, ...) -> new_ary
*
- * Returns a new \Array containing only those elements from +self+
- * that are not found in any of the Arrays +other_arrays+;
- * items are compared using <tt>eql?</tt>; order from +self+ is preserved:
- * [0, 1, 1, 2, 1, 1, 3, 1, 1].difference([1]) # => [0, 2, 3]
- * [0, 1, 2, 3].difference([3, 0], [1, 3]) # => [2]
- * [0, 1, 2].difference([4]) # => [0, 1, 2]
+ * Array Difference
*
- * Returns a copy of +self+ if no arguments given.
+ * Returns a new array that is a copy of the original array, removing all
+ * occurrences of any item that also appear in +other_ary+. The order is
+ * preserved from the original array.
*
- * Related: Array#-.
+ * It compares elements using their #hash and #eql? methods for efficiency.
+ *
+ * [ 1, 1, 2, 2, 3, 3, 4, 5 ].difference([ 1, 2, 4 ]) #=> [ 3, 3, 5 ]
+ *
+ * Note that while 1 and 2 were only present once in the array argument, and
+ * were present twice in the receiver array, all occurrences of each Integer are
+ * removed in the returned array.
+ *
+ * Multiple array arguments can be supplied and all occurrences of any element
+ * in those supplied arrays that match the receiver will be removed from the
+ * returned array.
+ *
+ * [ 1, 'c', :s, 'yep' ].difference([ 1 ], [ 'a', 'c' ]) #=> [ :s, "yep" ]
+ *
+ * If you need set-like behavior, see the library class Set.
+ *
+ * See also Array#-.
*/
static VALUE
@@ -5367,17 +4611,17 @@ rb_ary_difference_multi(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array & other_array -> new_array
+ * ary & other_ary -> new_ary
*
- * Returns a new \Array containing each element found in both +array+ and \Array +other_array+;
- * duplicates are omitted; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3] & [1, 2] # => [1, 2]
- * [0, 1, 0, 1] & [0, 1] # => [0, 1]
+ * Set Intersection --- Returns a new array containing unique elements common to the
+ * two arrays. The order is preserved from the original array.
*
- * Preserves order from +array+:
- * [0, 1, 2] & [3, 2, 1, 0] # => [0, 1, 2]
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
- * Related: Array#intersection.
+ * [ 1, 1, 3, 5 ] & [ 3, 2, 1 ] #=> [ 1, 3 ]
+ * [ 'a', 'b', 'b', 'z' ] & [ 'a', 'b', 'c' ] #=> [ 'a', 'b' ]
+ *
+ * See also Array#uniq.
*/
@@ -5418,20 +4662,19 @@ rb_ary_and(VALUE ary1, VALUE ary2)
/*
* call-seq:
- * array.intersection(*other_arrays) -> new_array
+ * ary.intersection(other_ary1, other_ary2, ...) -> new_ary
*
- * Returns a new \Array containing each element found both in +self+
- * and in all of the given Arrays +other_arrays+;
- * duplicates are omitted; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # => [0, 1]
- * [0, 0, 1, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # => [0, 1]
+ * Set Intersection --- Returns a new array containing unique elements common
+ * to +self+ and <code>other_ary</code>s. Order is preserved from the original
+ * array.
*
- * Preserves order from +self+:
- * [0, 1, 2].intersection([2, 1, 0]) # => [0, 1, 2]
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
- * Returns a copy of +self+ if no arguments given.
+ * [ 1, 1, 3, 5 ].intersection([ 3, 2, 1 ]) # => [ 1, 3 ]
+ * [ "a", "b", "z" ].intersection([ "a", "b", "c" ], [ "b" ]) # => [ "b" ]
+ * [ "a" ].intersection #=> [ "a" ]
*
- * Related: Array#&.
+ * See also Array#&.
*/
static VALUE
@@ -5480,16 +4723,17 @@ rb_ary_union_hash(VALUE hash, VALUE ary2)
/*
* call-seq:
- * array | other_array -> new_array
+ * ary | other_ary -> new_ary
+ *
+ * Set Union --- Returns a new array by joining +ary+ with +other_ary+,
+ * excluding any duplicates and preserving the order from the given arrays.
+ *
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
- * Returns the union of +array+ and \Array +other_array+;
- * duplicates are removed; order is preserved;
- * items are compared using <tt>eql?</tt>:
- * [0, 1] | [2, 3] # => [0, 1, 2, 3]
- * [0, 1, 1] | [2, 2, 3] # => [0, 1, 2, 3]
- * [0, 1, 2] | [3, 2, 1, 0] # => [0, 1, 2, 3]
+ * [ "a", "b", "c" ] | [ "c", "d", "a" ] #=> [ "a", "b", "c", "d" ]
+ * [ "c", "d", "a" ] | [ "a", "b", "c" ] #=> [ "c", "d", "a", "b" ]
*
- * Related: Array#union.
+ * See also Array#union.
*/
static VALUE
@@ -5515,17 +4759,18 @@ rb_ary_or(VALUE ary1, VALUE ary2)
/*
* call-seq:
- * array.union(*other_arrays) -> new_array
+ * ary.union(other_ary1, other_ary2, ...) -> new_ary
*
- * Returns a new \Array that is the union of +self+ and all given Arrays +other_arrays+;
- * duplicates are removed; order is preserved; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3].union([4, 5], [6, 7]) # => [0, 1, 2, 3, 4, 5, 6, 7]
- * [0, 1, 1].union([2, 1], [3, 1]) # => [0, 1, 2, 3]
- * [0, 1, 2, 3].union([3, 2], [1, 0]) # => [0, 1, 2, 3]
+ * Set Union --- Returns a new array by joining <code>other_ary</code>s with +self+,
+ * excluding any duplicates and preserving the order from the given arrays.
*
- * Returns a copy of +self+ if no arguments given.
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
- * Related: Array#|.
+ * [ "a", "b", "c" ].union( [ "c", "d", "a" ] ) #=> [ "a", "b", "c", "d" ]
+ * [ "a" ].union( ["e", "b"], ["a", "c", "b"] ) #=> [ "a", "e", "b", "c" ]
+ * [ "a" ].union #=> [ "a" ]
+ *
+ * See also Array#|.
*/
static VALUE
@@ -5558,127 +4803,27 @@ rb_ary_union_multi(int argc, VALUE *argv, VALUE ary)
return ary_union;
}
-static VALUE
-ary_max_generic(VALUE ary, long i, VALUE vmax)
-{
- RUBY_ASSERT(i > 0 && i < RARRAY_LEN(ary));
-
- VALUE v;
- for (; i < RARRAY_LEN(ary); ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (rb_cmpint(rb_funcallv(vmax, id_cmp, 1, &v), vmax, v) < 0) {
- vmax = v;
- }
- }
-
- return vmax;
-}
-
-static VALUE
-ary_max_opt_fixnum(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(FIXNUM_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (FIXNUM_P(v)) {
- if ((long)vmax < (long)v) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
-static VALUE
-ary_max_opt_float(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(RB_FLOAT_TYPE_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (RB_FLOAT_TYPE_P(v)) {
- if (rb_float_cmp(vmax, v) < 0) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
-static VALUE
-ary_max_opt_string(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(STRING_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (STRING_P(v)) {
- if (rb_str_cmp(vmax, v) < 0) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
/*
* call-seq:
- * array.max -> element
- * array.max {|a, b| ... } -> element
- * array.max(n) -> new_array
- * array.max(n) {|a, b| ... } -> new_array
- *
- * Returns one of the following:
- * - The maximum-valued element from +self+.
- * - A new \Array of maximum-valued elements selected from +self+.
- *
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer.
+ * ary.max -> obj
+ * ary.max {|a, b| block} -> obj
+ * ary.max(n) -> array
+ * ary.max(n) {|a, b| block} -> array
*
- * With no argument and no block, returns the element in +self+
- * having the maximum value per method <tt><=></tt>:
- * [0, 1, 2].max # => 2
+ * Returns the object in _ary_ with the maximum value. The
+ * first form assumes all objects implement Comparable;
+ * the second uses the block to return <em>a <=> b</em>.
*
- * With an argument \Integer +n+ and no block, returns a new \Array with at most +n+ elements,
- * in descending order per method <tt><=></tt>:
- * [0, 1, 2, 3].max(3) # => [3, 2, 1]
- * [0, 1, 2, 3].max(6) # => [3, 2, 1]
+ * ary = %w(albatross dog horse)
+ * ary.max #=> "horse"
+ * ary.max {|a, b| a.length <=> b.length} #=> "albatross"
*
- * When a block is given, the block must return an \Integer.
+ * If the +n+ argument is given, maximum +n+ elements are returned
+ * as an array.
*
- * With a block and no argument, calls the block <tt>self.size-1</tt> times to compare elements;
- * returns the element having the maximum value per the block:
- * ['0', '00', '000'].max {|a, b| a.size <=> b.size } # => "000"
- *
- * With an argument +n+ and a block, returns a new \Array with at most +n+ elements,
- * in descending order per the block:
- * ['0', '00', '000'].max(2) {|a, b| a.size <=> b.size } # => ["000", "00"]
+ * ary = %w[albatross dog horse]
+ * ary.max(2) #=> ["horse", "dog"]
+ * ary.max(2) {|a, b| a.length <=> b.length } #=> ["albatross", "horse"]
*/
static VALUE
rb_ary_max(int argc, VALUE *argv, VALUE ary)
@@ -5691,7 +4836,6 @@ rb_ary_max(int argc, VALUE *argv, VALUE ary)
if (rb_check_arity(argc, 0, 1) && !NIL_P(num = argv[0]))
return rb_nmin_run(ary, num, 0, 1, 1);
- const long n = RARRAY_LEN(ary);
if (rb_block_given_p()) {
for (i = 0; i < RARRAY_LEN(ary); i++) {
v = RARRAY_AREF(ary, i);
@@ -5700,149 +4844,39 @@ rb_ary_max(int argc, VALUE *argv, VALUE ary)
}
}
}
- else if (n > 0) {
- result = RARRAY_AREF(ary, 0);
- if (n > 1) {
- if (FIXNUM_P(result) && CMP_OPTIMIZABLE(cmp_opt, Integer)) {
- return ary_max_opt_fixnum(ary, 1, result);
- }
- else if (STRING_P(result) && CMP_OPTIMIZABLE(cmp_opt, String)) {
- return ary_max_opt_string(ary, 1, result);
- }
- else if (RB_FLOAT_TYPE_P(result) && CMP_OPTIMIZABLE(cmp_opt, Float)) {
- return ary_max_opt_float(ary, 1, result);
- }
- else {
- return ary_max_generic(ary, 1, result);
- }
- }
+ else {
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ v = RARRAY_AREF(ary, i);
+ if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) > 0) {
+ result = v;
+ }
+ }
}
if (result == Qundef) return Qnil;
return result;
}
-static VALUE
-ary_min_generic(VALUE ary, long i, VALUE vmin)
-{
- RUBY_ASSERT(i > 0 && i < RARRAY_LEN(ary));
-
- VALUE v;
- for (; i < RARRAY_LEN(ary); ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (rb_cmpint(rb_funcallv(vmin, id_cmp, 1, &v), vmin, v) > 0) {
- vmin = v;
- }
- }
-
- return vmin;
-}
-
-static VALUE
-ary_min_opt_fixnum(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(FIXNUM_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (FIXNUM_P(a)) {
- if ((long)vmin > (long)a) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-
-static VALUE
-ary_min_opt_float(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(RB_FLOAT_TYPE_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (RB_FLOAT_TYPE_P(a)) {
- if (rb_float_cmp(vmin, a) > 0) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-
-static VALUE
-ary_min_opt_string(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(STRING_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (STRING_P(a)) {
- if (rb_str_cmp(vmin, a) > 0) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-
/*
* call-seq:
- * array.min -> element
- * array.min { |a, b| ... } -> element
- * array.min(n) -> new_array
- * array.min(n) { |a, b| ... } -> new_array
+ * ary.min -> obj
+ * ary.min {| a,b | block } -> obj
+ * ary.min(n) -> array
+ * ary.min(n) {| a,b | block } -> array
*
- * Returns one of the following:
- * - The minimum-valued element from +self+.
- * - A new \Array of minimum-valued elements selected from +self+.
+ * Returns the object in _ary_ with the minimum value. The
+ * first form assumes all objects implement Comparable;
+ * the second uses the block to return <em>a <=> b</em>.
*
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer.
+ * ary = %w(albatross dog horse)
+ * ary.min #=> "albatross"
+ * ary.min {|a, b| a.length <=> b.length} #=> "dog"
*
- * With no argument and no block, returns the element in +self+
- * having the minimum value per method <tt><=></tt>:
- * [0, 1, 2].min # => 0
+ * If the +n+ argument is given, minimum +n+ elements are returned
+ * as an array.
*
- * With \Integer argument +n+ and no block, returns a new \Array with at most +n+ elements,
- * in ascending order per method <tt><=></tt>:
- * [0, 1, 2, 3].min(3) # => [0, 1, 2]
- * [0, 1, 2, 3].min(6) # => [0, 1, 2, 3]
- *
- * When a block is given, the block must return an Integer.
- *
- * With a block and no argument, calls the block <tt>self.size-1</tt> times to compare elements;
- * returns the element having the minimum value per the block:
- * ['0', '00', '000'].min { |a, b| a.size <=> b.size } # => "0"
- *
- * With an argument +n+ and a block, returns a new \Array with at most +n+ elements,
- * in ascending order per the block:
- * [0, 1, 2, 3].min(3) # => [0, 1, 2]
- * [0, 1, 2, 3].min(6) # => [0, 1, 2, 3]
+ * ary = %w[albatross dog horse]
+ * ary.min(2) #=> ["albatross", "dog"]
+ * ary.min(2) {|a, b| a.length <=> b.length } #=> ["dog", "horse"]
*/
static VALUE
rb_ary_min(int argc, VALUE *argv, VALUE ary)
@@ -5855,7 +4889,6 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary)
if (rb_check_arity(argc, 0, 1) && !NIL_P(num = argv[0]))
return rb_nmin_run(ary, num, 0, 0, 1);
- const long n = RARRAY_LEN(ary);
if (rb_block_given_p()) {
for (i = 0; i < RARRAY_LEN(ary); i++) {
v = RARRAY_AREF(ary, i);
@@ -5864,22 +4897,13 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary)
}
}
}
- else if (n > 0) {
- result = RARRAY_AREF(ary, 0);
- if (n > 1) {
- if (FIXNUM_P(result) && CMP_OPTIMIZABLE(cmp_opt, Integer)) {
- return ary_min_opt_fixnum(ary, 1, result);
- }
- else if (STRING_P(result) && CMP_OPTIMIZABLE(cmp_opt, String)) {
- return ary_min_opt_string(ary, 1, result);
- }
- else if (RB_FLOAT_TYPE_P(result) && CMP_OPTIMIZABLE(cmp_opt, Float)) {
- return ary_min_opt_float(ary, 1, result);
- }
- else {
- return ary_min_generic(ary, 1, result);
- }
- }
+ else {
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ v = RARRAY_AREF(ary, i);
+ if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) < 0) {
+ result = v;
+ }
+ }
}
if (result == Qundef) return Qnil;
return result;
@@ -5887,23 +4911,14 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.minmax -> [min_val, max_val]
- * array.minmax {|a, b| ... } -> [min_val, max_val]
- *
- * Returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, either per method <tt><=></tt> or per a given block:.
- *
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer;
- * returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, per method <tt><=></tt>:
- * [0, 1, 2].minmax # => [0, 2]
- *
- * When a block is given, the block must return an \Integer;
- * the block is called <tt>self.size-1</tt> times to compare elements;
- * returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, per the block:
- * ['0', '00', '000'].minmax {|a, b| a.size <=> b.size } # => ["0", "000"]
+ * ary.minmax -> [obj, obj]
+ * ary.minmax {| a,b | block } -> [obj, obj]
+ *
+ * Returns a two element array which contains the minimum and the
+ * maximum value in the array.
+ *
+ * Can be given an optional block to override the default comparison
+ * method <code>a <=> b</code>.
*/
static VALUE
rb_ary_minmax(VALUE ary)
@@ -5923,31 +4938,31 @@ push_value(st_data_t key, st_data_t val, st_data_t ary)
/*
* call-seq:
- * array.uniq! -> self or nil
- * array.uniq! {|element| ... } -> self or nil
+ * ary.uniq! -> ary or nil
+ * ary.uniq! {|item| ...} -> ary or nil
*
- * Removes duplicate elements from +self+, the first occurrence always being retained;
- * returns +self+ if any elements removed, +nil+ otherwise.
+ * Removes duplicate elements from +self+.
*
- * With no block given, identifies and removes elements using method <tt>eql?</tt>
- * to compare.
+ * If a block is given, it will use the return value of the block for
+ * comparison.
*
- * Returns +self+ if any elements removed:
- * a = [0, 0, 1, 1, 2, 2]
- * a.uniq! # => [0, 1, 2]
+ * It compares values using their #hash and #eql? methods for efficiency.
*
- * Returns +nil+ if no elements removed.
+ * +self+ is traversed in order, and the first occurrence is kept.
*
- * With a block given, calls the block for each element;
- * identifies (using method <tt>eql?</tt>) and removes
- * elements for which the block returns duplicate values.
+ * Returns +nil+ if no changes are made (that is, no duplicates are found).
*
- * Returns +self+ if any elements removed:
- * a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
- * a.uniq! {|element| element.size } # => ['a', 'aa', 'aaa']
+ * a = [ "a", "a", "b", "b", "c" ]
+ * a.uniq! # => ["a", "b", "c"]
+ *
+ * b = [ "a", "b", "c" ]
+ * b.uniq! # => nil
+ *
+ * c = [["student","sam"], ["student","george"], ["teacher","matz"]]
+ * c.uniq! {|s| s.first} # => [["student", "sam"], ["teacher", "matz"]]
*
- * Returns +nil+ if no elements removed.
*/
+
static VALUE
rb_ary_uniq_bang(VALUE ary)
{
@@ -5981,22 +4996,23 @@ rb_ary_uniq_bang(VALUE ary)
/*
* call-seq:
- * array.uniq -> new_array
- * array.uniq {|element| ... } -> new_array
- *
- * Returns a new \Array containing those elements from +self+ that are not duplicates,
- * the first occurrence always being retained.
- *
- * With no block given, identifies and omits duplicates using method <tt>eql?</tt>
- * to compare.
- * a = [0, 0, 1, 1, 2, 2]
- * a.uniq # => [0, 1, 2]
- *
- * With a block given, calls the block for each element;
- * identifies (using method <tt>eql?</tt>) and omits duplicate values,
- * that is, those elements for which the block returns the same value:
- * a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
- * a.uniq {|element| element.size } # => ["a", "aa", "aaa"]
+ * ary.uniq -> new_ary
+ * ary.uniq {|item| ...} -> new_ary
+ *
+ * Returns a new array by removing duplicate values in +self+.
+ *
+ * If a block is given, it will use the return value of the block for comparison.
+ *
+ * It compares values using their #hash and #eql? methods for efficiency.
+ *
+ * +self+ is traversed in order, and the first occurrence is kept.
+ *
+ * a = [ "a", "a", "b", "b", "c" ]
+ * a.uniq # => ["a", "b", "c"]
+ *
+ * b = [["student","sam"], ["student","george"], ["teacher","matz"]]
+ * b.uniq {|s| s.first} # => [["student", "sam"], ["teacher", "matz"]]
+ *
*/
static VALUE
@@ -6016,6 +5032,7 @@ rb_ary_uniq(VALUE ary)
hash = ary_make_hash(ary);
uniq = rb_hash_values(hash);
}
+ RBASIC_SET_CLASS(uniq, rb_obj_class(ary));
if (hash) {
ary_recycle_hash(hash);
}
@@ -6025,11 +5042,14 @@ rb_ary_uniq(VALUE ary)
/*
* call-seq:
- * array.compact! -> self or nil
+ * ary.compact! -> ary or nil
+ *
+ * Removes +nil+ elements from the array.
*
- * Removes all +nil+ elements from +self+.
+ * Returns +nil+ if no changes were made, otherwise returns the array.
*
- * Returns +self+ if any elements removed, otherwise +nil+.
+ * [ "a", nil, "b", nil, "c" ].compact! #=> [ "a", "b", "c" ]
+ * [ "a", "b", "c" ].compact! #=> nil
*/
static VALUE
@@ -6057,11 +5077,12 @@ rb_ary_compact_bang(VALUE ary)
/*
* call-seq:
- * array.compact -> new_array
+ * ary.compact -> new_ary
*
- * Returns a new \Array containing all non-+nil+ elements from +self+:
- * a = [nil, 0, nil, 1, nil, 2, nil]
- * a.compact # => [0, 1, 2]
+ * Returns a copy of +self+ with all +nil+ elements removed.
+ *
+ * [ "a", nil, "b", nil, "c", nil ].compact
+ * #=> [ "a", "b", "c" ]
*/
static VALUE
@@ -6074,26 +5095,23 @@ rb_ary_compact(VALUE ary)
/*
* call-seq:
- * array.count -> an_integer
- * array.count(obj) -> an_integer
- * array.count {|element| ... } -> an_integer
+ * ary.count -> int
+ * ary.count(obj) -> int
+ * ary.count {|item| block} -> int
*
- * Returns a count of specified elements.
+ * Returns the number of elements.
*
- * With no argument and no block, returns the count of all elements:
- * [0, 1, 2].count # => 3
- * [].count # => 0
+ * If an argument is given, counts the number of elements which equal +obj+
+ * using <code>==</code>.
*
- * With argument +obj+, returns the count of elements <tt>eql?</tt> to +obj+:
- * [0, 1, 2, 0].count(0) # => 2
- * [0, 1, 2].count(3) # => 0
+ * If a block is given, counts the number of elements for which the block
+ * returns a true value.
*
- * With no argument and a block given, calls the block with each element;
- * returns the count of elements for which the block returns a truthy value:
- * [0, 1, 2, 3].count {|element| element > 1} # => 2
+ * ary = [1, 2, 4, 2]
+ * ary.count #=> 4
+ * ary.count(2) #=> 2
+ * ary.count {|x| x%2 == 0} #=> 3
*
- * With argument +obj+ and a block given, issues a warning, ignores the block,
- * and returns the count of elements <tt>eql?</tt> to +obj+:
*/
static VALUE
@@ -6130,8 +5148,8 @@ static VALUE
flatten(VALUE ary, int level)
{
long i;
- VALUE stack, result, tmp = 0, elt, vmemo;
- st_table *memo = 0;
+ VALUE stack, result, tmp, elt, vmemo;
+ st_table *memo;
st_data_t id;
for (i = 0; i < RARRAY_LEN(ary); i++) {
@@ -6143,6 +5161,8 @@ flatten(VALUE ary, int level)
}
if (i == RARRAY_LEN(ary)) {
return ary;
+ } else if (tmp == ary) {
+ rb_raise(rb_eArgError, "tried to flatten recursive array");
}
result = ary_new(0, RARRAY_LEN(ary));
@@ -6153,14 +5173,12 @@ flatten(VALUE ary, int level)
rb_ary_push(stack, ary);
rb_ary_push(stack, LONG2NUM(i + 1));
- if (level < 0) {
- vmemo = rb_hash_new();
- RBASIC_CLEAR_CLASS(vmemo);
- memo = st_init_numtable();
- rb_hash_st_table_set(vmemo, memo);
- st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);
- st_insert(memo, (st_data_t)tmp, (st_data_t)Qtrue);
- }
+ vmemo = rb_hash_new();
+ RBASIC_CLEAR_CLASS(vmemo);
+ memo = st_init_numtable();
+ rb_hash_st_table_set(vmemo, memo);
+ st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);
+ st_insert(memo, (st_data_t)tmp, (st_data_t)Qtrue);
ary = tmp;
i = 0;
@@ -6174,24 +5192,20 @@ flatten(VALUE ary, int level)
}
tmp = rb_check_array_type(elt);
if (RBASIC(result)->klass) {
- if (memo) {
- RB_GC_GUARD(vmemo);
- st_clear(memo);
- }
+ RB_GC_GUARD(vmemo);
+ st_clear(memo);
rb_raise(rb_eRuntimeError, "flatten reentered");
}
if (NIL_P(tmp)) {
rb_ary_push(result, elt);
}
else {
- if (memo) {
- id = (st_data_t)tmp;
- if (st_is_member(memo, id)) {
- st_clear(memo);
- rb_raise(rb_eArgError, "tried to flatten recursive array");
- }
- st_insert(memo, id, (st_data_t)Qtrue);
+ id = (st_data_t)tmp;
+ if (st_is_member(memo, id)) {
+ st_clear(memo);
+ rb_raise(rb_eArgError, "tried to flatten recursive array");
}
+ st_insert(memo, id, (st_data_t)Qtrue);
rb_ary_push(stack, ary);
rb_ary_push(stack, LONG2NUM(i));
ary = tmp;
@@ -6201,49 +5215,37 @@ flatten(VALUE ary, int level)
if (RARRAY_LEN(stack) == 0) {
break;
}
- if (memo) {
- id = (st_data_t)ary;
- st_delete(memo, &id, 0);
- }
+ id = (st_data_t)ary;
+ st_delete(memo, &id, 0);
tmp = rb_ary_pop(stack);
i = NUM2LONG(tmp);
ary = rb_ary_pop(stack);
}
- if (memo) {
- st_clear(memo);
- }
+ st_clear(memo);
- RBASIC_SET_CLASS(result, rb_cArray);
+ RBASIC_SET_CLASS(result, rb_obj_class(ary));
return result;
}
/*
* call-seq:
- * array.flatten! -> self or nil
- * array.flatten!(level) -> self or nil
- *
- * Replaces each nested \Array in +self+ with the elements from that \Array;
- * returns +self+ if any changes, +nil+ otherwise.
- *
- * With non-negative \Integer argument +level+, flattens recursively through +level+ levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(1) # => [0, 1, [2, 3], 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(2) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(3) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten!(1) # => nil
- *
- * With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten! # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten! # => nil
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(-1) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(-2) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten!(-1) # => nil
+ * ary.flatten! -> ary or nil
+ * ary.flatten!(level) -> ary or nil
+ *
+ * Flattens +self+ in place.
+ *
+ * Returns +nil+ if no modifications were made (i.e., the array contains no
+ * subarrays.)
+ *
+ * The optional +level+ argument determines the level of recursion to flatten.
+ *
+ * a = [ 1, 2, [3, [4, 5] ] ]
+ * a.flatten! #=> [1, 2, 3, 4, 5]
+ * a.flatten! #=> nil
+ * a #=> [1, 2, 3, 4, 5]
+ * a = [ 1, 2, [3, [4, 5] ] ]
+ * a.flatten!(1) #=> [1, 2, 3, [4, 5]]
*/
static VALUE
@@ -6270,32 +5272,24 @@ rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.flatten -> new_array
- * array.flatten(level) -> new_array
- *
- * Returns a new \Array that is a recursive flattening of +self+:
- * - Each non-Array element is unchanged.
- * - Each \Array is replaced by its individual elements.
- *
- * With non-negative \Integer argument +level+, flattens recursively through +level+ levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(0) # => [0, [1, [2, 3], 4], 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(1) # => [0, 1, [2, 3], 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(2) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(3) # => [0, 1, 2, 3, 4, 5]
- *
- * With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten # => [0, 1, 2]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(-1) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(-2) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten(-1) # => [0, 1, 2]
+ * ary.flatten -> new_ary
+ * ary.flatten(level) -> new_ary
+ *
+ * Returns a new array that is a one-dimensional flattening of +self+
+ * (recursively).
+ *
+ * That is, for every element that is an array, extract its elements into
+ * the new array.
+ *
+ * The optional +level+ argument determines the level of recursion to
+ * flatten.
+ *
+ * s = [ 1, 2, 3 ] #=> [1, 2, 3]
+ * t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]]
+ * a = [ s, t, 9, 10 ] #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
+ * a.flatten #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ * a = [ 1, 2, [3, [4, 5] ] ]
+ * a.flatten(1) #=> [1, 2, 3, [4, 5]]
*/
static VALUE
@@ -6317,13 +5311,45 @@ rb_ary_flatten(int argc, VALUE *argv, VALUE ary)
return result;
}
+#define OPTHASH_GIVEN_P(opts) \
+ (argc > 0 && !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) && (--argc, 1))
+static ID id_random;
+
#define RAND_UPTO(max) (long)rb_random_ulong_limited((randgen), (max)-1)
+/*
+ * call-seq:
+ * ary.shuffle! -> ary
+ * ary.shuffle!(random: rng) -> ary
+ *
+ * Shuffles elements in +self+ in place.
+ *
+ * a = [ 1, 2, 3 ] #=> [1, 2, 3]
+ * a.shuffle! #=> [2, 3, 1]
+ * a #=> [2, 3, 1]
+ *
+ * The optional +rng+ argument will be used as the random number generator.
+ *
+ * a.shuffle!(random: Random.new(1)) #=> [1, 3, 2]
+ */
+
static VALUE
-rb_ary_shuffle_bang(rb_execution_context_t *ec, VALUE ary, VALUE randgen)
+rb_ary_shuffle_bang(int argc, VALUE *argv, VALUE ary)
{
+ VALUE opts, randgen = rb_cRandom;
long i, len;
+ if (OPTHASH_GIVEN_P(opts)) {
+ VALUE rnd;
+ ID keyword_ids[1];
+
+ keyword_ids[0] = id_random;
+ rb_get_kwargs(opts, keyword_ids, 0, 1, &rnd);
+ if (rnd != Qundef) {
+ randgen = rnd;
+ }
+ }
+ rb_check_arity(argc, 0, 0);
rb_ary_modify(ary);
i = len = RARRAY_LEN(ary);
RARRAY_PTR_USE(ary, ptr, {
@@ -6341,24 +5367,80 @@ rb_ary_shuffle_bang(rb_execution_context_t *ec, VALUE ary, VALUE randgen)
return ary;
}
+
+/*
+ * call-seq:
+ * ary.shuffle -> new_ary
+ * ary.shuffle(random: rng) -> new_ary
+ *
+ * Returns a new array with elements of +self+ shuffled.
+ *
+ * a = [ 1, 2, 3 ] #=> [1, 2, 3]
+ * a.shuffle #=> [2, 3, 1]
+ * a #=> [1, 2, 3]
+ *
+ * The optional +rng+ argument will be used as the random number generator.
+ *
+ * a.shuffle(random: Random.new(1)) #=> [1, 3, 2]
+ */
+
static VALUE
-rb_ary_shuffle(rb_execution_context_t *ec, VALUE ary, VALUE randgen)
+rb_ary_shuffle(int argc, VALUE *argv, VALUE ary)
{
ary = rb_ary_dup(ary);
- rb_ary_shuffle_bang(ec, ary, randgen);
+ rb_ary_shuffle_bang(argc, argv, ary);
return ary;
}
+
+/*
+ * call-seq:
+ * ary.sample -> obj
+ * ary.sample(random: rng) -> obj
+ * ary.sample(n) -> new_ary
+ * ary.sample(n, random: rng) -> new_ary
+ *
+ * Choose a random element or +n+ random elements from the array.
+ *
+ * The elements are chosen by using random and unique indices into the array
+ * in order to ensure that an element doesn't repeat itself unless the array
+ * already contained duplicate elements.
+ *
+ * If the array is empty the first form returns +nil+ and the second form
+ * returns an empty array.
+ *
+ * a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
+ * a.sample #=> 7
+ * a.sample(4) #=> [6, 4, 2, 5]
+ *
+ * The optional +rng+ argument will be used as the random number generator.
+ *
+ * a.sample(random: Random.new(1)) #=> 6
+ * a.sample(4, random: Random.new(1)) #=> [6, 10, 9, 2]
+ */
+
+
static VALUE
-rb_ary_sample(rb_execution_context_t *ec, VALUE ary, VALUE randgen, VALUE nv, VALUE to_array)
+rb_ary_sample(int argc, VALUE *argv, VALUE ary)
{
- VALUE result;
+ VALUE nv, result;
+ VALUE opts, randgen = rb_cRandom;
long n, len, i, j, k, idx[10];
long rnds[numberof(idx)];
long memo_threshold;
+ if (OPTHASH_GIVEN_P(opts)) {
+ VALUE rnd;
+ ID keyword_ids[1];
+
+ keyword_ids[0] = id_random;
+ rb_get_kwargs(opts, keyword_ids, 0, 1, &rnd);
+ if (rnd != Qundef) {
+ randgen = rnd;
+ }
+ }
len = RARRAY_LEN(ary);
- if (!to_array) {
+ if (rb_check_arity(argc, 0, 1) == 0) {
if (len < 2)
i = 0;
else
@@ -6366,6 +5448,7 @@ rb_ary_sample(rb_execution_context_t *ec, VALUE ary, VALUE randgen, VALUE nv, VA
return rb_ary_elt(ary, i);
}
+ nv = argv[0];
n = NUM2LONG(nv);
if (n < 0) rb_raise(rb_eArgError, "negative sample number");
if (n > len) n = len;
@@ -6387,7 +5470,7 @@ rb_ary_sample(rb_execution_context_t *ec, VALUE ary, VALUE randgen, VALUE nv, VA
return rb_ary_new_capa(0);
case 1:
i = rnds[0];
- return rb_ary_new_from_args(1, RARRAY_AREF(ary, i));
+ return rb_ary_new_from_values(1, &RARRAY_AREF(ary, i));
case 2:
i = rnds[0];
j = rnds[1];
@@ -6497,33 +5580,24 @@ rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.cycle {|element| ... } -> nil
- * array.cycle(count) {|element| ... } -> nil
- * array.cycle -> new_enumerator
- * array.cycle(count) -> new_enumerator
- *
- * When called with positive \Integer argument +count+ and a block,
- * calls the block with each element, then does so again,
- * until it has done so +count+ times; returns +nil+:
- * output = []
- * [0, 1].cycle(2) {|element| output.push(element) } # => nil
- * output # => [0, 1, 0, 1]
- *
- * If +count+ is zero or negative, does not call the block:
- * [0, 1].cycle(0) {|element| fail 'Cannot happen' } # => nil
- * [0, 1].cycle(-1) {|element| fail 'Cannot happen' } # => nil
- *
- * When a block is given, and argument is omitted or +nil+, cycles forever:
- * # Prints 0 and 1 forever.
- * [0, 1].cycle {|element| puts element }
- * [0, 1].cycle(nil) {|element| puts element }
- *
- * When no block is given, returns a new \Enumerator:
- *
- * [0, 1].cycle(2) # => #<Enumerator: [0, 1]:cycle(2)>
- * [0, 1].cycle # => # => #<Enumerator: [0, 1]:cycle>
- * [0, 1].cycle.first(5) # => [0, 1, 0, 1, 0]
+ * ary.cycle(n=nil) {|obj| block} -> nil
+ * ary.cycle(n=nil) -> Enumerator
+ *
+ * Calls the given block for each element +n+ times or forever if +nil+ is
+ * given.
+ *
+ * Does nothing if a non-positive number is given or the array is empty.
+ *
+ * Returns +nil+ if the loop has finished without getting interrupted.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * a = ["a", "b", "c"]
+ * a.cycle {|x| puts x} # print, a, b, c, a, b, c,.. forever.
+ * a.cycle(2) {|x| puts x} # print, a, b, c, a, b, c.
+ *
*/
+
static VALUE
rb_ary_cycle(int argc, VALUE *argv, VALUE ary)
{
@@ -6617,7 +5691,7 @@ permute0(const long n, const long r, long *const p, char *const used, const VALU
/*
* Returns the product of from, from-1, ..., from - how_many + 1.
- * https://en.wikipedia.org/wiki/Pochhammer_symbol
+ * http://en.wikipedia.org/wiki/Pochhammer_symbol
*/
static VALUE
descending_factorial(long from, long how_many)
@@ -6669,66 +5743,30 @@ rb_ary_permutation_size(VALUE ary, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.permutation {|element| ... } -> self
- * array.permutation(n) {|element| ... } -> self
- * array.permutation -> new_enumerator
- * array.permutation(n) -> new_enumerator
- *
- * When invoked with a block, yield all permutations of elements of +self+; returns +self+.
- * The order of permutations is indeterminate.
- *
- * When a block and an in-range positive \Integer argument +n+ (<tt>0 < n <= self.size</tt>)
- * are given, calls the block with all +n+-tuple permutations of +self+.
- *
- * Example:
- * a = [0, 1, 2]
- * a.permutation(2) {|permutation| p permutation }
- * Output:
- * [0, 1]
- * [0, 2]
- * [1, 0]
- * [1, 2]
- * [2, 0]
- * [2, 1]
- * Another example:
- * a = [0, 1, 2]
- * a.permutation(3) {|permutation| p permutation }
- * Output:
- * [0, 1, 2]
- * [0, 2, 1]
- * [1, 0, 2]
- * [1, 2, 0]
- * [2, 0, 1]
- * [2, 1, 0]
- *
- * When +n+ is zero, calls the block once with a new empty \Array:
- * a = [0, 1, 2]
- * a.permutation(0) {|permutation| p permutation }
- * Output:
- * []
- *
- * When +n+ is out of range (negative or larger than <tt>self.size</tt>),
- * does not call the block:
- * a = [0, 1, 2]
- * a.permutation(-1) {|permutation| fail 'Cannot happen' }
- * a.permutation(4) {|permutation| fail 'Cannot happen' }
- *
- * When a block given but no argument,
- * behaves the same as <tt>a.permutation(a.size)</tt>:
- * a = [0, 1, 2]
- * a.permutation {|permutation| p permutation }
- * Output:
- * [0, 1, 2]
- * [0, 2, 1]
- * [1, 0, 2]
- * [1, 2, 0]
- * [2, 0, 1]
- * [2, 1, 0]
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.permutation # => #<Enumerator: [0, 1, 2]:permutation>
- * a.permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>
+ * ary.permutation {|p| block} -> ary
+ * ary.permutation -> Enumerator
+ * ary.permutation(n) {|p| block} -> ary
+ * ary.permutation(n) -> Enumerator
+ *
+ * When invoked with a block, yield all permutations of length +n+ of the
+ * elements of the array, then return the array itself.
+ *
+ * If +n+ is not specified, yield all permutations of all elements.
+ *
+ * The implementation makes no guarantees about the order in which the
+ * permutations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3]
+ * a.permutation.to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
+ * a.permutation(1).to_a #=> [[1],[2],[3]]
+ * a.permutation(2).to_a #=> [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]
+ * a.permutation(3).to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
+ * a.permutation(0).to_a #=> [[]] # one permutation of length 0
+ * a.permutation(4).to_a #=> [] # no permutations of length 4
*/
static VALUE
@@ -6801,44 +5839,27 @@ rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.combination(n) {|element| ... } -> self
- * array.combination(n) -> new_enumerator
- *
- * Calls the block, if given, with combinations of elements of +self+;
- * returns +self+. The order of combinations is indeterminate.
- *
- * When a block and an in-range positive \Integer argument +n+ (<tt>0 < n <= self.size</tt>)
- * are given, calls the block with all +n+-tuple combinations of +self+.
- *
- * Example:
- * a = [0, 1, 2]
- * a.combination(2) {|combination| p combination }
- * Output:
- * [0, 1]
- * [0, 2]
- * [1, 2]
- *
- * Another example:
- * a = [0, 1, 2]
- * a.combination(3) {|combination| p combination }
- * Output:
- * [0, 1, 2]
- *
- * When +n+ is zero, calls the block once with a new empty \Array:
- * a = [0, 1, 2]
- * a1 = a.combination(0) {|combination| p combination }
- * Output:
- * []
- *
- * When +n+ is out of range (negative or larger than <tt>self.size</tt>),
- * does not call the block:
- * a = [0, 1, 2]
- * a.combination(-1) {|combination| fail 'Cannot happen' }
- * a.combination(4) {|combination| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>
+ * ary.combination(n) {|c| block} -> ary
+ * ary.combination(n) -> Enumerator
+ *
+ * When invoked with a block, yields all combinations of length +n+ of elements
+ * from the array and then returns the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the
+ * combinations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3, 4]
+ * a.combination(1).to_a #=> [[1],[2],[3],[4]]
+ * a.combination(2).to_a #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
+ * a.combination(3).to_a #=> [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
+ * a.combination(4).to_a #=> [[1,2,3,4]]
+ * a.combination(0).to_a #=> [[]] # one combination of length 0
+ * a.combination(5).to_a #=> [] # no combinations of length 5
+ *
*/
static VALUE
@@ -6925,59 +5946,27 @@ rb_ary_repeated_permutation_size(VALUE ary, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.repeated_permutation(n) {|permutation| ... } -> self
- * array.repeated_permutation(n) -> new_enumerator
- *
- * Calls the block with each repeated permutation of length +n+ of the elements of +self+;
- * each permutation is an \Array;
- * returns +self+. The order of the permutations is indeterminate.
- *
- * When a block and a positive \Integer argument +n+ are given, calls the block with each
- * +n+-tuple repeated permutation of the elements of +self+.
- * The number of permutations is <tt>self.size**n</tt>.
- *
- * +n+ = 1:
- * a = [0, 1, 2]
- * a.repeated_permutation(1) {|permutation| p permutation }
- * Output:
- * [0]
- * [1]
- * [2]
- *
- * +n+ = 2:
- * a.repeated_permutation(2) {|permutation| p permutation }
- * Output:
- * [0, 0]
- * [0, 1]
- * [0, 2]
- * [1, 0]
- * [1, 1]
- * [1, 2]
- * [2, 0]
- * [2, 1]
- * [2, 2]
- *
- * If +n+ is zero, calls the block once with an empty \Array.
- *
- * If +n+ is negative, does not call the block:
- * a.repeated_permutation(-1) {|permutation| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.repeated_permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>
- *
- * Using Enumerators, it's convenient to show the permutations and counts
- * for some values of +n+:
- * e = a.repeated_permutation(0)
- * e.size # => 1
- * e.to_a # => [[]]
- * e = a.repeated_permutation(1)
- * e.size # => 3
- * e.to_a # => [[0], [1], [2]]
- * e = a.repeated_permutation(2)
- * e.size # => 9
- * e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
+ * ary.repeated_permutation(n) {|p| block} -> ary
+ * ary.repeated_permutation(n) -> Enumerator
+ *
+ * When invoked with a block, yield all repeated permutations of length +n+ of
+ * the elements of the array, then return the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the repeated
+ * permutations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2]
+ * a.repeated_permutation(1).to_a #=> [[1], [2]]
+ * a.repeated_permutation(2).to_a #=> [[1,1],[1,2],[2,1],[2,2]]
+ * a.repeated_permutation(3).to_a #=> [[1,1,1],[1,1,2],[1,2,1],[1,2,2],
+ * # [2,1,1],[2,1,2],[2,2,1],[2,2,2]]
+ * a.repeated_permutation(0).to_a #=> [[]] # one permutation of length 0
*/
+
static VALUE
rb_ary_repeated_permutation(VALUE ary, VALUE num)
{
@@ -7047,55 +6036,29 @@ rb_ary_repeated_combination_size(VALUE ary, VALUE args, VALUE eobj)
/*
* call-seq:
- * array.repeated_combination(n) {|combination| ... } -> self
- * array.repeated_combination(n) -> new_enumerator
- *
- * Calls the block with each repeated combination of length +n+ of the elements of +self+;
- * each combination is an \Array;
- * returns +self+. The order of the combinations is indeterminate.
- *
- * When a block and a positive \Integer argument +n+ are given, calls the block with each
- * +n+-tuple repeated combination of the elements of +self+.
- * The number of combinations is <tt>(n+1)(n+2)/2</tt>.
- *
- * +n+ = 1:
- * a = [0, 1, 2]
- * a.repeated_combination(1) {|combination| p combination }
- * Output:
- * [0]
- * [1]
- * [2]
- *
- * +n+ = 2:
- * a.repeated_combination(2) {|combination| p combination }
- * Output:
- * [0, 0]
- * [0, 1]
- * [0, 2]
- * [1, 1]
- * [1, 2]
- * [2, 2]
- *
- * If +n+ is zero, calls the block once with an empty \Array.
- *
- * If +n+ is negative, does not call the block:
- * a.repeated_combination(-1) {|combination| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.repeated_combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>
- *
- * Using Enumerators, it's convenient to show the combinations and counts
- * for some values of +n+:
- * e = a.repeated_combination(0)
- * e.size # => 1
- * e.to_a # => [[]]
- * e = a.repeated_combination(1)
- * e.size # => 3
- * e.to_a # => [[0], [1], [2]]
- * e = a.repeated_combination(2)
- * e.size # => 6
- * e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]]
+ * ary.repeated_combination(n) {|c| block} -> ary
+ * ary.repeated_combination(n) -> Enumerator
+ *
+ * When invoked with a block, yields all repeated combinations of length +n+ of
+ * elements from the array and then returns the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the repeated
+ * combinations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3]
+ * a.repeated_combination(1).to_a #=> [[1], [2], [3]]
+ * a.repeated_combination(2).to_a #=> [[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]]
+ * a.repeated_combination(3).to_a #=> [[1,1,1],[1,1,2],[1,1,3],[1,2,2],[1,2,3],
+ * # [1,3,3],[2,2,2],[2,2,3],[2,3,3],[3,3,3]]
+ * a.repeated_combination(4).to_a #=> [[1,1,1,1],[1,1,1,2],[1,1,1,3],[1,1,2,2],[1,1,2,3],
+ * # [1,1,3,3],[1,2,2,2],[1,2,2,3],[1,2,3,3],[1,3,3,3],
+ * # [2,2,2,2],[2,2,2,3],[2,2,3,3],[2,3,3,3],[3,3,3,3]]
+ * a.repeated_combination(0).to_a #=> [[]] # one combination of length 0
+ *
*/
static VALUE
@@ -7135,51 +6098,23 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)
/*
* call-seq:
- * array.product(*other_arrays) -> new_array
- * array.product(*other_arrays) {|combination| ... } -> self
- *
- * Computes and returns or yields all combinations of elements from all the Arrays,
- * including both +self+ and +other_arrays+.
- * - The number of combinations is the product of the sizes of all the arrays,
- * including both +self+ and +other_arrays+.
- * - The order of the returned combinations is indeterminate.
- *
- * When no block is given, returns the combinations as an \Array of Arrays:
- * a = [0, 1, 2]
- * a1 = [3, 4]
- * a2 = [5, 6]
- * p = a.product(a1)
- * p.size # => 6 # a.size * a1.size
- * p # => [[0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4]]
- * p = a.product(a1, a2)
- * p.size # => 12 # a.size * a1.size * a2.size
- * p # => [[0, 3, 5], [0, 3, 6], [0, 4, 5], [0, 4, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]
- *
- * If any argument is an empty \Array, returns an empty \Array.
- *
- * If no argument is given, returns an \Array of 1-element Arrays,
- * each containing an element of +self+:
- * a.product # => [[0], [1], [2]]
- *
- * When a block is given, yields each combination as an \Array; returns +self+:
- * a.product(a1) {|combination| p combination }
- * Output:
- * [0, 3]
- * [0, 4]
- * [1, 3]
- * [1, 4]
- * [2, 3]
- * [2, 4]
- *
- * If any argument is an empty \Array, does not call the block:
- * a.product(a1, a2, []) {|combination| fail 'Cannot happen' }
- *
- * If no argument is given, yields each element of +self+ as a 1-element \Array:
- * a.product {|combination| p combination }
- * Output:
- * [0]
- * [1]
- * [2]
+ * ary.product(other_ary, ...) -> new_ary
+ * ary.product(other_ary, ...) {|p| block} -> ary
+ *
+ * Returns an array of all combinations of elements from all arrays.
+ *
+ * The length of the returned array is the product of the length of +self+ and
+ * the argument arrays.
+ *
+ * If given a block, #product will yield all combinations and return +self+
+ * instead.
+ *
+ * [1,2,3].product([4,5]) #=> [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]
+ * [1,2].product([1,2]) #=> [[1,1],[1,2],[2,1],[2,2]]
+ * [1,2].product([3,4],[5,6]) #=> [[1,3,5],[1,3,6],[1,4,5],[1,4,6],
+ * # [2,3,5],[2,3,6],[2,4,5],[2,4,6]]
+ * [1,2].product() #=> [[1],[2]]
+ * [1,2].product([]) #=> []
*/
static VALUE
@@ -7272,18 +6207,17 @@ done:
/*
* call-seq:
- * array.take(n) -> new_array
- *
- * Returns a new \Array containing the first +n+ element of +self+,
- * where +n+ is a non-negative \Integer;
- * does not modify +self+.
- *
- * Examples:
- * a = [0, 1, 2, 3, 4, 5]
- * a.take(1) # => [0]
- * a.take(2) # => [0, 1]
- * a.take(50) # => [0, 1, 2, 3, 4, 5]
- * a # => [0, 1, 2, 3, 4, 5]
+ * ary.take(n) -> new_ary
+ *
+ * Returns first +n+ elements from the array.
+ *
+ * If a negative number is given, raises an ArgumentError.
+ *
+ * See also Array#drop
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.take(3) #=> [1, 2, 3]
+ *
*/
static VALUE
@@ -7298,22 +6232,19 @@ rb_ary_take(VALUE obj, VALUE n)
/*
* call-seq:
- * array.take_while {|element| ... } -> new_array
- * array.take_while -> new_enumerator
- *
- * Returns a new \Array containing zero or more leading elements of +self+;
- * does not modify +self+.
- *
- * With a block given, calls the block with each successive element of +self+;
- * stops if the block returns +false+ or +nil+;
- * returns a new Array containing those elements for which the block returned a truthy value:
- * a = [0, 1, 2, 3, 4, 5]
- * a.take_while {|element| element < 3 } # => [0, 1, 2]
- * a.take_while {|element| true } # => [0, 1, 2, 3, 4, 5]
- * a # => [0, 1, 2, 3, 4, 5]
- *
- * With no block given, returns a new \Enumerator:
- * [0, 1].take_while # => #<Enumerator: [0, 1]:take_while>
+ * ary.take_while {|obj| block} -> new_ary
+ * ary.take_while -> Enumerator
+ *
+ * Passes elements to the block until the block returns +nil+ or +false+, then
+ * stops iterating and returns an array of all prior elements.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * See also Array#drop_while
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.take_while {|i| i < 3} #=> [1, 2]
+ *
*/
static VALUE
@@ -7330,17 +6261,18 @@ rb_ary_take_while(VALUE ary)
/*
* call-seq:
- * array.drop(n) -> new_array
+ * ary.drop(n) -> new_ary
+ *
+ * Drops first +n+ elements from +ary+ and returns the rest of the elements in
+ * an array.
+ *
+ * If a negative number is given, raises an ArgumentError.
*
- * Returns a new \Array containing all but the first +n+ element of +self+,
- * where +n+ is a non-negative \Integer;
- * does not modify +self+.
+ * See also Array#take
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.drop(3) #=> [4, 5, 0]
*
- * Examples:
- * a = [0, 1, 2, 3, 4, 5]
- * a.drop(0) # => [0, 1, 2, 3, 4, 5]
- * a.drop(1) # => [1, 2, 3, 4, 5]
- * a.drop(2) # => [2, 3, 4, 5]
*/
static VALUE
@@ -7359,20 +6291,20 @@ rb_ary_drop(VALUE ary, VALUE n)
/*
* call-seq:
- * array.drop_while {|element| ... } -> new_array
- * array.drop_while -> new_enumerator
-
- * Returns a new \Array containing zero or more trailing elements of +self+;
- * does not modify +self+.
+ * ary.drop_while {|obj| block} -> new_ary
+ * ary.drop_while -> Enumerator
+ *
+ * Drops elements up to, but not including, the first element for which the
+ * block returns +nil+ or +false+ and returns an array containing the
+ * remaining elements.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * See also Array#take_while
*
- * With a block given, calls the block with each successive element of +self+;
- * stops if the block returns +false+ or +nil+;
- * returns a new Array _omitting_ those elements for which the block returned a truthy value:
- * a = [0, 1, 2, 3, 4, 5]
- * a.drop_while {|element| element < 3 } # => [3, 4, 5]
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.drop_while {|i| i < 3 } #=> [3, 4, 5, 0]
*
- * With no block given, returns a new \Enumerator:
- * [0, 1].drop_while # => # => #<Enumerator: [0, 1]:drop_while>
*/
static VALUE
@@ -7389,32 +6321,10 @@ rb_ary_drop_while(VALUE ary)
/*
* call-seq:
- * array.any? -> true or false
- * array.any? {|element| ... } -> true or false
- * array.any?(obj) -> true or false
- *
- * Returns +true+ if any element of +self+ meets a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has any truthy element,
- * +false+ otherwise:
- * [nil, 0, false].any? # => true
- * [nil, false].any? # => false
- * [].any? # => false
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns any truthy value, +false+ otherwise:
- * [0, 1, 2].any? {|element| element > 1 } # => true
- * [0, 1, 2].any? {|element| element > 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if +obj+.<tt>===</tt> any element,
- * +false+ otherwise:
- * ['food', 'drink'].any?(/foo/) # => true
- * ['food', 'drink'].any?(/bar/) # => false
- * [].any?(/foo/) # => false
- * [0, 1, 2].any?(1) # => true
- * [0, 1, 2].any?(3) # => false
- *
- * Related: Enumerable#any?
+ * ary.any? [{|obj| block} ] -> true or false
+ * ary.any?(pattern) -> true or false
+ *
+ * See also Enumerable#any?
*/
static VALUE
@@ -7447,31 +6357,10 @@ rb_ary_any_p(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.all? -> true or false
- * array.all? {|element| ... } -> true or false
- * array.all?(obj) -> true or false
- *
- * Returns +true+ if all elements of +self+ meet a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ contains only truthy elements,
- * +false+ otherwise:
- * [0, 1, :foo].all? # => true
- * [0, nil, 2].all? # => false
- * [].all? # => true
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns only truthy values, +false+ otherwise:
- * [0, 1, 2].all? { |element| element < 3 } # => true
- * [0, 1, 2].all? { |element| element < 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> every element, +false+ otherwise:
- * ['food', 'fool', 'foot'].all?(/foo/) # => true
- * ['food', 'drink'].all?(/bar/) # => false
- * [].all?(/foo/) # => true
- * [0, 0, 0].all?(0) # => true
- * [0, 1, 2].all?(1) # => false
- *
- * Related: Enumerable#all?
+ * ary.all? [{|obj| block} ] -> true or false
+ * ary.all?(pattern) -> true or false
+ *
+ * See also Enumerable#all?
*/
static VALUE
@@ -7504,31 +6393,10 @@ rb_ary_all_p(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.none? -> true or false
- * array.none? {|element| ... } -> true or false
- * array.none?(obj) -> true or false
- *
- * Returns +true+ if no element of +self+ meet a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has no truthy elements,
- * +false+ otherwise:
- * [nil, false].none? # => true
- * [nil, 0, false].none? # => false
- * [].none? # => true
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns no truthy value, +false+ otherwise:
- * [0, 1, 2].none? {|element| element > 3 } # => true
- * [0, 1, 2].none? {|element| element > 1 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> no element, +false+ otherwise:
- * ['food', 'drink'].none?(/bar/) # => true
- * ['food', 'drink'].none?(/foo/) # => false
- * [].none?(/foo/) # => true
- * [0, 1, 2].none?(3) # => true
- * [0, 1, 2].none?(1) # => false
- *
- * Related: Enumerable#none?
+ * ary.none? [{|obj| block} ] -> true or false
+ * ary.none?(pattern) -> true or false
+ *
+ * See also Enumerable#none?
*/
static VALUE
@@ -7561,35 +6429,10 @@ rb_ary_none_p(int argc, VALUE *argv, VALUE ary)
/*
* call-seq:
- * array.one? -> true or false
- * array.one? {|element| ... } -> true or false
- * array.one?(obj) -> true or false
- *
- * Returns +true+ if exactly one element of +self+ meets a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has exactly one truthy element,
- * +false+ otherwise:
- * [nil, 0].one? # => true
- * [0, 0].one? # => false
- * [nil, nil].one? # => false
- * [].one? # => false
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block a truthy value for exactly one element, +false+ otherwise:
- * [0, 1, 2].one? {|element| element > 0 } # => false
- * [0, 1, 2].one? {|element| element > 1 } # => true
- * [0, 1, 2].one? {|element| element > 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> exactly one element,
- * +false+ otherwise:
- * [0, 1, 2].one?(0) # => true
- * [0, 0, 1].one?(0) # => false
- * [1, 1, 2].one?(0) # => false
- * ['food', 'drink'].one?(/bar/) # => false
- * ['food', 'drink'].one?(/foo/) # => true
- * [].one?(/foo/) # => false
- *
- * Related: Enumerable#one?
+ * ary.one? [{|obj| block} ] -> true or false
+ * ary.one?(pattern) -> true or false
+ *
+ * See also Enumerable#one?
*/
static VALUE
@@ -7631,20 +6474,19 @@ rb_ary_one_p(int argc, VALUE *argv, VALUE ary)
}
/*
- * call-seq:
- * array.dig(index, *identifiers) -> object
- *
- * Finds and returns the object in nested objects
- * that is specified by +index+ and +identifiers+.
- * The nested objects may be instances of various classes.
- * See {Dig Methods}[rdoc-ref:doc/dig_methods.rdoc].
- *
- * Examples:
- * a = [:foo, [:bar, :baz, [:bat, :bam]]]
- * a.dig(1) # => [:bar, :baz, [:bat, :bam]]
- * a.dig(1, 2) # => [:bat, :bam]
- * a.dig(1, 2, 0) # => :bat
- * a.dig(1, 2, 3) # => nil
+ * call-seq:
+ * ary.dig(idx, ...) -> object
+ *
+ * Extracts the nested value specified by the sequence of <i>idx</i>
+ * objects by calling +dig+ at each step, returning +nil+ if any
+ * intermediate step is +nil+.
+ *
+ * a = [[1, [2, 3]]]
+ *
+ * a.dig(0, 1, 1) #=> 3
+ * a.dig(1, 2, 3) #=> nil
+ * a.dig(0, 0, 0) #=> TypeError: Integer does not have #dig method
+ * [42, {foo: :bar}].dig(1, :foo) #=> :bar
*/
static VALUE
@@ -7663,7 +6505,13 @@ finish_exact_sum(long n, VALUE r, VALUE v, int z)
if (n != 0)
v = rb_fix_plus(LONG2FIX(n), v);
if (r != Qundef) {
- v = rb_rational_plus(r, v);
+ /* r can be an Integer when mathn is loaded */
+ if (FIXNUM_P(r))
+ v = rb_fix_plus(r, v);
+ else if (RB_TYPE_P(r, T_BIGNUM))
+ v = rb_big_plus(r, v);
+ else
+ v = rb_rational_plus(r, v);
}
else if (!n && z) {
v = rb_fix_plus(LONG2FIX(0), v);
@@ -7673,35 +6521,44 @@ finish_exact_sum(long n, VALUE r, VALUE v, int z)
/*
* call-seq:
- * array.sum(init = 0) -> object
- * array.sum(init = 0) {|element| ... } -> object
- *
- * When no block is given, returns the object equivalent to:
- * sum = init
- * array.each {|element| sum += element }
- * sum
- * For example, <tt>[e1, e2, e3].sum</tt> returns </tt>init + e1 + e2 + e3</tt>.
- *
- * Examples:
- * a = [0, 1, 2, 3]
- * a.sum # => 6
- * a.sum(100) # => 106
- *
- * The elements need not be numeric, but must be <tt>+</tt>-compatible
- * with each other and with +init+:
- * a = ['abc', 'def', 'ghi']
- * a.sum('jkl') # => "jklabcdefghi"
- *
- * When a block is given, it is called with each element
- * and the block's return value (instead of the element itself) is used as the addend:
- * a = ['zero', 1, :two]
- * s = a.sum('Coerced and concatenated: ') {|element| element.to_s }
- * s # => "Coerced and concatenated: zero1two"
- *
- * Notes:
- * - Array#join and Array#flatten may be faster than Array#sum
- * for an \Array of Strings or an \Array of Arrays.
- * - Array#sum method may not respect method redefinition of "+" methods such as Integer#+.
+ * ary.sum(init=0) -> number
+ * ary.sum(init=0) {|e| expr } -> number
+ *
+ * Returns the sum of elements.
+ * For example, [e1, e2, e3].sum returns init + e1 + e2 + e3.
+ *
+ * If a block is given, the block is applied to each element
+ * before addition.
+ *
+ * If <i>ary</i> is empty, it returns <i>init</i>.
+ *
+ * [].sum #=> 0
+ * [].sum(0.0) #=> 0.0
+ * [1, 2, 3].sum #=> 6
+ * [3, 5.5].sum #=> 8.5
+ * [2.5, 3.0].sum(0.0) {|e| e * e } #=> 15.25
+ * [Object.new].sum #=> TypeError
+ *
+ * The (arithmetic) mean value of an array can be obtained as follows.
+ *
+ * mean = ary.sum(0.0) / ary.length
+ *
+ * This method can be used for non-numeric objects by
+ * explicit <i>init</i> argument.
+ *
+ * ["a", "b", "c"].sum("") #=> "abc"
+ * [[1], [[2]], [3]].sum([]) #=> [1, [2], 3]
+ *
+ * However, Array#join and Array#flatten is faster than Array#sum for
+ * array of strings and array of arrays.
+ *
+ * ["a", "b", "c"].join #=> "abc"
+ * [[1], [[2]], [3]].flatten(1) #=> [1, [2], 3]
+ *
+ *
+ * Array#sum method may not respect method redefinition of "+" methods
+ * such as Integer#+.
+ *
*/
static VALUE
@@ -7751,7 +6608,7 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)
if (RB_FLOAT_TYPE_P(e)) {
/*
* Kahan-Babuska balancing compensated summation algorithm
- * See https://link.springer.com/article/10.1007/s00607-005-0139-x
+ * See http://link.springer.com/article/10.1007/s00607-005-0139-x
*/
double f, c;
double x, t;
@@ -7821,32 +6678,12 @@ rb_ary_deconstruct(VALUE ary)
}
/*
- * An \Array is an ordered, integer-indexed collection of objects,
- * called _elements_. Any object may be an \Array element.
- *
- * == \Array Indexes
- *
- * \Array indexing starts at 0, as in C or Java.
- *
- * A positive index is an offset from the first element:
- * - Index 0 indicates the first element.
- * - Index 1 indicates the second element.
- * - ...
- *
- * A negative index is an offset, backwards, from the end of the array:
- * - Index -1 indicates the last element.
- * - Index -2 indicates the next-to-last element.
- * - ...
+ * Arrays are ordered, integer-indexed collections of any object.
*
- * A non-negative index is <i>in range</i> if it is smaller than
- * the size of the array. For a 3-element array:
- * - Indexes 0 through 2 are in range.
- * - Index 3 is out of range.
- *
- * A negative index is <i>in range</i> if its absolute value is
- * not larger than the size of the array. For a 3-element array:
- * - Indexes -1 through -3 are in range.
- * - Index -4 is out of range.
+ * Array indexing starts at 0, as in C or Java. A negative index is assumed
+ * to be relative to the end of the array---that is, an index of -1 indicates
+ * the last element of the array, -2 is the next to last element in the
+ * array, and so on.
*
* == Creating Arrays
*
@@ -8075,11 +6912,15 @@ rb_ary_deconstruct(VALUE ary)
* arr = [1, 2, 3, 4, 5, 6]
* arr.keep_if {|a| a < 4} #=> [1, 2, 3]
* arr #=> [1, 2, 3]
+ *
*/
void
Init_Array(void)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
+
rb_cArray = rb_define_class("Array", rb_cObject);
rb_include_module(rb_cArray, rb_mEnumerable);
@@ -8181,6 +7022,9 @@ Init_Array(void)
rb_define_method(rb_cArray, "flatten", rb_ary_flatten, -1);
rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, -1);
rb_define_method(rb_cArray, "count", rb_ary_count, -1);
+ rb_define_method(rb_cArray, "shuffle!", rb_ary_shuffle_bang, -1);
+ rb_define_method(rb_cArray, "shuffle", rb_ary_shuffle, -1);
+ rb_define_method(rb_cArray, "sample", rb_ary_sample, -1);
rb_define_method(rb_cArray, "cycle", rb_ary_cycle, -1);
rb_define_method(rb_cArray, "permutation", rb_ary_permutation, -1);
rb_define_method(rb_cArray, "combination", rb_ary_combination, 1);
@@ -8202,6 +7046,6 @@ Init_Array(void)
rb_define_method(rb_cArray, "sum", rb_ary_sum, -1);
rb_define_method(rb_cArray, "deconstruct", rb_ary_deconstruct, 0);
-}
-#include "array.rbinc"
+ id_random = rb_intern("random");
+}
diff --git a/array.rb b/array.rb
deleted file mode 100644
index a43a3b27b1..0000000000
--- a/array.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-class Array
- # call-seq:
- # array.shuffle!(random: Random) -> array
- #
- # Shuffles the elements of +self+ in place.
- # a = [1, 2, 3] #=> [1, 2, 3]
- # a.shuffle! #=> [2, 3, 1]
- # a #=> [2, 3, 1]
- #
- # The optional +random+ argument will be used as the random number generator:
- # a.shuffle!(random: Random.new(1)) #=> [1, 3, 2]
- def shuffle!(random: Random)
- Primitive.rb_ary_shuffle_bang(random)
- end
-
- # call-seq:
- # array.shuffle(random: Random) -> new_ary
- #
- # Returns a new array with elements of +self+ shuffled.
- # a = [1, 2, 3] #=> [1, 2, 3]
- # a.shuffle #=> [2, 3, 1]
- # a #=> [1, 2, 3]
- #
- # The optional +random+ argument will be used as the random number generator:
- # a.shuffle(random: Random.new(1)) #=> [1, 3, 2]
- def shuffle(random: Random)
- Primitive.rb_ary_shuffle(random)
- end
-
- # call-seq:
- # array.sample(random: Random) -> object
- # array.sample(n, random: Random) -> new_ary
- #
- # Returns random elements from +self+.
- #
- # When no arguments are given, returns a random element from +self+:
- # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- # a.sample # => 3
- # a.sample # => 8
- # If +self+ is empty, returns +nil+.
- #
- # When argument +n+ is given, returns a new \Array containing +n+ random
- # elements from +self+:
- # a.sample(3) # => [8, 9, 2]
- # a.sample(6) # => [9, 6, 10, 3, 1, 4]
- # Returns no more than <tt>a.size</tt> elements
- # (because no new duplicates are introduced):
- # a.sample(a.size * 2) # => [6, 4, 1, 8, 5, 9, 10, 2, 3, 7]
- # But +self+ may contain duplicates:
- # a = [1, 1, 1, 2, 2, 3]
- # a.sample(a.size * 2) # => [1, 1, 3, 2, 1, 2]
- # Returns a new empty \Array if +self+ is empty.
- #
- # The optional +random+ argument will be used as the random number generator:
- # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- # a.sample(random: Random.new(1)) #=> 6
- # a.sample(4, random: Random.new(1)) #=> [6, 10, 9, 2]
- def sample(n = (ary = false), random: Random)
- Primitive.rb_ary_sample(random, n, ary)
- end
-end
diff --git a/ast.c b/ast.c
index 2af0b3e530..1133fb8a10 100644
--- a/ast.c
+++ b/ast.c
@@ -1,15 +1,11 @@
/* indent-tabs-mode: nil */
-#include "internal.h"
-#include "internal/parse.h"
-#include "internal/symbol.h"
-#include "internal/warnings.h"
-#include "iseq.h"
-#include "node.h"
#include "ruby.h"
#include "ruby/encoding.h"
#include "ruby/util.h"
+#include "internal.h"
+#include "node.h"
#include "vm_core.h"
-
+#include "iseq.h"
#include "builtin.h"
static VALUE rb_mAST;
@@ -17,7 +13,7 @@ static VALUE rb_cNode;
struct ASTNodeData {
rb_ast_t *ast;
- const NODE *node;
+ NODE *node;
};
static void
@@ -44,7 +40,7 @@ static const rb_data_type_t rb_node_type = {
static VALUE rb_ast_node_alloc(VALUE klass);
static void
-setup_node(VALUE obj, rb_ast_t *ast, const NODE *node)
+setup_node(VALUE obj, rb_ast_t *ast, NODE *node)
{
struct ASTNodeData *data;
@@ -54,7 +50,7 @@ setup_node(VALUE obj, rb_ast_t *ast, const NODE *node)
}
static VALUE
-ast_new_internal(rb_ast_t *ast, const NODE *node)
+ast_new_internal(rb_ast_t *ast, NODE *node)
{
VALUE obj;
@@ -145,7 +141,7 @@ rb_ast_parse_array(VALUE array)
return ast_parse_done(ast);
}
-static VALUE node_children(rb_ast_t*, const NODE*);
+static VALUE node_children(rb_ast_t*, NODE*);
static VALUE
node_find(VALUE self, const int node_id)
@@ -268,7 +264,7 @@ rb_ary_new_from_node_args(rb_ast_t *ast, long n, ...)
}
static VALUE
-dump_block(rb_ast_t *ast, const NODE *node)
+dump_block(rb_ast_t *ast, NODE *node)
{
VALUE ary = rb_ary_new();
do {
@@ -284,7 +280,7 @@ dump_block(rb_ast_t *ast, const NODE *node)
}
static VALUE
-dump_array(rb_ast_t *ast, const NODE *node)
+dump_array(rb_ast_t *ast, NODE *node)
{
VALUE ary = rb_ary_new();
rb_ary_push(ary, NEW_CHILD(ast, node->nd_head));
@@ -307,21 +303,7 @@ var_name(ID id)
}
static VALUE
-no_name_rest(void)
-{
- ID rest;
- CONST_ID(rest, "NODE_SPECIAL_NO_NAME_REST");
- return ID2SYM(rest);
-}
-
-static VALUE
-rest_arg(rb_ast_t *ast, const NODE *rest_arg)
-{
- return NODE_NAMED_REST_P(rest_arg) ? NEW_CHILD(ast, rest_arg) : no_name_rest();
-}
-
-static VALUE
-node_children(rb_ast_t *ast, const NODE *node)
+node_children(rb_ast_t *ast, NODE *node)
{
char name[DECIMAL_SIZE_OF_BITS(sizeof(long) * CHAR_BIT) + 2]; /* including '$' */
@@ -344,7 +326,9 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_IN:
return rb_ary_new_from_node_args(ast, 3, node->nd_head, node->nd_body, node->nd_next);
case NODE_WHILE:
+ goto loop;
case NODE_UNTIL:
+ loop:
return rb_ary_push(rb_ary_new_from_node_args(ast, 2, node->nd_cond, node->nd_body),
(node->nd_state ? Qtrue : Qfalse));
case NODE_ITER:
@@ -353,8 +337,11 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_FOR_MASGN:
return rb_ary_new_from_node_args(ast, 1, node->nd_var);
case NODE_BREAK:
+ goto jump;
case NODE_NEXT:
+ goto jump;
case NODE_RETURN:
+ jump:
return rb_ary_new_from_node_args(ast, 1, node->nd_stts);
case NODE_REDO:
return rb_ary_new_from_node_args(ast, 0);
@@ -369,7 +356,9 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_ENSURE:
return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_ensr);
case NODE_AND:
+ goto andor;
case NODE_OR:
+ andor:
{
VALUE ary = rb_ary_new();
@@ -389,18 +378,24 @@ node_children(rb_ast_t *ast, const NODE *node)
else {
return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_value),
NEW_CHILD(ast, node->nd_head),
- no_name_rest());
+ ID2SYM(rb_intern("NODE_SPECIAL_NO_NAME_REST")));
}
case NODE_LASGN:
+ goto asgn;
case NODE_DASGN:
+ goto asgn;
case NODE_DASGN_CURR:
+ goto asgn;
case NODE_IASGN:
+ goto asgn;
case NODE_CVASGN:
- case NODE_GASGN:
+ asgn:
if (NODE_REQUIRED_KEYWORD_P(node)) {
return rb_ary_new_from_args(2, var_name(node->nd_vid), ID2SYM(rb_intern("NODE_SPECIAL_REQUIRED_KEYWORD")));
}
return rb_ary_new_from_args(2, var_name(node->nd_vid), NEW_CHILD(ast, node->nd_value));
+ case NODE_GASGN:
+ goto asgn;
case NODE_CDECL:
if (node->nd_vid) {
return rb_ary_new_from_args(2, ID2SYM(node->nd_vid), NEW_CHILD(ast, node->nd_value));
@@ -412,10 +407,9 @@ node_children(rb_ast_t *ast, const NODE *node)
NEW_CHILD(ast, node->nd_args->nd_head),
NEW_CHILD(ast, node->nd_args->nd_body));
case NODE_OP_ASGN2:
- return rb_ary_new_from_args(5, NEW_CHILD(ast, node->nd_recv),
+ return rb_ary_new_from_args(4, NEW_CHILD(ast, node->nd_recv),
node->nd_next->nd_aid ? Qtrue : Qfalse,
ID2SYM(node->nd_next->nd_vid),
- ID2SYM(node->nd_next->nd_mid),
NEW_CHILD(ast, node->nd_value));
case NODE_OP_ASGN_AND:
return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_head), ID2SYM(idANDOP),
@@ -443,7 +437,9 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_ZSUPER:
return rb_ary_new_from_node_args(ast, 0);
case NODE_LIST:
+ goto ary;
case NODE_VALUES:
+ ary:
return dump_array(ast, node);
case NODE_ZLIST:
return rb_ary_new_from_node_args(ast, 0);
@@ -467,6 +463,8 @@ node_children(rb_ast_t *ast, const NODE *node)
name[1] = (char)node->nd_nth;
name[2] = '\0';
return rb_ary_new_from_args(1, ID2SYM(rb_intern(name)));
+ case NODE_MATCH:
+ goto lit;
case NODE_MATCH2:
if (node->nd_args) {
return rb_ary_new_from_node_args(ast, 3, node->nd_recv, node->nd_value, node->nd_args);
@@ -474,26 +472,26 @@ node_children(rb_ast_t *ast, const NODE *node)
return rb_ary_new_from_node_args(ast, 2, node->nd_recv, node->nd_value);
case NODE_MATCH3:
return rb_ary_new_from_node_args(ast, 2, node->nd_recv, node->nd_value);
- case NODE_MATCH:
case NODE_LIT:
+ goto lit;
case NODE_STR:
+ goto lit;
case NODE_XSTR:
+ lit:
return rb_ary_new_from_args(1, node->nd_lit);
case NODE_ONCE:
return rb_ary_new_from_node_args(ast, 1, node->nd_body);
case NODE_DSTR:
+ goto dlit;
case NODE_DXSTR:
+ goto dlit;
case NODE_DREGX:
+ goto dlit;
case NODE_DSYM:
- {
- NODE *n = node->nd_next;
- VALUE head = Qnil, next = Qnil;
- if (n) {
- head = NEW_CHILD(ast, n->nd_head);
- next = NEW_CHILD(ast, n->nd_next);
- }
- return rb_ary_new_from_args(3, node->nd_lit, head, next);
- }
+ dlit:
+ return rb_ary_new_from_args(3, node->nd_lit,
+ NEW_CHILD(ast, node->nd_next->nd_head),
+ NEW_CHILD(ast, node->nd_next->nd_next));
case NODE_EVSTR:
return rb_ary_new_from_node_args(ast, 1, node->nd_body);
case NODE_ARGSCAT:
@@ -525,9 +523,13 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_COLON3:
return rb_ary_new_from_args(1, ID2SYM(node->nd_mid));
case NODE_DOT2:
+ goto dot;
case NODE_DOT3:
+ goto dot;
case NODE_FLIP2:
+ goto dot;
case NODE_FLIP3:
+ dot:
return rb_ary_new_from_node_args(ast, 2, node->nd_beg, node->nd_end);
case NODE_SELF:
return rb_ary_new_from_node_args(ast, 0);
@@ -555,7 +557,7 @@ node_children(rb_ast_t *ast, const NODE *node)
if (NODE_NAMED_REST_P(node->nd_1st)) {
return rb_ary_new_from_node_args(ast, 2, node->nd_1st, node->nd_2nd);
}
- return rb_ary_new_from_args(2, no_name_rest(),
+ return rb_ary_new_from_args(2, ID2SYM(rb_intern("NODE_SPECIAL_NO_NAME_REST")),
NEW_CHILD(ast, node->nd_2nd));
case NODE_ARGS:
{
@@ -567,9 +569,7 @@ node_children(rb_ast_t *ast, const NODE *node)
var_name(ainfo->first_post_arg),
INT2NUM(ainfo->post_args_num),
NEW_CHILD(ast, ainfo->post_init),
- (ainfo->rest_arg == NODE_SPECIAL_EXCESSIVE_COMMA
- ? ID2SYM(rb_intern("NODE_SPECIAL_EXCESSIVE_COMMA"))
- : var_name(ainfo->rest_arg)),
+ var_name(ainfo->rest_arg),
(ainfo->no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo->kw_args)),
(ainfo->no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo->kw_rest_arg)),
var_name(ainfo->block_arg));
@@ -587,24 +587,14 @@ node_children(rb_ast_t *ast, const NODE *node)
case NODE_ARYPTN:
{
struct rb_ary_pattern_info *apinfo = node->nd_apinfo;
- VALUE rest = rest_arg(ast, apinfo->rest_arg);
+ VALUE rest = NODE_NAMED_REST_P(apinfo->rest_arg) ? NEW_CHILD(ast, apinfo->rest_arg) :
+ ID2SYM(rb_intern("NODE_SPECIAL_NO_NAME_REST"));
return rb_ary_new_from_args(4,
NEW_CHILD(ast, node->nd_pconst),
NEW_CHILD(ast, apinfo->pre_args),
rest,
NEW_CHILD(ast, apinfo->post_args));
}
- case NODE_FNDPTN:
- {
- struct rb_fnd_pattern_info *fpinfo = node->nd_fpinfo;
- VALUE pre_rest = rest_arg(ast, fpinfo->pre_rest_arg);
- VALUE post_rest = rest_arg(ast, fpinfo->post_rest_arg);
- return rb_ary_new_from_args(4,
- NEW_CHILD(ast, node->nd_pconst),
- pre_rest,
- NEW_CHILD(ast, fpinfo->args),
- post_rest);
- }
case NODE_HSHPTN:
{
VALUE kwrest = node->nd_pkwrestarg == NODE_SPECIAL_NO_REST_KEYWORD ? ID2SYM(rb_intern("NODE_SPECIAL_NO_REST_KEYWORD")) :
@@ -696,4 +686,6 @@ Init_ast(void)
rb_mAST = rb_define_module_under(rb_cRubyVM, "AbstractSyntaxTree");
rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject);
rb_undef_alloc_func(rb_cNode);
+
+ load_ast();
}
diff --git a/ast.rb b/ast.rb
index 34fa645671..1fedf76649 100644
--- a/ast.rb
+++ b/ast.rb
@@ -6,10 +6,10 @@ class RubyVM
# abstract syntax trees. The nodes in the tree
# are instances of RubyVM::AbstractSyntaxTree::Node.
#
- # This module is MRI specific as it exposes implementation details
+ # This class is MRI specific as it exposes implementation details
# of the MRI abstract syntax tree.
#
- # This module is experimental and its API is not stable, therefore it might
+ # This class is experimental and its API is not stable, therefore it might
# change without notice. As examples, the order of children nodes is not
# guaranteed, the number of children nodes might change, there is no way to
# access children nodes by name, etc.
@@ -32,7 +32,7 @@ class RubyVM
# RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
# # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:9>
def self.parse string
- Primitive.ast_s_parse string
+ __builtin_ast_s_parse string
end
# call-seq:
@@ -47,7 +47,7 @@ class RubyVM
# RubyVM::AbstractSyntaxTree.parse_file("my-app/app.rb")
# # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-31:3>
def self.parse_file pathname
- Primitive.ast_s_parse_file pathname
+ __builtin_ast_s_parse_file pathname
end
# call-seq:
@@ -66,7 +66,7 @@ class RubyVM
# RubyVM::AbstractSyntaxTree.of(method(:hello))
# # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-3:3>
def self.of body
- Primitive.ast_s_of body
+ __builtin_ast_s_of body
end
# RubyVM::AbstractSyntaxTree::Node instances are created by parse methods in
@@ -83,12 +83,10 @@ class RubyVM
#
# root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
# root.type # => :SCOPE
- # lasgn = root.children[2]
- # lasgn.type # => :LASGN
- # call = lasgn.children[1]
+ # call = root.children[2]
# call.type # => :OPCALL
def type
- Primitive.ast_node_type
+ __builtin_ast_node_type
end
# call-seq:
@@ -96,7 +94,7 @@ class RubyVM
#
# The line number in the source code where this AST's text began.
def first_lineno
- Primitive.ast_node_first_lineno
+ __builtin_ast_node_first_lineno
end
# call-seq:
@@ -104,7 +102,7 @@ class RubyVM
#
# The column number in the source code where this AST's text began.
def first_column
- Primitive.ast_node_first_column
+ __builtin_ast_node_first_column
end
# call-seq:
@@ -112,7 +110,7 @@ class RubyVM
#
# The line number in the source code where this AST's text ended.
def last_lineno
- Primitive.ast_node_last_lineno
+ __builtin_ast_node_last_lineno
end
# call-seq:
@@ -120,7 +118,7 @@ class RubyVM
#
# The column number in the source code where this AST's text ended.
def last_column
- Primitive.ast_node_last_column
+ __builtin_ast_node_last_column
end
# call-seq:
@@ -131,7 +129,7 @@ class RubyVM
#
# The returned array may contain other nodes or <code>nil</code>.
def children
- Primitive.ast_node_children
+ __builtin_ast_node_children
end
# call-seq:
@@ -139,7 +137,7 @@ class RubyVM
#
# Returns debugging information about this node as a string.
def inspect
- Primitive.ast_node_inspect
+ __builtin_ast_node_inspect
end
end
end
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 44a1922cb0..0000000000
--- a/autogen.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-PWD=
-case "$0" in
-*/*) srcdir=`dirname $0`;;
-*) srcdir="";;
-esac
-
-exec ${AUTORECONF:-autoreconf} --install --symlink "$@" ${srcdir:+"$srcdir"}
diff --git a/basictest/test.rb b/basictest/test.rb
index 52008b78db..25a4298234 100755
--- a/basictest/test.rb
+++ b/basictest/test.rb
@@ -1425,6 +1425,9 @@ marity_test(:test_ok)
marity_test(:marity_test)
marity_test(:p)
+lambda(&method(:test_ok)).call(true)
+lambda(&block_get{|a,n| test_ok(a,n)}).call(true, 2)
+
class ITER_TEST1
def a
block_given?
@@ -2137,7 +2140,7 @@ $_ = foobar
test_ok($_ == foobar)
class Gods
- @@rule = "Uranus"
+ @@rule = "Uranus" # private to Gods
def ruler0
@@rule
end
@@ -2160,7 +2163,7 @@ module Olympians
end
class Titans < Gods
- @@rule = "Cronus" # modifies @@rule in Gods
+ @@rule = "Cronus" # do not affect @@rule in Gods
include Olympians
def ruler4
@@rule
@@ -2175,14 +2178,7 @@ test_ok(Titans.ruler2 == "Cronus")
atlas = Titans.new
test_ok(atlas.ruler0 == "Cronus")
test_ok(atlas.ruler3 == "Zeus")
-begin
- atlas.ruler4
-rescue RuntimeError => e
- test_ok(e.message.include?("class variable @@rule of Olympians is overtaken by Gods"))
-else
- test_ok(false)
-end
-test_ok(atlas.ruler3 == "Zeus")
+test_ok(atlas.ruler4 == "Cronus")
test_check "trace"
$x = 1234
diff --git a/benchmark/README.md b/benchmark/README.md
index 39a5aa139b..24a2669143 100644
--- a/benchmark/README.md
+++ b/benchmark/README.md
@@ -53,20 +53,20 @@ make benchmark
# Or compare with specific ruby binary
make benchmark COMPARE_RUBY="/path/to/ruby --jit"
-# Run vm benchmarks
-make benchmark ITEM=vm
+# Run vm1 benchmarks
+make benchmark ITEM=vm1
# Run some limited benchmarks in ITEM-matched files
-make benchmark ITEM=vm OPTS=--filter=block
+make benchmark ITEM=vm1 OPTS=--filter=block
# You can specify the benchmark by an exact filename instead of using the default argument:
# ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')
-make benchmark ARGS=benchmark/erb_render.yml
+make benchmark ARGS=../benchmark/erb_render.yml
# You can specify any option via $OPTS
make benchmark OPTS="--help"
# With `make benchmark`, some special runner plugins are available:
# -r peak, -r size, -r total, -r utime, -r stime, -r cutime, -r cstime
-make benchmark ITEM=vm_bigarray OPTS="-r peak"
+make benchmark ITEM=vm2_bigarray OPTS="-r peak"
```
diff --git a/benchmark/array_max_float.yml b/benchmark/array_max_float.yml
deleted file mode 100644
index ace1ae2e14..0000000000
--- a/benchmark/array_max_float.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-prelude: |
- ary2 = 2.times.map(&:to_f).shuffle
- ary10 = 10.times.map(&:to_f).shuffle
- ary100 = 100.times.map(&:to_f).shuffle
- ary500 = 500.times.map(&:to_f).shuffle
- ary1000 = 1000.times.map(&:to_f).shuffle
- ary2000 = 2500.times.map(&:to_f).shuffle
- ary3000 = 2500.times.map(&:to_f).shuffle
- ary5000 = 5000.times.map(&:to_f).shuffle
- ary10000 = 10000.times.map(&:to_f).shuffle
- ary20000 = 20000.times.map(&:to_f).shuffle
- ary50000 = 50000.times.map(&:to_f).shuffle
- ary100000 = 100000.times.map(&:to_f).shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
-
-loop_count: 10000
-
diff --git a/benchmark/array_max_int.yml b/benchmark/array_max_int.yml
deleted file mode 100644
index acd83684d0..0000000000
--- a/benchmark/array_max_int.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-prelude: |
- ary2 = 2.times.to_a.shuffle
- ary10 = 10.times.to_a.shuffle
- ary100 = 100.times.to_a.shuffle
- ary500 = 500.times.to_a.shuffle
- ary1000 = 1000.times.to_a.shuffle
- ary2000 = 2500.times.to_a.shuffle
- ary3000 = 2500.times.to_a.shuffle
- ary5000 = 5000.times.to_a.shuffle
- ary10000 = 10000.times.to_a.shuffle
- ary20000 = 20000.times.to_a.shuffle
- ary50000 = 50000.times.to_a.shuffle
- ary100000 = 100000.times.to_a.shuffle
- ary1000000 = 1000000.times.to_a.shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
- ary1000000.max: ary1000000.max
-
-loop_count: 10000
diff --git a/benchmark/array_max_str.yml b/benchmark/array_max_str.yml
deleted file mode 100644
index 2aeed010f2..0000000000
--- a/benchmark/array_max_str.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-prelude: |
- ary2 = 2.times.map(&:to_s).shuffle
- ary10 = 10.times.map(&:to_s).shuffle
- ary100 = 100.times.map(&:to_s).shuffle
- ary500 = 500.times.map(&:to_s).shuffle
- ary1000 = 1000.times.map(&:to_s).shuffle
- ary2000 = 2500.times.map(&:to_s).shuffle
- ary3000 = 2500.times.map(&:to_s).shuffle
- ary5000 = 5000.times.map(&:to_s).shuffle
- ary10000 = 10000.times.map(&:to_s).shuffle
- ary20000 = 20000.times.map(&:to_s).shuffle
- ary50000 = 50000.times.map(&:to_s).shuffle
- ary100000 = 100000.times.map(&:to_s).shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
-
-loop_count: 10000
-
diff --git a/benchmark/array_min.yml b/benchmark/array_min.yml
deleted file mode 100644
index 53e5072b14..0000000000
--- a/benchmark/array_min.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-prelude: |
- ary2 = 2.times.to_a.shuffle
- ary10 = 10.times.to_a.shuffle
- ary100 = 100.times.to_a.shuffle
- ary500 = 500.times.to_a.shuffle
- ary1000 = 1000.times.to_a.shuffle
- ary2000 = 2500.times.to_a.shuffle
- ary3000 = 2500.times.to_a.shuffle
- ary5000 = 5000.times.to_a.shuffle
- ary10000 = 10000.times.to_a.shuffle
- ary20000 = 20000.times.to_a.shuffle
- ary50000 = 50000.times.to_a.shuffle
- ary100000 = 100000.times.to_a.shuffle
- ary1000000 = 1000000.times.to_a.shuffle
-
-benchmark:
- ary2.min: ary2.min
- ary10.min: ary10.min
- ary100.min: ary100.min
- ary500.min: ary500.min
- ary1000.min: ary1000.min
- ary2000.min: ary2000.min
- ary3000.min: ary3000.min
- ary5000.min: ary5000.min
- ary10000.min: ary10000.min
- ary20000.min: ary20000.min
- ary50000.min: ary50000.min
- ary100000.min: ary100000.min
- ary1000000.min: ary1000000.min
-
-loop_count: 10000
diff --git a/benchmark/enum_lazy_flat_map.yml b/benchmark/enum_lazy_flat_map.yml
deleted file mode 100644
index 0ee390a441..0000000000
--- a/benchmark/enum_lazy_flat_map.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- num = (1..).lazy.take(100)
- ary2 = [[1,2]].cycle.lazy.take(10)
- ary10 = [[*1..10]].cycle.lazy.take(10)
- ary20 = [[*1..20]].cycle.lazy.take(10)
- ary50 = [[*1..50]].cycle.lazy.take(10)
- ary100 = [[*1..100]].cycle.lazy.take(10)
-
-benchmark:
- num3: num.flat_map {|x| x}.take(3).to_a
- num10: num.flat_map {|x| x}.take(3).to_a
- ary2: ary2.flat_map {|x| x}.take(3).to_a
- ary10: ary10.flat_map {|x| x}.take(3).to_a
- ary20: ary20.flat_map {|x| x}.take(3).to_a
- ary50: ary50.flat_map {|x| x}.take(3).to_a
- ary100: ary100.flat_map {|x| x}.take(3).to_a
diff --git a/benchmark/enum_lazy_zip.yml b/benchmark/enum_lazy_zip.yml
deleted file mode 100644
index 4566ff0261..0000000000
--- a/benchmark/enum_lazy_zip.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-prelude: |
- a = (1..3).lazy
- b = a.map {|x| x}
-
-benchmark:
- first_ary: a.zip(["a", "b", "c"]).first
- first_nonary: a.zip("a".."c").first
- first_noarg: a.zip.first
-
- take3_ary: a.zip(["a", "b", "c"]).take(3).force
- take3_nonary: a.zip("a".."c").take(3).force
- take3_noarg: a.zip.take(3).force
-
- chain-first_ary: b.zip(["a", "b", "c"]).first
- chain-first_nonary: b.zip("a".."c").first
- chain-first_noarg: b.zip.first
-
- chain-take3_ary: b.zip(["a", "b", "c"]).take(3).force
- chain-take3_nonary: b.zip("a".."c").take(3).force
- chain-take3_noarg: b.zip.take(3).force
-
- block: a.zip("a".."c") {|x, y| [x, y]}
diff --git a/benchmark/fiber_chain.yml b/benchmark/fiber_chain.yml
index a36c759f8e..a36c759f8e 100644..100755
--- a/benchmark/fiber_chain.yml
+++ b/benchmark/fiber_chain.yml
diff --git a/benchmark/fiber_locals.yml b/benchmark/fiber_locals.yml
deleted file mode 100644
index 8588686477..0000000000
--- a/benchmark/fiber_locals.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- th = Thread.current
- th[:key] = :val
-benchmark:
- key?: th.key?(:key)
- []: th[:key]
- keys: th.keys
-loop_count: 1_000_000
diff --git a/benchmark/hash_defaults.yml b/benchmark/hash_defaults.yml
deleted file mode 100644
index 833f10e1c7..0000000000
--- a/benchmark/hash_defaults.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- h = Hash.new { :foo }
-benchmark:
- default_aref: h[1]
- default_method: h.default(1)
-loop_count: 1000000
diff --git a/benchmark/kernel_clone.yml b/benchmark/kernel_clone.yml
deleted file mode 100644
index 069b23abcd..0000000000
--- a/benchmark/kernel_clone.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: "object = Object.new"
-benchmark:
- clone: "object.clone"
- clone_true: "object.clone(freeze: true)"
- clone_false: "object.clone(freeze: false)"
-loop_count: 10000
diff --git a/benchmark/kernel_float.yml b/benchmark/kernel_float.yml
deleted file mode 100644
index 215f6750fc..0000000000
--- a/benchmark/kernel_float.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-benchmark:
- float: "Float(42)"
- float_true: "Float(42, exception: true)"
- float_false: "Float(42, exception: false)"
-loop_count: 10000
diff --git a/benchmark/kernel_tap.yml b/benchmark/kernel_tap.yml
deleted file mode 100644
index 4dcbb31b4d..0000000000
--- a/benchmark/kernel_tap.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- obj = Object.new
- x = nil
-benchmark:
- kernel_tap: obj.tap { |o| x = o }
-loop_count: 20000000
diff --git a/benchmark/kernel_then.yml b/benchmark/kernel_then.yml
deleted file mode 100644
index 85f7341e33..0000000000
--- a/benchmark/kernel_then.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark:
- kernel_then: 1.then { |i| i + 1 }
- kernel_then_enum: 1.then
- kernel_yield_self: 1.yield_self { |i| i + 1 }
- kernel_yield_self_enum: 1.yield_self
-loop_count: 20000000
diff --git a/benchmark/keyword_arguments.yml b/benchmark/keyword_arguments.yml
deleted file mode 100644
index fce6bce0b8..0000000000
--- a/benchmark/keyword_arguments.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- h = {a: 1}
- def kw(a: 1) a end
- def kws(**kw) kw end
-benchmark:
- kw_to_kw: "kw(a: 1)"
- kw_splat_to_kw: "kw(**h)"
- kw_to_kw_splat: "kws(a: 1)"
- kw_splat_to_kw_splat: "kws(**h)"
- kw_and_splat_to_kw: "kw(a: 1, **h)"
- kw_splats_to_kw: "kw(**h, **h)"
- kw_and_splat_to_kw_splat: "kws(a: 1, **h)"
- kw_splats_to_kw_splat: "kws(**h, **h)"
diff --git a/benchmark/lib/benchmark_driver/runner/mjit.rb b/benchmark/lib/benchmark_driver/runner/mjit.rb
deleted file mode 100644
index 1d4693e8be..0000000000
--- a/benchmark/lib/benchmark_driver/runner/mjit.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-require 'benchmark_driver/struct'
-require 'benchmark_driver/metric'
-require 'erb'
-
-# A runner to measure after-JIT performance easily
-class BenchmarkDriver::Runner::Mjit < BenchmarkDriver::Runner::Ips
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
-
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{
- def parse(**)
- jobs = super
- jobs.map do |job|
- job = job.dup
- job.prelude = "#{job.prelude}\n#{<<~EOS}"
- if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
- __bmdv_ruby_i = 0
- while __bmdv_ruby_i < 10000 # jit_min_calls
- #{job.script}
- __bmdv_ruby_i += 1
- end
- RubyVM::MJIT.pause # compile
- #{job.script}
- RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile
- #{job.script}
- RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile 2
- end
- EOS
- job
- end
- end
- })
-end
diff --git a/benchmark/lib/benchmark_driver/runner/mjit_exec.rb b/benchmark/lib/benchmark_driver/runner/mjit_exec.rb
index eac3dfba84..9f7c8c8af3 100644
--- a/benchmark/lib/benchmark_driver/runner/mjit_exec.rb
+++ b/benchmark/lib/benchmark_driver/runner/mjit_exec.rb
@@ -135,7 +135,7 @@ class BenchmarkDriver::Runner::MjitExec
nil
end
% end
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
+ RubyVM::MJIT.pause if RubyVM::MJIT.enabled?
def vm
t = Process.clock_gettime(Process::CLOCK_MONOTONIC)
@@ -172,7 +172,7 @@ class BenchmarkDriver::Runner::MjitExec
a<%= i %>
a<%= i %> # --jit-min-calls=2
% end
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
+ RubyVM::MJIT.pause if RubyVM::MJIT.enabled?
def vm
t = Process.clock_gettime(Process::CLOCK_MONOTONIC)
@@ -228,7 +228,7 @@ class BenchmarkDriver::Runner::MjitExec
jit
jit
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
+ RubyVM::MJIT.pause if RubyVM::MJIT.enabled?
File.write(<%= result.dump %>, jit)
EOS
end
diff --git a/benchmark/mjit_exec_jt2jt.yml b/benchmark/mjit_exec_jt2jt.yml
index 6c303c7a44..5be408e30c 100644
--- a/benchmark/mjit_exec_jt2jt.yml
+++ b/benchmark/mjit_exec_jt2jt.yml
@@ -1,4 +1,6 @@
-type: lib/benchmark_driver/runner/mjit_exec
+# Usage:
+# RUBYOPT=-Ibenchmark/lib benchmark-driver -e 'ruby --jit' benchmark/mjit_exec_vm2jt.yml
+type: mjit_exec # benchmark/lib/benchmark_driver/runner/mjit_exec.rb
num_methods: [1]
#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
loop_count: 50000000
diff --git a/benchmark/mjit_exec_vm2jt.yml b/benchmark/mjit_exec_vm2jt.yml
index 764883f070..9947dbb7dd 100644
--- a/benchmark/mjit_exec_vm2jt.yml
+++ b/benchmark/mjit_exec_vm2jt.yml
@@ -1,4 +1,6 @@
-type: lib/benchmark_driver/runner/mjit_exec
+# Usage:
+# RUBYOPT=-Ibenchmark/lib benchmark-driver -e 'ruby --jit' benchmark/mjit_exec_vm2jt.yml
+type: mjit_exec # benchmark/lib/benchmark_driver/runner/mjit_exec.rb
num_methods: [1]
#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
loop_count: 50000000
diff --git a/benchmark/mjit_exec_vm2vm.yml b/benchmark/mjit_exec_vm2vm.yml
index 030aa76c1c..4b84427b10 100644
--- a/benchmark/mjit_exec_vm2vm.yml
+++ b/benchmark/mjit_exec_vm2vm.yml
@@ -1,4 +1,6 @@
-type: lib/benchmark_driver/runner/mjit_exec
+# Usage:
+# RUBYOPT=-Ibenchmark/lib benchmark-driver -e 'ruby --jit' benchmark/mjit_exec_vm2vm.yml
+type: mjit_exec # benchmark/lib/benchmark_driver/runner/mjit_exec.rb
num_methods: [1]
#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
loop_count: 50000000
diff --git a/benchmark/mjit_exivar.yml b/benchmark/mjit_exivar.yml
deleted file mode 100644
index 2584fa6410..0000000000
--- a/benchmark/mjit_exivar.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- class Bench < Hash
- def initialize
- @exivar = nil
- end
-
- def exivar
- @exivar
- end
- end
-
- bench = Bench.new
-
-benchmark:
- mjit_exivar: bench.exivar
-
-loop_count: 200000000
diff --git a/benchmark/mjit_integer.yml b/benchmark/mjit_integer.yml
deleted file mode 100644
index edc3556479..0000000000
--- a/benchmark/mjit_integer.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_abs(int) int.abs end
- def mjit_bit_length(int) int.bit_length end
- def mjit_comp(int) ~int end
- def mjit_even?(int) int.even? end
- def mjit_integer?(int) int.integer? end
- def mjit_magnitude(int) int.magnitude end
- def mjit_odd?(int) int.odd? end
- def mjit_ord(int) int.ord end
- def mjit_to_i(int) int.to_i end
- def mjit_to_int(int) int.to_int end
- def mjit_uminus(int) -int end
- def mjit_zero?(int) int.zero? end
-
-benchmark:
- - mjit_abs(-1)
- - mjit_bit_length(100)
- - mjit_comp(1)
- - mjit_even?(2)
- - mjit_integer?(0)
- - mjit_magnitude(-1)
- - mjit_odd?(1)
- - mjit_ord(1)
- - mjit_to_i(1)
- - mjit_to_int(1)
- - mjit_uminus(1)
- - mjit_zero?(0)
-
-loop_count: 40000000
diff --git a/benchmark/mjit_kernel.yml b/benchmark/mjit_kernel.yml
deleted file mode 100644
index 7720e65c2c..0000000000
--- a/benchmark/mjit_kernel.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_class(obj)
- obj.class
- end
-
- def mjit_frozen?(obj)
- obj.frozen?
- end
-
- str = ""
- fstr = "".freeze
-
-benchmark:
- - mjit_class(self)
- - mjit_class(1)
- - mjit_frozen?(str)
- - mjit_frozen?(fstr)
-
-loop_count: 40000000
diff --git a/benchmark/mjit_leave.yml b/benchmark/mjit_leave.yml
deleted file mode 100644
index 9ac68b164b..0000000000
--- a/benchmark/mjit_leave.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def leave
- nil
- end
-benchmark:
- mjit_leave: leave
-loop_count: 200000000
diff --git a/benchmark/mjit_opt_cc_insns.yml b/benchmark/mjit_opt_cc_insns.yml
deleted file mode 100644
index fed6d34bd5..0000000000
--- a/benchmark/mjit_opt_cc_insns.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# opt_* insns using vm_method_cfunc_is with send-compatible operands:
-# * opt_nil_p
-# * opt_not
-# * opt_eq
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_nil?(obj)
- obj.nil?
- end
-
- def mjit_not(obj)
- !obj
- end
-
- def mjit_eq(a, b)
- a == b
- end
-
-benchmark:
- - script: mjit_nil?(1)
- loop_count: 40000000
- - script: mjit_not(1)
- loop_count: 40000000
- - script: mjit_eq(1, nil)
- loop_count: 8000000
- - script: mjit_eq(nil, 1)
- loop_count: 8000000
diff --git a/benchmark/mjit_struct_aref.yml b/benchmark/mjit_struct_aref.yml
deleted file mode 100644
index bfba1323f2..0000000000
--- a/benchmark/mjit_struct_aref.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_struct_aref(struct)
- struct.aa
- end
- struct = Struct.new(:a0, :a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :aa).new
-
-benchmark: mjit_struct_aref(struct)
-
-loop_count: 40000000
diff --git a/benchmark/num_zero_p.yml b/benchmark/num_zero_p.yml
deleted file mode 100644
index 2195963433..0000000000
--- a/benchmark/num_zero_p.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-benchmark:
- - 0.zero?
- - 1.zero?
- - 0r.zero?
- - 1r.zero?
- - 0i.zero?
- - 1i.zero?
-loop_count: 50000000
diff --git a/benchmark/object_allocate.yml b/benchmark/object_allocate.yml
deleted file mode 100644
index 93ff463e41..0000000000
--- a/benchmark/object_allocate.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-prelude: |
- class Eight
- 8.times { include(Module.new) }
- end
- class ThirtyTwo
- 32.times { include(Module.new) }
- end
- class SixtyFour
- 64.times { include(Module.new) }
- end
- class OneTwentyEight
- 128.times { include(Module.new) }
- end
- # Disable GC to see raw throughput:
- GC.disable
-benchmark:
- allocate_8_deep: Eight.new
- allocate_32_deep: ThirtyTwo.new
- allocate_64_deep: SixtyFour.new
- allocate_128_deep: OneTwentyEight.new
-loop_count: 100000
diff --git a/benchmark/objspace_dump_all.yml b/benchmark/objspace_dump_all.yml
deleted file mode 100644
index ebab562d2e..0000000000
--- a/benchmark/objspace_dump_all.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- require 'objspace'
- require 'tempfile'
- $objs = 1_000.times.map { Object.new }
- $strings = 1_000.times.map { |i| "string #{i}" }
- $file = Tempfile.new('heap')
- $dev_null = File.open(File::NULL, 'w+')
-
-benchmark:
- dump_all_string: "ObjectSpace.dump_all(output: :string)"
- dump_all_file: "ObjectSpace.dump_all(output: $file)"
- dump_all_dev_null: "ObjectSpace.dump_all(output: $dev_null)"
-loop_count: 1
diff --git a/benchmark/pm_array.yml b/benchmark/pm_array.yml
deleted file mode 100644
index babb65a289..0000000000
--- a/benchmark/pm_array.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-prelude: |
- def call(*val)
- case val
- in [String => body]
- [200, {}, [body]]
- in [Integer => status]
- [status, {}, [""]]
- in [Integer, String] => response
- [response[0], {}, [response[1]]]
- in [Integer, Hash, String] => response
- [response[0], response[1], [response[2]]]
- end
- end
-
-benchmark:
- first_match: call("ok")
- second_match: call(401)
- third_match: call(200, "ok")
- fourth_match: call(201, {}, "created")
diff --git a/benchmark/string_casecmp.yml b/benchmark/string_casecmp.yml
deleted file mode 100644
index 2354040a04..0000000000
--- a/benchmark/string_casecmp.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-prelude: |
- lstr1 = [*"a".."z",*"0".."9"].join("")
- lstr10 = lstr1 * 10
- lstr100 = lstr10 * 10
- lstr1000 = lstr100 * 10
- lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- lnonascii10 = lnonascii1 * 10
- lnonascii100 = lnonascii10 * 10
- lnonascii1000 = lnonascii100 * 10
- ustr1 = [*"A".."Z",*"0".."9"].join("")
- ustr10 = ustr1 * 10
- ustr100 = ustr10 * 10
- ustr1000 = ustr100 * 10
- unonascii1 = [*"\u{c0}".."\u{df}"].join("")
- unonascii10 = unonascii1 * 10
- unonascii100 = unonascii10 * 10
- unonascii1000 = unonascii100 * 10
-benchmark:
- casecmp-1: lstr1.casecmp(ustr1)
- casecmp-10: lstr10.casecmp(ustr10)
- casecmp-100: lstr100.casecmp(ustr100)
- casecmp-1000: lstr1000.casecmp(ustr1000)
- casecmp-nonascii1: lnonascii1.casecmp(unonascii1)
- casecmp-nonascii10: lnonascii10.casecmp(unonascii10)
- casecmp-nonascii100: lnonascii100.casecmp(unonascii100)
- casecmp-nonascii1000: lnonascii1000.casecmp(unonascii1000)
diff --git a/benchmark/string_casecmp_p.yml b/benchmark/string_casecmp_p.yml
deleted file mode 100644
index a790ce7d55..0000000000
--- a/benchmark/string_casecmp_p.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-prelude: |
- lstr1 = [*"a".."z",*"0".."9"].join("")
- lstr10 = lstr1 * 10
- lstr100 = lstr10 * 10
- lstr1000 = lstr100 * 10
- lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- lnonascii10 = lnonascii1 * 10
- lnonascii100 = lnonascii10 * 10
- lnonascii1000 = lnonascii100 * 10
- ustr1 = [*"A".."Z",*"0".."9"].join("")
- ustr10 = ustr1 * 10
- ustr100 = ustr10 * 10
- ustr1000 = ustr100 * 10
- unonascii1 = [*"\u{c0}".."\u{df}"].join("")
- unonascii10 = unonascii1 * 10
- unonascii100 = unonascii10 * 10
- unonascii1000 = unonascii100 * 10
-benchmark:
- casecmp_p-1: lstr1.casecmp?(ustr1)
- casecmp_p-10: lstr10.casecmp?(ustr10)
- casecmp_p-100: lstr100.casecmp?(ustr100)
- casecmp_p-1000: lstr1000.casecmp?(ustr1000)
- casecmp_p-nonascii1: lnonascii1.casecmp?(unonascii1)
- casecmp_p-nonascii10: lnonascii10.casecmp?(unonascii10)
- casecmp_p-nonascii100: lnonascii100.casecmp?(unonascii100)
- casecmp_p-nonascii1000: lnonascii1000.casecmp?(unonascii1000)
diff --git a/benchmark/string_downcase.yml b/benchmark/string_downcase.yml
index 1fea6afbec..a31c3ac712 100644
--- a/benchmark/string_downcase.yml
+++ b/benchmark/string_downcase.yml
@@ -3,16 +3,8 @@ prelude: |
str10 = str1 * 10
str100 = str10 * 10
str1000 = str100 * 10
- nonascii1 = [*"\u{c0}".."\u{df}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
benchmark:
downcase-1: str1.upcase
downcase-10: str10.upcase
downcase-100: str100.upcase
downcase-1000: str1000.upcase
- downcase-nonascii1: nonascii1.downcase
- downcase-nonascii10: nonascii10.downcase
- downcase-nonascii100: nonascii100.downcase
- downcase-nonascii1000: nonascii1000.downcase
diff --git a/benchmark/string_slice.yml b/benchmark/string_slice.yml
deleted file mode 100644
index fc2393c5d1..0000000000
--- a/benchmark/string_slice.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- long_string = "x"*1000+"-hår"
-benchmark:
- regexp-short: |
- "x-hår".slice!(/-(.)(.)(.)/, 3)
- regexp-long: |
- long_string.dup.slice!(/-(.)(.)(.)/, 3)
- string-short: |
- "x-hår".slice!("r")
- string-long: |
- long_string.dup.slice!("r")
diff --git a/benchmark/string_split.yml b/benchmark/string_split.yml
index cc2c7d7855..84ffe8f6a7 100644
--- a/benchmark/string_split.yml
+++ b/benchmark/string_split.yml
@@ -1,22 +1,7 @@
prelude: |
- str1 = [*0..5].join(" ") + " "
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
+ str0 = [*0..9].join("")
benchmark:
- to_chars-1: str1.split('')
- to_chars-10: str10.split('')
- to_chars-100: str100.split('')
- to_chars-1000: str1000.split('')
- to_words-1: str1.split(' ')
- to_words-10: str10.split(' ')
- to_words-100: str100.split(' ')
- to_words-1000: str1000.split(' ')
- re_chars-1: str1.split(//)
- re_chars-10: str10.split(//)
- re_chars-100: str100.split(//)
- re_chars-1000: str1000.split(//)
- re_space-1: str1.split(/ /)
- re_space-10: str10.split(/ /)
- re_space-100: str100.split(/ /)
- re_space-1000: str1000.split(/ /)
+ to_chars-1: str0.split('')
+ to_chars-10: (str0 * 10).split('')
+ to_chars-100: (str0 * 100).split('')
+ to_chars-1000: (str0 * 1000).split('')
diff --git a/benchmark/string_swapcase.yml b/benchmark/string_swapcase.yml
index eeb5928907..afaae3f696 100644
--- a/benchmark/string_swapcase.yml
+++ b/benchmark/string_swapcase.yml
@@ -3,16 +3,8 @@ prelude: |
str10 = str1 * 10
str100 = str10 * 10
str1000 = str100 * 10
- nonascii1 = [*"\u{c0}".."\u{cf}",*"\u{f0}".."\u{ff}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
benchmark:
swapcase-1: str1.swapcase
swapcase-10: str10.swapcase
swapcase-100: str100.swapcase
swapcase-1000: str1000.swapcase
- swapcase-nonascii1: nonascii1.swapcase
- swapcase-nonascii10: nonascii10.swapcase
- swapcase-nonascii100: nonascii100.swapcase
- swapcase-nonascii1000: nonascii1000.swapcase
diff --git a/benchmark/string_upcase.yml b/benchmark/string_upcase.yml
index dab84bbde2..456d213c74 100644
--- a/benchmark/string_upcase.yml
+++ b/benchmark/string_upcase.yml
@@ -3,16 +3,8 @@ prelude: |
str10 = str1 * 10
str100 = str10 * 10
str1000 = str100 * 10
- nonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
benchmark:
upcase-1: str1.upcase
upcase-10: str10.upcase
upcase-100: str100.upcase
upcase-1000: str1000.upcase
- upcase-nonascii1: nonascii1.upcase
- upcase-nonascii10: nonascii10.upcase
- upcase-nonascii100: nonascii100.upcase
- upcase-nonascii1000: nonascii1000.upcase
diff --git a/benchmark/vm1_attr_ivar.yml b/benchmark/vm1_attr_ivar.yml
new file mode 100644
index 0000000000..f714dd9bd9
--- /dev/null
+++ b/benchmark/vm1_attr_ivar.yml
@@ -0,0 +1,14 @@
+prelude: |
+ class C
+ attr_reader :a, :b
+ def initialize
+ @a = nil
+ @b = nil
+ end
+ end
+ obj = C.new
+benchmark:
+ vm1_attr_ivar: |
+ j = obj.a
+ k = obj.b
+loop_count: 30000000
diff --git a/benchmark/vm1_attr_ivar_set.yml b/benchmark/vm1_attr_ivar_set.yml
new file mode 100644
index 0000000000..f383e59ef4
--- /dev/null
+++ b/benchmark/vm1_attr_ivar_set.yml
@@ -0,0 +1,14 @@
+prelude: |
+ class C
+ attr_accessor :a, :b
+ def initialize
+ @a = nil
+ @b = nil
+ end
+ end
+ obj = C.new
+benchmark:
+ vm1_attr_ivar_set: |
+ obj.a = 1
+ obj.b = 2
+loop_count: 30000000
diff --git a/benchmark/vm1_block.yml b/benchmark/vm1_block.yml
new file mode 100644
index 0000000000..ac7c940f93
--- /dev/null
+++ b/benchmark/vm1_block.yml
@@ -0,0 +1,9 @@
+prelude: |
+ def m
+ yield
+ end
+benchmark:
+ vm1_block: |
+ m{
+ }
+loop_count: 30000000
diff --git a/benchmark/vm1_blockparam.yml b/benchmark/vm1_blockparam.yml
new file mode 100644
index 0000000000..947b8c53d5
--- /dev/null
+++ b/benchmark/vm1_blockparam.yml
@@ -0,0 +1,7 @@
+prelude: |
+ def m &b
+ end
+benchmark:
+ vm1_blockparam: |
+ m{}
+loop_count: 30000000
diff --git a/benchmark/vm1_blockparam_call.yml b/benchmark/vm1_blockparam_call.yml
new file mode 100644
index 0000000000..e2817a3ce2
--- /dev/null
+++ b/benchmark/vm1_blockparam_call.yml
@@ -0,0 +1,8 @@
+prelude: |
+ def m &b
+ b.call
+ end
+benchmark:
+ vm1_blockparam_call: |
+ m{}
+loop_count: 30000000
diff --git a/benchmark/vm1_blockparam_pass.yml b/benchmark/vm1_blockparam_pass.yml
new file mode 100644
index 0000000000..ca1bef3369
--- /dev/null
+++ b/benchmark/vm1_blockparam_pass.yml
@@ -0,0 +1,12 @@
+prelude: |
+ def bp_yield
+ yield
+ end
+
+ def bp_pass &b
+ bp_yield &b
+ end
+benchmark:
+ vm1_blockparam_pass: |
+ bp_pass{}
+loop_count: 30000000
diff --git a/benchmark/vm1_blockparam_yield.yml b/benchmark/vm1_blockparam_yield.yml
new file mode 100644
index 0000000000..56ae617798
--- /dev/null
+++ b/benchmark/vm1_blockparam_yield.yml
@@ -0,0 +1,8 @@
+prelude: |
+ def bp_yield &b
+ yield
+ end
+benchmark:
+ vm1_blockparam_yield: |
+ bp_yield{}
+loop_count: 30000000
diff --git a/benchmark/vm1_const.yml b/benchmark/vm1_const.yml
new file mode 100644
index 0000000000..b98db1545c
--- /dev/null
+++ b/benchmark/vm1_const.yml
@@ -0,0 +1,7 @@
+prelude: |
+ Const = 1
+benchmark:
+ vm1_const: |
+ j = Const
+ k = Const
+loop_count: 30000000
diff --git a/benchmark/vm1_ensure.yml b/benchmark/vm1_ensure.yml
new file mode 100644
index 0000000000..afbbe38bec
--- /dev/null
+++ b/benchmark/vm1_ensure.yml
@@ -0,0 +1,14 @@
+# Not utilizing loop_count since using it for this is too unstable for now
+benchmark:
+ vm1_ensure: |
+ i = 0
+ while i<30_000_000
+ i += 1
+ begin
+ begin
+ ensure
+ end
+ ensure
+ end
+ end
+loop_count: 1
diff --git a/benchmark/vm1_float_simple.yml b/benchmark/vm1_float_simple.yml
new file mode 100644
index 0000000000..4e9ad1852b
--- /dev/null
+++ b/benchmark/vm1_float_simple.yml
@@ -0,0 +1,8 @@
+prelude: |
+ f = 0.0
+benchmark:
+ vm1_float_simple: |
+ f += 0.1; f -= 0.1
+ f += 0.1; f -= 0.1
+ f += 0.1; f -= 0.1
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_short_lived.yml b/benchmark/vm1_gc_short_lived.yml
new file mode 100644
index 0000000000..8fdcb7371d
--- /dev/null
+++ b/benchmark/vm1_gc_short_lived.yml
@@ -0,0 +1,9 @@
+benchmark:
+ vm1_gc_short_lived: |
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_short_with_complex_long.yml b/benchmark/vm1_gc_short_with_complex_long.yml
new file mode 100644
index 0000000000..c22ea74a60
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_complex_long.yml
@@ -0,0 +1,25 @@
+prelude: |
+ def nested_hash h, n
+ if n == 0
+ ''
+ else
+ 10.times{
+ h[Object.new] = nested_hash(h, n-1)
+ }
+ end
+ end
+
+ long_lived = Hash.new
+ nested_hash long_lived, 6
+
+ GC.start
+ GC.start
+benchmark:
+ vm1_gc_short_with_complex_long: |
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_short_with_long.yml b/benchmark/vm1_gc_short_with_long.yml
new file mode 100644
index 0000000000..c731aae548
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_long.yml
@@ -0,0 +1,13 @@
+prelude: |
+ long_lived = Array.new(1_000_000){|i| "#{i}"}
+ GC.start
+ GC.start
+benchmark:
+ vm1_gc_short_with_long: |
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_short_with_symbol.yml b/benchmark/vm1_gc_short_with_symbol.yml
new file mode 100644
index 0000000000..7fc1abedd8
--- /dev/null
+++ b/benchmark/vm1_gc_short_with_symbol.yml
@@ -0,0 +1,13 @@
+prelude: |
+ 50_000.times{|i| sym = "sym#{i}".to_sym}
+ GC.start
+ GC.start
+benchmark:
+ vm1_gc_short_with_symbol: |
+ a = '' # short-lived String
+ b = ''
+ c = ''
+ d = ''
+ e = ''
+ f = ''
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_wb_ary.yml b/benchmark/vm1_gc_wb_ary.yml
new file mode 100644
index 0000000000..50fb4b6f84
--- /dev/null
+++ b/benchmark/vm1_gc_wb_ary.yml
@@ -0,0 +1,12 @@
+prelude: |
+ short_lived_ary = []
+
+ if RUBY_VERSION >= "2.2.0"
+ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
+ end
+
+ short_lived = ''
+benchmark:
+ vm1_gc_wb_ary: |
+ short_lived_ary[0] = short_lived # write barrier
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_wb_ary_promoted.yml b/benchmark/vm1_gc_wb_ary_promoted.yml
new file mode 100644
index 0000000000..cf9b5de005
--- /dev/null
+++ b/benchmark/vm1_gc_wb_ary_promoted.yml
@@ -0,0 +1,15 @@
+prelude: |
+ long_lived = []
+
+ if RUBY_VERSION > "2.2.0"
+ 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
+ elsif
+ GC.start
+ end
+
+ short_lived = ''
+
+benchmark:
+ vm1_gc_wb_ary_promoted: |
+ long_lived[0] = short_lived # write barrier
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_wb_obj.yml b/benchmark/vm1_gc_wb_obj.yml
new file mode 100644
index 0000000000..9dc08e7e1a
--- /dev/null
+++ b/benchmark/vm1_gc_wb_obj.yml
@@ -0,0 +1,15 @@
+prelude: |
+ class C
+ attr_accessor :foo
+ end
+ short_lived_obj = C.new
+
+ if RUBY_VERSION >= "2.2.0"
+ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
+ end
+
+ short_lived = ''
+benchmark:
+ vm1_gc_wb_obj: |
+ short_lived_obj.foo = short_lived # write barrier
+loop_count: 30000000
diff --git a/benchmark/vm1_gc_wb_obj_promoted.yml b/benchmark/vm1_gc_wb_obj_promoted.yml
new file mode 100644
index 0000000000..26859d2a52
--- /dev/null
+++ b/benchmark/vm1_gc_wb_obj_promoted.yml
@@ -0,0 +1,17 @@
+prelude: |
+ class C
+ attr_accessor :foo
+ end
+ long_lived = C.new
+
+ if RUBY_VERSION >= "2.2.0"
+ 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
+ elsif
+ GC.start
+ end
+
+ short_lived = ''
+benchmark:
+ vm1_gc_wb_obj_promoted: |
+ long_lived.foo = short_lived # write barrier
+loop_count: 30000000
diff --git a/benchmark/vm1_ivar.yml b/benchmark/vm1_ivar.yml
new file mode 100644
index 0000000000..7aa6fac729
--- /dev/null
+++ b/benchmark/vm1_ivar.yml
@@ -0,0 +1,6 @@
+prelude: "@a = 1\n"
+benchmark:
+ vm1_ivar: |
+ j = @a
+ k = @a
+loop_count: 30000000
diff --git a/benchmark/vm1_ivar_set.yml b/benchmark/vm1_ivar_set.yml
new file mode 100644
index 0000000000..6f19412d16
--- /dev/null
+++ b/benchmark/vm1_ivar_set.yml
@@ -0,0 +1,5 @@
+benchmark:
+ vm1_ivar_set: |
+ @a = 1
+ @b = 2
+loop_count: 30000000
diff --git a/benchmark/vm1_length.yml b/benchmark/vm1_length.yml
new file mode 100644
index 0000000000..a18e2ca2e6
--- /dev/null
+++ b/benchmark/vm1_length.yml
@@ -0,0 +1,8 @@
+prelude: |
+ a = 'abc'
+ b = [1, 2, 3]
+benchmark:
+ vm1_length: |
+ a.length
+ b.length
+loop_count: 30000000
diff --git a/benchmark/vm1_lvar_init.yml b/benchmark/vm1_lvar_init.yml
new file mode 100644
index 0000000000..10e2becef9
--- /dev/null
+++ b/benchmark/vm1_lvar_init.yml
@@ -0,0 +1,21 @@
+# while loop cost is not removed because `i` is used in the script
+benchmark:
+ vm1_lvar_init: |
+ def m v
+ unless v
+ # unreachable code
+ v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =
+ v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =
+ v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =
+ v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =
+ v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1
+ end
+ end
+
+ i = 0
+
+ while i<30_000_000
+ i += 1
+ m i
+ end
+loop_count: 1
diff --git a/benchmark/vm1_lvar_set.yml b/benchmark/vm1_lvar_set.yml
new file mode 100644
index 0000000000..df8f6b6ea4
--- /dev/null
+++ b/benchmark/vm1_lvar_set.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm1_lvar_set: |
+ a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1
+loop_count: 30000000
diff --git a/benchmark/vm1_neq.yml b/benchmark/vm1_neq.yml
new file mode 100644
index 0000000000..65a8128dda
--- /dev/null
+++ b/benchmark/vm1_neq.yml
@@ -0,0 +1,7 @@
+prelude: |
+ obj1 = Object.new
+ obj2 = Object.new
+benchmark:
+ vm1_neq: |
+ obj1 != obj2
+loop_count: 30000000
diff --git a/benchmark/vm1_not.yml b/benchmark/vm1_not.yml
new file mode 100644
index 0000000000..0fb7b282a9
--- /dev/null
+++ b/benchmark/vm1_not.yml
@@ -0,0 +1,6 @@
+prelude: |
+ obj = Object.new
+benchmark:
+ vm1_not: |
+ !obj
+loop_count: 30000000
diff --git a/benchmark/vm1_rescue.yml b/benchmark/vm1_rescue.yml
new file mode 100644
index 0000000000..a175b823af
--- /dev/null
+++ b/benchmark/vm1_rescue.yml
@@ -0,0 +1,6 @@
+benchmark:
+ vm1_rescue: |
+ begin
+ rescue
+ end
+loop_count: 30000000
diff --git a/benchmark/vm1_simplereturn.yml b/benchmark/vm1_simplereturn.yml
new file mode 100644
index 0000000000..3564aac7e2
--- /dev/null
+++ b/benchmark/vm1_simplereturn.yml
@@ -0,0 +1,7 @@
+prelude: |
+ def m
+ return 1
+ end
+benchmark:
+ vm1_simplereturn: m
+loop_count: 30000000
diff --git a/benchmark/vm1_swap.yml b/benchmark/vm1_swap.yml
new file mode 100644
index 0000000000..fed87ccd62
--- /dev/null
+++ b/benchmark/vm1_swap.yml
@@ -0,0 +1,7 @@
+prelude: |
+ a = 1
+ b = 2
+benchmark:
+ vm1_swap: |
+ a, b = b, a
+loop_count: 30000000
diff --git a/benchmark/vm1_yield.yml b/benchmark/vm1_yield.yml
new file mode 100644
index 0000000000..ae1f9316f9
--- /dev/null
+++ b/benchmark/vm1_yield.yml
@@ -0,0 +1,13 @@
+# while loop cost is not removed due to benchmark_driver.gem's limitation
+benchmark:
+ vm1_yield: |
+ def m
+ i = 0
+ while i<30_000_000
+ i += 1
+ yield
+ end
+ end
+
+ m{}
+loop_count: 1
diff --git a/benchmark/vm2_array.yml b/benchmark/vm2_array.yml
new file mode 100644
index 0000000000..7373098d5e
--- /dev/null
+++ b/benchmark/vm2_array.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_array: |
+ a = [1,2,3,4,5,6,7,8,9,10]
+loop_count: 6000000
diff --git a/benchmark/vm2_bigarray.yml b/benchmark/vm2_bigarray.yml
new file mode 100644
index 0000000000..2ad6da3905
--- /dev/null
+++ b/benchmark/vm2_bigarray.yml
@@ -0,0 +1,105 @@
+benchmark:
+ vm2_bigarray: |
+ a = [
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ 1,2,3,4,5,6,7,8,9,10,
+ ]
+loop_count: 6000000
diff --git a/benchmark/vm2_bighash.yml b/benchmark/vm2_bighash.yml
new file mode 100644
index 0000000000..e9154e4ba9
--- /dev/null
+++ b/benchmark/vm2_bighash.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_bighash: |
+ a = {0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8, 9=>9, 10=>10, 11=>11, 12=>12, 13=>13, 14=>14, 15=>15, 16=>16, 17=>17, 18=>18, 19=>19, 20=>20, 21=>21, 22=>22, 23=>23, 24=>24, 25=>25, 26=>26, 27=>27, 28=>28, 29=>29, 30=>30, 31=>31, 32=>32, 33=>33, 34=>34, 35=>35, 36=>36, 37=>37, 38=>38, 39=>39, 40=>40, 41=>41, 42=>42, 43=>43, 44=>44, 45=>45, 46=>46, 47=>47, 48=>48, 49=>49, 50=>50, 51=>51, 52=>52, 53=>53, 54=>54, 55=>55, 56=>56, 57=>57, 58=>58, 59=>59, 60=>60, 61=>61, 62=>62, 63=>63, 64=>64, 65=>65, 66=>66, 67=>67, 68=>68, 69=>69, 70=>70, 71=>71, 72=>72, 73=>73, 74=>74, 75=>75, 76=>76, 77=>77, 78=>78, 79=>79, 80=>80, 81=>81, 82=>82, 83=>83, 84=>84, 85=>85, 86=>86, 87=>87, 88=>88, 89=>89, 90=>90, 91=>91, 92=>92, 93=>93, 94=>94, 95=>95, 96=>96, 97=>97, 98=>98, 99=>99, 100=>100, 101=>101, 102=>102, 103=>103, 104=>104, 105=>105, 106=>106, 107=>107, 108=>108, 109=>109, 110=>110, 111=>111, 112=>112, 113=>113, 114=>114, 115=>115, 116=>116, 117=>117, 118=>118, 119=>119, 120=>120, 121=>121, 122=>122, 123=>123, 124=>124, 125=>125, 126=>126, 127=>127, 128=>128, 129=>129, 130=>130, 131=>131, 132=>132, 133=>133, 134=>134, 135=>135, 136=>136, 137=>137, 138=>138, 139=>139, 140=>140, 141=>141, 142=>142, 143=>143, 144=>144, 145=>145, 146=>146, 147=>147, 148=>148, 149=>149, 150=>150, 151=>151, 152=>152, 153=>153, 154=>154, 155=>155, 156=>156, 157=>157, 158=>158, 159=>159, 160=>160, 161=>161, 162=>162, 163=>163, 164=>164, 165=>165, 166=>166, 167=>167, 168=>168, 169=>169, 170=>170, 171=>171, 172=>172, 173=>173, 174=>174, 175=>175, 176=>176, 177=>177, 178=>178, 179=>179, 180=>180, 181=>181, 182=>182, 183=>183, 184=>184, 185=>185, 186=>186, 187=>187, 188=>188, 189=>189, 190=>190, 191=>191, 192=>192, 193=>193, 194=>194, 195=>195, 196=>196, 197=>197, 198=>198, 199=>199, 200=>200, 201=>201, 202=>202, 203=>203, 204=>204, 205=>205, 206=>206, 207=>207, 208=>208, 209=>209, 210=>210, 211=>211, 212=>212, 213=>213, 214=>214, 215=>215, 216=>216, 217=>217, 218=>218, 219=>219, 220=>220, 221=>221, 222=>222, 223=>223, 224=>224, 225=>225, 226=>226, 227=>227, 228=>228, 229=>229, 230=>230, 231=>231, 232=>232, 233=>233, 234=>234, 235=>235, 236=>236, 237=>237, 238=>238, 239=>239, 240=>240, 241=>241, 242=>242, 243=>243, 244=>244, 245=>245, 246=>246, 247=>247, 248=>248, 249=>249, 250=>250, 251=>251, 252=>252, 253=>253, 254=>254, 255=>255, 256=>256, 257=>257, 258=>258, 259=>259, 260=>260, 261=>261, 262=>262, 263=>263, 264=>264, 265=>265, 266=>266, 267=>267, 268=>268, 269=>269, 270=>270, 271=>271, 272=>272, 273=>273, 274=>274, 275=>275, 276=>276, 277=>277, 278=>278, 279=>279, 280=>280, 281=>281, 282=>282, 283=>283, 284=>284, 285=>285, 286=>286, 287=>287, 288=>288, 289=>289, 290=>290, 291=>291, 292=>292, 293=>293, 294=>294, 295=>295, 296=>296, 297=>297, 298=>298, 299=>299, 300=>300, 301=>301, 302=>302, 303=>303, 304=>304, 305=>305, 306=>306, 307=>307, 308=>308, 309=>309, 310=>310, 311=>311, 312=>312, 313=>313, 314=>314, 315=>315, 316=>316, 317=>317, 318=>318, 319=>319, 320=>320, 321=>321, 322=>322, 323=>323, 324=>324, 325=>325, 326=>326, 327=>327, 328=>328, 329=>329, 330=>330, 331=>331, 332=>332, 333=>333, 334=>334, 335=>335, 336=>336, 337=>337, 338=>338, 339=>339, 340=>340, 341=>341, 342=>342, 343=>343, 344=>344, 345=>345, 346=>346, 347=>347, 348=>348, 349=>349, 350=>350, 351=>351, 352=>352, 353=>353, 354=>354, 355=>355, 356=>356, 357=>357, 358=>358, 359=>359, 360=>360, 361=>361, 362=>362, 363=>363, 364=>364, 365=>365, 366=>366, 367=>367, 368=>368, 369=>369, 370=>370, 371=>371, 372=>372, 373=>373, 374=>374, 375=>375, 376=>376, 377=>377, 378=>378, 379=>379, 380=>380, 381=>381, 382=>382, 383=>383, 384=>384, 385=>385, 386=>386, 387=>387, 388=>388, 389=>389, 390=>390, 391=>391, 392=>392, 393=>393, 394=>394, 395=>395, 396=>396, 397=>397, 398=>398, 399=>399, 400=>400, 401=>401, 402=>402, 403=>403, 404=>404, 405=>405, 406=>406, 407=>407, 408=>408, 409=>409, 410=>410, 411=>411, 412=>412, 413=>413, 414=>414, 415=>415, 416=>416, 417=>417, 418=>418, 419=>419, 420=>420, 421=>421, 422=>422, 423=>423, 424=>424, 425=>425, 426=>426, 427=>427, 428=>428, 429=>429, 430=>430, 431=>431, 432=>432, 433=>433, 434=>434, 435=>435, 436=>436, 437=>437, 438=>438, 439=>439, 440=>440, 441=>441, 442=>442, 443=>443, 444=>444, 445=>445, 446=>446, 447=>447, 448=>448, 449=>449, 450=>450, 451=>451, 452=>452, 453=>453, 454=>454, 455=>455, 456=>456, 457=>457, 458=>458, 459=>459, 460=>460, 461=>461, 462=>462, 463=>463, 464=>464, 465=>465, 466=>466, 467=>467, 468=>468, 469=>469, 470=>470, 471=>471, 472=>472, 473=>473, 474=>474, 475=>475, 476=>476, 477=>477, 478=>478, 479=>479, 480=>480, 481=>481, 482=>482, 483=>483, 484=>484, 485=>485, 486=>486, 487=>487, 488=>488, 489=>489, 490=>490, 491=>491, 492=>492, 493=>493, 494=>494, 495=>495, 496=>496, 497=>497, 498=>498, 499=>499, 500=>500,}
+loop_count: 60000
diff --git a/benchmark/vm2_case.yml b/benchmark/vm2_case.yml
new file mode 100644
index 0000000000..7716783c09
--- /dev/null
+++ b/benchmark/vm2_case.yml
@@ -0,0 +1,13 @@
+benchmark:
+ vm2_case: |
+ case :foo
+ when :bar
+ raise
+ when :baz
+ raise
+ when :boo
+ raise
+ when :foo
+ # noop
+ end
+loop_count: 6000000
diff --git a/benchmark/vm2_case_lit.yml b/benchmark/vm2_case_lit.yml
new file mode 100644
index 0000000000..c49b8dfe5e
--- /dev/null
+++ b/benchmark/vm2_case_lit.yml
@@ -0,0 +1,23 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_case_lit: |
+ i = 0
+ @ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]
+ def foo(i)
+ @ret[i % @ret.size]
+ end
+
+ while i<6_000_000
+ case foo(i)
+ when "foo" then :foo
+ when true then true
+ when false then false
+ when :sym then :sym
+ when 6 then :fix
+ when nil then nil
+ when 0.1 then :float
+ when 0xffffffffffffffff then :big
+ end
+ i += 1
+ end
+loop_count: 1
diff --git a/benchmark/vm2_defined_method.yml b/benchmark/vm2_defined_method.yml
new file mode 100644
index 0000000000..e1b0d55674
--- /dev/null
+++ b/benchmark/vm2_defined_method.yml
@@ -0,0 +1,8 @@
+prelude: |
+ class Object
+ define_method(:m){}
+ end
+benchmark:
+ vm2_defined_method: |
+ m; m; m; m; m; m; m; m;
+loop_count: 6000000
diff --git a/benchmark/vm2_dstr.yml b/benchmark/vm2_dstr.yml
new file mode 100644
index 0000000000..f8bd6e0133
--- /dev/null
+++ b/benchmark/vm2_dstr.yml
@@ -0,0 +1,6 @@
+prelude: |
+ x = y = 'z'
+benchmark:
+ vm2_dstr: |
+ str = "foo#{x}bar#{y}baz"
+loop_count: 6000000
diff --git a/benchmark/vm2_eval.yml b/benchmark/vm2_eval.yml
new file mode 100644
index 0000000000..d506a9c079
--- /dev/null
+++ b/benchmark/vm2_eval.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_eval: |
+ eval("1")
+loop_count: 6000000
diff --git a/benchmark/vm2_fiber_allocate.yml b/benchmark/vm2_fiber_allocate.yml
new file mode 100644
index 0000000000..f29705f694
--- /dev/null
+++ b/benchmark/vm2_fiber_allocate.yml
@@ -0,0 +1,8 @@
+prelude: |
+ # Disable GC to see raw throughput:
+ GC.disable
+benchmark:
+ vm2_fiber_allocate: |
+ fiber = Fiber.new{Fiber.yield}
+ fiber.resume
+loop_count: 100000
diff --git a/benchmark/vm2_fiber_count.yml b/benchmark/vm2_fiber_count.yml
new file mode 100644
index 0000000000..3ecf6bdcb2
--- /dev/null
+++ b/benchmark/vm2_fiber_count.yml
@@ -0,0 +1,10 @@
+# On Linux, you will need to increase the maximum number of memory maps:
+# sudo sysctl -w vm.max_map_count=200000
+prelude: |
+ fibers = []
+benchmark:
+ vm2_fiber_count: |
+ fiber = Fiber.new{Fiber.yield}
+ fibers << fiber
+ fiber.resume
+loop_count: 100000
diff --git a/benchmark/vm2_fiber_reuse.yml b/benchmark/vm2_fiber_reuse.yml
new file mode 100644
index 0000000000..0170650638
--- /dev/null
+++ b/benchmark/vm2_fiber_reuse.yml
@@ -0,0 +1,14 @@
+prelude: |
+ GC.disable
+ fibers = []
+benchmark:
+ vm2_fiber_reuse: |
+ 1024.times do
+ fiber = Fiber.new{Fiber.yield}
+ fibers << fiber
+ fiber.resume
+ end
+
+ fibers.clear
+ GC.start
+loop_count: 200
diff --git a/benchmark/vm2_fiber_reuse_gc.yml b/benchmark/vm2_fiber_reuse_gc.yml
new file mode 100644
index 0000000000..8fb91a84eb
--- /dev/null
+++ b/benchmark/vm2_fiber_reuse_gc.yml
@@ -0,0 +1,12 @@
+# https://bugs.ruby-lang.org/issues/16009
+prelude: |
+ fibers = []
+benchmark:
+ vm2_fiber_reuse_gc: |
+ 2000.times do
+ fiber = Fiber.new{Fiber.yield}
+ fibers << fiber
+ fiber.resume
+ end
+ fibers.clear
+loop_count: 100
diff --git a/benchmark/vm2_fiber_switch.yml b/benchmark/vm2_fiber_switch.yml
new file mode 100644
index 0000000000..fbf7283c29
--- /dev/null
+++ b/benchmark/vm2_fiber_switch.yml
@@ -0,0 +1,9 @@
+prelude: |
+ # based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke
+ fib = Fiber.new do
+ loop { Fiber.yield }
+ end
+benchmark:
+ vm2_fiber_switch: |
+ fib.resume
+loop_count: 20000000
diff --git a/benchmark/vm2_freezestring.yml b/benchmark/vm2_freezestring.yml
new file mode 100644
index 0000000000..b78af91a20
--- /dev/null
+++ b/benchmark/vm2_freezestring.yml
@@ -0,0 +1,10 @@
+prelude: |
+ class String
+ def freeze
+ -self
+ end
+ end
+benchmark:
+ vm2_freezestring: |
+ "tXnL1BP5T1WPXMjuFNLQtallEtRcay1t2lHtJSrlVsDgvunlbtfpr/DGdH0NGYE9".freeze
+loop_count: 6000000
diff --git a/benchmark/vm2_method.yml b/benchmark/vm2_method.yml
new file mode 100644
index 0000000000..cc7b9b28ff
--- /dev/null
+++ b/benchmark/vm2_method.yml
@@ -0,0 +1,8 @@
+prelude: |
+ def m
+ nil
+ end
+benchmark:
+ vm2_method: |
+ m; m; m; m; m; m; m; m;
+loop_count: 6000000
diff --git a/benchmark/vm2_method_missing.yml b/benchmark/vm2_method_missing.yml
new file mode 100644
index 0000000000..cbfb794b25
--- /dev/null
+++ b/benchmark/vm2_method_missing.yml
@@ -0,0 +1,11 @@
+prelude: |
+ class C
+ def method_missing mid
+ end
+ end
+
+ obj = C.new
+benchmark:
+ vm2_method_missing: |
+ obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;
+loop_count: 6000000
diff --git a/benchmark/vm2_method_with_block.yml b/benchmark/vm2_method_with_block.yml
new file mode 100644
index 0000000000..6e522adccc
--- /dev/null
+++ b/benchmark/vm2_method_with_block.yml
@@ -0,0 +1,8 @@
+prelude: |
+ def m
+ nil
+ end
+benchmark:
+ vm2_method_with_block: |
+ m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};
+loop_count: 6000000
diff --git a/benchmark/vm2_module_ann_const_set.yml b/benchmark/vm2_module_ann_const_set.yml
new file mode 100644
index 0000000000..b0becd9d3d
--- /dev/null
+++ b/benchmark/vm2_module_ann_const_set.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_module_ann_const_set: |
+ Module.new.const_set(:X, Module.new)
+loop_count: 6000000
diff --git a/benchmark/vm2_module_const_set.yml b/benchmark/vm2_module_const_set.yml
new file mode 100644
index 0000000000..05a640069c
--- /dev/null
+++ b/benchmark/vm2_module_const_set.yml
@@ -0,0 +1,8 @@
+prelude: |
+ module M
+ end
+ $VERBOSE = nil
+benchmark:
+ vm2_module_const_set: |
+ M.const_set(:X, Module.new)
+loop_count: 6000000
diff --git a/benchmark/vm2_mutex.yml b/benchmark/vm2_mutex.yml
new file mode 100644
index 0000000000..c40a90444a
--- /dev/null
+++ b/benchmark/vm2_mutex.yml
@@ -0,0 +1,8 @@
+prelude: |
+ require 'thread'
+
+ m = Thread::Mutex.new
+benchmark:
+ vm2_mutex: |
+ m.synchronize{}
+loop_count: 6000000
diff --git a/benchmark/vm2_newlambda.yml b/benchmark/vm2_newlambda.yml
new file mode 100644
index 0000000000..93133f9f30
--- /dev/null
+++ b/benchmark/vm2_newlambda.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_newlambda: |
+ lambda {}
+loop_count: 6000000
diff --git a/benchmark/vm2_poly_method.yml b/benchmark/vm2_poly_method.yml
new file mode 100644
index 0000000000..0104bdfb66
--- /dev/null
+++ b/benchmark/vm2_poly_method.yml
@@ -0,0 +1,24 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_poly_method: |
+ class C1
+ def m
+ 1
+ end
+ end
+ class C2
+ def m
+ 2
+ end
+ end
+
+ o1 = C1.new
+ o2 = C2.new
+
+ i = 0
+ while i<6_000_000
+ o = (i % 2 == 0) ? o1 : o2
+ o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
+ i += 1
+ end
+loop_count: 1
diff --git a/benchmark/vm2_poly_method_ov.yml b/benchmark/vm2_poly_method_ov.yml
new file mode 100644
index 0000000000..3748073ba2
--- /dev/null
+++ b/benchmark/vm2_poly_method_ov.yml
@@ -0,0 +1,24 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_poly_method_ov: |
+ class C1
+ def m
+ 1
+ end
+ end
+ class C2
+ def m
+ 2
+ end
+ end
+
+ o1 = C1.new
+ o2 = C2.new
+
+ i = 0
+ while i<6_000_000
+ o = (i % 2 == 0) ? o1 : o2
+ # o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
+ i += 1
+ end
+loop_count: 1
diff --git a/benchmark/vm2_poly_same_method.yml b/benchmark/vm2_poly_same_method.yml
new file mode 100644
index 0000000000..867c433cf8
--- /dev/null
+++ b/benchmark/vm2_poly_same_method.yml
@@ -0,0 +1,25 @@
+prelude: |
+ module AR; end
+ class AR::Base
+ def create_or_update
+ nil
+ end
+ def save
+ create_or_update
+ end
+ end
+ class Foo < AR::Base; end
+ class Bar < AR::Base; end
+ o1 = Foo.new
+ o2 = Bar.new
+benchmark:
+ vm2_poly_same_method: |
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+ o1.save; o2.save;
+loop_count: 6000000
diff --git a/benchmark/vm2_poly_singleton.yml b/benchmark/vm2_poly_singleton.yml
new file mode 100644
index 0000000000..e58d7bfb37
--- /dev/null
+++ b/benchmark/vm2_poly_singleton.yml
@@ -0,0 +1,18 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_poly_singleton: |
+ class C1
+ def m; 1; end
+ end
+
+ o1 = C1.new
+ o2 = C1.new
+ o2.singleton_class
+
+ i = 0
+ while i<6_000_000 # benchmark loop 2
+ o = (i % 2 == 0) ? o1 : o2
+ o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
+ i += 1
+ end
+loop_count: 1
diff --git a/benchmark/vm2_proc.yml b/benchmark/vm2_proc.yml
new file mode 100644
index 0000000000..5c36e936d9
--- /dev/null
+++ b/benchmark/vm2_proc.yml
@@ -0,0 +1,12 @@
+prelude: |
+ def m &b
+ b
+ end
+
+ pr = m{
+ a = 1
+ }
+benchmark:
+ vm2_proc: |
+ pr.call
+loop_count: 6000000
diff --git a/benchmark/vm2_raise1.yml b/benchmark/vm2_raise1.yml
new file mode 100644
index 0000000000..f6eb308968
--- /dev/null
+++ b/benchmark/vm2_raise1.yml
@@ -0,0 +1,16 @@
+prelude: |
+ def rec n
+ if n > 0
+ rec n-1
+ else
+ raise
+ end
+ end
+benchmark:
+ vm2_raise1: |
+ begin
+ rec 1
+ rescue
+ # ignore
+ end
+loop_count: 6000000
diff --git a/benchmark/vm2_raise2.yml b/benchmark/vm2_raise2.yml
new file mode 100644
index 0000000000..7d51b1b314
--- /dev/null
+++ b/benchmark/vm2_raise2.yml
@@ -0,0 +1,16 @@
+prelude: |
+ def rec n
+ if n > 0
+ rec n-1
+ else
+ raise
+ end
+ end
+benchmark:
+ vm2_raise2: |
+ begin
+ rec 10
+ rescue
+ # ignore
+ end
+loop_count: 6000000
diff --git a/benchmark/vm2_regexp.yml b/benchmark/vm2_regexp.yml
new file mode 100644
index 0000000000..e53341f43b
--- /dev/null
+++ b/benchmark/vm2_regexp.yml
@@ -0,0 +1,8 @@
+prelude: |
+ str = 'xxxhogexxx'
+benchmark:
+ vm2_regexp: |
+ /hoge/ =~ str
+ vm2_regexp_invert: |
+ str =~ /hoge/
+loop_count: 6000000
diff --git a/benchmark/vm2_send.yml b/benchmark/vm2_send.yml
new file mode 100644
index 0000000000..44a12a27d9
--- /dev/null
+++ b/benchmark/vm2_send.yml
@@ -0,0 +1,11 @@
+prelude: |
+ class C
+ def m
+ end
+ end
+
+ o = C.new
+benchmark:
+ vm2_send: |
+ o.__send__ :m
+loop_count: 6000000
diff --git a/benchmark/vm2_string_literal.yml b/benchmark/vm2_string_literal.yml
new file mode 100644
index 0000000000..54b0aec1fe
--- /dev/null
+++ b/benchmark/vm2_string_literal.yml
@@ -0,0 +1,4 @@
+benchmark:
+ vm2_string_literal: |
+ x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_big_aref_hi.yml b/benchmark/vm2_struct_big_aref_hi.yml
new file mode 100644
index 0000000000..eed1846d28
--- /dev/null
+++ b/benchmark/vm2_struct_big_aref_hi.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+benchmark:
+ vm2_struct_big_aref_hi: |
+ x.z # x[25]
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_big_aref_lo.yml b/benchmark/vm2_struct_big_aref_lo.yml
new file mode 100644
index 0000000000..0915435b76
--- /dev/null
+++ b/benchmark/vm2_struct_big_aref_lo.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+benchmark:
+ vm2_struct_big_aref_lo: |
+ x.k # x[10]
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_big_aset.yml b/benchmark/vm2_struct_big_aset.yml
new file mode 100644
index 0000000000..6af50103d3
--- /dev/null
+++ b/benchmark/vm2_struct_big_aset.yml
@@ -0,0 +1,11 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_struct_big_aset: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+ i = 0
+ while i<6_000_000
+ i += 1
+ x.k = i # x[10] = i
+ end
+loop_count: 1
diff --git a/benchmark/vm2_struct_big_href_hi.yml b/benchmark/vm2_struct_big_href_hi.yml
new file mode 100644
index 0000000000..60aa7fddf3
--- /dev/null
+++ b/benchmark/vm2_struct_big_href_hi.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+benchmark:
+ vm2_struct_big_href_hi: |
+ x[:z]
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_big_href_lo.yml b/benchmark/vm2_struct_big_href_lo.yml
new file mode 100644
index 0000000000..c55c0bd16c
--- /dev/null
+++ b/benchmark/vm2_struct_big_href_lo.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+benchmark:
+ vm2_struct_big_href_lo: |
+ x[:k]
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_big_hset.yml b/benchmark/vm2_struct_big_hset.yml
new file mode 100644
index 0000000000..d199c5bd47
--- /dev/null
+++ b/benchmark/vm2_struct_big_hset.yml
@@ -0,0 +1,11 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_struct_big_hset: |
+ s = Struct.new(*('a'..'z').map { |x| x.to_sym })
+ x = s.new
+ i = 0
+ while i<6_000_000
+ i += 1
+ x[:k] = i
+ end
+loop_count: 1
diff --git a/benchmark/vm2_struct_small_aref.yml b/benchmark/vm2_struct_small_aref.yml
new file mode 100644
index 0000000000..83381bed3a
--- /dev/null
+++ b/benchmark/vm2_struct_small_aref.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(:a, :b, :c)
+ x = s.new
+benchmark:
+ vm2_struct_small_aref: |
+ x.a
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_small_aset.yml b/benchmark/vm2_struct_small_aset.yml
new file mode 100644
index 0000000000..3e84a61dd0
--- /dev/null
+++ b/benchmark/vm2_struct_small_aset.yml
@@ -0,0 +1,11 @@
+# loop_count is not utilized since `i` is involved in the script
+benchmark:
+ vm2_struct_small_aset: |
+ s = Struct.new(:a, :b, :c)
+ x = s.new
+ i = 0
+ while i<6_000_000
+ i += 1
+ x.a = i
+ end
+loop_count: 1
diff --git a/benchmark/vm2_struct_small_href.yml b/benchmark/vm2_struct_small_href.yml
new file mode 100644
index 0000000000..b744f070d1
--- /dev/null
+++ b/benchmark/vm2_struct_small_href.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(:a, :b, :c)
+ x = s.new
+benchmark:
+ vm2_struct_small_href: |
+ x[:a]
+loop_count: 6000000
diff --git a/benchmark/vm2_struct_small_hset.yml b/benchmark/vm2_struct_small_hset.yml
new file mode 100644
index 0000000000..d43845d6e0
--- /dev/null
+++ b/benchmark/vm2_struct_small_hset.yml
@@ -0,0 +1,7 @@
+prelude: |
+ s = Struct.new(:a, :b, :c)
+ x = s.new
+benchmark:
+ vm2_struct_small_hset: |
+ x[:a] = 1
+loop_count: 6000000
diff --git a/benchmark/vm2_super.yml b/benchmark/vm2_super.yml
new file mode 100644
index 0000000000..674743762a
--- /dev/null
+++ b/benchmark/vm2_super.yml
@@ -0,0 +1,17 @@
+prelude: |
+ class C
+ def m
+ 1
+ end
+ end
+
+ class CC < C
+ def m
+ super()
+ end
+ end
+
+ obj = CC.new
+benchmark:
+ vm2_super: obj.m
+loop_count: 6000000
diff --git a/benchmark/vm2_unif1.yml b/benchmark/vm2_unif1.yml
new file mode 100644
index 0000000000..caef13279f
--- /dev/null
+++ b/benchmark/vm2_unif1.yml
@@ -0,0 +1,7 @@
+prelude: |
+ def m a, b
+ end
+benchmark:
+ vm2_unif1: |
+ m 100, 200
+loop_count: 6000000
diff --git a/benchmark/vm2_zsuper.yml b/benchmark/vm2_zsuper.yml
new file mode 100644
index 0000000000..f760cfd48e
--- /dev/null
+++ b/benchmark/vm2_zsuper.yml
@@ -0,0 +1,18 @@
+prelude: |
+ class C
+ def m a
+ 1
+ end
+ end
+
+ class CC < C
+ def m a
+ super
+ end
+ end
+
+ obj = CC.new
+benchmark:
+ vm2_zsuper: |
+ obj.m 10
+loop_count: 6000000
diff --git a/benchmark/vm_backtrace.rb b/benchmark/vm3_backtrace.rb
index 0fbf73e1ca..0fbf73e1ca 100644
--- a/benchmark/vm_backtrace.rb
+++ b/benchmark/vm3_backtrace.rb
diff --git a/benchmark/vm_clearmethodcache.rb b/benchmark/vm3_clearmethodcache.rb
index 9661323cd2..9661323cd2 100644
--- a/benchmark/vm_clearmethodcache.rb
+++ b/benchmark/vm3_clearmethodcache.rb
diff --git a/benchmark/vm_gc.rb b/benchmark/vm3_gc.rb
index e668026915..e668026915 100644
--- a/benchmark/vm_gc.rb
+++ b/benchmark/vm3_gc.rb
diff --git a/benchmark/vm_gc_old_full.rb b/benchmark/vm3_gc_old_full.rb
index cfdfc8c5a5..cfdfc8c5a5 100644
--- a/benchmark/vm_gc_old_full.rb
+++ b/benchmark/vm3_gc_old_full.rb
diff --git a/benchmark/vm_gc_old_immediate.rb b/benchmark/vm3_gc_old_immediate.rb
index ad22feb655..ad22feb655 100644
--- a/benchmark/vm_gc_old_immediate.rb
+++ b/benchmark/vm3_gc_old_immediate.rb
diff --git a/benchmark/vm_gc_old_lazy.rb b/benchmark/vm3_gc_old_lazy.rb
index b74d44baf1..b74d44baf1 100644
--- a/benchmark/vm_gc_old_lazy.rb
+++ b/benchmark/vm3_gc_old_lazy.rb
diff --git a/benchmark/vm_array.yml b/benchmark/vm_array.yml
deleted file mode 100644
index 2a177237ef..0000000000
--- a/benchmark/vm_array.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_array: |
- a = [1,2,3,4,5,6,7,8,9,10]
-loop_count: 6000000
diff --git a/benchmark/vm_attr_ivar.yml b/benchmark/vm_attr_ivar.yml
deleted file mode 100644
index 75b803478e..0000000000
--- a/benchmark/vm_attr_ivar.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- attr_reader :a, :b
- def initialize
- @a = nil
- @b = nil
- end
- end
- obj = C.new
-benchmark:
- vm_attr_ivar: |
- j = obj.a
- k = obj.b
-loop_count: 30000000
diff --git a/benchmark/vm_attr_ivar_set.yml b/benchmark/vm_attr_ivar_set.yml
deleted file mode 100644
index a0d379b18a..0000000000
--- a/benchmark/vm_attr_ivar_set.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- attr_accessor :a, :b
- def initialize
- @a = nil
- @b = nil
- end
- end
- obj = C.new
-benchmark:
- vm_attr_ivar_set: |
- obj.a = 1
- obj.b = 2
-loop_count: 30000000
diff --git a/benchmark/vm_bigarray.yml b/benchmark/vm_bigarray.yml
deleted file mode 100644
index 8b2d3f3443..0000000000
--- a/benchmark/vm_bigarray.yml
+++ /dev/null
@@ -1,105 +0,0 @@
-benchmark:
- vm_bigarray: |
- a = [
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- ]
-loop_count: 6000000
diff --git a/benchmark/vm_bighash.yml b/benchmark/vm_bighash.yml
deleted file mode 100644
index 4dacfde793..0000000000
--- a/benchmark/vm_bighash.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_bighash: |
- a = {0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8, 9=>9, 10=>10, 11=>11, 12=>12, 13=>13, 14=>14, 15=>15, 16=>16, 17=>17, 18=>18, 19=>19, 20=>20, 21=>21, 22=>22, 23=>23, 24=>24, 25=>25, 26=>26, 27=>27, 28=>28, 29=>29, 30=>30, 31=>31, 32=>32, 33=>33, 34=>34, 35=>35, 36=>36, 37=>37, 38=>38, 39=>39, 40=>40, 41=>41, 42=>42, 43=>43, 44=>44, 45=>45, 46=>46, 47=>47, 48=>48, 49=>49, 50=>50, 51=>51, 52=>52, 53=>53, 54=>54, 55=>55, 56=>56, 57=>57, 58=>58, 59=>59, 60=>60, 61=>61, 62=>62, 63=>63, 64=>64, 65=>65, 66=>66, 67=>67, 68=>68, 69=>69, 70=>70, 71=>71, 72=>72, 73=>73, 74=>74, 75=>75, 76=>76, 77=>77, 78=>78, 79=>79, 80=>80, 81=>81, 82=>82, 83=>83, 84=>84, 85=>85, 86=>86, 87=>87, 88=>88, 89=>89, 90=>90, 91=>91, 92=>92, 93=>93, 94=>94, 95=>95, 96=>96, 97=>97, 98=>98, 99=>99, 100=>100, 101=>101, 102=>102, 103=>103, 104=>104, 105=>105, 106=>106, 107=>107, 108=>108, 109=>109, 110=>110, 111=>111, 112=>112, 113=>113, 114=>114, 115=>115, 116=>116, 117=>117, 118=>118, 119=>119, 120=>120, 121=>121, 122=>122, 123=>123, 124=>124, 125=>125, 126=>126, 127=>127, 128=>128, 129=>129, 130=>130, 131=>131, 132=>132, 133=>133, 134=>134, 135=>135, 136=>136, 137=>137, 138=>138, 139=>139, 140=>140, 141=>141, 142=>142, 143=>143, 144=>144, 145=>145, 146=>146, 147=>147, 148=>148, 149=>149, 150=>150, 151=>151, 152=>152, 153=>153, 154=>154, 155=>155, 156=>156, 157=>157, 158=>158, 159=>159, 160=>160, 161=>161, 162=>162, 163=>163, 164=>164, 165=>165, 166=>166, 167=>167, 168=>168, 169=>169, 170=>170, 171=>171, 172=>172, 173=>173, 174=>174, 175=>175, 176=>176, 177=>177, 178=>178, 179=>179, 180=>180, 181=>181, 182=>182, 183=>183, 184=>184, 185=>185, 186=>186, 187=>187, 188=>188, 189=>189, 190=>190, 191=>191, 192=>192, 193=>193, 194=>194, 195=>195, 196=>196, 197=>197, 198=>198, 199=>199, 200=>200, 201=>201, 202=>202, 203=>203, 204=>204, 205=>205, 206=>206, 207=>207, 208=>208, 209=>209, 210=>210, 211=>211, 212=>212, 213=>213, 214=>214, 215=>215, 216=>216, 217=>217, 218=>218, 219=>219, 220=>220, 221=>221, 222=>222, 223=>223, 224=>224, 225=>225, 226=>226, 227=>227, 228=>228, 229=>229, 230=>230, 231=>231, 232=>232, 233=>233, 234=>234, 235=>235, 236=>236, 237=>237, 238=>238, 239=>239, 240=>240, 241=>241, 242=>242, 243=>243, 244=>244, 245=>245, 246=>246, 247=>247, 248=>248, 249=>249, 250=>250, 251=>251, 252=>252, 253=>253, 254=>254, 255=>255, 256=>256, 257=>257, 258=>258, 259=>259, 260=>260, 261=>261, 262=>262, 263=>263, 264=>264, 265=>265, 266=>266, 267=>267, 268=>268, 269=>269, 270=>270, 271=>271, 272=>272, 273=>273, 274=>274, 275=>275, 276=>276, 277=>277, 278=>278, 279=>279, 280=>280, 281=>281, 282=>282, 283=>283, 284=>284, 285=>285, 286=>286, 287=>287, 288=>288, 289=>289, 290=>290, 291=>291, 292=>292, 293=>293, 294=>294, 295=>295, 296=>296, 297=>297, 298=>298, 299=>299, 300=>300, 301=>301, 302=>302, 303=>303, 304=>304, 305=>305, 306=>306, 307=>307, 308=>308, 309=>309, 310=>310, 311=>311, 312=>312, 313=>313, 314=>314, 315=>315, 316=>316, 317=>317, 318=>318, 319=>319, 320=>320, 321=>321, 322=>322, 323=>323, 324=>324, 325=>325, 326=>326, 327=>327, 328=>328, 329=>329, 330=>330, 331=>331, 332=>332, 333=>333, 334=>334, 335=>335, 336=>336, 337=>337, 338=>338, 339=>339, 340=>340, 341=>341, 342=>342, 343=>343, 344=>344, 345=>345, 346=>346, 347=>347, 348=>348, 349=>349, 350=>350, 351=>351, 352=>352, 353=>353, 354=>354, 355=>355, 356=>356, 357=>357, 358=>358, 359=>359, 360=>360, 361=>361, 362=>362, 363=>363, 364=>364, 365=>365, 366=>366, 367=>367, 368=>368, 369=>369, 370=>370, 371=>371, 372=>372, 373=>373, 374=>374, 375=>375, 376=>376, 377=>377, 378=>378, 379=>379, 380=>380, 381=>381, 382=>382, 383=>383, 384=>384, 385=>385, 386=>386, 387=>387, 388=>388, 389=>389, 390=>390, 391=>391, 392=>392, 393=>393, 394=>394, 395=>395, 396=>396, 397=>397, 398=>398, 399=>399, 400=>400, 401=>401, 402=>402, 403=>403, 404=>404, 405=>405, 406=>406, 407=>407, 408=>408, 409=>409, 410=>410, 411=>411, 412=>412, 413=>413, 414=>414, 415=>415, 416=>416, 417=>417, 418=>418, 419=>419, 420=>420, 421=>421, 422=>422, 423=>423, 424=>424, 425=>425, 426=>426, 427=>427, 428=>428, 429=>429, 430=>430, 431=>431, 432=>432, 433=>433, 434=>434, 435=>435, 436=>436, 437=>437, 438=>438, 439=>439, 440=>440, 441=>441, 442=>442, 443=>443, 444=>444, 445=>445, 446=>446, 447=>447, 448=>448, 449=>449, 450=>450, 451=>451, 452=>452, 453=>453, 454=>454, 455=>455, 456=>456, 457=>457, 458=>458, 459=>459, 460=>460, 461=>461, 462=>462, 463=>463, 464=>464, 465=>465, 466=>466, 467=>467, 468=>468, 469=>469, 470=>470, 471=>471, 472=>472, 473=>473, 474=>474, 475=>475, 476=>476, 477=>477, 478=>478, 479=>479, 480=>480, 481=>481, 482=>482, 483=>483, 484=>484, 485=>485, 486=>486, 487=>487, 488=>488, 489=>489, 490=>490, 491=>491, 492=>492, 493=>493, 494=>494, 495=>495, 496=>496, 497=>497, 498=>498, 499=>499, 500=>500,}
-loop_count: 60000
diff --git a/benchmark/vm_block.yml b/benchmark/vm_block.yml
deleted file mode 100644
index 68b3e40bf5..0000000000
--- a/benchmark/vm_block.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-prelude: |
- def m
- yield
- end
-benchmark:
- vm_block: |
- m{
- }
-loop_count: 30000000
diff --git a/benchmark/vm_block_handler.yml b/benchmark/vm_block_handler.yml
deleted file mode 100644
index 461d7953ad..0000000000
--- a/benchmark/vm_block_handler.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# :FIXME: is there a way to benchmark block_handler_type_ifunc?
-
-prelude: |
- p = proc{_1}
- o = Object.new
- def o.each
- i = 0
- while i < 3_000_000 do
- yield i
- i += 1
- end
- end
-
-benchmark:
- - name: block_handler_type_iseq
- script: |
- o.each{_1}
-
- - name: block_handler_type_symbol
- script: |
- o.each(&:itself)
-
- - name: block_handler_type_proc
- script: |
- o.each(&p)
-
-loop_count: 1
diff --git a/benchmark/vm_blockparam.yml b/benchmark/vm_blockparam.yml
deleted file mode 100644
index 5e5a0170a2..0000000000
--- a/benchmark/vm_blockparam.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m &b
- end
-benchmark:
- vm_blockparam: |
- m{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_call.yml b/benchmark/vm_blockparam_call.yml
deleted file mode 100644
index a7d8d366ea..0000000000
--- a/benchmark/vm_blockparam_call.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m &b
- b.call
- end
-benchmark:
- vm_blockparam_call: |
- m{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_pass.yml b/benchmark/vm_blockparam_pass.yml
deleted file mode 100644
index 841f5e7a63..0000000000
--- a/benchmark/vm_blockparam_pass.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- def bp_yield
- yield
- end
-
- def bp_pass &b
- bp_yield &b
- end
-benchmark:
- vm_blockparam_pass: |
- bp_pass{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_yield.yml b/benchmark/vm_blockparam_yield.yml
deleted file mode 100644
index 8ea9b46ed2..0000000000
--- a/benchmark/vm_blockparam_yield.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def bp_yield &b
- yield
- end
-benchmark:
- vm_blockparam_yield: |
- bp_yield{}
-loop_count: 30000000
diff --git a/benchmark/vm_case.yml b/benchmark/vm_case.yml
deleted file mode 100644
index b26a491a15..0000000000
--- a/benchmark/vm_case.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-benchmark:
- vm_case: |
- case :foo
- when :bar
- raise
- when :baz
- raise
- when :boo
- raise
- when :foo
- # noop
- end
-loop_count: 6000000
diff --git a/benchmark/vm_case_lit.yml b/benchmark/vm_case_lit.yml
deleted file mode 100644
index 9f91801544..0000000000
--- a/benchmark/vm_case_lit.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_case_lit: |
- i = 0
- @ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]
- def foo(i)
- @ret[i % @ret.size]
- end
-
- while i<6_000_000
- case foo(i)
- when "foo" then :foo
- when true then true
- when false then false
- when :sym then :sym
- when 6 then :fix
- when nil then nil
- when 0.1 then :float
- when 0xffffffffffffffff then :big
- end
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_const.yml b/benchmark/vm_const.yml
deleted file mode 100644
index 6064d4eed0..0000000000
--- a/benchmark/vm_const.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- Const = 1
-benchmark:
- vm_const: |
- j = Const
- k = Const
-loop_count: 30000000
diff --git a/benchmark/vm_defined_method.yml b/benchmark/vm_defined_method.yml
deleted file mode 100644
index 347e0cfd33..0000000000
--- a/benchmark/vm_defined_method.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- class Object
- define_method(:m){}
- end
-benchmark:
- vm_defined_method: |
- m; m; m; m; m; m; m; m;
-loop_count: 6000000
diff --git a/benchmark/vm_dstr.yml b/benchmark/vm_dstr.yml
deleted file mode 100644
index 30c7a3193c..0000000000
--- a/benchmark/vm_dstr.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- x = y = 'z'
-benchmark:
- vm_dstr: |
- str = "foo#{x}bar#{y}baz"
-loop_count: 6000000
diff --git a/benchmark/vm_ensure.yml b/benchmark/vm_ensure.yml
deleted file mode 100644
index 4ea62f30de..0000000000
--- a/benchmark/vm_ensure.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-# Not utilizing loop_count since using it for this is too unstable for now
-benchmark:
- vm_ensure: |
- i = 0
- while i<30_000_000
- i += 1
- begin
- begin
- ensure
- end
- ensure
- end
- end
-loop_count: 1
diff --git a/benchmark/vm_eval.yml b/benchmark/vm_eval.yml
deleted file mode 100644
index 7ba1a8d1de..0000000000
--- a/benchmark/vm_eval.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_eval: |
- eval("1")
-loop_count: 6000000
diff --git a/benchmark/vm_fiber_allocate.yml b/benchmark/vm_fiber_allocate.yml
deleted file mode 100644
index b5a54e1ddf..0000000000
--- a/benchmark/vm_fiber_allocate.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- # Disable GC to see raw throughput:
- GC.disable
-benchmark:
- vm_fiber_allocate: |
- fiber = Fiber.new{Fiber.yield}
- fiber.resume
-loop_count: 100000
diff --git a/benchmark/vm_fiber_count.yml b/benchmark/vm_fiber_count.yml
deleted file mode 100644
index b83d3152d4..0000000000
--- a/benchmark/vm_fiber_count.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-# On Linux, you will need to increase the maximum number of memory maps:
-# sudo sysctl -w vm.max_map_count=200000
-prelude: |
- fibers = []
-benchmark:
- vm_fiber_count: |
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
-loop_count: 100000
diff --git a/benchmark/vm_fiber_reuse.yml b/benchmark/vm_fiber_reuse.yml
deleted file mode 100644
index 4ca41085b1..0000000000
--- a/benchmark/vm_fiber_reuse.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- GC.disable
- fibers = []
-benchmark:
- vm_fiber_reuse: |
- 1024.times do
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
- end
-
- fibers.clear
- GC.start
-loop_count: 200
diff --git a/benchmark/vm_fiber_reuse_gc.yml b/benchmark/vm_fiber_reuse_gc.yml
deleted file mode 100644
index 892622f121..0000000000
--- a/benchmark/vm_fiber_reuse_gc.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# https://bugs.ruby-lang.org/issues/16009
-prelude: |
- fibers = []
-benchmark:
- vm_fiber_reuse_gc: |
- 2000.times do
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
- end
- fibers.clear
-loop_count: 100
diff --git a/benchmark/vm_fiber_switch.yml b/benchmark/vm_fiber_switch.yml
deleted file mode 100644
index 3de36b66eb..0000000000
--- a/benchmark/vm_fiber_switch.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-prelude: |
- # based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke
- fib = Fiber.new do
- loop { Fiber.yield }
- end
-benchmark:
- vm_fiber_switch: |
- fib.resume
-loop_count: 20000000
diff --git a/benchmark/vm_float_simple.yml b/benchmark/vm_float_simple.yml
deleted file mode 100644
index 92f5fd52ab..0000000000
--- a/benchmark/vm_float_simple.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- f = 0.0
-benchmark:
- vm_float_simple: |
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
-loop_count: 30000000
diff --git a/benchmark/vm_freezestring.yml b/benchmark/vm_freezestring.yml
deleted file mode 100644
index facc9aa043..0000000000
--- a/benchmark/vm_freezestring.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-prelude: |
- class String
- def freeze
- -self
- end
- end
-benchmark:
- vm_freezestring: |
- "tXnL1BP5T1WPXMjuFNLQtallEtRcay1t2lHtJSrlVsDgvunlbtfpr/DGdH0NGYE9".freeze
-loop_count: 6000000
diff --git a/benchmark/vm_gc_short_lived.yml b/benchmark/vm_gc_short_lived.yml
deleted file mode 100644
index 29c803fee3..0000000000
--- a/benchmark/vm_gc_short_lived.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-benchmark:
- vm_gc_short_lived: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_complex_long.yml b/benchmark/vm_gc_short_with_complex_long.yml
deleted file mode 100644
index 4b6c3ed7b9..0000000000
--- a/benchmark/vm_gc_short_with_complex_long.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-prelude: |
- def nested_hash h, n
- if n == 0
- ''
- else
- 10.times{
- h[Object.new] = nested_hash(h, n-1)
- }
- end
- end
-
- long_lived = Hash.new
- nested_hash long_lived, 6
-
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_complex_long: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_long.yml b/benchmark/vm_gc_short_with_long.yml
deleted file mode 100644
index 03ba0f95a9..0000000000
--- a/benchmark/vm_gc_short_with_long.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- long_lived = Array.new(1_000_000){|i| "#{i}"}
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_long: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_symbol.yml b/benchmark/vm_gc_short_with_symbol.yml
deleted file mode 100644
index 129b8bf4ed..0000000000
--- a/benchmark/vm_gc_short_with_symbol.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- 50_000.times{|i| sym = "sym#{i}".to_sym}
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_symbol: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_ary.yml b/benchmark/vm_gc_wb_ary.yml
deleted file mode 100644
index e3293e72d0..0000000000
--- a/benchmark/vm_gc_wb_ary.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- short_lived_ary = []
-
- if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_ary: |
- short_lived_ary[0] = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_ary_promoted.yml b/benchmark/vm_gc_wb_ary_promoted.yml
deleted file mode 100644
index 003995945b..0000000000
--- a/benchmark/vm_gc_wb_ary_promoted.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-prelude: |
- long_lived = []
-
- if RUBY_VERSION > "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
- elsif
- GC.start
- end
-
- short_lived = ''
-
-benchmark:
- vm_gc_wb_ary_promoted: |
- long_lived[0] = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_obj.yml b/benchmark/vm_gc_wb_obj.yml
deleted file mode 100644
index a2a2ce2d18..0000000000
--- a/benchmark/vm_gc_wb_obj.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-prelude: |
- class C
- attr_accessor :foo
- end
- short_lived_obj = C.new
-
- if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_obj: |
- short_lived_obj.foo = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_obj_promoted.yml b/benchmark/vm_gc_wb_obj_promoted.yml
deleted file mode 100644
index 00a454ba72..0000000000
--- a/benchmark/vm_gc_wb_obj_promoted.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class C
- attr_accessor :foo
- end
- long_lived = C.new
-
- if RUBY_VERSION >= "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
- elsif
- GC.start
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_obj_promoted: |
- long_lived.foo = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_iclass_super.yml b/benchmark/vm_iclass_super.yml
deleted file mode 100644
index 21bb7db247..0000000000
--- a/benchmark/vm_iclass_super.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-prelude: |
- class C
- def m
- 1
- end
-
- ("A".."M").each do |module_name|
- eval <<-EOM
- module #{module_name}
- def m; super; end
- end
- prepend #{module_name}
- EOM
- end
- end
-
- obj = C.new
-benchmark:
- vm_iclass_super: obj.m
-loop_count: 6000000
diff --git a/benchmark/vm_ivar.yml b/benchmark/vm_ivar.yml
deleted file mode 100644
index 119531d5ef..0000000000
--- a/benchmark/vm_ivar.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: "@a = 1\n"
-benchmark:
- vm_ivar: |
- j = @a
- k = @a
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_init.yml b/benchmark/vm_ivar_init.yml
deleted file mode 100644
index c6f1633907..0000000000
--- a/benchmark/vm_ivar_init.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- def initialize
- @a = nil
- @b = nil
- @c = nil
- @d = nil
- @e = nil
- end
- end
-benchmark:
- vm_ivar_init: |
- C.new
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_set.yml b/benchmark/vm_ivar_set.yml
deleted file mode 100644
index 8bbb60043b..0000000000
--- a/benchmark/vm_ivar_set.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-benchmark:
- vm_ivar_set: |
- @a = 1
- @b = 2
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_set_subclass.yml b/benchmark/vm_ivar_set_subclass.yml
deleted file mode 100644
index 2653d36ded..0000000000
--- a/benchmark/vm_ivar_set_subclass.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class A
- def initialize
- @a = nil
- @b = nil
- @c = nil
- @d = nil
- @e = nil
- end
- end
- class B < A; end
- class C < A; end
-benchmark:
- vm_ivar_init_subclass: |
- B.new
- C.new
-loop_count: 3000000
diff --git a/benchmark/vm_length.yml b/benchmark/vm_length.yml
deleted file mode 100644
index 5fd94e7d86..0000000000
--- a/benchmark/vm_length.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- a = 'abc'
- b = [1, 2, 3]
-benchmark:
- vm_length: |
- a.length
- b.length
-loop_count: 30000000
diff --git a/benchmark/vm_lvar_init.yml b/benchmark/vm_lvar_init.yml
deleted file mode 100644
index 70a9b1c0ca..0000000000
--- a/benchmark/vm_lvar_init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# while loop cost is not removed because `i` is used in the script
-benchmark:
- vm_lvar_init: |
- def m v
- unless v
- # unreachable code
- v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =
- v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =
- v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =
- v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =
- v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1
- end
- end
-
- i = 0
-
- while i<30_000_000
- i += 1
- m i
- end
-loop_count: 1
diff --git a/benchmark/vm_lvar_set.yml b/benchmark/vm_lvar_set.yml
deleted file mode 100644
index f29f763d81..0000000000
--- a/benchmark/vm_lvar_set.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_lvar_set: |
- a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1
-loop_count: 30000000
diff --git a/benchmark/vm_method.yml b/benchmark/vm_method.yml
deleted file mode 100644
index d45e4ec572..0000000000
--- a/benchmark/vm_method.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m
- nil
- end
-benchmark:
- vm_method: |
- m; m; m; m; m; m; m; m;
-loop_count: 6000000
diff --git a/benchmark/vm_method_missing.yml b/benchmark/vm_method_missing.yml
deleted file mode 100644
index 3da456c0bb..0000000000
--- a/benchmark/vm_method_missing.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- class C
- def method_missing mid
- end
- end
-
- obj = C.new
-benchmark:
- vm_method_missing: |
- obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;
-loop_count: 6000000
diff --git a/benchmark/vm_method_with_block.yml b/benchmark/vm_method_with_block.yml
deleted file mode 100644
index 281a481394..0000000000
--- a/benchmark/vm_method_with_block.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m
- nil
- end
-benchmark:
- vm_method_with_block: |
- m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};
-loop_count: 6000000
diff --git a/benchmark/vm_module_ann_const_set.yml b/benchmark/vm_module_ann_const_set.yml
deleted file mode 100644
index 243229ba4a..0000000000
--- a/benchmark/vm_module_ann_const_set.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_module_ann_const_set: |
- Module.new.const_set(:X, Module.new)
-loop_count: 6000000
diff --git a/benchmark/vm_module_const_set.yml b/benchmark/vm_module_const_set.yml
deleted file mode 100644
index e5a24181a9..0000000000
--- a/benchmark/vm_module_const_set.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- module M
- end
- $VERBOSE = nil
-benchmark:
- vm_module_const_set: |
- M.const_set(:X, Module.new)
-loop_count: 6000000
diff --git a/benchmark/vm_mutex.yml b/benchmark/vm_mutex.yml
deleted file mode 100644
index abcf1e28ce..0000000000
--- a/benchmark/vm_mutex.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- require 'thread'
-
- m = Thread::Mutex.new
-benchmark:
- vm_mutex: |
- m.synchronize{}
-loop_count: 6000000
diff --git a/benchmark/vm_neq.yml b/benchmark/vm_neq.yml
deleted file mode 100644
index fb04d15ae8..0000000000
--- a/benchmark/vm_neq.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- obj1 = Object.new
- obj2 = Object.new
-benchmark:
- vm_neq: |
- obj1 != obj2
-loop_count: 30000000
diff --git a/benchmark/vm_newlambda.yml b/benchmark/vm_newlambda.yml
deleted file mode 100644
index 0b9787d91a..0000000000
--- a/benchmark/vm_newlambda.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_newlambda: |
- lambda {}
-loop_count: 6000000
diff --git a/benchmark/vm_not.yml b/benchmark/vm_not.yml
deleted file mode 100644
index c68dde3c50..0000000000
--- a/benchmark/vm_not.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- obj = Object.new
-benchmark:
- vm_not: |
- !obj
-loop_count: 30000000
diff --git a/benchmark/vm_poly_method.yml b/benchmark/vm_poly_method.yml
deleted file mode 100644
index dd2f4e71de..0000000000
--- a/benchmark/vm_poly_method.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_method: |
- class C1
- def m
- 1
- end
- end
- class C2
- def m
- 2
- end
- end
-
- o1 = C1.new
- o2 = C2.new
-
- i = 0
- while i<6_000_000
- o = (i % 2 == 0) ? o1 : o2
- o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_poly_method_ov.yml b/benchmark/vm_poly_method_ov.yml
deleted file mode 100644
index bca1b62729..0000000000
--- a/benchmark/vm_poly_method_ov.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_method_ov: |
- class C1
- def m
- 1
- end
- end
- class C2
- def m
- 2
- end
- end
-
- o1 = C1.new
- o2 = C2.new
-
- i = 0
- while i<6_000_000
- o = (i % 2 == 0) ? o1 : o2
- # o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_poly_same_method.yml b/benchmark/vm_poly_same_method.yml
deleted file mode 100644
index 6c5404ac84..0000000000
--- a/benchmark/vm_poly_same_method.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-prelude: |
- module AR; end
- class AR::Base
- def create_or_update
- nil
- end
- def save
- create_or_update
- end
- end
- class Foo < AR::Base; end
- class Bar < AR::Base; end
- o1 = Foo.new
- o2 = Bar.new
-benchmark:
- vm_poly_same_method: |
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
-loop_count: 6000000
diff --git a/benchmark/vm_poly_singleton.yml b/benchmark/vm_poly_singleton.yml
deleted file mode 100644
index c7923160fb..0000000000
--- a/benchmark/vm_poly_singleton.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_singleton: |
- class C1
- def m; 1; end
- end
-
- o1 = C1.new
- o2 = C1.new
- o2.singleton_class
-
- i = 0
- while i<6_000_000 # benchmark loop 2
- o = (i % 2 == 0) ? o1 : o2
- o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_proc.yml b/benchmark/vm_proc.yml
deleted file mode 100644
index 2f8de6c272..0000000000
--- a/benchmark/vm_proc.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- def m &b
- b
- end
-
- pr = m{
- a = 1
- }
-benchmark:
- vm_proc: |
- pr.call
-loop_count: 6000000
diff --git a/benchmark/vm_raise1.yml b/benchmark/vm_raise1.yml
deleted file mode 100644
index 247d9f70ee..0000000000
--- a/benchmark/vm_raise1.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- def rec n
- if n > 0
- rec n-1
- else
- raise
- end
- end
-benchmark:
- vm_raise1: |
- begin
- rec 1
- rescue
- # ignore
- end
-loop_count: 6000000
diff --git a/benchmark/vm_raise2.yml b/benchmark/vm_raise2.yml
deleted file mode 100644
index f0fa047b3c..0000000000
--- a/benchmark/vm_raise2.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- def rec n
- if n > 0
- rec n-1
- else
- raise
- end
- end
-benchmark:
- vm_raise2: |
- begin
- rec 10
- rescue
- # ignore
- end
-loop_count: 6000000
diff --git a/benchmark/vm_regexp.yml b/benchmark/vm_regexp.yml
deleted file mode 100644
index 2aa3d94dbd..0000000000
--- a/benchmark/vm_regexp.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- str = 'xxxhogexxx'
-benchmark:
- vm_regexp: |
- /hoge/ =~ str
- vm_regexp_invert: |
- str =~ /hoge/
-loop_count: 6000000
diff --git a/benchmark/vm_rescue.yml b/benchmark/vm_rescue.yml
deleted file mode 100644
index b4a0af521f..0000000000
--- a/benchmark/vm_rescue.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark:
- vm_rescue: |
- begin
- rescue
- end
-loop_count: 30000000
diff --git a/benchmark/vm_send.yml b/benchmark/vm_send.yml
deleted file mode 100644
index f31bc7ac89..0000000000
--- a/benchmark/vm_send.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- def m
- end
- end
-
- o = C.new
- m = :m
-benchmark:
- vm_send: |
- o.__send__ :m
- vm_send_var: |
- o.__send__ m
-loop_count: 6000000
diff --git a/benchmark/vm_send_cfunc.yml b/benchmark/vm_send_cfunc.yml
deleted file mode 100644
index b114ac317d..0000000000
--- a/benchmark/vm_send_cfunc.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-benchmark:
- vm_send_cfunc: self.class
-loop_count: 100000000
diff --git a/benchmark/vm_simplereturn.yml b/benchmark/vm_simplereturn.yml
deleted file mode 100644
index c9829cff0b..0000000000
--- a/benchmark/vm_simplereturn.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m
- return 1
- end
-benchmark:
- vm_simplereturn: m
-loop_count: 30000000
diff --git a/benchmark/vm_string_literal.yml b/benchmark/vm_string_literal.yml
deleted file mode 100644
index 64439c7980..0000000000
--- a/benchmark/vm_string_literal.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_string_literal: |
- x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aref_hi.yml b/benchmark/vm_struct_big_aref_hi.yml
deleted file mode 100644
index 4cf78970cb..0000000000
--- a/benchmark/vm_struct_big_aref_hi.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_aref_hi: |
- x.z # x[25]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aref_lo.yml b/benchmark/vm_struct_big_aref_lo.yml
deleted file mode 100644
index c91af27fa5..0000000000
--- a/benchmark/vm_struct_big_aref_lo.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_aref_lo: |
- x.k # x[10]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aset.yml b/benchmark/vm_struct_big_aset.yml
deleted file mode 100644
index 69550d14ea..0000000000
--- a/benchmark/vm_struct_big_aset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_big_aset: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x.k = i # x[10] = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_big_href_hi.yml b/benchmark/vm_struct_big_href_hi.yml
deleted file mode 100644
index 09b764dd13..0000000000
--- a/benchmark/vm_struct_big_href_hi.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_href_hi: |
- x[:z]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_href_lo.yml b/benchmark/vm_struct_big_href_lo.yml
deleted file mode 100644
index d2f00b220f..0000000000
--- a/benchmark/vm_struct_big_href_lo.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_href_lo: |
- x[:k]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_hset.yml b/benchmark/vm_struct_big_hset.yml
deleted file mode 100644
index fc45cbee9c..0000000000
--- a/benchmark/vm_struct_big_hset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_big_hset: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x[:k] = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_small_aref.yml b/benchmark/vm_struct_small_aref.yml
deleted file mode 100644
index 5a83251d1e..0000000000
--- a/benchmark/vm_struct_small_aref.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_aref: |
- x.a
-loop_count: 6000000
diff --git a/benchmark/vm_struct_small_aset.yml b/benchmark/vm_struct_small_aset.yml
deleted file mode 100644
index 74f435f126..0000000000
--- a/benchmark/vm_struct_small_aset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_small_aset: |
- s = Struct.new(:a, :b, :c)
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x.a = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_small_href.yml b/benchmark/vm_struct_small_href.yml
deleted file mode 100644
index 6b7d7f39e7..0000000000
--- a/benchmark/vm_struct_small_href.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_href: |
- x[:a]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_small_hset.yml b/benchmark/vm_struct_small_hset.yml
deleted file mode 100644
index 5d43b150de..0000000000
--- a/benchmark/vm_struct_small_hset.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_hset: |
- x[:a] = 1
-loop_count: 6000000
diff --git a/benchmark/vm_super.yml b/benchmark/vm_super.yml
deleted file mode 100644
index 0d1e965c6e..0000000000
--- a/benchmark/vm_super.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class C
- def m
- 1
- end
- end
-
- class CC < C
- def m
- super()
- end
- end
-
- obj = CC.new
-benchmark:
- vm_super: obj.m
-loop_count: 6000000
diff --git a/benchmark/vm_swap.yml b/benchmark/vm_swap.yml
deleted file mode 100644
index e824a65e0a..0000000000
--- a/benchmark/vm_swap.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- a = 1
- b = 2
-benchmark:
- vm_swap: |
- a, b = b, a
-loop_count: 30000000
diff --git a/benchmark/vm_unif1.yml b/benchmark/vm_unif1.yml
deleted file mode 100644
index 04187bb0e2..0000000000
--- a/benchmark/vm_unif1.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m a, b
- end
-benchmark:
- vm_unif1: |
- m 100, 200
-loop_count: 6000000
diff --git a/benchmark/vm_yield.yml b/benchmark/vm_yield.yml
deleted file mode 100644
index 230be3d84f..0000000000
--- a/benchmark/vm_yield.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-# while loop cost is not removed due to benchmark_driver.gem's limitation
-benchmark:
- vm_yield: |
- def m
- i = 0
- while i<30_000_000
- i += 1
- yield
- end
- end
-
- m{}
-loop_count: 1
diff --git a/benchmark/vm_zsuper.yml b/benchmark/vm_zsuper.yml
deleted file mode 100644
index bfb5837578..0000000000
--- a/benchmark/vm_zsuper.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-prelude: |
- class C
- def m a
- 1
- end
- end
-
- class CC < C
- def m a
- super
- end
- end
-
- obj = CC.new
-benchmark:
- vm_zsuper: |
- obj.m 10
-loop_count: 6000000
diff --git a/bignum.c b/bignum.c
index 7c55366ecb..4569183e45 100644
--- a/bignum.c
+++ b/bignum.c
@@ -9,42 +9,32 @@
**********************************************************************/
-#include "ruby/internal/config.h"
-
-#include <ctype.h>
-#include <float.h>
-#include <math.h>
+#include "internal.h"
+#include "ruby/thread.h"
+#include "ruby/util.h"
+#include "id.h"
#ifdef HAVE_STRINGS_H
-# include <strings.h>
+#include <strings.h>
#endif
-
+#include <math.h>
+#include <float.h>
+#include <ctype.h>
#ifdef HAVE_IEEEFP_H
-# include <ieeefp.h>
+#include <ieeefp.h>
#endif
+#include "ruby_assert.h"
#if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H)
-# define USE_GMP
-# include <gmp.h>
+#define USE_GMP
+#include <gmp.h>
#endif
-#include "id.h"
-#include "internal.h"
-#include "internal/bignum.h"
-#include "internal/complex.h"
-#include "internal/gc.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/sanitizers.h"
-#include "internal/util.h"
-#include "internal/variable.h"
-#include "internal/warnings.h"
-#include "ruby/thread.h"
-#include "ruby/util.h"
-#include "ruby_assert.h"
-
#define RB_BIGNUM_TYPE_P(x) RB_TYPE_P((x), T_BIGNUM)
+#ifndef RUBY_INTEGER_UNIFICATION
+VALUE rb_cBignum;
+#endif
const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";
#ifndef SIZEOF_BDIGIT_DBL
@@ -2006,7 +1996,7 @@ bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGI
}
/*
- * ref. https://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication
+ * ref. http://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication
*
* x(b) = x0 * b^0 + x1 * b^1 + x2 * b^2
* y(b) = y0 * b^0 + y1 * b^1 + y2 * b^2
@@ -2287,23 +2277,10 @@ rb_big_mul_toom3(VALUE x, VALUE y)
}
#ifdef USE_GMP
-static inline void
-bdigits_to_mpz(mpz_t mp, const BDIGIT *digits, size_t len)
-{
- const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
- mpz_import(mp, len, -1, sizeof(BDIGIT), 0, nails, digits);
-}
-
-static inline void
-bdigits_from_mpz(mpz_t mp, BDIGIT *digits, size_t *len)
-{
- const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
- mpz_export(digits, len, -1, sizeof(BDIGIT), 0, nails, mp);
-}
-
static void
bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
{
+ const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
mpz_t x, y, z;
size_t count;
@@ -2312,15 +2289,15 @@ bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT
mpz_init(x);
mpz_init(y);
mpz_init(z);
- bdigits_to_mpz(x, xds, xn);
+ mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);
if (xds == yds && xn == yn) {
mpz_mul(z, x, x);
}
else {
- bdigits_to_mpz(y, yds, yn);
+ mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);
mpz_mul(z, x, y);
}
- bdigits_from_mpz(z, zds, &count);
+ mpz_export(zds, &count, -1, sizeof(BDIGIT), 0, nails, z);
BDIGITS_ZERO(zds+count, zn-count);
mpz_clear(x);
mpz_clear(y);
@@ -2359,9 +2336,9 @@ bary_sparse_p(const BDIGIT *ds, size_t n)
{
long c = 0;
- if ( ds[2 * n / 5]) c++;
- if (c <= 1 && ds[ n / 2]) c++;
- if (c <= 1 && ds[3 * n / 5]) c++;
+ if ( ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;
+ if (c <= 1 && ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;
+ if (c <= 1 && ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;
return (c <= 1) ? 1 : 0;
}
@@ -2469,7 +2446,12 @@ bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn,
{
/* normal multiplication when x is small */
if (xn < KARATSUBA_MUL_DIGITS) {
- goto normal;
+ normal:
+ if (xds == yds && xn == yn)
+ bary_sq_fast(zds, zn, xds, xn);
+ else
+ bary_short_mul(zds, zn, xds, xn, yds, yn);
+ return;
}
/* normal multiplication when x or y is a sparse bignum */
@@ -2487,15 +2469,6 @@ bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn,
/* multiplication by karatsuba method */
bary_mul_karatsuba(zds, zn, xds, xn, yds, yn, wds, wn);
- return;
-
- normal:
- if (xds == yds && xn == yn) {
- bary_sq_fast(zds, zn, xds, xn);
- }
- else {
- bary_short_mul(zds, zn, xds, xn, yds, yn);
- }
}
static void
@@ -2775,6 +2748,7 @@ rb_big_divrem_normal(VALUE x, VALUE y)
static void
bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
{
+ const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
mpz_t x, y, q, r;
size_t count;
@@ -2788,8 +2762,8 @@ bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xd
if (qds) mpz_init(q);
if (rds) mpz_init(r);
- bdigits_to_mpz(x, xds, xn);
- bdigits_to_mpz(y, yds, yn);
+ mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);
+ mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);
if (!rds) {
mpz_fdiv_q(q, x, y);
@@ -2805,13 +2779,13 @@ bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xd
mpz_clear(y);
if (qds) {
- bdigits_from_mpz(q, qds, &count);
+ mpz_export(qds, &count, -1, sizeof(BDIGIT), 0, nails, q);
BDIGITS_ZERO(qds+count, qn-count);
mpz_clear(q);
}
if (rds) {
- bdigits_from_mpz(r, rds, &count);
+ mpz_export(rds, &count, -1, sizeof(BDIGIT), 0, nails, r);
BDIGITS_ZERO(rds+count, rn-count);
mpz_clear(r);
}
@@ -2910,8 +2884,29 @@ bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, s
}
-#ifndef BIGNUM_DEBUG
-# define BIGNUM_DEBUG (0+RUBY_DEBUG)
+#define BIGNUM_DEBUG 0
+#if BIGNUM_DEBUG
+#define ON_DEBUG(x) do { x; } while (0)
+static void
+dump_bignum(VALUE x)
+{
+ long i;
+ printf("%c0x0", BIGNUM_SIGN(x) ? '+' : '-');
+ for (i = BIGNUM_LEN(x); i--; ) {
+ printf("_%0*"PRIxBDIGIT, SIZEOF_BDIGIT*2, BDIGITS(x)[i]);
+ }
+ printf(", len=%"PRIuSIZE, BIGNUM_LEN(x));
+ puts("");
+}
+
+static VALUE
+rb_big_dump(VALUE x)
+{
+ dump_bignum(x);
+ return x;
+}
+#else
+#define ON_DEBUG(x)
#endif
static int
@@ -2949,7 +2944,7 @@ rb_cmpint(VALUE val, VALUE a, VALUE b)
}
#define BIGNUM_SET_LEN(b,l) \
- (BIGNUM_EMBED_P(b) ? \
+ ((RBASIC(b)->flags & BIGNUM_EMBED_FLAG) ? \
(void)(RBASIC(b)->flags = \
(RBASIC(b)->flags & ~BIGNUM_EMBED_LEN_MASK) | \
((l) << BIGNUM_EMBED_LEN_SHIFT)) : \
@@ -2959,19 +2954,19 @@ static void
rb_big_realloc(VALUE big, size_t len)
{
BDIGIT *ds;
- if (BIGNUM_EMBED_P(big)) {
+ if (RBASIC(big)->flags & BIGNUM_EMBED_FLAG) {
if (BIGNUM_EMBED_LEN_MAX < len) {
ds = ALLOC_N(BDIGIT, len);
MEMCPY(ds, RBIGNUM(big)->as.ary, BDIGIT, BIGNUM_EMBED_LEN_MAX);
RBIGNUM(big)->as.heap.len = BIGNUM_LEN(big);
RBIGNUM(big)->as.heap.digits = ds;
- FL_UNSET_RAW(big, BIGNUM_EMBED_FLAG);
+ RBASIC(big)->flags &= ~BIGNUM_EMBED_FLAG;
}
}
else {
if (len <= BIGNUM_EMBED_LEN_MAX) {
ds = RBIGNUM(big)->as.heap.digits;
- FL_SET_RAW(big, BIGNUM_EMBED_FLAG);
+ RBASIC(big)->flags |= BIGNUM_EMBED_FLAG;
BIGNUM_SET_LEN(big, len);
(void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)->as.ary, sizeof(RBIGNUM(big)->as.ary));
if (ds) {
@@ -3001,19 +2996,18 @@ static VALUE
bignew_1(VALUE klass, size_t len, int sign)
{
NEWOBJ_OF(big, struct RBignum, klass, T_BIGNUM | (RGENGC_WB_PROTECTED_BIGNUM ? FL_WB_PROTECTED : 0));
- VALUE bigv = (VALUE)big;
- BIGNUM_SET_SIGN(bigv, sign);
+ BIGNUM_SET_SIGN(big, sign);
if (len <= BIGNUM_EMBED_LEN_MAX) {
- FL_SET_RAW(bigv, BIGNUM_EMBED_FLAG);
- BIGNUM_SET_LEN(bigv, len);
- (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)big->as.ary, sizeof(big->as.ary));
+ RBASIC(big)->flags |= BIGNUM_EMBED_FLAG;
+ BIGNUM_SET_LEN(big, len);
+ (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)->as.ary, sizeof(RBIGNUM(big)->as.ary));
}
else {
- big->as.heap.digits = ALLOC_N(BDIGIT, len);
- big->as.heap.len = len;
+ RBIGNUM(big)->as.heap.digits = ALLOC_N(BDIGIT, len);
+ RBIGNUM(big)->as.heap.len = len;
}
- OBJ_FREEZE(bigv);
- return bigv;
+ OBJ_FREEZE(big);
+ return (VALUE)big;
}
VALUE
@@ -3390,7 +3384,7 @@ rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret)
size_t numbytes;
int nlz_bits_in_msbyte;
size_t numwords;
- size_t nlz_bits = 0;
+ size_t nlz_bits;
if (word_numbits == 0)
return (size_t)-1;
@@ -3592,7 +3586,7 @@ rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t
}
/*
- * Import an integer from a buffer.
+ * Import an integer into a buffer.
*
* [words] buffer to import.
* [numwords] the size of given buffer as number of words.
@@ -3747,12 +3741,12 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
return TRUE;
}
- if (badcheck && *str == '_') return FALSE;
+ if (badcheck && *str == '_') goto bad;
while ((c = *str++) != 0) {
if (c == '_') {
if (nondigit) {
- if (badcheck) return FALSE;
+ if (badcheck) goto bad;
break;
}
nondigit = (char) c;
@@ -3767,7 +3761,7 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
}
if (len > 0 && !--len) break;
}
- if (badcheck && nondigit) return FALSE;
+ if (badcheck && nondigit) goto bad;
if (badcheck && len) {
str--;
while (*str && ISSPACE(*str)) {
@@ -3775,6 +3769,7 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
if (len > 0 && !--len) break;
}
if (len && *str) {
+ bad:
return FALSE;
}
}
@@ -3961,6 +3956,7 @@ str2big_gmp(
size_t num_bdigits,
int base)
{
+ const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
char *buf, *p;
const char *q;
VALUE tmps;
@@ -3983,7 +3979,7 @@ str2big_gmp(
zn = num_bdigits;
z = bignew(zn, sign);
zds = BDIGITS(z);
- bdigits_from_mpz(mz, BDIGITS(z), &count);
+ mpz_export(BDIGITS(z), &count, -1, sizeof(BDIGIT), 0, nails, mz);
BDIGITS_ZERO(zds+count, zn-count);
mpz_clear(mz);
@@ -4070,7 +4066,10 @@ rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,
} while (0)
if (!str) {
- goto bad;
+ bad:
+ if (endp) *endp = (char *)str;
+ if (ndigits) *ndigits = num_digits;
+ return z;
}
if (len && (flags & RB_INT_PARSE_SIGN)) {
while (ISSPACE(*str)) ADV(1);
@@ -4234,11 +4233,6 @@ rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,
}
return bignorm(z);
-
- bad:
- if (endp) *endp = (char *)str;
- if (ndigits) *ndigits = num_digits;
- return z;
}
static VALUE
@@ -4658,6 +4652,12 @@ static size_t base36_numdigits_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];
static void
power_cache_init(void)
{
+ int i, j;
+ for (i = 0; i < 35; ++i) {
+ for (j = 0; j < MAX_BASE36_POWER_TABLE_ENTRIES; ++j) {
+ base36_power_cache[i][j] = Qnil;
+ }
+ }
}
static inline VALUE
@@ -4680,8 +4680,8 @@ power_cache_get_power(int base, int power_level, size_t *numdigits_ret)
if (MAX_BASE36_POWER_TABLE_ENTRIES <= power_level)
rb_bug("too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)", base, power_level);
- VALUE power = base36_power_cache[base - 2][power_level];
- if (!power) {
+ if (NIL_P(base36_power_cache[base - 2][power_level])) {
+ VALUE power;
size_t numdigits;
if (power_level == 0) {
int numdigits0;
@@ -4701,7 +4701,7 @@ power_cache_get_power(int base, int power_level, size_t *numdigits_ret)
}
if (numdigits_ret)
*numdigits_ret = base36_numdigits_cache[base - 2][power_level];
- return power;
+ return base36_power_cache[base - 2][power_level];
}
struct big2str_struct {
@@ -5010,6 +5010,7 @@ rb_big2str_generic(VALUE x, int base)
static VALUE
big2str_gmp(VALUE x, int base)
{
+ const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
mpz_t mx;
size_t size;
VALUE str;
@@ -5017,7 +5018,7 @@ big2str_gmp(VALUE x, int base)
size_t xn = BIGNUM_LEN(x);
mpz_init(mx);
- bdigits_to_mpz(mx, xds, xn);
+ mpz_import(mx, xn, -1, sizeof(BDIGIT), 0, nails, xds);
size = mpz_sizeinbase(mx, base);
@@ -5372,9 +5373,11 @@ rb_integer_float_cmp(VALUE x, VALUE y)
#if SIZEOF_LONG * CHAR_BIT >= DBL_MANT_DIG /* assume FLT_RADIX == 2 */
COMPILER_WARNING_PUSH
+#ifdef __has_warning
#if __has_warning("-Wimplicit-int-float-conversion")
COMPILER_WARNING_IGNORED(-Wimplicit-int-float-conversion)
#endif
+#endif
static const double LONG_MAX_as_double = LONG_MAX;
COMPILER_WARNING_POP
#endif
@@ -5512,7 +5515,7 @@ rb_big_le(VALUE x, VALUE y)
*
* Returns <code>true</code> only if <i>obj</i> has the same value
* as <i>big</i>. Contrast this with Integer#eql?, which requires
- * <i>obj</i> to be an Integer.
+ * <i>obj</i> to be a Integer.
*
* 68719476736 == 68719476736.0 #=> true
*/
@@ -6263,7 +6266,7 @@ rb_big_pow(VALUE x, VALUE y)
yy = FIX2LONG(y);
if (yy < 0) {
- x = rb_big_pow(x, LONG2NUM(-yy));
+ x = rb_big_pow(x, INT2NUM(-yy));
if (RB_INTEGER_TYPE_P(x))
return rb_rational_raw(INT2FIX(1), x);
else
@@ -6688,6 +6691,7 @@ rb_big_aref(VALUE x, VALUE y)
return INT2FIX(0);
bigtrunc(y);
if (BIGSIZE(y) > sizeof(size_t)) {
+ out_of_range:
return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);
}
#if SIZEOF_SIZE_T <= SIZEOF_LONG
@@ -6705,8 +6709,7 @@ rb_big_aref(VALUE x, VALUE y)
s2 = shift%BITSPERDIG;
bit = (BDIGIT)1 << s2;
- if (s1 >= BIGNUM_LEN(x))
- return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);
+ if (s1 >= BIGNUM_LEN(x)) goto out_of_range;
xds = BDIGITS(x);
if (BIGNUM_POSITIVE_P(x))
@@ -6948,17 +6951,18 @@ rb_big_isqrt(VALUE n)
static void
bary_powm_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, const BDIGIT *mds, size_t mn)
{
+ const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
mpz_t z, x, y, m;
size_t count;
mpz_init(x);
mpz_init(y);
mpz_init(m);
mpz_init(z);
- bdigits_to_mpz(x, xds, xn);
- bdigits_to_mpz(y, yds, yn);
- bdigits_to_mpz(m, mds, mn);
+ mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);
+ mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);
+ mpz_import(m, mn, -1, sizeof(BDIGIT), 0, nails, mds);
mpz_powm(z, x, y, m);
- bdigits_from_mpz(z, zds, &count);
+ mpz_export(zds, &count, -1, sizeof(BDIGIT), 0, nails, z);
BDIGITS_ZERO(zds+count, zn-count);
mpz_clear(x);
mpz_clear(y);
@@ -7136,7 +7140,6 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)
long const half_val = (long)HALF_LONG_MSB;
long const mm = FIX2LONG(m);
if (!mm) rb_num_zerodiv();
- if (mm == 1) return INT2FIX(0);
if (mm <= half_val) {
return int_pow_tmp1(rb_int_modulo(a, m), b, mm, nega_flg);
}
@@ -7146,7 +7149,6 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)
}
else {
if (rb_bigzero_p(m)) rb_num_zerodiv();
- if (bignorm(m) == INT2FIX(1)) return INT2FIX(0);
return int_pow_tmp3(rb_int_modulo(a, m), b, m, nega_flg);
}
}
@@ -7174,6 +7176,9 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)
void
Init_Bignum(void)
{
+#ifndef RUBY_INTEGER_UNIFICATION
+ rb_cBignum = rb_cInteger;
+#endif
/* An obsolete class, use Integer */
rb_define_const(rb_cObject, "Bignum", rb_cInteger);
rb_deprecate_constant(rb_cObject, "Bignum");
diff --git a/bin/erb b/bin/erb
index 89d74fc525..2435224fe1 100755
--- a/bin/erb
+++ b/bin/erb
@@ -1,27 +1,176 @@
#!/usr/bin/env ruby
-#
-# This file was generated by RubyGems.
-#
-# The application 'erb' is installed as part of a gem, and
-# this file is here to facilitate running it.
-#
-
-require 'rubygems'
-
-version = ">= 0.a"
-
-str = ARGV.first
-if str
- str = str.b[/\A_(.*)_\z/, 1]
- if str and Gem::Version.correct?(str)
- version = str
- ARGV.shift
+# Tiny eRuby --- ERB2
+# Copyright (c) 1999-2000,2002 Masatoshi SEKI
+# You can redistribute it and/or modify it under the same terms as Ruby.
+
+require 'erb'
+
+class ERB
+ module Main
+ def ARGV.switch
+ return nil if self.empty?
+ arg = self.shift
+ return nil if arg == '--'
+ case arg
+ when /\A-(.)(.*)/
+ if $1 == '-'
+ arg, @maybe_arg = arg.split(/=/, 2)
+ return arg
+ end
+ raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T'
+ if $2.size > 0
+ self.unshift "-#{$2}"
+ @maybe_arg = $2
+ else
+ @maybe_arg = nil
+ end
+ "-#{$1}"
+ when /\A(\w+)=/
+ arg
+ else
+ self.unshift arg
+ nil
+ end
+ end
+
+ def ARGV.req_arg
+ (@maybe_arg || self.shift || raise('missing argument')).tap {
+ @maybe_arg = nil
+ }
+ end
+
+ def trim_mode_opt(trim_mode, disable_percent)
+ return trim_mode if disable_percent
+ case trim_mode
+ when 0
+ return '%'
+ when 1
+ return '%>'
+ when 2
+ return '%<>'
+ when '-'
+ return '%-'
+ end
+ end
+ module_function :trim_mode_opt
+
+ def run(factory=ERB)
+ trim_mode = 0
+ disable_percent = false
+ variables = {}
+ begin
+ while switch = ARGV.switch
+ case switch
+ when '-x' # ruby source
+ output = true
+ when '-n' # line number
+ number = true
+ when '-v' # verbose
+ $VERBOSE = true
+ when '--version' # version
+ STDERR.puts factory.version
+ exit
+ when '-d', '--debug' # debug
+ $DEBUG = true
+ when '-r' # require
+ require ARGV.req_arg
+ when '-S' # security level
+ warn 'warning: -S option of erb command is deprecated. Please do not use this.'
+ arg = ARGV.req_arg
+ raise "invalid safe_level #{arg.dump}" unless arg =~ /\A[0-1]\z/
+ safe_level = arg.to_i
+ when '-T' # trim mode
+ arg = ARGV.req_arg
+ if arg == '-'
+ trim_mode = arg
+ next
+ end
+ raise "invalid trim mode #{arg.dump}" unless arg =~ /\A[0-2]\z/
+ trim_mode = arg.to_i
+ when '-E', '--encoding'
+ arg = ARGV.req_arg
+ set_encoding(*arg.split(/:/, 2))
+ when '-U'
+ set_encoding(Encoding::UTF_8, Encoding::UTF_8)
+ when '-P'
+ disable_percent = true
+ when '--help'
+ raise "print this help"
+ when /\A-/
+ raise "unknown switch #{switch.dump}"
+ else
+ var, val = *switch.split('=', 2)
+ (variables ||= {})[var] = val
+ end
+ end
+ rescue # usage
+ STDERR.puts $!.to_s
+ STDERR.puts File.basename($0) +
+ " [switches] [var=value...] [inputfile]"
+ STDERR.puts <<EOU
+ -x print ruby script
+ -n print ruby script with line number
+ -v enable verbose mode
+ -d set $DEBUG to true
+ -r library load a library
+ -E ex[:in] set default external/internal encodings
+ -U set default encoding to UTF-8
+ -T trim_mode specify trim_mode (0..2, -)
+ -P disable ruby code evaluation for lines beginning with %
+ var=value set variable
+EOU
+ exit 1
+ end
+
+ $<.set_encoding(Encoding::UTF_8, nil)
+ src = $<.read
+ filename = $FILENAME
+ exit 2 unless src
+ trim = trim_mode_opt(trim_mode, disable_percent)
+ if safe_level.nil?
+ erb = factory.new(src, trim_mode: trim)
+ else
+ # [deprecated] This will be removed at Ruby 2.7.
+ erb = factory.new(src, safe_level, trim_mode: trim)
+ end
+ erb.filename = filename
+ if output
+ if number
+ erb.src.each_line.with_index do |line, l|
+ puts "%3d %s"%[l+1, line]
+ end
+ else
+ puts erb.src
+ end
+ else
+ bind = TOPLEVEL_BINDING
+ if variables
+ enc = erb.encoding
+ for var, val in variables do
+ val = val.encode(enc) if val
+ bind.local_variable_set(var, val)
+ end
+ end
+ erb.run(bind)
+ end
+ end
+ module_function :run
+
+ def set_encoding(extern, intern = nil)
+ verbose, $VERBOSE = $VERBOSE, nil
+ Encoding.default_external = extern unless extern.nil? || extern == ""
+ Encoding.default_internal = intern unless intern.nil? || intern == ""
+ [$stdin, $stdout, $stderr].each do |io|
+ io.set_encoding(extern, intern)
+ end
+ ensure
+ $VERBOSE = verbose
+ end
+ module_function :set_encoding
+ class << self; private :set_encoding; end
end
end
-if Gem.respond_to?(:activate_bin_path)
-load Gem.activate_bin_path('erb', 'erb', version)
-else
-gem "erb", version
-load Gem.bin_path("erb", "erb", version)
+if __FILE__ == $0
+ ERB::Main.run
end
diff --git a/bin/racc2y b/bin/racc2y
new file mode 100755
index 0000000000..a1e4352632
--- /dev/null
+++ b/bin/racc2y
@@ -0,0 +1,27 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by RubyGems.
+#
+# The application 'racc' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'rubygems'
+
+version = ">= 0.a"
+
+if ARGV.first
+ str = ARGV.first
+ str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
+ if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
+ version = $1
+ ARGV.shift
+ end
+end
+
+if Gem.respond_to?(:activate_bin_path)
+load Gem.activate_bin_path('racc', 'racc2y', version)
+else
+gem "racc", version
+load Gem.bin_path("racc", "racc2y", version)
+end
diff --git a/bin/y2racc b/bin/y2racc
new file mode 100755
index 0000000000..023615f369
--- /dev/null
+++ b/bin/y2racc
@@ -0,0 +1,27 @@
+#!/usr/bin/env ruby
+#
+# This file was generated by RubyGems.
+#
+# The application 'racc' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#
+
+require 'rubygems'
+
+version = ">= 0.a"
+
+if ARGV.first
+ str = ARGV.first
+ str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
+ if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
+ version = $1
+ ARGV.shift
+ end
+end
+
+if Gem.respond_to?(:activate_bin_path)
+load Gem.activate_bin_path('racc', 'y2racc', version)
+else
+gem "racc", version
+load Gem.bin_path("racc", "y2racc", version)
+end
diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb
index 2c4b85a419..0959bfa2b0 100644
--- a/bootstraptest/pending.rb
+++ b/bootstraptest/pending.rb
@@ -1,3 +1,19 @@
+assert_equal 'A', %q{
+ class A
+ @@a = 'A'
+ def a=(x)
+ @@a = x
+ end
+ def a
+ @@a
+ end
+ end
+
+ B = A.dup
+ B.new.a = 'B'
+ A.new.a
+}, '[ruby-core:17019]'
+
assert_equal 'ok', %q{
def m
lambda{
@@ -15,6 +31,13 @@ assert_equal 'ok', %q{
end
}
+assert_normal_exit %q{
+ r = Range.allocate
+ def r.<=>(o) true end
+ r.instance_eval { initialize r, r }
+ r.inspect
+}
+
# This randomly fails on mswin.
assert_equal %q{[]}, %q{
Thread.new{sleep}.backtrace
diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb
index 2cd91ffd07..56b4b12230 100755
--- a/bootstraptest/runner.rb
+++ b/bootstraptest/runner.rb
@@ -261,14 +261,6 @@ rescue Exception => err
$stderr.print 'E'
$stderr.puts if @verbose
error err.message, message
-ensure
- begin
- check_coredump
- rescue CoreDumpError => err
- $stderr.print 'E'
- $stderr.puts if @verbose
- error err.message, message
- end
end
def show_limit(testsrc, opt = '', **argh)
@@ -283,6 +275,7 @@ end
def assert_check(testsrc, message = '', opt = '', **argh)
show_progress(message) {
result = get_result_string(testsrc, opt, **argh)
+ check_coredump
yield(result)
}
end
@@ -383,8 +376,8 @@ def assert_normal_exit(testsrc, *rest, timeout: nil, **opt)
end
def assert_finish(timeout_seconds, testsrc, message = '')
- if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled? # for --jit-wait
- timeout_seconds *= 3
+ if RubyVM.const_defined? :MJIT
+ timeout_seconds *= 3 if RubyVM::MJIT.enabled? # for --jit-wait
end
newtest
show_progress(message) {
@@ -460,6 +453,7 @@ def get_result_string(src, opt = '', **argh)
`#{@ruby} -W0 #{opt} #{filename}`
ensure
raise Interrupt if $? and $?.signaled? && $?.termsig == Signal.list["INT"]
+ raise CoreDumpError, "core dumped" if $? and $?.coredump?
end
else
eval(src).to_s
@@ -519,21 +513,7 @@ def in_temporary_working_directory(dir)
end
def cleanup_coredump
- if File.file?('core')
- require 'time'
- Dir.glob('/tmp/bootstraptest-core.*').each do |f|
- if Time.now - File.mtime(f) > 7 * 24 * 60 * 60 # 7 days
- warn "Deleting an old core file: #{f}"
- FileUtils.rm(f)
- end
- end
- core_path = "/tmp/bootstraptest-core.#{Time.now.utc.iso8601}"
- warn "A core file is found. Saving it at: #{core_path.dump}"
- FileUtils.mv('core', core_path)
- cmd = ['gdb', @ruby, '-c', core_path, '-ex', 'bt', '-batch']
- p cmd # debugging why it's not working
- system(*cmd)
- end
+ FileUtils.rm_f 'core'
FileUtils.rm_f Dir.glob('core.*')
FileUtils.rm_f @ruby+'.stackdump' if @ruby
end
diff --git a/bootstraptest/test_eval.rb b/bootstraptest/test_eval.rb
index 5d2593c306..fa04323b7f 100644
--- a/bootstraptest/test_eval.rb
+++ b/bootstraptest/test_eval.rb
@@ -250,9 +250,7 @@ assert_equal 'ok', %q{
assert_equal 'ok', %q{
begin
- class A
- 12.instance_eval { @@a }
- end
+ 12.instance_eval { @@a }
rescue NameError
:ok
end
@@ -260,9 +258,7 @@ assert_equal 'ok', %q{
assert_equal 'ok', %q{
begin
- class A
- 12.instance_exec { @@a }
- end
+ 12.instance_exec { @@a }
rescue NameError
:ok
end
diff --git a/bootstraptest/test_flow.rb b/bootstraptest/test_flow.rb
index 35f19db588..9da6d45cbd 100644
--- a/bootstraptest/test_flow.rb
+++ b/bootstraptest/test_flow.rb
@@ -534,11 +534,11 @@ assert_equal %Q{ENSURE\n}, %q{
['[ruby-core:39125]', %q{
class Bug5234
include Enumerable
- def each(&block)
+ def each
begin
yield :foo
ensure
- proc(&block)
+ proc
end
end
end
@@ -547,11 +547,11 @@ assert_equal %Q{ENSURE\n}, %q{
['[ruby-dev:45656]', %q{
class Bug6460
include Enumerable
- def each(&block)
+ def each
begin
yield :foo
ensure
- 1.times { Proc.new(&block) }
+ 1.times { Proc.new }
end
end
end
diff --git a/bootstraptest/test_insns.rb b/bootstraptest/test_insns.rb
index 9052cad7bd..1269d7d013 100644
--- a/bootstraptest/test_insns.rb
+++ b/bootstraptest/test_insns.rb
@@ -64,8 +64,8 @@ tests = [
[ 'setinstancevariable', %q{ @x = true }, ],
[ 'getinstancevariable', %q{ @x = true; @x }, ],
- [ 'setclassvariable', %q{ class A; @@x = true; end }, ],
- [ 'getclassvariable', %q{ class A; @@x = true; @@x end }, ],
+ [ 'setclassvariable', %q{ @@x = true }, ],
+ [ 'getclassvariable', %q{ @@x = true; @@x }, ],
[ 'setconstant', %q{ X = true }, ],
[ 'setconstant', %q{ Object::X = true }, ],
@@ -86,8 +86,11 @@ tests = [
[ 'putobject', %q{ /(?<x>x)/ =~ "x"; x == "x" }, ],
[ 'putspecialobject', %q{ {//=>true}[//] }, ],
+ [ 'putiseq', %q{ -> { true }.() }, ],
[ 'putstring', %q{ "true" }, ],
[ 'tostring / concatstrings', %q{ "#{true}" }, ],
+ [ 'freezestring', %q{ "#{true}" }, fsl, ],
+ [ 'freezestring', %q{ "#{true}" }, '-d', fsl, ],
[ 'toregexp', %q{ /#{true}/ =~ "true" && $~ }, ],
[ 'intern', %q{ :"#{true}" }, ],
@@ -391,6 +394,7 @@ tests = [
[ 'opt_succ',%Q{ #{ $FIXNUM_MAX }.succ == #{ $FIXNUM_MAX + 1 } }, ]
end,
[ 'opt_succ', %q{ '1'.succ == '2' }, ],
+ [ 'opt_succ', %q{ x = Time.at(0); x.succ == Time.at(1) }, ],
[ 'opt_not', %q{ ! false }, ],
[ 'opt_neq', <<-'},', ], # {
@@ -408,6 +412,8 @@ tests = [
class String; def =~ other; true; end; end
'true' =~ /true/
},
+
+ [ 'opt_call_c_function', 'Struct.new(:x).new.x = true', ],
]
# normal path
@@ -432,8 +438,3 @@ tests.compact.each {|(insn, expr, *a)|
assert_equal 'true', progn, 'trace_' + insn, *a
end
}
-
-assert_normal_exit("#{<<-"begin;"}\n#{<<-'end;'}")
-begin;
- RubyVM::InstructionSequence.compile("", debug_level: 5)
-end;
diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb
index 18a2737ea3..7944915862 100644
--- a/bootstraptest/test_jump.rb
+++ b/bootstraptest/test_jump.rb
@@ -296,19 +296,14 @@ assert_equal "true", %q{
s.return_eigenclass == class << s; self; end
}, '[ruby-core:21379]'
-assert_match %r{Invalid yield}, %q{
-STDERR.reopen(STDOUT)
-begin
- eval %q{
- class Object
- def yield_eigenclass
- class << self
- yield self
- end
+assert_equal "true", %q{
+ class Object
+ def yield_eigenclass
+ class << self
+ yield self
end
end
- }
-rescue SyntaxError => e
- e.message
-end
-}
+ end
+ s = "foo"
+ s.yield_eigenclass {|c| c == class << s; self; end }
+}, '[ruby-dev:40975]'
diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb
index 637603243d..1e384411dc 100644
--- a/bootstraptest/test_proc.rb
+++ b/bootstraptest/test_proc.rb
@@ -225,6 +225,19 @@ assert_equal %q{[[nil, []], [1, []], [1, [2]], [1, [2, 3]]]}, %q{
]
}
assert_equal %q{1}, %q{
+ pr = proc{
+ $SAFE
+ }
+ $SAFE = 1
+ pr.call
+}
+assert_equal %q{[1, 1]}, %q{
+ pr = proc{
+ $SAFE += 1
+ }
+ [pr.call, $SAFE]
+}
+assert_equal %q{1}, %q{
def m(&b)
b
end
@@ -367,8 +380,8 @@ assert_equal 'ok', %q{
assert_equal 'ok', %q{
class Foo
- def call_it(&block)
- p = Proc.new(&block)
+ def call_it
+ p = Proc.new
p.call
end
end
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb
deleted file mode 100644
index cbf58383c7..0000000000
--- a/bootstraptest/test_ractor.rb
+++ /dev/null
@@ -1,1382 +0,0 @@
-# Ractor.current returns a current ractor
-assert_equal 'Ractor', %q{
- Ractor.current.class
-}
-
-# Ractor.new returns new Ractor
-assert_equal 'Ractor', %q{
- Ractor.new{}.class
-}
-
-# Ractor.allocate is not supported
-assert_equal "[:ok, :ok]", %q{
- rs = []
- begin
- Ractor.allocate
- rescue => e
- rs << :ok if e.message == 'allocator undefined for Ractor'
- end
-
- begin
- Ractor.new{}.dup
- rescue
- rs << :ok if e.message == 'allocator undefined for Ractor'
- end
-
- rs
-}
-
-# A Ractor can have a name
-assert_equal 'test-name', %q{
- r = Ractor.new name: 'test-name' do
- end
- r.name
-}
-
-# If Ractor doesn't have a name, Ractor#name returns nil.
-assert_equal 'nil', %q{
- r = Ractor.new do
- end
- r.name.inspect
-}
-
-# Raises exceptions if initialize with an invalid name
-assert_equal 'ok', %q{
- begin
- r = Ractor.new(name: [{}]) {}
- rescue TypeError => e
- 'ok'
- end
-}
-
-# Ractor.new must call with a block
-assert_equal "must be called with a block", %q{
- begin
- Ractor.new
- rescue ArgumentError => e
- e.message
- end
-}
-
-# Ractor#inspect
-# Return only id and status for main ractor
-assert_equal "#<Ractor:#1 running>", %q{
- Ractor.current.inspect
-}
-
-# Return id, loc, and status for no-name ractor
-assert_match /^#<Ractor:#([^ ]*?) .+:[0-9]+ terminated>$/, %q{
- r = Ractor.new { '' }
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
- r.inspect
-}
-
-# Return id, name, loc, and status for named ractor
-assert_match /^#<Ractor:#([^ ]*?) Test Ractor .+:[0-9]+ terminated>$/, %q{
- r = Ractor.new(name: 'Test Ractor') { '' }
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
- r.inspect
-}
-
-# A return value of a Ractor block will be a message from the Ractor.
-assert_equal 'ok', %q{
- # join
- r = Ractor.new do
- 'ok'
- end
- r.take
-}
-
-# Passed arguments to Ractor.new will be a block parameter
-# The values are passed with Ractor-communication pass.
-assert_equal 'ok', %q{
- # ping-pong with arg
- r = Ractor.new 'ok' do |msg|
- msg
- end
- r.take
-}
-
-# Pass multiple arguments to Ractor.new
-assert_equal 'ok', %q{
- # ping-pong with two args
- r = Ractor.new 'ping', 'pong' do |msg, msg2|
- [msg, msg2]
- end
- 'ok' if r.take == ['ping', 'pong']
-}
-
-# Ractor#send passes an object with copy to a Ractor
-# and Ractor.receive in the Ractor block can receive the passed value.
-assert_equal 'ok', %q{
- r = Ractor.new do
- msg = Ractor.receive
- end
- r.send 'ok'
- r.take
-}
-
-# Ractor#receive_if can filter the message
-assert_equal '[2, 3, 1]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
- a = []
- a << Ractor.receive_if{|msg| msg == 2}
- a << Ractor.receive_if{|msg| msg == 3}
- a << Ractor.receive
-}
-
-# Ractor#receive_if with break
-assert_equal '[2, [1, :break], 3]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
-
- a = []
- a << Ractor.receive_if{|msg| msg == 2}
- a << Ractor.receive_if{|msg| break [msg, :break]}
- a << Ractor.receive
-}
-
-# Ractor#receive_if can't be called recursively
-assert_equal '[[:e1, 1], [:e2, 2]]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
-
- a = []
-
- Ractor.receive_if do |msg|
- begin
- Ractor.receive
- rescue Ractor::Error
- a << [:e1, msg]
- end
- true # delete 1 from queue
- end
-
- Ractor.receive_if do |msg|
- begin
- Ractor.receive_if{}
- rescue Ractor::Error
- a << [:e2, msg]
- end
- true # delete 2 from queue
- end
-
- a #
-}
-
-# dtoa race condition
-assert_equal '[:ok, :ok, :ok]', %q{
- n = 3
- n.times.map{
- Ractor.new{
- 10_000.times{ rand.to_s }
- :ok
- }
- }.map(&:take)
-}
-
-###
-###
-# Ractor still has several memory corruption so skip huge number of tests
-if ENV['GITHUB_WORKFLOW'] &&
- ENV['GITHUB_WORKFLOW'] == 'Compilations'
- # ignore the follow
-else
-
-# Ractor.select(*ractors) receives a values from a ractors.
-# It is similar to select(2) and Go's select syntax.
-# The return value is [ch, received_value]
-assert_equal 'ok', %q{
- # select 1
- r1 = Ractor.new{'r1'}
- r, obj = Ractor.select(r1)
- 'ok' if r == r1 and obj == 'r1'
-}
-
-# Ractor.select from two ractors.
-assert_equal '["r1", "r2"]', %q{
- # select 2
- r1 = Ractor.new{'r1'}
- r2 = Ractor.new{'r2'}
- rs = [r1, r2]
- as = []
- r, obj = Ractor.select(*rs)
- rs.delete(r)
- as << obj
- r, obj = Ractor.select(*rs)
- as << obj
- as.sort #=> ["r1", "r2"]
-}
-
-# Ractor.select from multiple ractors.
-assert_equal 30.times.map { 'ok' }.to_s, %q{
- def test n
- rs = (1..n).map do |i|
- Ractor.new(i) do |i|
- "r#{i}"
- end
- end
- as = []
- all_rs = rs.dup
-
- n.times{
- r, obj = Ractor.select(*rs)
- as << [r, obj]
- rs.delete(r)
- }
-
- if as.map{|r, o| r.object_id}.sort == all_rs.map{|r| r.object_id}.sort &&
- as.map{|r, o| o}.sort == (1..n).map{|i| "r#{i}"}.sort
- 'ok'
- else
- 'ng'
- end
- end
-
- 30.times.map{|i|
- test i
- }
-} unless ENV['RUN_OPTS'] =~ /--jit-min-calls=5/ # This always fails with --jit-wait --jit-min-calls=5
-
-# Exception for empty select
-assert_match /specify at least one ractor/, %q{
- begin
- Ractor.select
- rescue ArgumentError => e
- e.message
- end
-}
-
-# Outgoing port of a ractor will be closed when the Ractor is terminated.
-assert_equal 'ok', %q{
- r = Ractor.new do
- 'finish'
- end
-
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
-
- begin
- o = r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- "ng: #{o}"
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a terminated ractor
-assert_equal 'ok', %q{
- r = Ractor.new do
- end
-
- r.take # closed
- sleep 0.1 until r.inspect =~ /terminated/
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a closed actor
-assert_equal 'ok', %q{
- r = Ractor.new { Ractor.receive }
- r.close_incoming
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to take from closed actor
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.yield 1
- Ractor.receive
- end
-
- r.close_outgoing
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Can mix with Thread#interrupt and Ractor#take [Bug #17366]
-assert_equal 'err', %q{
- Ractor.new{
- t = Thread.current
- begin
- Thread.new{ t.raise "err" }.join
- rescue => e
- e.message
- end
- }.take
-}
-
-# Killed Ractor's thread yields nil
-assert_equal 'nil', %q{
- Ractor.new{
- t = Thread.current
- Thread.new{ t.kill }.join
- }.take.inspect #=> nil
-}
-
-# Ractor.yield raises Ractor::ClosedError when outgoing port is closed.
-assert_equal 'ok', %q{
- r = Ractor.new Ractor.current do |main|
- Ractor.receive
- main << true
- Ractor.yield 1
- end
-
- r.close_outgoing
- r << true
- Ractor.receive
-
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a ractor with closed incoming port
-assert_equal 'ok', %q{
- r = Ractor.new { Ractor.receive }
- r.close_incoming
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# A ractor with closed incoming port still can send messages out
-assert_equal '[1, 2]', %q{
- r = Ractor.new do
- Ractor.yield 1
- 2
- end
- r.close_incoming
-
- [r.take, r.take]
-}
-
-# Raise Ractor::ClosedError when try to take from a ractor with closed outgoing port
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.yield 1
- Ractor.receive
- end
-
- sleep 0.01 # wait for Ractor.yield in r
- r.close_outgoing
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# A ractor with closed outgoing port still can receive messages from incoming port
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.receive
- end
-
- r.close_outgoing
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ng'
- else
- 'ok'
- end
-}
-
-# Ractor.main returns main ractor
-assert_equal 'true', %q{
- Ractor.new{
- Ractor.main
- }.take == Ractor.current
-}
-
-# a ractor with closed outgoing port should terminate
-assert_equal 'ok', %q{
- Ractor.new do
- close_outgoing
- end
-
- true until Ractor.count == 1
- :ok
-}
-
-# multiple Ractors can receive (wait) from one Ractor
-assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- rs = RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- msg = pipe.take
- msg # ping-pong
- end
- }
- RN.times{|i|
- pipe << i
- }
- RN.times.map{
- r, n = Ractor.select(*rs)
- rs.delete r
- n
- }.sort
-}
-
-# Ractor.select also support multiple take, receive and yield
-assert_equal '[true, true, true]', %q{
- RN = 10
- CR = Ractor.current
-
- rs = (1..RN).map{
- Ractor.new do
- CR.send 'send' + CR.take #=> 'sendyield'
- 'take'
- end
- }
- received = []
- take = []
- yielded = []
- until rs.empty?
- r, v = Ractor.select(CR, *rs, yield_value: 'yield')
- case r
- when :receive
- received << v
- when :yield
- yielded << v
- else
- take << v
- rs.delete r
- end
- end
- [received.all?('sendyield'), yielded.all?(nil), take.all?('take')]
-}
-
-# multiple Ractors can send to one Ractor
-assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- pipe << i
- end
- }
- RN.times.map{
- pipe.take
- }.sort
-}
-
-# an exception in a Ractor will be re-raised at Ractor#receive
-assert_equal '[RuntimeError, "ok", true]', %q{
- r = Ractor.new do
- raise 'ok' # exception will be transferred receiver
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- [e.cause.class, #=> RuntimeError
- e.cause.message, #=> 'ok'
- e.ractor == r] #=> true
- end
-}
-
-# threads in a ractor will killed
-assert_equal '{:ok=>3}', %q{
- Ractor.new Ractor.current do |main|
- q = Queue.new
- Thread.new do
- q << true
- loop{}
- ensure
- main << :ok
- end
-
- Thread.new do
- q << true
- while true
- end
- ensure
- main << :ok
- end
-
- Thread.new do
- q << true
- sleep 1
- ensure
- main << :ok
- end
-
- # wait for the start of all threads
- 3.times{q.pop}
- end
-
- 3.times.map{Ractor.receive}.tally
-}
-
-# unshareable object are copied
-assert_equal 'false', %q{
- obj = 'str'.dup
- r = Ractor.new obj do |msg|
- msg.object_id
- end
-
- obj.object_id == r.take
-}
-
-# To copy the object, now Marshal#dump is used
-assert_equal "allocator undefined for Thread", %q{
- obj = Thread.new{}
- begin
- r = Ractor.new obj do |msg|
- msg
- end
- rescue TypeError => e
- e.message #=> no _dump_data is defined for class Thread
- else
- 'ng'
- end
-}
-
-# send shareable and unshareable objects
-assert_equal "ok", %q{
- echo_ractor = Ractor.new do
- loop do
- v = Ractor.receive
- Ractor.yield v
- end
- end
-
- class C; end
- module M; end
- S = Struct.new(:a, :b, :c, :d)
-
- shareable_objects = [
- true,
- false,
- nil,
- 1,
- 1.1, # Float
- 1+2r, # Rational
- 3+4i, # Complex
- 2**128, # Bignum
- :sym, # Symbol
- 'xyzzy'.to_sym, # dynamic symbol
- 'frozen'.freeze, # frozen String
- /regexp/, # regexp literal
- /reg{true}exp/.freeze, # frozen dregexp
- [1, 2].freeze, # frozen Array which only refers to shareable
- {a: 1}.freeze, # frozen Hash which only refers to shareable
- [{a: 1}.freeze, 'str'.freeze].freeze, # nested frozen container
- S.new(1, 2).freeze, # frozen Struct
- S.new(1, 2, 3, 4).freeze, # frozen Struct
- (1..2), # Range on Struct
- (1..), # Range on Struct
- (..1), # Range on Struct
- C, # class
- M, # module
- Ractor.current, # Ractor
- ]
-
- unshareable_objects = [
- 'mutable str'.dup,
- [:array],
- {hash: true},
- S.new(1, 2),
- S.new(1, 2, 3, 4),
- S.new("a", 2).freeze, # frozen, but refers to an unshareable object
- ]
-
- results = []
-
- shareable_objects.map{|o|
- echo_ractor << o
- o2 = echo_ractor.take
- results << "#{o} is copied" unless o.object_id == o2.object_id
- }
-
- unshareable_objects.map{|o|
- echo_ractor << o
- o2 = echo_ractor.take
- results << "#{o.inspect} is not copied" if o.object_id == o2.object_id
- }
-
- if results.empty?
- :ok
- else
- results.inspect
- end
-}
-
-# frozen Objects are shareable
-assert_equal [false, true, false].inspect, %q{
- class C
- def initialize freeze
- @a = 1
- @b = :sym
- @c = 'frozen_str'
- @c.freeze if freeze
- @d = true
- end
- end
-
- def check obj1
- obj2 = Ractor.new obj1 do |obj|
- obj
- end.take
-
- obj1.object_id == obj2.object_id
- end
-
- results = []
- results << check(C.new(true)) # false
- results << check(C.new(true).freeze) # true
- results << check(C.new(false).freeze) # false
-}
-
-# move example2: String
-# touching moved object causes an error
-assert_equal 'hello world', %q{
- # move
- r = Ractor.new do
- obj = Ractor.receive
- obj << ' world'
- end
-
- str = 'hello'
- r.send str, move: true
- modified = r.take
-
- begin
- str << ' exception' # raise Ractor::MovedError
- rescue Ractor::MovedError
- modified #=> 'hello world'
- else
- raise 'unreachable'
- end
-}
-
-# move example2: Array
-assert_equal '[0, 1]', %q{
- r = Ractor.new do
- ary = Ractor.receive
- ary << 1
- end
-
- a1 = [0]
- r.send a1, move: true
- a2 = r.take
- begin
- a1 << 2 # raise Ractor::MovedError
- rescue Ractor::MovedError
- a2.inspect
- end
-}
-
-# move with yield
-assert_equal 'hello', %q{
- r = Ractor.new do
- Thread.current.report_on_exception = false
- obj = 'hello'
- Ractor.yield obj, move: true
- obj << 'world'
- end
-
- str = r.take
- begin
- r.take
- rescue Ractor::RemoteError
- str #=> "hello"
- end
-}
-
-# Access to global-variables are prohibited
-assert_equal 'can not access global variables $gv from non-main Ractors', %q{
- $gv = 1
- r = Ractor.new do
- $gv
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Access to global-variables are prohibited
-assert_equal 'can not access global variables $gv from non-main Ractors', %q{
- r = Ractor.new do
- $gv = 1
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# $stdin,out,err is Ractor local, but shared fds
-assert_equal 'ok', %q{
- r = Ractor.new do
- [$stdin, $stdout, $stderr].map{|io|
- [io.object_id, io.fileno]
- }
- end
-
- [$stdin, $stdout, $stderr].zip(r.take){|io, (oid, fno)|
- raise "should not be different object" if io.object_id == oid
- raise "fd should be same" unless io.fileno == fno
- }
- 'ok'
-}
-
-# $stdin,out,err belong to Ractor
-assert_equal 'ok', %q{
- r = Ractor.new do
- $stdin.itself
- $stdout.itself
- $stderr.itself
- 'ok'
- end
-
- r.take
-}
-
-# $DEBUG, $VERBOSE are Ractor local
-assert_equal 'true', %q{
- $DEBUG = true
- $VERBOSE = true
-
- def ractor_local_globals
- /a(b)(c)d/ =~ 'abcd' # for $~
- `echo foo` unless /solaris/ =~ RUBY_PLATFORM
-
- {
- # ractor-local (derived from created ractor): debug
- '$DEBUG' => $DEBUG,
- '$-d' => $-d,
-
- # ractor-local (derived from created ractor): verbose
- '$VERBOSE' => $VERBOSE,
- '$-w' => $-w,
- '$-W' => $-W,
- '$-v' => $-v,
-
- # process-local (readonly): other commandline parameters
- '$-p' => $-p,
- '$-l' => $-l,
- '$-a' => $-a,
-
- # process-local (readonly): getpid
- '$$' => $$,
-
- # thread local: process result
- '$?' => $?,
-
- # scope local: match
- '$~' => $~.inspect,
- '$&' => $&,
- '$`' => $`,
- '$\'' => $',
- '$+' => $+,
- '$1' => $1,
-
- # scope local: last line
- '$_' => $_,
-
- # scope local: last backtrace
- '$@' => $@,
- '$!' => $!,
-
- # ractor local: stdin, out, err
- '$stdin' => $stdin.inspect,
- '$stdout' => $stdout.inspect,
- '$stderr' => $stderr.inspect,
- }
- end
-
- h = Ractor.new do
- ractor_local_globals
- end.take
- ractor_local_globals == h #=> true
-}
-
-# selfs are different objects
-assert_equal 'false', %q{
- r = Ractor.new do
- self.object_id
- end
- r.take == self.object_id #=> false
-}
-
-# self is a Ractor instance
-assert_equal 'true', %q{
- r = Ractor.new do
- self.object_id
- end
- r.object_id == r.take #=> true
-}
-
-# given block Proc will be isolated, so can not access outer variables.
-assert_equal 'ArgumentError', %q{
- begin
- a = true
- r = Ractor.new do
- a
- end
- rescue => e
- e.class
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access instance variables of classes/modules from non-main Ractors', %q{
- class C
- @iv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @iv
- end
- end
-
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- shared = Ractor.new{}
- shared.instance_variable_set(:@iv, 'str')
-
- r = Ractor.new shared do |shared|
- p shared.instance_variable_get(:@iv)
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (get)
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- class Ractor
- def setup
- @foo = ''
- end
-
- def foo
- @foo
- end
- end
-
- shared = Ractor.new{}
- shared.setup
-
- r = Ractor.new shared do |shared|
- p shared.foo
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (set)
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- class Ractor
- def setup
- @foo = ''
- end
- end
-
- shared = Ractor.new{}
-
- r = Ractor.new shared do |shared|
- p shared.setup
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# But a shareable object is frozen, it is allowed to access ivars from non-main Ractor
-assert_equal '11', %q{
- [Object.new, [], ].map{|obj|
- obj.instance_variable_set('@a', 1)
- Ractor.make_shareable obj = obj.freeze
-
- Ractor.new obj do |obj|
- obj.instance_variable_get('@a')
- end.take.to_s
- }.join
-}
-
-# cvar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access class variables from non-main Ractors', %q{
- class C
- @@cv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @@cv
- end
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Getting non-shareable objects via constants by other Ractors is not allowed
-assert_equal 'can not access non-shareable objects in constant C::CONST by non-main Ractor.', %q{
- class C
- CONST = 'str'
- end
- r = Ractor.new do
- C::CONST
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Constant cache should care about non-sharable constants
-assert_equal "can not access non-shareable objects in constant Object::STR by non-main Ractor.", %q{
- STR = "hello"
- def str; STR; end
- s = str() # fill const cache
- begin
- Ractor.new{ str() }.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Setting non-shareable objects into constants by other Ractors is not allowed
-assert_equal 'can not set constants with non-shareable objects by non-main Ractors', %q{
- class C
- end
- r = Ractor.new do
- C::CONST = 'str'
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# define_method is not allowed
-assert_equal "defined in a different Ractor", %q{
- str = "foo"
- define_method(:buggy){|i| str << "#{i}"}
- begin
- Ractor.new{buggy(10)}.take
- rescue => e
- e.cause.message
- end
-}
-
-# Immutable Array and Hash are shareable, so it can be shared with constants
-assert_equal '[1000, 3]', %q{
- A = Array.new(1000).freeze # [nil, ...]
- H = {a: 1, b: 2, c: 3}.freeze
-
- Ractor.new{ [A.size, H.size] }.take
-}
-
-# Ractor.count
-assert_equal '[1, 4, 3, 2, 1]', %q{
- counts = []
- counts << Ractor.count
- ractors = (1..3).map { Ractor.new { Ractor.receive } }
- counts << Ractor.count
-
- ractors[0].send('End 0').take
- sleep 0.1 until ractors[0].inspect =~ /terminated/
- counts << Ractor.count
-
- ractors[1].send('End 1').take
- sleep 0.1 until ractors[1].inspect =~ /terminated/
- counts << Ractor.count
-
- ractors[2].send('End 2').take
- sleep 0.1 until ractors[2].inspect =~ /terminated/
- counts << Ractor.count
-
- counts.inspect
-}
-
-# ObjectSpace.each_object can not handle unshareable objects with Ractors
-assert_equal '0', %q{
- Ractor.new{
- n = 0
- ObjectSpace.each_object{|o| n += 1 unless Ractor.shareable?(o)}
- n
- }.take
-}
-
-# ObjectSpace._id2ref can not handle unshareable objects with Ractors
-assert_equal 'ok', %q{
- s = 'hello'
-
- Ractor.new s.object_id do |id ;s|
- begin
- s = ObjectSpace._id2ref(id)
- rescue => e
- :ok
- end
- end.take
-}
-
-# Ractor.make_shareable(obj)
-assert_equal 'true', %q{
- class C
- def initialize
- @a = 'foo'
- @b = 'bar'
- end
-
- def freeze
- @c = [:freeze_called]
- super
- end
-
- attr_reader :a, :b, :c
- end
- S = Struct.new(:s1, :s2)
- str = "hello"
- str.instance_variable_set("@iv", "hello")
- /a/ =~ 'a'
- m = $~
- class N < Numeric
- def /(other)
- 1
- end
- end
- ary = []; ary << ary
-
- a = [[1, ['2', '3']],
- {Object.new => "hello"},
- C.new,
- S.new("x", "y"),
- ("a".."b"),
- str,
- ary, # cycle
- /regexp/,
- /#{'r'.upcase}/,
- m,
- Complex(N.new,0),
- Rational(N.new,0),
- true,
- false,
- nil,
- 1, 1.2, 1+3r, 1+4i, # Numeric
- ]
- Ractor.make_shareable(a)
-
- # check all frozen
- a.each{|o|
- raise o.inspect unless o.frozen?
-
- case o
- when C
- raise o.a.inspect unless o.a.frozen?
- raise o.b.inspect unless o.b.frozen?
- raise o.c.inspect unless o.c.frozen? && o.c == [:freeze_called]
- when Rational
- raise o.numerator.inspect unless o.numerator.frozen?
- when Complex
- raise o.real.inspect unless o.real.frozen?
- when Array
- if o[0] == 1
- raise o[1][1].inspect unless o[1][1].frozen?
- end
- when Hash
- o.each{|k, v|
- raise k.inspect unless k.frozen?
- raise v.inspect unless v.frozen?
- }
- end
- }
-
- Ractor.shareable?(a)
-}
-
-# Ractor.make_shareable(obj) doesn't freeze shareable objects
-assert_equal 'true', %q{
- r = Ractor.new{}
- Ractor.make_shareable(a = [r])
- [a.frozen?, a[0].frozen?] == [true, false]
-}
-
-# Ractor.make_shareable(a_proc) makes a proc shareable.
-assert_equal 'true', %q{
- a = [1, [2, 3], {a: "4"}]
- pr = Proc.new do
- a
- end
- Ractor.make_shareable(a) # referred value should be shareable
- Ractor.make_shareable(pr)
- Ractor.shareable?(pr)
-}
-
-# Ractor.shareable?(recursive_objects)
-assert_equal '[false, false]', %q{
- y = []
- x = [y, {}].freeze
- y << x
- y.freeze
- [Ractor.shareable?(x), Ractor.shareable?(y)]
-}
-
-# Ractor.make_shareable(recursive_objects)
-assert_equal '[:ok, false, false]', %q{
- o = Object.new
- def o.freeze; raise; end
- y = []
- x = [y, o].freeze
- y << x
- y.freeze
- [(Ractor.make_shareable(x) rescue :ok), Ractor.shareable?(x), Ractor.shareable?(y)]
-}
-
-# Ractor.make_shareable with Class/Module
-assert_equal '[C, M]', %q{
- class C; end
- module M; end
-
- Ractor.make_shareable(ary = [C, M])
-}
-
-# define_method() can invoke different Ractor's proc if the proc is shareable.
-assert_equal '1', %q{
- class C
- a = 1
- define_method "foo", Ractor.make_shareable(Proc.new{ a })
- a = 2
- end
-
- Ractor.new{ C.new.foo }.take
-}
-
-# Ractor.make_shareable(a_proc) makes a proc shareable.
-assert_equal 'can not make a Proc shareable because it accesses outer variables (a).', %q{
- a = b = nil
- pr = Proc.new do
- c = b # assign to a is okay because c is block local variable
- # reading b is okay
- a = b # assign to a is not allowed #=> Ractor::Error
- end
-
- begin
- Ractor.make_shareable(pr)
- rescue => e
- e.message
- end
-}
-
-# Ractor.make_shareable(obj, copy: true) makes copied shareable object.
-assert_equal '[false, false, true, true]', %q{
- r = []
- o1 = [1, 2, ["3"]]
-
- o2 = Ractor.make_shareable(o1, copy: true)
- r << Ractor.shareable?(o1) # false
- r << (o1.object_id == o2.object_id) # false
-
- o3 = Ractor.make_shareable(o1)
- r << Ractor.shareable?(o1) # true
- r << (o1.object_id == o3.object_id) # false
- r
-}
-
-# TracePoint with normal Proc should be Ractor local
-assert_equal '[4, 8]', %q{
- rs = []
- TracePoint.new(:line){|tp| rs << tp.lineno if tp.path == __FILE__}.enable do
- Ractor.new{ # line 4
- a = 1
- b = 2
- }.take
- c = 3 # line 8
- end
- rs
-}
-
-# Ractor deep copies frozen objects (ary)
-assert_equal '[true, false]', %q{
- Ractor.new([[]].freeze) { |ary|
- [ary.frozen?, ary.first.frozen? ]
- }.take
-}
-
-# Ractor deep copies frozen objects (str)
-assert_equal '[true, false]', %q{
- s = String.new.instance_eval { @x = []; freeze}
- Ractor.new(s) { |s|
- [s.frozen?, s.instance_variable_get(:@x).frozen?]
- }.take
-}
-
-# Can not trap with not isolated Proc on non-main ractor
-assert_equal '[:ok, :ok]', %q{
- a = []
- Ractor.new{
- trap(:INT){p :ok}
- }.take
- a << :ok
-
- begin
- Ractor.new{
- s = 'str'
- trap(:INT){p s}
- }.take
- rescue => Ractor::RemoteError
- a << :ok
- end
-}
-
-# Ractor-local storage
-assert_equal '[nil, "b", "a"]', %q{
- ans = []
- Ractor.current[:key] = 'a'
- r = Ractor.new{
- Ractor.yield self[:key]
- self[:key] = 'b'
- self[:key]
- }
- ans << r.take
- ans << r.take
- ans << Ractor.current[:key]
-}
-
-###
-### Synchronization tests
-###
-
-N = 100_000
-
-# fstring pool
-assert_equal "#{N}#{N}", %Q{
- N = #{N}
- 2.times.map{
- Ractor.new{
- N.times{|i| -(i.to_s)}
- }
- }.map{|r| r.take}.join
-}
-
-# enc_table
-assert_equal "#{N/10}", %Q{
- Ractor.new do
- loop do
- Encoding.find("test-enc-#{rand(5_000)}").inspect
- rescue ArgumentError => e
- end
- end
-
- src = Encoding.find("UTF-8")
- #{N/10}.times{|i|
- src.replicate("test-enc-\#{i}")
- }
-}
-
-# Generic ivtbl
-n = N/2
-assert_equal "#{n}#{n}", %Q{
- 2.times.map{
- Ractor.new do
- #{n}.times do
- obj = ''
- obj.instance_variable_set("@a", 1)
- obj.instance_variable_set("@b", 1)
- obj.instance_variable_set("@c", 1)
- obj.instance_variable_defined?("@a")
- end
- end
- }.map{|r| r.take}.join
-}
-
-# NameError
-assert_equal "ok", %q{
- begin
- bar
- rescue => err
- end
- begin
- Ractor.new{} << err
- rescue TypeError
- 'ok'
- end
-}
-
-end # if !ENV['GITHUB_WORKFLOW']
diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb
index fa27bf2aeb..a111990a1f 100644
--- a/bootstraptest/test_syntax.rb
+++ b/bootstraptest/test_syntax.rb
@@ -268,10 +268,8 @@ assert_equal %q{}, %q{
defined?(@@a)
}
assert_equal %q{class variable}, %q{
- class A
- @@a = 1
- defined?(@@a)
- end
+ @@a = 1
+ defined?(@@a)
}
assert_equal %q{}, %q{
defined?($a)
diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb
index 38a55ff229..f00e2f7efc 100644
--- a/bootstraptest/test_thread.rb
+++ b/bootstraptest/test_thread.rb
@@ -8,8 +8,7 @@ show_limit %q{
puts "Thread count: #{threads.count} (#{error})"
break
end while true
-} if false # disable to pass CI
-
+}
assert_equal %q{ok}, %q{
Thread.new{
}.join
@@ -484,17 +483,3 @@ assert_equal 'foo', %q{
GC.start
f.call.source
}
-assert_normal_exit %q{
- class C
- def inspect
- sleep 0.5
- 'C!!'
- end
- end
- Thread.new{
- loop{
- p C.new
- }
- }
- sleep 0.1
-}, timeout: 5
diff --git a/builtin.c b/builtin.c
index 7c3653dab7..6de77228d0 100644
--- a/builtin.c
+++ b/builtin.c
@@ -12,24 +12,27 @@
#include "builtin_binary.inc"
-static const unsigned char *
-bin4feature(const struct builtin_binary *bb, const char *feature, size_t *psize)
-{
- *psize = bb->bin_size;
- return strcmp(bb->feature, feature) ? NULL : bb->bin;
-}
-
static const unsigned char*
builtin_lookup(const char *feature, size_t *psize)
{
static int index = 0;
- const unsigned char *bin = bin4feature(&builtin_binary[index++], feature, psize);
+ int i = index++;
// usually, `builtin_binary` order is loading order at miniruby.
- for (const struct builtin_binary *bb = &builtin_binary[0]; bb->feature &&! bin; bb++) {
- bin = bin4feature(bb++, feature, psize);
+ if (LIKELY(strcmp(builtin_binary[i].feature, feature) == 0)) {
+ found:
+ *psize = builtin_binary[i].bin_size;
+ return builtin_binary[i].bin;
}
- return bin;
+ else {
+ if (0) fprintf(stderr, "builtin_lookup: cached index miss (index:%d)\n", i);
+ for (i=0; i<BUILTIN_BINARY_SIZE; i++) {
+ if (strcmp(builtin_binary[i].feature, feature) == 0) {
+ goto found;
+ }
+ }
+ }
+ rb_bug("builtin_lookup: can not find %s\n", feature);
}
void
@@ -38,9 +41,6 @@ rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin
// search binary
size_t size;
const unsigned char *bin = builtin_lookup(feature_name, &size);
- if (! bin) {
- rb_bug("builtin_lookup: can not find %s\n", feature_name);
- }
// load binary
rb_vm_t *vm = GET_VM();
diff --git a/builtin.h b/builtin.h
index 3b2f477654..f4d485e08d 100644
--- a/builtin.h
+++ b/builtin.h
@@ -11,24 +11,19 @@ struct rb_builtin_function {
// for load
const int index;
const char * const name;
-
- // for jit
- void (*compiler)(FILE *, long, unsigned, bool);
};
-#define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity, _compiler) {\
+#define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity) { \
.name = #_name, \
.func_ptr = (void *)_fname, \
.argc = _arity, \
- .index = _i, \
- .compiler = _compiler, \
+ .index = _i \
}
void rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table);
-#ifndef rb_execution_context_t
+#ifndef VM_CORE_H_EC_DEFINED
typedef struct rb_execution_context_struct rb_execution_context_t;
-#define rb_execution_context_t rb_execution_context_t
#endif
/* The following code is generated by the following Ruby script:
diff --git a/class.c b/class.c
index b607135e2f..c866d1d727 100644
--- a/class.c
+++ b/class.c
@@ -23,26 +23,15 @@
* \{
*/
-#include "ruby/internal/config.h"
-#include <ctype.h>
-
-#include "constant.h"
-#include "id_table.h"
#include "internal.h"
-#include "internal/class.h"
-#include "internal/eval.h"
-#include "internal/hash.h"
-#include "internal/object.h"
-#include "internal/string.h"
-#include "internal/variable.h"
#include "ruby/st.h"
+#include "constant.h"
#include "vm_core.h"
+#include "id_table.h"
+#include <ctype.h>
#define id_attached id__attached__
-#define METACLASS_OF(k) RBASIC(k)->klass
-#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)
-
void
rb_class_subclass_add(VALUE super, VALUE klass)
{
@@ -230,7 +219,7 @@ void
rb_check_inheritable(VALUE super)
{
if (!RB_TYPE_P(super, T_CLASS)) {
- rb_raise(rb_eTypeError, "superclass must be an instance of Class (given an instance of %"PRIsVALUE")",
+ rb_raise(rb_eTypeError, "superclass must be a Class (%"PRIsVALUE" given)",
rb_obj_class(super));
}
if (RBASIC(super)->flags & FL_SINGLETON) {
@@ -319,9 +308,26 @@ class_init_copy_check(VALUE clone, VALUE orig)
}
}
-static void
-copy_tables(VALUE clone, VALUE orig)
+/* :nodoc: */
+VALUE
+rb_mod_init_copy(VALUE clone, VALUE orig)
{
+ /* cloned flag is refer at constant inline cache
+ * see vm_get_const_key_cref() in vm_insnhelper.c
+ */
+ FL_SET(clone, RCLASS_CLONED);
+ FL_SET(orig , RCLASS_CLONED);
+
+ if (RB_TYPE_P(clone, T_CLASS)) {
+ class_init_copy_check(clone, orig);
+ }
+ if (!OBJ_INIT_COPY(clone, orig)) return clone;
+ if (!FL_TEST(CLASS_OF(clone), FL_SINGLETON)) {
+ RBASIC_SET_CLASS(clone, rb_singleton_class_clone(orig));
+ rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);
+ }
+ RCLASS_SET_SUPER(clone, RCLASS_SUPER(orig));
+ RCLASS_EXT(clone)->allocator = RCLASS_EXT(orig)->allocator;
if (RCLASS_IV_TBL(clone)) {
st_free_table(RCLASS_IV_TBL(clone));
RCLASS_IV_TBL(clone) = 0;
@@ -349,31 +355,6 @@ copy_tables(VALUE clone, VALUE orig)
arg.klass = clone;
rb_id_table_foreach(RCLASS_CONST_TBL(orig), clone_const_i, &arg);
}
-}
-
-static void ensure_origin(VALUE klass);
-
-/* :nodoc: */
-VALUE
-rb_mod_init_copy(VALUE clone, VALUE orig)
-{
- if (RB_TYPE_P(clone, T_CLASS)) {
- class_init_copy_check(clone, orig);
- }
- if (!OBJ_INIT_COPY(clone, orig)) return clone;
-
- /* cloned flag is refer at constant inline cache
- * see vm_get_const_key_cref() in vm_insnhelper.c
- */
- FL_SET(clone, RCLASS_CLONED);
- FL_SET(orig , RCLASS_CLONED);
-
- if (!FL_TEST(CLASS_OF(clone), FL_SINGLETON)) {
- RBASIC_SET_CLASS(clone, rb_singleton_class_clone(orig));
- rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);
- }
- RCLASS_EXT(clone)->allocator = RCLASS_EXT(orig)->allocator;
- copy_tables(clone, orig);
if (RCLASS_M_TBL(orig)) {
struct clone_method_arg arg;
arg.old_klass = orig;
@@ -382,75 +363,6 @@ rb_mod_init_copy(VALUE clone, VALUE orig)
rb_id_table_foreach(RCLASS_M_TBL(orig), clone_method_i, &arg);
}
- if (RCLASS_ORIGIN(orig) == orig) {
- RCLASS_SET_SUPER(clone, RCLASS_SUPER(orig));
- }
- else {
- VALUE p = RCLASS_SUPER(orig);
- VALUE orig_origin = RCLASS_ORIGIN(orig);
- VALUE prev_clone_p = clone;
- VALUE origin_stack = rb_ary_tmp_new(2);
- VALUE origin[2];
- VALUE clone_p = 0;
- long origin_len;
- int add_subclass;
- VALUE clone_origin;
-
- ensure_origin(clone);
- clone_origin = RCLASS_ORIGIN(clone);
-
- while (p && p != orig_origin) {
- if (BUILTIN_TYPE(p) != T_ICLASS) {
- rb_bug("non iclass between module/class and origin");
- }
- clone_p = class_alloc(RBASIC(p)->flags, RBASIC(p)->klass);
- RCLASS_SET_SUPER(prev_clone_p, clone_p);
- prev_clone_p = clone_p;
- RCLASS_M_TBL(clone_p) = RCLASS_M_TBL(p);
- RCLASS_CONST_TBL(clone_p) = RCLASS_CONST_TBL(p);
- RCLASS_IV_TBL(clone_p) = RCLASS_IV_TBL(p);
- RCLASS_EXT(clone_p)->allocator = RCLASS_EXT(p)->allocator;
- if (RB_TYPE_P(clone, T_CLASS)) {
- RCLASS_SET_INCLUDER(clone_p, clone);
- }
- add_subclass = TRUE;
- if (p != RCLASS_ORIGIN(p)) {
- origin[0] = clone_p;
- origin[1] = RCLASS_ORIGIN(p);
- rb_ary_cat(origin_stack, origin, 2);
- }
- else if ((origin_len = RARRAY_LEN(origin_stack)) > 1 &&
- RARRAY_AREF(origin_stack, origin_len - 1) == p) {
- RCLASS_SET_ORIGIN(RARRAY_AREF(origin_stack, (origin_len -= 2)), clone_p);
- RICLASS_SET_ORIGIN_SHARED_MTBL(clone_p);
- rb_ary_resize(origin_stack, origin_len);
- add_subclass = FALSE;
- }
- if (add_subclass) {
- rb_module_add_to_subclasses_list(RBASIC(p)->klass, clone_p);
- }
- p = RCLASS_SUPER(p);
- }
-
- if (p == orig_origin) {
- if (clone_p) {
- RCLASS_SET_SUPER(clone_p, clone_origin);
- RCLASS_SET_SUPER(clone_origin, RCLASS_SUPER(orig_origin));
- }
- copy_tables(clone_origin, orig_origin);
- if (RCLASS_M_TBL(orig_origin)) {
- struct clone_method_arg arg;
- arg.old_klass = orig;
- arg.new_klass = clone;
- RCLASS_M_TBL_INIT(clone_origin);
- rb_id_table_foreach(RCLASS_M_TBL(orig_origin), clone_method_i, &arg);
- }
- }
- else {
- rb_bug("no origin for class that has origin");
- }
- }
-
return clone;
}
@@ -460,35 +372,22 @@ rb_singleton_class_clone(VALUE obj)
return rb_singleton_class_clone_and_attach(obj, Qundef);
}
-// Clone and return the singleton class of `obj` if it has been created and is attached to `obj`.
VALUE
rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach)
{
const VALUE klass = RBASIC(obj)->klass;
- // Note that `rb_singleton_class()` can create situations where `klass` is
- // attached to an object other than `obj`. In which case `obj` does not have
- // a material singleton class attached yet and there is no singleton class
- // to clone.
- if (!(FL_TEST(klass, FL_SINGLETON) && rb_attr_get(klass, id_attached) == obj)) {
- // nothing to clone
- return klass;
- }
+ if (!FL_TEST(klass, FL_SINGLETON))
+ return klass;
else {
/* copy singleton(unnamed) class */
- bool klass_of_clone_is_new;
VALUE clone = class_alloc(RBASIC(klass)->flags, 0);
if (BUILTIN_TYPE(obj) == T_CLASS) {
- klass_of_clone_is_new = true;
RBASIC_SET_CLASS(clone, clone);
}
else {
- VALUE klass_metaclass_clone = rb_singleton_class_clone(klass);
- // When `METACLASS_OF(klass) == klass_metaclass_clone`, it means the
- // recursive call did not clone `METACLASS_OF(klass)`.
- klass_of_clone_is_new = (METACLASS_OF(klass) != klass_metaclass_clone);
- RBASIC_SET_CLASS(clone, klass_metaclass_clone);
+ RBASIC_SET_CLASS(clone, rb_singleton_class_clone(klass));
}
RCLASS_SET_SUPER(clone, RCLASS_SUPER(klass));
@@ -512,9 +411,7 @@ rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach)
arg.new_klass = clone;
rb_id_table_foreach(RCLASS_M_TBL(klass), clone_method_i, &arg);
}
- if (klass_of_clone_is_new) {
- rb_singleton_class_attached(RBASIC(clone)->klass, clone);
- }
+ rb_singleton_class_attached(RBASIC(clone)->klass, clone);
FL_SET(clone, FL_SINGLETON);
return clone;
@@ -536,6 +433,11 @@ rb_singleton_class_attached(VALUE klass, VALUE obj)
}
}
+
+
+#define METACLASS_OF(k) RBASIC(k)->klass
+#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)
+
/*!
* whether k is a meta^(n)-class of Class class
* @retval 1 if \a k is a meta^(n)-class of Class class (n >= 0)
@@ -639,7 +541,7 @@ boot_defclass(const char *name, VALUE super)
ID id = rb_intern(name);
rb_const_set((rb_cObject ? rb_cObject : obj), id, obj);
- rb_vm_add_root_module(obj);
+ rb_vm_add_root_module(id, obj);
return obj;
}
@@ -761,14 +663,14 @@ rb_define_class(const char *name, VALUE super)
}
/* Class may have been defined in Ruby and not pin-rooted */
- rb_vm_add_root_module(klass);
+ rb_vm_add_root_module(id, klass);
return klass;
}
if (!super) {
rb_raise(rb_eArgError, "no super class for `%s'", name);
}
klass = rb_define_class_id(id, super);
- rb_vm_add_root_module(klass);
+ rb_vm_add_root_module(id, klass);
rb_const_set(rb_cObject, id, klass);
rb_class_inherited(super, klass);
@@ -834,7 +736,7 @@ rb_define_class_id_under(VALUE outer, ID id, VALUE super)
outer, rb_id2str(id), RCLASS_SUPER(klass), super);
}
/* Class may have been defined in Ruby and not pin-rooted */
- rb_vm_add_root_module(klass);
+ rb_vm_add_root_module(id, klass);
return klass;
}
@@ -846,7 +748,8 @@ rb_define_class_id_under(VALUE outer, ID id, VALUE super)
rb_set_class_path_string(klass, outer, rb_id2str(id));
rb_const_set(outer, id, klass);
rb_class_inherited(super, klass);
- rb_vm_add_root_module(klass);
+ rb_vm_add_root_module(id, klass);
+ rb_gc_register_mark_object(klass);
return klass;
}
@@ -859,7 +762,6 @@ rb_module_new(void)
return (VALUE)mdl;
}
-// Kept for compatibility. Use rb_module_new() instead.
VALUE
rb_define_module_id(ID id)
{
@@ -880,11 +782,12 @@ rb_define_module(const char *name)
name, rb_obj_class(module));
}
/* Module may have been defined in Ruby and not pin-rooted */
- rb_vm_add_root_module(module);
+ rb_vm_add_root_module(id, module);
return module;
}
- module = rb_module_new();
- rb_vm_add_root_module(module);
+ module = rb_define_module_id(id);
+ rb_vm_add_root_module(id, module);
+ rb_gc_register_mark_object(module);
rb_const_set(rb_cObject, id, module);
return module;
@@ -910,7 +813,7 @@ rb_define_module_id_under(VALUE outer, ID id)
}
return module;
}
- module = rb_module_new();
+ module = rb_define_module_id(id);
rb_const_set(outer, id, module);
rb_set_class_path_string(module, outer, rb_id2str(id));
rb_gc_register_mark_object(module);
@@ -923,13 +826,13 @@ rb_include_class_new(VALUE module, VALUE super)
{
VALUE klass = class_alloc(T_ICLASS, rb_cClass);
- RCLASS_M_TBL(klass) = RCLASS_M_TBL(module);
+ RCLASS_M_TBL(OBJ_WB_UNPROTECT(klass)) =
+ RCLASS_M_TBL(OBJ_WB_UNPROTECT(module)); /* TODO: unprotected? */
- RCLASS_SET_ORIGIN(klass, klass);
+ RCLASS_SET_ORIGIN(klass, module == RCLASS_ORIGIN(module) ? klass : RCLASS_ORIGIN(module));
if (BUILTIN_TYPE(module) == T_ICLASS) {
module = RBASIC(module)->klass;
}
- RUBY_ASSERT(!RB_TYPE_P(module, T_ICLASS));
if (!RCLASS_IV_TBL(module)) {
RCLASS_IV_TBL(module) = st_init_numtable();
}
@@ -940,7 +843,12 @@ rb_include_class_new(VALUE module, VALUE super)
RCLASS_CONST_TBL(klass) = RCLASS_CONST_TBL(module);
RCLASS_SET_SUPER(klass, super);
- RBASIC_SET_CLASS(klass, module);
+ if (RB_TYPE_P(module, T_ICLASS)) {
+ RBASIC_SET_CLASS(klass, RBASIC(module)->klass);
+ }
+ else {
+ RBASIC_SET_CLASS(klass, module);
+ }
return (VALUE)klass;
}
@@ -967,26 +875,6 @@ rb_include_module(VALUE klass, VALUE module)
changed = include_modules_at(klass, RCLASS_ORIGIN(klass), module, TRUE);
if (changed < 0)
rb_raise(rb_eArgError, "cyclic include detected");
-
- if (RB_TYPE_P(klass, T_MODULE)) {
- rb_subclass_entry_t *iclass = RCLASS_EXT(klass)->subclasses;
- int do_include = 1;
- while (iclass) {
- VALUE check_class = iclass->klass;
- while (check_class) {
- if (RB_TYPE_P(check_class, T_ICLASS) &&
- (RBASIC(check_class)->klass == module)) {
- do_include = 0;
- }
- check_class = RCLASS_SUPER(check_class);
- }
-
- if (do_include) {
- include_modules_at(iclass->klass, RCLASS_ORIGIN(iclass->klass), module, TRUE);
- }
- iclass = iclass->next;
- }
- }
}
static enum rb_id_table_iterator_result
@@ -996,40 +884,31 @@ add_refined_method_entry_i(ID key, VALUE value, void *data)
return ID_TABLE_CONTINUE;
}
-static enum rb_id_table_iterator_result
-clear_module_cache_i(ID id, VALUE val, void *data)
-{
- VALUE klass = (VALUE)data;
- rb_clear_method_cache(klass, id);
- return ID_TABLE_CONTINUE;
-}
+static void ensure_origin(VALUE klass);
static int
include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)
{
- VALUE p, iclass, origin_stack = 0;
- int method_changed = 0, constant_changed = 0, add_subclass;
- long origin_len;
+ VALUE p, iclass;
+ int method_changed = 0, constant_changed = 0;
struct rb_id_table *const klass_m_tbl = RCLASS_M_TBL(RCLASS_ORIGIN(klass));
- VALUE original_klass = klass;
+
+ if (FL_TEST(module, RCLASS_REFINED_BY_ANY)) {
+ ensure_origin(module);
+ }
while (module) {
- int origin_seen = FALSE;
int superclass_seen = FALSE;
struct rb_id_table *tbl;
- if (klass == c)
- origin_seen = TRUE;
if (klass_m_tbl && klass_m_tbl == RCLASS_M_TBL(module))
return -1;
/* ignore if the module included already in superclasses */
- for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {
+ for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {
int type = BUILTIN_TYPE(p);
- if (c == p)
- origin_seen = TRUE;
if (type == T_ICLASS) {
if (RCLASS_M_TBL(p) == RCLASS_M_TBL(module)) {
- if (!superclass_seen && origin_seen) {
+ if (!superclass_seen) {
c = p; /* move insertion point */
}
goto skip;
@@ -1037,66 +916,37 @@ include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)
}
else if (type == T_CLASS) {
if (!search_super) break;
- superclass_seen = TRUE;
+ superclass_seen = TRUE;
}
}
-
- VALUE super_class = RCLASS_SUPER(c);
-
- // invalidate inline method cache
- tbl = RCLASS_M_TBL(module);
- if (tbl && rb_id_table_size(tbl)) {
- if (search_super) { // include
- if (super_class && !RB_TYPE_P(super_class, T_MODULE)) {
- rb_id_table_foreach(tbl, clear_module_cache_i, (void *)super_class);
- }
- }
- else { // prepend
- if (!RB_TYPE_P(original_klass, T_MODULE)) {
- rb_id_table_foreach(tbl, clear_module_cache_i, (void *)original_klass);
- }
- }
- method_changed = 1;
- }
-
- // setup T_ICLASS for the include/prepend module
- iclass = rb_include_class_new(module, super_class);
+ iclass = rb_include_class_new(module, RCLASS_SUPER(c));
c = RCLASS_SET_SUPER(c, iclass);
RCLASS_SET_INCLUDER(iclass, klass);
- add_subclass = TRUE;
- if (module != RCLASS_ORIGIN(module)) {
- if (!origin_stack) origin_stack = rb_ary_tmp_new(2);
- VALUE origin[2] = {iclass, RCLASS_ORIGIN(module)};
- rb_ary_cat(origin_stack, origin, 2);
- }
- else if (origin_stack && (origin_len = RARRAY_LEN(origin_stack)) > 1 &&
- RARRAY_AREF(origin_stack, origin_len - 1) == module) {
- RCLASS_SET_ORIGIN(RARRAY_AREF(origin_stack, (origin_len -= 2)), iclass);
- RICLASS_SET_ORIGIN_SHARED_MTBL(iclass);
- rb_ary_resize(origin_stack, origin_len);
- add_subclass = FALSE;
- }
{
VALUE m = module;
- if (BUILTIN_TYPE(m) == T_ICLASS) m = RBASIC(m)->klass;
- if (add_subclass) rb_module_add_to_subclasses_list(m, iclass);
+ if (BUILTIN_TYPE(m) == T_ICLASS) m = RBASIC(m)->klass;
+ rb_module_add_to_subclasses_list(m, iclass);
}
if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {
VALUE refined_class =
rb_refinement_module_get_refined_class(klass);
- rb_id_table_foreach(RCLASS_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);
+ rb_id_table_foreach(RMODULE_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);
FL_SET(c, RMODULE_INCLUDED_INTO_REFINEMENT);
}
- tbl = RCLASS_CONST_TBL(module);
+ tbl = RMODULE_M_TBL(module);
+ if (tbl && rb_id_table_size(tbl)) method_changed = 1;
+
+ tbl = RMODULE_CONST_TBL(module);
if (tbl && rb_id_table_size(tbl)) constant_changed = 1;
skip:
module = RCLASS_SUPER(module);
}
+ if (method_changed) rb_clear_method_cache_by_class(klass);
if (constant_changed) rb_clear_constant_cache();
return method_changed;
@@ -1105,22 +955,22 @@ include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)
static enum rb_id_table_iterator_result
move_refined_method(ID key, VALUE value, void *data)
{
- rb_method_entry_t *me = (rb_method_entry_t *)value;
+ rb_method_entry_t *me = (rb_method_entry_t *) value;
+ VALUE klass = (VALUE)data;
+ struct rb_id_table *tbl = RCLASS_M_TBL(klass);
if (me->def->type == VM_METHOD_TYPE_REFINED) {
- VALUE klass = (VALUE)data;
- struct rb_id_table *tbl = RCLASS_M_TBL(klass);
-
- if (me->def->body.refined.orig_me) {
+ if (me->def->body.refined.orig_me) {
const rb_method_entry_t *orig_me = me->def->body.refined.orig_me, *new_me;
RB_OBJ_WRITE(me, &me->def->body.refined.orig_me, NULL);
new_me = rb_method_entry_clone(me);
- rb_method_table_insert(klass, tbl, key, new_me);
+ rb_id_table_insert(tbl, key, (VALUE)new_me);
+ RB_OBJ_WRITTEN(klass, Qundef, new_me);
rb_method_entry_copy(me, orig_me);
return ID_TABLE_CONTINUE;
}
else {
- rb_method_table_insert(klass, tbl, key, me);
+ rb_id_table_insert(tbl, key, (VALUE)me);
return ID_TABLE_DELETE;
}
}
@@ -1129,33 +979,18 @@ move_refined_method(ID key, VALUE value, void *data)
}
}
-static enum rb_id_table_iterator_result
-cache_clear_refined_method(ID key, VALUE value, void *data)
-{
- rb_method_entry_t *me = (rb_method_entry_t *) value;
-
- if (me->def->type == VM_METHOD_TYPE_REFINED && me->def->body.refined.orig_me) {
- VALUE klass = (VALUE)data;
- rb_clear_method_cache(klass, me->called_id);
- }
- // Refined method entries without an orig_me is going to stay in the method
- // table of klass, like before the move, so no need to clear the cache.
-
- return ID_TABLE_CONTINUE;
-}
-
static void
ensure_origin(VALUE klass)
{
VALUE origin = RCLASS_ORIGIN(klass);
if (origin == klass) {
origin = class_alloc(T_ICLASS, klass);
+ OBJ_WB_UNPROTECT(origin); /* TODO: conservative shading. Need more survey. */
RCLASS_SET_SUPER(origin, RCLASS_SUPER(klass));
RCLASS_SET_SUPER(klass, origin);
RCLASS_SET_ORIGIN(klass, origin);
RCLASS_M_TBL(origin) = RCLASS_M_TBL(klass);
RCLASS_M_TBL_INIT(klass);
- rb_id_table_foreach(RCLASS_M_TBL(origin), cache_clear_refined_method, (void *)klass);
rb_id_table_foreach(RCLASS_M_TBL(origin), move_refined_method, (void *)klass);
}
}
@@ -1164,7 +999,6 @@ void
rb_prepend_module(VALUE klass, VALUE module)
{
int changed = 0;
- bool klass_had_no_origin = RCLASS_ORIGIN(klass) == klass;
ensure_includable(klass, module);
ensure_origin(klass);
@@ -1174,48 +1008,23 @@ rb_prepend_module(VALUE klass, VALUE module)
if (changed) {
rb_vm_check_redefinition_by_prepend(klass);
}
- if (RB_TYPE_P(klass, T_MODULE)) {
- rb_subclass_entry_t *iclass = RCLASS_EXT(klass)->subclasses;
- VALUE klass_origin = RCLASS_ORIGIN(klass);
- struct rb_id_table *klass_m_tbl = RCLASS_M_TBL(klass);
- struct rb_id_table *klass_origin_m_tbl = RCLASS_M_TBL(klass_origin);
- while (iclass) {
- if (klass_had_no_origin && klass_origin_m_tbl == RCLASS_M_TBL(iclass->klass)) {
- // backfill an origin iclass to handle refinements and future prepends
- rb_id_table_foreach(RCLASS_M_TBL(iclass->klass), clear_module_cache_i, (void *)iclass->klass);
- RCLASS_M_TBL(iclass->klass) = klass_m_tbl;
- VALUE origin = rb_include_class_new(klass_origin, RCLASS_SUPER(iclass->klass));
- RCLASS_SET_SUPER(iclass->klass, origin);
- RCLASS_SET_INCLUDER(origin, RCLASS_INCLUDER(iclass->klass));
- RCLASS_SET_ORIGIN(iclass->klass, origin);
- RICLASS_SET_ORIGIN_SHARED_MTBL(origin);
- }
- include_modules_at(iclass->klass, iclass->klass, module, FALSE);
- iclass = iclass->next;
- }
- }
}
/*
* call-seq:
* mod.included_modules -> array
*
- * Returns the list of modules included or prepended in <i>mod</i>
- * or one of <i>mod</i>'s ancestors.
- *
- * module Sub
- * end
+ * Returns the list of modules included in <i>mod</i>.
*
* module Mixin
- * prepend Sub
* end
*
* module Outer
* include Mixin
* end
*
- * Mixin.included_modules #=> [Sub]
- * Outer.included_modules #=> [Sub, Mixin]
+ * Mixin.included_modules #=> []
+ * Outer.included_modules #=> [Mixin]
*/
VALUE
@@ -1226,7 +1035,7 @@ rb_mod_included_modules(VALUE mod)
VALUE origin = RCLASS_ORIGIN(mod);
for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {
- if (p != origin && RCLASS_ORIGIN(p) == p && BUILTIN_TYPE(p) == T_ICLASS) {
+ if (p != origin && BUILTIN_TYPE(p) == T_ICLASS) {
VALUE m = RBASIC(p)->klass;
if (RB_TYPE_P(m, T_MODULE))
rb_ary_push(ary, m);
@@ -1239,8 +1048,8 @@ rb_mod_included_modules(VALUE mod)
* call-seq:
* mod.include?(module) -> true or false
*
- * Returns <code>true</code> if <i>module</i> is included
- * or prepended in <i>mod</i> or one of <i>mod</i>'s ancestors.
+ * Returns <code>true</code> if <i>module</i> is included in
+ * <i>mod</i> or one of <i>mod</i>'s ancestors.
*
* module A
* end
@@ -1261,7 +1070,7 @@ rb_mod_include_p(VALUE mod, VALUE mod2)
Check_Type(mod2, T_MODULE);
for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {
- if (BUILTIN_TYPE(p) == T_ICLASS && !FL_TEST(p, RICLASS_IS_ORIGIN)) {
+ if (BUILTIN_TYPE(p) == T_ICLASS) {
if (RBASIC(p)->klass == mod2) return Qtrue;
}
}
@@ -1793,15 +1602,19 @@ rb_undef_methods_from(VALUE klass, VALUE super)
* \{
*/
+#define SPECIAL_SINGLETON(x,c) do {\
+ if (obj == (x)) {\
+ return (c);\
+ }\
+} while (0)
+
static inline VALUE
special_singleton_class_of(VALUE obj)
{
- switch (obj) {
- case Qnil: return rb_cNilClass;
- case Qfalse: return rb_cFalseClass;
- case Qtrue: return rb_cTrueClass;
- default: return Qnil;
- }
+ SPECIAL_SINGLETON(Qnil, rb_cNilClass);
+ SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);
+ SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);
+ return Qnil;
}
VALUE
@@ -1824,30 +1637,29 @@ singleton_class_of(VALUE obj)
{
VALUE klass;
- switch (TYPE(obj)) {
- case T_FIXNUM:
- case T_BIGNUM:
- case T_FLOAT:
- case T_SYMBOL:
+ if (FIXNUM_P(obj) || FLONUM_P(obj) || STATIC_SYM_P(obj)) {
+ no_singleton:
rb_raise(rb_eTypeError, "can't define singleton");
-
- case T_FALSE:
- case T_TRUE:
- case T_NIL:
+ }
+ if (SPECIAL_CONST_P(obj)) {
klass = special_singleton_class_of(obj);
if (NIL_P(klass))
rb_bug("unknown immediate %p", (void *)obj);
return klass;
-
- case T_STRING:
- if (FL_TEST_RAW(obj, RSTRING_FSTR)) {
- rb_raise(rb_eTypeError, "can't define singleton");
- }
+ }
+ else {
+ switch (BUILTIN_TYPE(obj)) {
+ case T_FLOAT: case T_BIGNUM: case T_SYMBOL:
+ goto no_singleton;
+ case T_STRING:
+ if (FL_TEST_RAW(obj, RSTRING_FSTR)) goto no_singleton;
+ break;
+ }
}
klass = RBASIC(obj)->klass;
if (!(FL_TEST(klass, FL_SINGLETON) &&
- rb_attr_get(klass, id_attached) == obj)) {
+ rb_ivar_get(klass, id_attached) == obj)) {
rb_serial_t serial = RCLASS_SERIAL(klass);
klass = rb_make_metaclass(obj, klass);
RCLASS_SERIAL(klass) = serial;
@@ -1888,7 +1700,7 @@ rb_singleton_class_get(VALUE obj)
}
klass = RBASIC(obj)->klass;
if (!FL_TEST(klass, FL_SINGLETON)) return Qnil;
- if (rb_attr_get(klass, id_attached) != obj) return Qnil;
+ if (rb_ivar_get(klass, id_attached) != obj) return Qnil;
return klass;
}
@@ -1896,7 +1708,7 @@ rb_singleton_class_get(VALUE obj)
* Returns the singleton class of \a obj. Creates it if necessary.
*
* \param obj an arbitrary object.
- * \throw TypeError if \a obj is an Integer or a Symbol.
+ * \throw TypeError if \a obj is a Integer or a Symbol.
* \return the singleton class.
*
* \post \a obj has its own singleton class.
@@ -2127,22 +1939,52 @@ rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, V
}
struct rb_scan_args_t {
- int kw_flag;
+ int argc;
+ const VALUE *argv;
+ va_list vargs;
+ int f_var;
+ int f_hash;
+ int f_block;
int n_lead;
int n_opt;
int n_trail;
- bool f_var;
- bool f_hash;
- bool f_block;
+ int n_mand;
+ int argi;
+ int last_idx;
+ VALUE hash;
+ VALUE last_hash;
+ VALUE *tmp_buffer;
};
static void
-rb_scan_args_parse(int kw_flag, const char *fmt, struct rb_scan_args_t *arg)
+rb_scan_args_parse(int kw_flag, int argc, const VALUE *argv, const char *fmt, struct rb_scan_args_t *arg)
{
const char *p = fmt;
+ VALUE *tmp_buffer = arg->tmp_buffer;
+ int keyword_given = 0;
+ int empty_keyword_given = 0;
+ int last_hash_keyword = 0;
memset(arg, 0, sizeof(*arg));
- arg->kw_flag = kw_flag;
+ arg->last_idx = -1;
+ arg->hash = Qnil;
+
+ switch (kw_flag) {
+ case RB_SCAN_ARGS_PASS_CALLED_KEYWORDS:
+ if (!(keyword_given = rb_keyword_given_p())) {
+ empty_keyword_given = rb_empty_keyword_given_p();
+ }
+ break;
+ case RB_SCAN_ARGS_KEYWORDS:
+ keyword_given = 1;
+ break;
+ case RB_SCAN_ARGS_EMPTY_KEYWORDS:
+ empty_keyword_given = 1;
+ break;
+ case RB_SCAN_ARGS_LAST_HASH_KEYWORDS:
+ last_hash_keyword = 1;
+ break;
+ }
if (ISDIGIT(*p)) {
arg->n_lead = *p - '0';
@@ -2171,47 +2013,97 @@ rb_scan_args_parse(int kw_flag, const char *fmt, struct rb_scan_args_t *arg)
if (*p != '\0') {
rb_fatal("bad scan arg format: %s", fmt);
}
-}
+ arg->n_mand = arg->n_lead + arg->n_trail;
-static int
-rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *const argv, va_list vargs)
-{
- int i, argi = 0;
- VALUE *var, hash = Qnil;
-#define rb_scan_args_next_param() va_arg(vargs, VALUE *)
- const int kw_flag = arg->kw_flag;
- const int n_lead = arg->n_lead;
- const int n_opt = arg->n_opt;
- const int n_trail = arg->n_trail;
- const int n_mand = n_lead + n_trail;
- const bool f_var = arg->f_var;
- const bool f_hash = arg->f_hash;
- const bool f_block = arg->f_block;
-
- /* capture an option hash - phase 1: pop from the argv */
- if (f_hash && argc > 0) {
+ /* capture an option hash - phase 1: pop */
+ /* Ignore final positional hash if empty keywords given */
+ if (argc > 0 && !(arg->f_hash && empty_keyword_given)) {
VALUE last = argv[argc - 1];
- if (rb_scan_args_keyword_p(kw_flag, last)) {
- hash = rb_hash_dup(last);
- argc--;
+
+ if (arg->f_hash && arg->n_mand < argc) {
+ if (keyword_given) {
+ if (!RB_TYPE_P(last, T_HASH)) {
+ rb_warn("Keyword flag set when calling rb_scan_args, but last entry is not a hash");
+ }
+ else {
+ arg->hash = last;
+ }
+ }
+ else if (NIL_P(last)) {
+ /* For backwards compatibility, nil is taken as an empty
+ option hash only if it is not ambiguous; i.e. '*' is
+ not specified and arguments are given more than sufficient.
+ This will be removed in Ruby 3. */
+ if (!arg->f_var && arg->n_mand + arg->n_opt < argc) {
+ rb_warn("The last argument is nil, treating as empty keywords");
+ argc--;
+ }
+ }
+ else {
+ arg->hash = rb_check_hash_type(last);
+ }
+
+ /* Ruby 3: Remove if branch, as it will not attempt to split hashes */
+ if (!NIL_P(arg->hash)) {
+ VALUE opts = rb_extract_keywords(&arg->hash);
+
+ if (!(arg->last_hash = arg->hash)) {
+ if (!keyword_given && !last_hash_keyword) {
+ /* Warn if treating positional as keyword, as in Ruby 3,
+ this will be an error */
+ rb_warn("Using the last argument as keyword parameters is deprecated");
+ }
+ argc--;
+ }
+ else {
+ /* Warn if splitting either positional hash to keywords or keywords
+ to positional hash, as in Ruby 3, no splitting will be done */
+ rb_warn("The last argument is split into positional and keyword parameters");
+ arg->last_idx = argc - 1;
+ }
+ arg->hash = opts ? opts : Qnil;
+ }
+ }
+ else if (arg->f_hash && keyword_given && arg->n_mand == argc) {
+ /* Warn if treating keywords as positional, as in Ruby 3, this will be an error */
+ rb_warn("Passing the keyword argument as the last hash parameter is deprecated");
}
}
+ if (arg->f_hash && arg->n_mand == argc+1 && empty_keyword_given) {
+ VALUE *ptr = rb_alloc_tmp_buffer2(tmp_buffer, argc+1, sizeof(VALUE));
+ memcpy(ptr, argv, sizeof(VALUE)*argc);
+ ptr[argc] = rb_hash_new();
+ argc++;
+ *(&argv) = ptr;
+ rb_warn("Passing the keyword argument as the last hash parameter is deprecated");
+ }
+
+ arg->argc = argc;
+ arg->argv = argv;
+}
+
+static int
+rb_scan_args_assign(struct rb_scan_args_t *arg, va_list vargs)
+{
+ int argi = 0;
+ int i;
+ VALUE *var;
- if (argc < n_mand) {
- goto argc_error;
+ if (arg->argc < arg->n_mand) {
+ return 1;
}
/* capture leading mandatory arguments */
- for (i = 0; i < n_lead; i++) {
- var = rb_scan_args_next_param();
- if (var) *var = argv[argi];
+ for (i = arg->n_lead; i-- > 0; ) {
+ var = va_arg(vargs, VALUE *);
+ if (var) *var = (argi == arg->last_idx) ? arg->last_hash : arg->argv[argi];
argi++;
}
/* capture optional arguments */
- for (i = 0; i < n_opt; i++) {
- var = rb_scan_args_next_param();
- if (argi < argc - n_trail) {
- if (var) *var = argv[argi];
+ for (i = arg->n_opt; i-- > 0; ) {
+ var = va_arg(vargs, VALUE *);
+ if (argi < arg->argc - arg->n_trail) {
+ if (var) *var = (argi == arg->last_idx) ? arg->last_hash : arg->argv[argi];
argi++;
}
else {
@@ -2219,12 +2111,16 @@ rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *con
}
}
/* capture variable length arguments */
- if (f_var) {
- int n_var = argc - argi - n_trail;
+ if (arg->f_var) {
+ int n_var = arg->argc - argi - arg->n_trail;
- var = rb_scan_args_next_param();
+ var = va_arg(vargs, VALUE *);
if (0 < n_var) {
- if (var) *var = rb_ary_new_from_values(n_var, &argv[argi]);
+ if (var) {
+ int f_last = (arg->last_idx + 1 == arg->argc - arg->n_trail);
+ *var = rb_ary_new4(n_var - f_last, &arg->argv[argi]);
+ if (f_last) rb_ary_push(*var, arg->last_hash);
+ }
argi += n_var;
}
else {
@@ -2232,19 +2128,19 @@ rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *con
}
}
/* capture trailing mandatory arguments */
- for (i = 0; i < n_trail; i++) {
- var = rb_scan_args_next_param();
- if (var) *var = argv[argi];
+ for (i = arg->n_trail; i-- > 0; ) {
+ var = va_arg(vargs, VALUE *);
+ if (var) *var = (argi == arg->last_idx) ? arg->last_hash : arg->argv[argi];
argi++;
}
/* capture an option hash - phase 2: assignment */
- if (f_hash) {
- var = rb_scan_args_next_param();
- if (var) *var = hash;
+ if (arg->f_hash) {
+ var = va_arg(vargs, VALUE *);
+ if (var) *var = arg->hash;
}
/* capture iterator block */
- if (f_block) {
- var = rb_scan_args_next_param();
+ if (arg->f_block) {
+ var = va_arg(vargs, VALUE *);
if (rb_block_given_p()) {
*var = rb_block_proc();
}
@@ -2253,57 +2149,52 @@ rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *con
}
}
- if (argi == argc) {
- return argc;
- }
-
- argc_error:
- return -(argc + 1);
-#undef rb_scan_args_next_param
-}
-
-static int
-rb_scan_args_result(const struct rb_scan_args_t *const arg, int argc)
-{
- const int n_lead = arg->n_lead;
- const int n_opt = arg->n_opt;
- const int n_trail = arg->n_trail;
- const int n_mand = n_lead + n_trail;
- const bool f_var = arg->f_var;
-
- if (argc >= 0) {
- return argc;
- }
+ if (argi < arg->argc) return 1;
- argc = -argc - 1;
- rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);
- UNREACHABLE_RETURN(-1);
+ return 0;
}
#undef rb_scan_args
int
rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)
{
+ int error;
va_list vargs;
+ VALUE tmp_buffer = 0;
struct rb_scan_args_t arg;
- rb_scan_args_parse(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, fmt, &arg);
+ arg.tmp_buffer = &tmp_buffer;
+ rb_scan_args_parse(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, fmt, &arg);
va_start(vargs,fmt);
- argc = rb_scan_args_assign(&arg, argc, argv, vargs);
+ error = rb_scan_args_assign(&arg, vargs);
va_end(vargs);
- return rb_scan_args_result(&arg, argc);
+ if (tmp_buffer) {
+ rb_free_tmp_buffer(&tmp_buffer);
+ }
+ if (error) {
+ rb_error_arity(arg.argc, arg.n_mand, arg.f_var ? UNLIMITED_ARGUMENTS : arg.n_mand + arg.n_opt);
+ }
+ return arg.argc;
}
-#undef rb_scan_args_kw
int
rb_scan_args_kw(int kw_flag, int argc, const VALUE *argv, const char *fmt, ...)
{
+ int error;
va_list vargs;
+ VALUE tmp_buffer = 0;
struct rb_scan_args_t arg;
- rb_scan_args_parse(kw_flag, fmt, &arg);
+ arg.tmp_buffer = &tmp_buffer;
+ rb_scan_args_parse(kw_flag, argc, argv, fmt, &arg);
va_start(vargs,fmt);
- argc = rb_scan_args_assign(&arg, argc, argv, vargs);
+ error = rb_scan_args_assign(&arg, vargs);
va_end(vargs);
- return rb_scan_args_result(&arg, argc);
+ if (tmp_buffer) {
+ rb_free_tmp_buffer(&tmp_buffer);
+ }
+ if (error) {
+ rb_error_arity(arg.argc, arg.n_mand, arg.f_var ? UNLIMITED_ARGUMENTS : arg.n_mand + arg.n_opt);
+ }
+ return arg.argc;
}
int
diff --git a/common.mk b/common.mk
index 650015fa74..3706aeb4ce 100644
--- a/common.mk
+++ b/common.mk
@@ -38,7 +38,7 @@ RUBYLIB = $(PATH_SEPARATOR)
RUBYOPT = -
RUN_OPTS = --disable-gems
-# GITPULLOPTIONS = --no-tags
+GITPULLOPTIONS = --rebase
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(UNICODE_HDR_DIR)
@@ -47,7 +47,7 @@ GEM_PATH =
GEM_VENDOR =
BENCHMARK_DRIVER_GIT_URL = https://github.com/benchmark-driver/benchmark-driver
-BENCHMARK_DRIVER_GIT_REF = v0.15.15
+BENCHMARK_DRIVER_GIT_REF = v0.15.6
SIMPLECOV_GIT_URL = https://github.com/colszowka/simplecov.git
SIMPLECOV_GIT_REF = v0.17.0
SIMPLECOV_HTML_GIT_URL = https://github.com/colszowka/simplecov-html.git
@@ -107,7 +107,6 @@ COMMONOBJS = array.$(OBJEXT) \
load.$(OBJEXT) \
marshal.$(OBJEXT) \
math.$(OBJEXT) \
- memory_view.$(OBJEXT) \
mjit.$(OBJEXT) \
mjit_compile.$(OBJEXT) \
node.$(OBJEXT) \
@@ -117,7 +116,6 @@ COMMONOBJS = array.$(OBJEXT) \
parse.$(OBJEXT) \
proc.$(OBJEXT) \
process.$(OBJEXT) \
- ractor.$(OBJEXT) \
random.$(OBJEXT) \
range.$(OBJEXT) \
rational.$(OBJEXT) \
@@ -129,7 +127,7 @@ COMMONOBJS = array.$(OBJEXT) \
regparse.$(OBJEXT) \
regsyntax.$(OBJEXT) \
ruby.$(OBJEXT) \
- scheduler.$(OBJEXT) \
+ safe.$(OBJEXT) \
signal.$(OBJEXT) \
sprintf.$(OBJEXT) \
st.$(OBJEXT) \
@@ -147,7 +145,6 @@ COMMONOBJS = array.$(OBJEXT) \
vm.$(OBJEXT) \
vm_backtrace.$(OBJEXT) \
vm_dump.$(OBJEXT) \
- vm_sync.$(OBJEXT) \
vm_trace.$(OBJEXT) \
$(COROUTINE_OBJ) \
$(DTRACE_OBJ) \
@@ -179,7 +176,7 @@ EXTMK_ARGS = $(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) \
--make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" \
--gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \
--
-INSTRUBY = $(SUDO) $(RUNRUBY) -r./$(arch)-fake $(tooldir)/rbinstall.rb
+INSTRUBY = $(SUDO) $(RUNRUBY) -r./$(arch)-fake $(srcdir)/tool/rbinstall.rb
INSTRUBY_ARGS = $(SCRIPT_ARGS) \
--data-mode=$(INSTALL_DATA_MODE) \
--prog-mode=$(INSTALL_PROG_MODE) \
@@ -189,15 +186,14 @@ INSTALL_PROG_MODE = 0755
INSTALL_DATA_MODE = 0644
TESTSDIR = $(srcdir)/test
-TOOL_TESTSDIR = $(tooldir)/test
+TOOL_TESTSDIR = $(srcdir)/tool/test
TEST_EXCLUDES = --excludes-dir=$(TESTSDIR)/excludes --name=!/memory_leak/
TESTWORKDIR = testwork
TESTOPTS = $(RUBY_TESTOPTS)
TESTRUN_SCRIPT = $(srcdir)/test.rb
-COMPILE_PRELUDE = $(tooldir)/generic_erb.rb $(srcdir)/template/prelude.c.tmpl \
- $(tooldir)/ruby_vm/helpers/c_escape.rb
+COMPILE_PRELUDE = $(srcdir)/tool/generic_erb.rb $(srcdir)/template/prelude.c.tmpl
SHOWFLAGS = showflags
@@ -212,7 +208,7 @@ MAKE_LINK = $(MINIRUBY) -rfileutils -e "include FileUtils::Verbose" \
all: $(SHOWFLAGS) main docs
-main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs programs
+main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs
@$(NULLCMD)
mjit-headers: $(MJIT_SUPPORT)-mjit-headers
@@ -229,20 +225,19 @@ mjit_config.h: Makefile
# Other `-Dxxx`s preceding `-DMJIT_HEADER` will be removed in transform_mjit_header.rb.
# So `-DMJIT_HEADER` should be passed first when rb_mjit_header.h is generated.
$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJEXT) \
- $(TIMESTAMPDIR)/$(arch)/.time $(tooldir)/mjit_tabs.rb $(PREP) $(RBCONFIG)
+ $(TIMESTAMPDIR)/$(arch)/.time
$(ECHO) building $(@F:.time=.h)
- $(MINIRUBY) $(tooldir)/mjit_tabs.rb "$(MJIT_TABS)" \
- $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
+ $(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
$(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new
$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time
$(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: \
$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time \
- $(tooldir)/transform_mjit_header.rb $(PREP) \
+ $(srcdir)/tool/transform_mjit_header.rb $(PREP) \
$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h
$(ECHO) building $@
- $(MINIRUBY) $(tooldir)/transform_mjit_header.rb "$(CC) $(ARCH_FLAG) $(CFLAGS)" $(MJIT_HEADER:.h=)$(MJIT_HEADER_ARCH).h $@
+ $(MINIRUBY) $(srcdir)/tool/transform_mjit_header.rb "$(CC) $(ARCH_FLAG) $(CFLAGS)" $(MJIT_HEADER:.h=)$(MJIT_HEADER_ARCH).h $@
$(Q) $(MAKEDIRS) $(MJIT_HEADER_INSTALL_DIR)
$(Q) $(MAKE_LINK) $@ $(MJIT_HEADER_INSTALL_DIR)/$(@F)
@@ -283,14 +278,14 @@ $(EXTS_MK): ext/configure-ext.mk $(srcdir)/template/exts.mk.tmpl \
gnumake=$(gnumake) MINIRUBY="$(MINIRUBY)" \
EXTLDFLAGS="$(EXTLDFLAGS)" srcdir="$(srcdir)"
$(ECHO) generating makefile $@
- $(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \
- $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake) --configure-exts=ext/configure-ext.mk
+ $(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \
+ $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake)
ext/configure-ext.mk: $(PREP) all-incs $(MKFILES) $(RBCONFIG) $(LIBRUBY) \
$(srcdir)/template/configure-ext.mk.tmpl
$(ECHO) generating makefiles $@
$(Q)$(MAKEDIRS) $(@D)
- $(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \
+ $(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \
$(srcdir)/template/$(@F).tmpl --srcdir="$(srcdir)" \
--miniruby="$(MINIRUBY)" --script-args='$(SCRIPT_ARGS)'
@@ -304,12 +299,12 @@ build-ext: $(EXTS_MK)
exts-note: $(EXTS_MK)
$(Q)$(MAKE) $(EXTS_NOTE)
-ext/extinit.c: $(srcdir)/template/extinit.c.tmpl $(PREP)
- $(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \
+ext/extinit.c: $(srcdir)/template/extinit.c.tmpl
+ $(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \
$(srcdir)/template/extinit.c.tmpl $(EXTINITS)
prog: program wprogram
-programs: $(PROGRAM) $(WPROGRAM) $(arch)-fake.rb
+programs: $(PROGRAM) $(WPROGRAM)
$(PREP): $(MKFILES)
@@ -336,9 +331,9 @@ $(CAPIOUT)/.timestamp: Doxyfile $(PREP)
-$(Q) $(DOXYGEN) -b
$(Q) $(MINIRUBY) -e 'File.open(ARGV[0], "w"){'"|f|"' f.puts(Time.now)}' "$@"
-Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(tooldir)/generic_erb.rb $(RBCONFIG)
+Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(srcdir)/tool/generic_erb.rb $(RBCONFIG)
$(ECHO) generating $@
- $(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \
+ $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \
--srcdir="$(srcdir)" --miniruby="$(MINIRUBY)"
program: $(SHOWFLAGS) $(PROGRAM)
@@ -361,7 +356,7 @@ $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)
ruby.imp: $(COMMONOBJS)
$(Q){ \
$(NM) -Pgp $(COMMONOBJS) | \
- awk 'BEGIN{print "#!"}; $$2~/^[A-TV-Z]$$/&&$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \
+ awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&&$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \
($(CHDIR) $(srcdir) && \
exec sed -n '/^MJIT_FUNC_EXPORTED/!d;N;s/.*\n\(rb_[a-zA-Z_0-9]*\).*/$(SYMBOL_PREFIX)\1/p' cont.c gc.c thread*c vm*.c) \
} | \
@@ -373,17 +368,17 @@ pkgconfig-data: $(ruby_pc)
$(ruby_pc): $(srcdir)/template/ruby.pc.in config.status
install-all: docs pre-install-all do-install-all post-install-all
-pre-install-all:: all pre-install-local pre-install-ext pre-install-gem pre-install-doc
+pre-install-all:: all pre-install-local pre-install-ext pre-install-doc
do-install-all: pre-install-all
$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) $(INSTALL_DOC_OPTS)
-post-install-all:: post-install-local post-install-ext post-install-gem post-install-doc
+post-install-all:: post-install-local post-install-ext post-install-doc
@$(NULLCMD)
install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc
-pre-install-nodoc:: pre-install-local pre-install-ext pre-install-gem
+pre-install-nodoc:: pre-install-local pre-install-ext
do-install-nodoc: main pre-install-nodoc
$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --exclude=doc
-post-install-nodoc:: post-install-local post-install-ext post-install-gem
+post-install-nodoc:: post-install-local post-install-ext
install-local: pre-install-local do-install-local post-install-local
pre-install-local:: pre-install-bin pre-install-lib pre-install-man
@@ -462,7 +457,7 @@ post-no-install-all:: post-no-install-local post-no-install-ext post-no-install-
@$(NULLCMD)
uninstall: $(INSTALLED_LIST) sudo-precheck
- $(Q)$(SUDO) $(MINIRUBY) $(tooldir)/rbuninstall.rb --destdir=$(DESTDIR) $(INSTALLED_LIST)
+ $(Q)$(SUDO) $(MINIRUBY) $(srcdir)/tool/rbuninstall.rb --destdir=$(DESTDIR) $(INSTALLED_LIST)
reinstall: all uninstall install
@@ -549,19 +544,12 @@ post-install-doc::
@$(NULLCMD)
install-gem: pre-install-gem do-install-gem post-install-gem
-pre-install-gem:: prepare-gems pre-install-bin pre-install-lib pre-install-man
+pre-install-gem:: pre-install-bin pre-install-lib pre-install-man
do-install-gem: $(PROGRAM) pre-install-gem
$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=gem
post-install-gem::
@$(NULLCMD)
-install-dbg: pre-install-dbg do-install-dbg post-install-dbg
-pre-install-dbg::
-do-install-dbg: $(PROGRAM) pre-install-dbg
- $(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=dbg
-post-install-dbg::
- @$(NULLCMD)
-
rdoc: PHONY main
@echo Generating RDoc documentation
$(Q) $(RDOC) --ri --op "$(RDOCOUT)" $(RDOC_GEN_OPTS) $(RDOCFLAGS) "$(srcdir)"
@@ -606,8 +594,8 @@ clean-local:: clean-runnable
$(Q)$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
$(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) dmyenc.$(OBJEXT) $(ARCHFILE) .*.time
$(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc) $(COROUTINE_H:/Context.h=/.time)
- $(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp ChangeLog $(STATIC_RUBY)$(EXEEXT)
- $(Q)$(RM) GNUmakefile.old Makefile.old $(arch)-fake.rb bisect.sh $(ENC_TRANS_D) builtin_binary.inc
+ $(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp
+ $(Q)$(RM) GNUmakefile.old Makefile.old $(arch)-fake.rb bisect.sh $(ENC_TRANS_D)
-$(Q) $(RMDIR) enc/jis enc/trans enc $(COROUTINE_H:/Context.h=) coroutine 2> $(NULL) || $(NULLCMD)
bin/clean-runnable:: PHONY
@@ -724,7 +712,7 @@ clean-capi distclean-capi realclean-capi:
@echo $(@:-capi=ing) capi
$(Q)$(RMALL) $(CAPIOUT)
-clean-platform distclean-platform realclean-platform:
+clean-platform:
$(Q) $(RM) $(PLATFORM_D)
-$(Q) $(RMDIR) $(PLATFORM_DIR) 2> $(NULL) || $(NULLCMD)
@@ -732,14 +720,11 @@ RUBYSPEC_CAPIEXT = spec/ruby/optional/capi/ext
clean-spec: PHONY
-$(Q) $(RM) $(RUBYSPEC_CAPIEXT)/*.$(OBJEXT) $(RUBYSPEC_CAPIEXT)/*.$(DLEXT)
-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2> $(NULL) || $(NULLCMD)
- -$(Q) $(RMALL) rubyspec_temp
check: main test test-tool test-all test-spec
$(ECHO) check succeeded
- -$(Q) if [ x"$(GIT)" != x ] && $(CHDIR) "$(srcdir)" && \
- b=`$(GIT) symbolic-ref --short HEAD 2>&1` && \
- u=`$(GIT) branch --list --format='%(upstream:short)' $$b`; then \
- set -x; $(GIT) --no-pager log --format=oneline -G "^ *# *include" $$u..HEAD --; \
+ -$(Q) if [ x"$(GIT)" != x ] && $(CHDIR) "$(srcdir)" && $(GIT) rev-parse > /dev/null 2>&1; then \
+ set -x; $(GIT) --no-pager log --format=oneline -G "^ *# *include" origin/master..HEAD; \
fi
check-ruby: test test-ruby
@@ -749,10 +734,10 @@ no-fake -fake: PHONY
# really doesn't depend on .o, just ensure newer than headers which
# version.o depends on.
-$(arch)-fake.rb: $(srcdir)/template/fake.rb.in $(tooldir)/generic_erb.rb version.$(OBJEXT) miniruby$(EXEEXT)
+$(arch)-fake.rb: $(srcdir)/template/fake.rb.in $(srcdir)/tool/generic_erb.rb version.$(OBJEXT) miniruby$(EXEEXT)
$(ECHO) generating $@
$(Q) $(CPP) -DRUBY_EXPORT $(INCFLAGS) $(CPPFLAGS) "$(srcdir)/version.c" | \
- $(BOOTSTRAPRUBY) "$(tooldir)/generic_erb.rb" -o $@ "$(srcdir)/template/fake.rb.in" \
+ $(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ "$(srcdir)/template/fake.rb.in" \
i=- srcdir="$(srcdir)" BASERUBY="$(BASERUBY)"
btest: $(TEST_RUNNABLE)-btest
@@ -765,9 +750,6 @@ no-btest-ruby: PHONY
yes-btest-ruby: prog PHONY
$(Q)$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib $(RUN_OPTS)" -q $(OPTS) $(TESTOPTS) $(BTESTS)
-rtest: fake miniruby$(EXEEXT) PHONY
- $(Q)$(exec) $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(BTESTRUBY) $(RUN_OPTS)" --sets=ractor -v
-
test-basic: $(TEST_RUNNABLE)-test-basic
no-test-basic: PHONY
yes-test-basic: prog PHONY
@@ -815,13 +797,13 @@ extconf: $(PREP)
$(Q) $(MAKEDIRS) "$(EXTCONFDIR)"
$(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)
-$(RBCONFIG): $(tooldir)/mkconfig.rb config.status $(srcdir)/version.h
+$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h
$(Q)$(BOOTSTRAPRUBY) -n \
-e 'BEGIN{version=ARGV.shift;mis=ARGV.dup}' \
-e 'END{abort "UNICODE version mismatch: #{mis}" unless mis.empty?}' \
-e '(mis.delete(ARGF.path); ARGF.close) if /ONIG_UNICODE_VERSION_STRING +"#{Regexp.quote(version)}"/o' \
$(UNICODE_VERSION) $(UNICODE_DATA_HEADERS)
- $(Q)$(BOOTSTRAPRUBY) $(tooldir)/mkconfig.rb \
+ $(Q)$(BOOTSTRAPRUBY) $(srcdir)/tool/mkconfig.rb \
-arch=$(arch) -version=$(RUBY_PROGRAM_VERSION) \
-install_name=$(RUBY_INSTALL_NAME) \
-so_name=$(RUBY_SO_NAME) \
@@ -833,17 +815,17 @@ $(RBCONFIG): $(tooldir)/mkconfig.rb config.status $(srcdir)/version.h
test-rubyspec: test-spec
yes-test-rubyspec: yes-test-spec
-test-spec-precheck: main
+test-spec-precheck: $(arch)-fake.rb programs
test-spec: $(TEST_RUNNABLE)-test-spec
yes-test-spec: test-spec-precheck
$(gnumake_recursive)$(Q) \
- $(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec -I$(srcdir)/tool/lib $(MSPECOPT) $(SPECOPTS)
+ $(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS)
no-test-spec:
RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable
-runnable: $(RUNNABLE) prog $(tooldir)/mkrunnable.rb PHONY
- $(Q) $(MINIRUBY) $(tooldir)/mkrunnable.rb -v $(EXTOUT)
+runnable: $(RUNNABLE) prog $(srcdir)/tool/mkrunnable.rb PHONY
+ $(Q) $(MINIRUBY) $(srcdir)/tool/mkrunnable.rb -v $(EXTOUT)
yes-runnable: PHONY
encs: enc trans
@@ -877,17 +859,16 @@ $(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc
PHONY:
-{$(VPATH)}parse.c: {$(VPATH)}parse.y $(tooldir)/ytab.sed {$(VPATH)}id.h
+{$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed {$(VPATH)}id.h
{$(VPATH)}parse.h: {$(VPATH)}parse.c
{$(srcdir)}.y.c:
$(ECHO) generating $@
- $(Q)$(BASERUBY) $(tooldir)/id2token.rb --path-separator=.$(PATH_SEPARATOR)./ --vpath=$(VPATH) id.h $(SRC_FILE) > parse.tmp.y
- $(Q)$(BASERUBY) $(tooldir)/pure_parser.rb parse.tmp.y $(YACC)
- $(Q)$(RM) parse.tmp.y.bak
+ $(Q)$(BASERUBY) $(srcdir)/tool/id2token.rb --path-separator=.$(PATH_SEPARATOR)./ --vpath=$(VPATH) id.h $(SRC_FILE) > parse.tmp.y
+ $(Q)$(BASERUBY) $(srcdir)/tool/pure_parser.rb parse.tmp.y $(YACC)
$(Q)$(YACC) -d $(YFLAGS) -o y.tab.c parse.tmp.y
$(Q)$(RM) parse.tmp.y
- $(Q)sed -f $(tooldir)/ytab.sed -e "/^#/s|parse\.tmp\.[iy]|$(SRC_FILE)|" -e "/^#/s!y\.tab\.c!$@!" y.tab.c > $@.new
+ $(Q)sed -f $(srcdir)/tool/ytab.sed -e "/^#/s|parse\.tmp\.[iy]|$(SRC_FILE)|" -e "/^#/s!y\.tab\.c!$@!" y.tab.c > $@.new
$(Q)$(MV) $@.new $@
$(Q)sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse.*\.y/d" y.tab.h > $(@:.c=.h)
$(Q)$(RM) y.tab.c y.tab.h
@@ -979,14 +960,14 @@ win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c {$(VPATH)}win32/file.h \
win32/file.$(OBJEXT): {$(VPATH)}win32/file.c {$(VPATH)}win32/file.h \
$(RUBY_H_INCLUDES) $(PLATFORM_D)
-$(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(tooldir)/transcode-tblgen.rb
+$(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb
$(Q) $(MAKEDIRS) $(@D)
- $(Q) $(BASERUBY) "$(tooldir)/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans
+ $(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans
enc/trans/newline.$(OBJEXT): $(NEWLINE_C)
-verconf.h: $(srcdir)/template/verconf.h.tmpl $(tooldir)/generic_erb.rb
+verconf.h: $(srcdir)/template/verconf.h.tmpl $(srcdir)/tool/generic_erb.rb
$(ECHO) creating $@
- $(Q) $(BOOTSTRAPRUBY) "$(tooldir)/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl
+ $(Q) $(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl
ruby-glommed.$(OBJEXT): $(OBJS)
@@ -996,37 +977,31 @@ INSNS2VMOPT = --srcdir="$(srcdir)"
srcs_vpath = {$(VPATH)}
-inc_common_headers = $(tooldir)/ruby_vm/views/_copyright.erb $(tooldir)/ruby_vm/views/_notice.erb
-$(srcs_vpath)opt_sc.inc: $(tooldir)/ruby_vm/views/opt_sc.inc.erb $(inc_common_headers)
-$(srcs_vpath)optinsn.inc: $(tooldir)/ruby_vm/views/optinsn.inc.erb $(inc_common_headers)
-$(srcs_vpath)optunifs.inc: $(tooldir)/ruby_vm/views/optunifs.inc.erb $(inc_common_headers)
-$(srcs_vpath)insns.inc: $(tooldir)/ruby_vm/views/insns.inc.erb $(inc_common_headers)
-$(srcs_vpath)insns_info.inc: $(tooldir)/ruby_vm/views/insns_info.inc.erb $(inc_common_headers) \
- $(tooldir)/ruby_vm/views/_insn_type_chars.erb $(tooldir)/ruby_vm/views/_insn_name_info.erb \
- $(tooldir)/ruby_vm/views/_insn_len_info.erb $(tooldir)/ruby_vm/views/_insn_operand_info.erb \
- $(tooldir)/ruby_vm/views/_attributes.erb $(tooldir)/ruby_vm/views/_comptime_insn_stack_increase.erb \
- $(tooldir)/ruby_vm/views/_insn_sp_pc_dependency.erb
-$(srcs_vpath)vmtc.inc: $(tooldir)/ruby_vm/views/vmtc.inc.erb $(inc_common_headers)
-$(srcs_vpath)vm.inc: $(tooldir)/ruby_vm/views/vm.inc.erb $(inc_common_headers) \
- $(tooldir)/ruby_vm/views/_insn_entry.erb $(tooldir)/ruby_vm/views/_trace_instruction.erb
-$(srcs_vpath)mjit_compile.inc: $(tooldir)/ruby_vm/views/mjit_compile.inc.erb $(inc_common_headers) \
- $(tooldir)/ruby_vm/views/_mjit_compile_insn.erb $(tooldir)/ruby_vm/views/_mjit_compile_send.erb \
- $(tooldir)/ruby_vm/views/_mjit_compile_ivar.erb \
- $(tooldir)/ruby_vm/views/_mjit_compile_insn_body.erb $(tooldir)/ruby_vm/views/_mjit_compile_pc_and_sp.erb \
- $(tooldir)/ruby_vm/views/_mjit_compile_invokebuiltin.erb
+inc_common_headers = $(srcdir)/tool/ruby_vm/views/_copyright.erb $(srcdir)/tool/ruby_vm/views/_notice.erb
+$(srcs_vpath)opt_sc.inc: $(srcdir)/tool/ruby_vm/views/opt_sc.inc.erb $(inc_common_headers)
+$(srcs_vpath)optinsn.inc: $(srcdir)/tool/ruby_vm/views/optinsn.inc.erb $(inc_common_headers)
+$(srcs_vpath)optunifs.inc: $(srcdir)/tool/ruby_vm/views/optunifs.inc.erb $(inc_common_headers)
+$(srcs_vpath)insns.inc: $(srcdir)/tool/ruby_vm/views/insns.inc.erb $(inc_common_headers)
+$(srcs_vpath)insns_info.inc: $(srcdir)/tool/ruby_vm/views/insns_info.inc.erb $(inc_common_headers) \
+ $(srcdir)/tool/ruby_vm/views/_insn_type_chars.erb $(srcdir)/tool/ruby_vm/views/_insn_name_info.erb \
+ $(srcdir)/tool/ruby_vm/views/_insn_len_info.erb $(srcdir)/tool/ruby_vm/views/_insn_operand_info.erb \
+ $(srcdir)/tool/ruby_vm/views/_attributes.erb $(srcdir)/tool/ruby_vm/views/_comptime_insn_stack_increase.erb \
+ $(srcdir)/tool/ruby_vm/views/_insn_sp_pc_dependency.erb
+$(srcs_vpath)vmtc.inc: $(srcdir)/tool/ruby_vm/views/vmtc.inc.erb $(inc_common_headers)
+$(srcs_vpath)vm.inc: $(srcdir)/tool/ruby_vm/views/vm.inc.erb $(inc_common_headers) \
+ $(srcdir)/tool/ruby_vm/views/_insn_entry.erb $(srcdir)/tool/ruby_vm/views/_trace_instruction.erb
+$(srcs_vpath)mjit_compile.inc: $(srcdir)/tool/ruby_vm/views/mjit_compile.inc.erb $(inc_common_headers) \
+ $(srcdir)/tool/ruby_vm/views/_mjit_compile_insn.erb $(srcdir)/tool/ruby_vm/views/_mjit_compile_send.erb \
+ $(srcdir)/tool/ruby_vm/views/_mjit_compile_ivar.erb \
+ $(srcdir)/tool/ruby_vm/views/_mjit_compile_insn_body.erb $(srcdir)/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb
BUILTIN_RB_SRCS = \
$(srcdir)/ast.rb \
- $(srcdir)/dir.rb \
$(srcdir)/gc.rb \
- $(srcdir)/integer.rb \
$(srcdir)/io.rb \
$(srcdir)/pack.rb \
$(srcdir)/trace_point.rb \
$(srcdir)/warning.rb \
- $(srcdir)/array.rb \
- $(srcdir)/kernel.rb \
- $(srcdir)/ractor.rb \
$(srcdir)/prelude.rb \
$(srcdir)/gem_prelude.rb \
$(empty)
@@ -1076,46 +1051,46 @@ incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \
insns: $(INSNS)
-id.h: $(tooldir)/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def
+id.h: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb --output=$@ \
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \
$(srcdir)/template/id.h.tmpl
-id.c: $(tooldir)/generic_erb.rb $(srcdir)/template/id.c.tmpl $(srcdir)/defs/id.def
+id.c: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.c.tmpl $(srcdir)/defs/id.def
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb --output=$@ \
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \
$(srcdir)/template/id.c.tmpl
-node_name.inc: $(tooldir)/node_name.rb $(srcdir)/node.h
+node_name.inc: $(srcdir)/tool/node_name.rb $(srcdir)/node.h
$(ECHO) generating $@
- $(Q) $(BASERUBY) -n $(tooldir)/node_name.rb < $(srcdir)/node.h > $@
+ $(Q) $(BASERUBY) -n $(srcdir)/tool/node_name.rb < $(srcdir)/node.h > $@
-encdb.h: $(PREP) $(tooldir)/generic_erb.rb $(srcdir)/template/encdb.h.tmpl
+encdb.h: $(PREP) $(srcdir)/tool/generic_erb.rb $(srcdir)/template/encdb.h.tmpl
$(ECHO) generating $@
- $(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc
+ $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc
-transdb.h: $(PREP) srcs-enc $(tooldir)/generic_erb.rb $(srcdir)/template/transdb.h.tmpl
+transdb.h: $(PREP) srcs-enc $(srcdir)/tool/generic_erb.rb $(srcdir)/template/transdb.h.tmpl
$(ECHO) generating $@
- $(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans
+ $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans
enc/encinit.c: $(ENC_MK) $(srcdir)/enc/encinit.c.erb
known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
-vm_call_iseq_optimized.inc: $(srcdir)/template/call_iseq_optimized.inc.tmpl
+vm_call_iseq_optimized.inc: $(srcdir)/tool/mk_call_iseq_optimized.rb
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/call_iseq_optimized.inc.tmpl
+ $(Q) $(BASERUBY) $(srcdir)/tool/mk_call_iseq_optimized.rb > $@
$(MINIPRELUDE_C): $(COMPILE_PRELUDE) $(BUILTIN_RB_SRCS)
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -I$(srcdir) -o $@ \
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -o $@ \
$(srcdir)/template/prelude.c.tmpl $(BUILTIN_RB_SRCS)
$(GOLF_PRELUDE_C): $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb
$(ECHO) generating $@
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -I$(srcdir) -c -o $@ \
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \
$(srcdir)/template/prelude.c.tmpl golf_prelude.rb
MAINCPPFLAGS = $(ENABLE_DEBUG_ENV:yes=-DRUBY_DEBUG_ENV=1)
@@ -1124,10 +1099,10 @@ $(MAINOBJ): $(srcdir)/$(MAINSRC)
$(ECHO) compiling $(srcdir)/$(MAINSRC)
$(Q) $(CC) $(MAINCPPFLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$(srcdir)/$(MAINSRC)
-{$(VPATH)}probes.dmyh: {$(srcdir)}probes.d $(tooldir)/gen_dummy_probes.rb
+{$(VPATH)}probes.dmyh: {$(srcdir)}probes.d $(srcdir)/tool/gen_dummy_probes.rb
probes.dmyh:
- $(BASERUBY) $(tooldir)/gen_dummy_probes.rb $(srcdir)/probes.d > $@
+ $(BASERUBY) $(srcdir)/tool/gen_dummy_probes.rb $(srcdir)/probes.d > $@
probes.h: {$(VPATH)}probes.$(DTRACE_EXT)
@@ -1138,11 +1113,10 @@ preludes: {$(srcdir)}golf_prelude.c
{$(srcdir)}.rb.rbinc:
$(ECHO) making $@
- $(Q) $(BASERUBY) $(tooldir)/mk_builtin_loader.rb $<
+ $(Q) $(BASERUBY) $(srcdir)/tool/mk_builtin_loader.rb $<
-builtin_binary.inc: $(PREP) $(BUILTIN_RB_SRCS) $(srcdir)/template/builtin_binary.inc.tmpl
- $(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ \
- $(srcdir)/template/builtin_binary.inc.tmpl -- --cross=$(CROSS_COMPILING)
+builtin_binary.inc: $(PREP) $(BUILTIN_RB_SRCS) $(srcdir)/tool/mk_builtin_binary.rb
+ $(Q) $(MINIRUBY) $(srcdir)/tool/mk_builtin_binary.rb --cross=$(CROSS_COMPILING)
$(BUILTIN_RB_INCS): $(top_srcdir)/tool/mk_builtin_loader.rb
@@ -1152,8 +1126,8 @@ $(srcdir)/revision.h:
revision.tmp::
$(Q) $(NULLCMD) > $@
-revision.$(HAVE_BASERUBY:yes=tmp):: $(srcdir)/version.h $(tooldir)/file2lastrev.rb $(REVISION_FORCE)
- $(Q) $(BASERUBY) $(tooldir)/file2lastrev.rb -q --revision.h --srcdir="$(srcdir)" > $@
+revision.$(HAVE_BASERUBY:yes=tmp):: $(srcdir)/version.h $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)
+ $(Q) $(BASERUBY) $(srcdir)/tool/file2lastrev.rb -q --revision.h --srcdir="$(srcdir)" > $@
$(REVISION_H): revision.tmp
$(Q)$(IFCHANGE) "--timestamp=$@" "$(srcdir)/revision.h" revision.tmp
@@ -1164,7 +1138,7 @@ $(srcdir)/ext/ripper/ripper.c: $(srcdir)/ext/ripper/tools/preproc.rb $(srcdir)/p
sed -e 's/{\$$([^(){}]*)[^{}]*}//g' -e /AUTOGENERATED/q depend | \
$(exec) $(MAKE) -f - $(mflags) \
Q=$(Q) ECHO=$(ECHO) RM="$(RM)" BISON=$(YACC) top_srcdir=../.. srcdir=. VPATH="$${VPATH}" \
- RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)" LANG=C
+ RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)"
$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl $(srcdir)/ext/json/parser/prereq.mk
$(ECHO) generating $@
@@ -1177,7 +1151,7 @@ $(srcdir)/ext/date/zonetab.h: $(srcdir)/ext/date/zonetab.list $(srcdir)/ext/date
Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. BASERUBY="$(BASERUBY)"
$(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \
- $(tooldir)/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.ac
+ $(srcdir)/tool/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.ac
$(ECHO) generating $@
$(Q) $(CHDIR) $(@D) && \
sed '/AUTOGENERATED/q' depend | \
@@ -1185,7 +1159,7 @@ $(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \
Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F)
$(srcdir)/ext/rbconfig/sizeof/limits.c: $(srcdir)/ext/rbconfig/sizeof/depend \
- $(tooldir)/generic_erb.rb $(srcdir)/template/limits.c.tmpl
+ $(srcdir)/tool/generic_erb.rb $(srcdir)/template/limits.c.tmpl
$(ECHO) generating $@
$(Q) $(CHDIR) $(@D) && \
sed '/AUTOGENERATED/q' depend | \
@@ -1207,23 +1181,22 @@ $(srcdir)/ext/etc/constdefs.h: $(srcdir)/ext/etc/depend
##
run: fake miniruby$(EXEEXT) PHONY
- $(BTESTRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ $(BTESTRUBY) $(TESTRUN_SCRIPT) $(RUNOPT)
runruby: $(PROGRAM) PHONY
- $(RUNRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ $(RUNRUBY) $(TESTRUN_SCRIPT)
parse: fake miniruby$(EXEEXT) PHONY
$(BTESTRUBY) --dump=parsetree_with_comment,insns $(TESTRUN_SCRIPT)
bisect: PHONY
- $(tooldir)/bisect.sh miniruby $(srcdir)
+ $(srcdir)/tool/bisect.sh miniruby $(srcdir)
bisect-ruby: PHONY
- $(tooldir)/bisect.sh ruby $(srcdir)
+ $(srcdir)/tool/bisect.sh ruby $(srcdir)
COMPARE_RUBY = $(BASERUBY)
BENCH_RUBY = $(RUNRUBY)
-BENCH_OPTS = --output=markdown --output-compare
ITEM =
ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '$(ITEM)' -o -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb' | sort)
OPTS =
@@ -1233,12 +1206,10 @@ benchmark: miniruby$(EXEEXT) update-benchmark-driver PHONY
$(BASERUBY) -rrubygems -I$(srcdir)/benchmark/lib $(srcdir)/benchmark/benchmark-driver/exe/benchmark-driver \
--executables="compare-ruby::$(COMPARE_RUBY) -I$(EXTOUT)/common --disable-gem" \
--executables="built-ruby::$(BENCH_RUBY) --disable-gem" \
- $(BENCH_OPTS) $(ARGS) $(OPTS)
+ $(ARGS) $(OPTS)
run.gdb:
echo set breakpoint pending on > run.gdb
- echo b rb_assert_failure >> run.gdb
- echo b rb_bug >> run.gdb
echo b ruby_debug_breakpoint >> run.gdb
echo '# handle SIGINT nostop' >> run.gdb
echo '# handle SIGPIPE nostop' >> run.gdb
@@ -1253,36 +1224,37 @@ run.gdb:
gdb: miniruby$(EXEEXT) run.gdb PHONY
- gdb -x run.gdb --quiet --args $(MINIRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ gdb -x run.gdb --quiet --args $(MINIRUBY) $(TESTRUN_SCRIPT)
gdb-ruby: $(PROGRAM) run.gdb PHONY
- $(Q) $(RUNRUBY_COMMAND) $(RUNRUBY_DEBUGGER) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ $(Q) $(RUNRUBY_COMMAND) $(RUNRUBY_DEBUGGER) -- $(TESTRUN_SCRIPT)
LLDB_INIT = command script import -r $(srcdir)/misc/lldb_cruby.py
lldb: miniruby$(EXEEXT) PHONY
- lldb -o '$(LLDB_INIT)' miniruby$(EXEEXT) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ lldb -o '$(LLDB_INIT)' miniruby$(EXEEXT) -- $(TESTRUN_SCRIPT)
lldb-ruby: $(PROGRAM) PHONY
- lldb $(enable_shared:yes=-o 'target modules add ${LIBRUBY_SO}') -o '$(LLDB_INIT)' $(PROGRAM) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
+ lldb $(enable_shared:yes=-o 'target modules add ${LIBRUBY_SO}') -o '$(LLDB_INIT)' $(PROGRAM) -- $(TESTRUN_SCRIPT)
DISTPKGS = gzip,zip,all
-PKGSDIR = tmp
dist:
- $(BASERUBY) $(tooldir)/make-snapshot \
+ $(BASERUBY) $(srcdir)/tool/make-snapshot \
-srcdir=$(srcdir) -packages=$(DISTPKGS) \
-unicode-version=$(UNICODE_VERSION) \
- $(DISTOPTS) $(PKGSDIR) $(RELNAME)
+ tmp $(RELNAME)
up:: update-remote
up::
- -$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY after-update
+ -$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY "$(REVISION_H)"
+
+up::
+ -$(Q)$(MAKE) $(mflags) Q=$(Q) after-update
yes::
no::
-after-update:: $(REVISION_H)
after-update:: extract-extlibs
after-update:: extract-gems
@@ -1298,15 +1270,13 @@ update-config_files: PHONY
$(Q) $(BASERUBY) -C "$(srcdir)" tool/downloader.rb -d tool --cache-dir=$(CACHE_DIR) -e gnu \
config.guess config.sub
-refresh-gems: update-bundled_gems prepare-gems
-prepare-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=extract-gems)
+refresh-gems: update-bundled_gems update-gems extract-gems
-update-gems$(gnumake:yes=-nongnumake): PHONY
+update-gems: PHONY
$(ECHO) Downloading bundled gem files...
$(Q) $(BASERUBY) -C "$(srcdir)" \
-I./tool -rdownloader -answ \
-e 'gem, ver = *$$F' \
- -e 'next if !ver or /^#/=~gem' \
-e 'old = Dir.glob("gems/#{gem}-*.gem")' \
-e 'gem = "#{gem}-#{ver}.gem"' \
-e 'Downloader::RubyGems.download(gem, "gems", nil) and' \
@@ -1315,36 +1285,35 @@ update-gems$(gnumake:yes=-nongnumake): PHONY
-e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})' \
gems/bundled_gems
-extract-gems$(gnumake:yes=-nongnumake): PHONY
+extract-gems: PHONY
$(ECHO) Extracting bundled gem files...
- $(Q) $(RUNRUBY) -C "$(srcdir)" \
- -Itool -rgem-unpack -answ \
- -e 'BEGIN {FileUtils.mkdir_p(d = ".bundle/gems")}' \
+ $(Q) $(RUNRUBY) -C "$(srcdir)/gems" \
+ -I../tool -rgem-unpack -answ \
-e 'gem, ver = *$$F' \
- -e 'next if !ver or /^#/=~gem' \
- -e 'g = "#{gem}-#{ver}"' \
- -e 'File.directory?("#{d}/#{g}") or Gem.unpack("gems/#{g}.gem", d)' \
- gems/bundled_gems
+ -e 'Gem.unpack("#{gem}-#{ver}.gem")' \
+ bundled_gems
update-bundled_gems: PHONY
$(Q) $(RUNRUBY) -rrubygems \
- $(tooldir)/update-bundled_gems.rb \
+ -pla \
+ -e '(gem,src), = Gem::SpecFetcher.fetcher.detect(:latest) {'"|s|" \
+ -e 's.platform=="ruby"&&s.name==$$F[0]' \
+ -e '}' \
+ -e 'gem = src.fetch_spec(gem)' \
+ -e 'uri = gem.metadata["source_code_uri"]||gem.homepage' \
+ -e 'uri = uri.sub(%r[\Ahttps://github\.com/[^/]+/[^/]+\K/tree/.*], "")' \
+ -e '$$_ = [gem.name, gem.version, uri].join(" ")' \
"$(srcdir)/gems/bundled_gems" | \
"$(IFCHANGE)" "$(srcdir)/gems/bundled_gems" -
-test-bundled-gems-precheck: $(TEST_RUNNABLE)-test-bundled-gems-precheck
-yes-test-bundled-gems-precheck: main
-no-test-bundled-gems-precheck:
+test-bundled-gems-precheck: $(arch)-fake.rb programs
test-bundled-gems-fetch: $(PREP)
$(Q) $(BASERUBY) -C $(srcdir)/gems ../tool/fetch-bundled_gems.rb src bundled_gems
test-bundled-gems-prepare: test-bundled-gems-precheck test-bundled-gems-fetch
-test-bundled-gems-prepare: $(TEST_RUNNABLE)-test-bundled-gems-prepare
-no-test-bundled-gems-prepare: no-test-bundled-gems-precheck
-yes-test-bundled-gems-prepare: yes-test-bundled-gems-precheck
$(XRUBY) -C "$(srcdir)" bin/gem install --no-document \
- --install-dir .bundle --conservative "bundler" "minitest:~> 5" "test-unit" "rake" "hoe" "yard" "pry" "packnga" "rexml" "json-schema" "rbs"
+ --install-dir .bundle --conservative "bundler" "minitest:~> 5" 'test-unit' 'rake' 'hoe' 'yard' 'pry' 'packnga'
PREPARE_BUNDLED_GEMS = test-bundled-gems-prepare
test-bundled-gems: $(TEST_RUNNABLE)-test-bundled-gems
@@ -1354,18 +1323,14 @@ no-test-bundled-gems:
# Override this to allow failure of specific gems on CI
# TEST_BUNDLED_GEMS_ALLOW_FAILURES =
-BUNDLED_GEMS =
test-bundled-gems-run: $(PREPARE_BUNDLED_GEMS)
- $(Q) $(XRUBY) $(tooldir)/test-bundled-gems.rb $(BUNDLED_GEMS)
+ $(Q) $(XRUBY) $(srcdir)/tool/test-bundled-gems.rb
-test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck
-no-test-bundler-precheck:
-yes-test-bundler-precheck: main
+test-bundler-precheck: $(arch)-fake.rb programs
-no-test-bundler-prepare: no-test-bundler-precheck
-yes-test-bundler-prepare: yes-test-bundler-precheck
+yes-test-bundler-prepare: test-bundler-precheck
$(XRUBY) -C "$(srcdir)" bin/gem install --no-document \
- --install-dir .bundle --conservative "rspec:~> 3.8" "rake:~> 13.0" "parallel_tests:~> 2.29"
+ --install-dir .bundle --conservative "rspec:~> 3.5" "rake:~> 12.0" "parallel_tests:~> 2.29"
RSPECOPTS =
BUNDLER_SPECS =
@@ -1378,13 +1343,9 @@ no-test-bundler:
PARALLELRSPECOPTS = --runtime-log $(srcdir)/tmp/parallel_runtime_rspec.log
test-bundler-parallel: $(TEST_RUNNABLE)-test-bundler-parallel
yes-test-bundler-parallel: yes-test-bundler-prepare
- $(XRUBY) -I$(srcdir)/spec/bundler \
- -e "ENV['PARALLEL_TESTS_EXECUTABLE'] = ARGV.shift" \
- -e "load ARGV.shift" \
- "$(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec" \
- $(srcdir)/.bundle/bin/parallel_rspec \
- -o "--require spec_helper" \
- $(PARALLELRSPECOPTS) $(srcdir)/spec/bundler/$(BUNDLER_SPECS)
+ $(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/parallel_rspec \
+ -o "--require $(srcdir)/spec/bundler/spec_helper --require $(srcdir)/spec/bundler/support/parallel" \
+ $(PARALLELRSPECOPTS) spec/bundler/$(BUNDLER_SPECS)
no-test-bundler-parallel:
GEM = up
@@ -1426,21 +1387,21 @@ update-unicode: $(UNICODE_FILES) $(UNICODE_PROPERTY_FILES) \
CACHE_DIR = $(srcdir)/.downloaded-cache
UNICODE_DOWNLOAD = \
- $(BASERUBY) $(tooldir)/downloader.rb \
+ $(BASERUBY) $(srcdir)/tool/downloader.rb \
--cache-dir=$(CACHE_DIR) \
--unicode-beta $(UNICODE_BETA) \
-d $(UNICODE_SRC_DATA_DIR) \
-p $(UNICODE_VERSION)/ucd \
-e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode
UNICODE_AUXILIARY_DOWNLOAD = \
- $(BASERUBY) $(tooldir)/downloader.rb \
+ $(BASERUBY) $(srcdir)/tool/downloader.rb \
--cache-dir=$(CACHE_DIR) \
--unicode-beta $(UNICODE_BETA) \
-d $(UNICODE_SRC_DATA_DIR)/auxiliary \
-p $(UNICODE_VERSION)/ucd/auxiliary \
-e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode
UNICODE_EMOJI_DOWNLOAD = \
- $(BASERUBY) $(tooldir)/downloader.rb \
+ $(BASERUBY) $(srcdir)/tool/downloader.rb \
--cache-dir=$(CACHE_DIR) \
--unicode-beta $(UNICODE_BETA) \
-d $(UNICODE_SRC_EMOJI_DATA_DIR) \
@@ -1477,11 +1438,11 @@ touch-unicode-files:
touch $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time $(UNICODE_DATA_HEADERS)
UNICODE_TABLES_TIMESTAMP = yes
-$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(tooldir)/generic_erb.rb \
+$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \
$(srcdir)/template/unicode_norm_gen.tmpl \
$(ALWAYS_UPDATE_UNICODE:yes=update-unicode)
$(Q) $(MAKE) $(@D)
- $(Q) $(BASERUBY) $(tooldir)/generic_erb.rb \
+ $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb \
-c $(UNICODE_TABLES_TIMESTAMP:yes=-t$@) \
-o $(srcdir)/lib/unicode_normalize/tables.rb \
-I $(srcdir) \
@@ -1492,14 +1453,14 @@ $(UNICODE_SRC_DATA_DIR):
$(gnumake_recursive)$(Q) $(MAKEDIRS) $@
$(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=name2ctype.h): \
- $(tooldir)/enc-unicode.rb \
+ $(srcdir)/tool/enc-unicode.rb \
$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \
$(UNICODE_PROPERTY_FILES) \
$(UNICODE_EMOJI_FILES)
$(UNICODE_HDR_DIR)/name2ctype.h:
$(MAKEDIRS) $(@D)
- $(BOOTSTRAPRUBY) $(tooldir)/enc-unicode.rb --header \
+ $(BOOTSTRAPRUBY) $(srcdir)/tool/enc-unicode.rb --header \
$(UNICODE_SRC_DATA_DIR) $(UNICODE_SRC_EMOJI_DATA_DIR) > $@.new
$(MV) $@.new $@
@@ -1557,18 +1518,11 @@ sudo-precheck: PHONY
@$(SUDO) echo > $(NULL)
update-man-date: PHONY
- -$(Q) $(BASERUBY) -I"$(tooldir)/lib" -rvcs -i -p \
+ -$(Q) $(BASERUBY) -I"$(srcdir)/tool/lib" -rvcs -i -p \
-e 'BEGIN{@vcs=VCS.detect(ARGV.shift)}' \
-e '$$_.sub!(/^(\.Dd ).*/){$$1+@vcs.modified(ARGF.path).strftime("%B %d, %Y")}' \
"$(srcdir)" "$(srcdir)"/man/*.1
-.PHONY: ChangeLog
-ChangeLog:
- $(ECHO) Generating $@
- -$(Q) $(BASERUBY) -I"$(tooldir)/lib" -rvcs \
- -e 'VCS.detect(ARGV[0]).export_changelog("@", nil, nil, ARGV[1])' \
- "$(srcdir)" $@
-
HELP_EXTRA_TASKS = ""
help: PHONY
@@ -1614,241 +1568,20 @@ help: PHONY
# AUTOGENERATED DEPENDENCIES START
addr2line.$(OBJEXT): {$(VPATH)}addr2line.c
addr2line.$(OBJEXT): {$(VPATH)}addr2line.h
-addr2line.$(OBJEXT): {$(VPATH)}assert.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-addr2line.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
addr2line.$(OBJEXT): {$(VPATH)}config.h
addr2line.$(OBJEXT): {$(VPATH)}defines.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/assume.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/cast.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/config.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/dosish.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-addr2line.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
addr2line.$(OBJEXT): {$(VPATH)}missing.h
array.$(OBJEXT): $(hdrdir)/ruby.h
array.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-array.$(OBJEXT): $(top_srcdir)/internal/array.h
-array.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-array.$(OBJEXT): $(top_srcdir)/internal/bits.h
-array.$(OBJEXT): $(top_srcdir)/internal/class.h
-array.$(OBJEXT): $(top_srcdir)/internal/compar.h
-array.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-array.$(OBJEXT): $(top_srcdir)/internal/enum.h
-array.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-array.$(OBJEXT): $(top_srcdir)/internal/gc.h
-array.$(OBJEXT): $(top_srcdir)/internal/hash.h
-array.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-array.$(OBJEXT): $(top_srcdir)/internal/object.h
-array.$(OBJEXT): $(top_srcdir)/internal/proc.h
-array.$(OBJEXT): $(top_srcdir)/internal/rational.h
-array.$(OBJEXT): $(top_srcdir)/internal/serial.h
-array.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-array.$(OBJEXT): $(top_srcdir)/internal/vm.h
-array.$(OBJEXT): $(top_srcdir)/internal/warnings.h
array.$(OBJEXT): {$(VPATH)}array.c
-array.$(OBJEXT): {$(VPATH)}array.rbinc
array.$(OBJEXT): {$(VPATH)}assert.h
-array.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-array.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-array.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-array.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-array.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-array.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-array.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-array.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-array.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-array.$(OBJEXT): {$(VPATH)}builtin.h
array.$(OBJEXT): {$(VPATH)}config.h
array.$(OBJEXT): {$(VPATH)}debug_counter.h
array.$(OBJEXT): {$(VPATH)}defines.h
array.$(OBJEXT): {$(VPATH)}encoding.h
array.$(OBJEXT): {$(VPATH)}id.h
-array.$(OBJEXT): {$(VPATH)}id_table.h
array.$(OBJEXT): {$(VPATH)}intern.h
array.$(OBJEXT): {$(VPATH)}internal.h
-array.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-array.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-array.$(OBJEXT): {$(VPATH)}internal/assume.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-array.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-array.$(OBJEXT): {$(VPATH)}internal/cast.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-array.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-array.$(OBJEXT): {$(VPATH)}internal/config.h
-array.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-array.$(OBJEXT): {$(VPATH)}internal/core.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-array.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-array.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-array.$(OBJEXT): {$(VPATH)}internal/ctype.h
-array.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-array.$(OBJEXT): {$(VPATH)}internal/dosish.h
-array.$(OBJEXT): {$(VPATH)}internal/error.h
-array.$(OBJEXT): {$(VPATH)}internal/eval.h
-array.$(OBJEXT): {$(VPATH)}internal/event.h
-array.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-array.$(OBJEXT): {$(VPATH)}internal/gc.h
-array.$(OBJEXT): {$(VPATH)}internal/glob.h
-array.$(OBJEXT): {$(VPATH)}internal/globals.h
-array.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-array.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-array.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-array.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-array.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-array.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-array.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-array.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-array.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-array.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-array.$(OBJEXT): {$(VPATH)}internal/iterator.h
-array.$(OBJEXT): {$(VPATH)}internal/memory.h
-array.$(OBJEXT): {$(VPATH)}internal/method.h
-array.$(OBJEXT): {$(VPATH)}internal/module.h
-array.$(OBJEXT): {$(VPATH)}internal/newobj.h
-array.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-array.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-array.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-array.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-array.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-array.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-array.$(OBJEXT): {$(VPATH)}internal/symbol.h
-array.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-array.$(OBJEXT): {$(VPATH)}internal/value.h
-array.$(OBJEXT): {$(VPATH)}internal/value_type.h
-array.$(OBJEXT): {$(VPATH)}internal/variable.h
-array.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-array.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
array.$(OBJEXT): {$(VPATH)}missing.h
array.$(OBJEXT): {$(VPATH)}onigmo.h
array.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -1865,29 +1598,9 @@ ast.$(OBJEXT): $(CCAN_DIR)/list/list.h
ast.$(OBJEXT): $(CCAN_DIR)/str/str.h
ast.$(OBJEXT): $(hdrdir)/ruby.h
ast.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-ast.$(OBJEXT): $(top_srcdir)/internal/array.h
-ast.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-ast.$(OBJEXT): $(top_srcdir)/internal/gc.h
-ast.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-ast.$(OBJEXT): $(top_srcdir)/internal/parse.h
-ast.$(OBJEXT): $(top_srcdir)/internal/serial.h
-ast.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-ast.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-ast.$(OBJEXT): $(top_srcdir)/internal/vm.h
-ast.$(OBJEXT): $(top_srcdir)/internal/warnings.h
ast.$(OBJEXT): {$(VPATH)}assert.h
ast.$(OBJEXT): {$(VPATH)}ast.c
ast.$(OBJEXT): {$(VPATH)}ast.rbinc
-ast.$(OBJEXT): {$(VPATH)}atomic.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-ast.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
ast.$(OBJEXT): {$(VPATH)}builtin.h
ast.$(OBJEXT): {$(VPATH)}config.h
ast.$(OBJEXT): {$(VPATH)}defines.h
@@ -1895,146 +1608,6 @@ ast.$(OBJEXT): {$(VPATH)}encoding.h
ast.$(OBJEXT): {$(VPATH)}id.h
ast.$(OBJEXT): {$(VPATH)}intern.h
ast.$(OBJEXT): {$(VPATH)}internal.h
-ast.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-ast.$(OBJEXT): {$(VPATH)}internal/assume.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-ast.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-ast.$(OBJEXT): {$(VPATH)}internal/cast.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-ast.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-ast.$(OBJEXT): {$(VPATH)}internal/config.h
-ast.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-ast.$(OBJEXT): {$(VPATH)}internal/core.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-ast.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-ast.$(OBJEXT): {$(VPATH)}internal/ctype.h
-ast.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-ast.$(OBJEXT): {$(VPATH)}internal/dosish.h
-ast.$(OBJEXT): {$(VPATH)}internal/error.h
-ast.$(OBJEXT): {$(VPATH)}internal/eval.h
-ast.$(OBJEXT): {$(VPATH)}internal/event.h
-ast.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-ast.$(OBJEXT): {$(VPATH)}internal/gc.h
-ast.$(OBJEXT): {$(VPATH)}internal/glob.h
-ast.$(OBJEXT): {$(VPATH)}internal/globals.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-ast.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-ast.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-ast.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-ast.$(OBJEXT): {$(VPATH)}internal/iterator.h
-ast.$(OBJEXT): {$(VPATH)}internal/memory.h
-ast.$(OBJEXT): {$(VPATH)}internal/method.h
-ast.$(OBJEXT): {$(VPATH)}internal/module.h
-ast.$(OBJEXT): {$(VPATH)}internal/newobj.h
-ast.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-ast.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-ast.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-ast.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-ast.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-ast.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-ast.$(OBJEXT): {$(VPATH)}internal/symbol.h
-ast.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-ast.$(OBJEXT): {$(VPATH)}internal/value.h
-ast.$(OBJEXT): {$(VPATH)}internal/value_type.h
-ast.$(OBJEXT): {$(VPATH)}internal/variable.h
-ast.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-ast.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
ast.$(OBJEXT): {$(VPATH)}iseq.h
ast.$(OBJEXT): {$(VPATH)}method.h
ast.$(OBJEXT): {$(VPATH)}missing.h
@@ -2052,180 +1625,13 @@ ast.$(OBJEXT): {$(VPATH)}vm_core.h
ast.$(OBJEXT): {$(VPATH)}vm_opts.h
bignum.$(OBJEXT): $(hdrdir)/ruby.h
bignum.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/bits.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/class.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/complex.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/gc.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/object.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/serial.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/util.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/variable.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/vm.h
-bignum.$(OBJEXT): $(top_srcdir)/internal/warnings.h
bignum.$(OBJEXT): {$(VPATH)}assert.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-bignum.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
bignum.$(OBJEXT): {$(VPATH)}bignum.c
bignum.$(OBJEXT): {$(VPATH)}config.h
-bignum.$(OBJEXT): {$(VPATH)}constant.h
bignum.$(OBJEXT): {$(VPATH)}defines.h
bignum.$(OBJEXT): {$(VPATH)}id.h
-bignum.$(OBJEXT): {$(VPATH)}id_table.h
bignum.$(OBJEXT): {$(VPATH)}intern.h
bignum.$(OBJEXT): {$(VPATH)}internal.h
-bignum.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-bignum.$(OBJEXT): {$(VPATH)}internal/assume.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-bignum.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-bignum.$(OBJEXT): {$(VPATH)}internal/cast.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-bignum.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-bignum.$(OBJEXT): {$(VPATH)}internal/config.h
-bignum.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-bignum.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-bignum.$(OBJEXT): {$(VPATH)}internal/ctype.h
-bignum.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-bignum.$(OBJEXT): {$(VPATH)}internal/dosish.h
-bignum.$(OBJEXT): {$(VPATH)}internal/error.h
-bignum.$(OBJEXT): {$(VPATH)}internal/eval.h
-bignum.$(OBJEXT): {$(VPATH)}internal/event.h
-bignum.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-bignum.$(OBJEXT): {$(VPATH)}internal/gc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/glob.h
-bignum.$(OBJEXT): {$(VPATH)}internal/globals.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-bignum.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-bignum.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-bignum.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-bignum.$(OBJEXT): {$(VPATH)}internal/iterator.h
-bignum.$(OBJEXT): {$(VPATH)}internal/memory.h
-bignum.$(OBJEXT): {$(VPATH)}internal/method.h
-bignum.$(OBJEXT): {$(VPATH)}internal/module.h
-bignum.$(OBJEXT): {$(VPATH)}internal/newobj.h
-bignum.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-bignum.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-bignum.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-bignum.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-bignum.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-bignum.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-bignum.$(OBJEXT): {$(VPATH)}internal/symbol.h
-bignum.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-bignum.$(OBJEXT): {$(VPATH)}internal/value.h
-bignum.$(OBJEXT): {$(VPATH)}internal/value_type.h
-bignum.$(OBJEXT): {$(VPATH)}internal/variable.h
-bignum.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-bignum.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
bignum.$(OBJEXT): {$(VPATH)}missing.h
bignum.$(OBJEXT): {$(VPATH)}ruby_assert.h
bignum.$(OBJEXT): {$(VPATH)}st.h
@@ -2238,25 +1644,7 @@ builtin.$(OBJEXT): $(CCAN_DIR)/list/list.h
builtin.$(OBJEXT): $(CCAN_DIR)/str/str.h
builtin.$(OBJEXT): $(hdrdir)/ruby.h
builtin.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/array.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/gc.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/serial.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/vm.h
-builtin.$(OBJEXT): $(top_srcdir)/internal/warnings.h
builtin.$(OBJEXT): {$(VPATH)}assert.h
-builtin.$(OBJEXT): {$(VPATH)}atomic.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-builtin.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
builtin.$(OBJEXT): {$(VPATH)}builtin.c
builtin.$(OBJEXT): {$(VPATH)}builtin.h
builtin.$(OBJEXT): {$(VPATH)}builtin_binary.inc
@@ -2265,146 +1653,6 @@ builtin.$(OBJEXT): {$(VPATH)}defines.h
builtin.$(OBJEXT): {$(VPATH)}id.h
builtin.$(OBJEXT): {$(VPATH)}intern.h
builtin.$(OBJEXT): {$(VPATH)}internal.h
-builtin.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-builtin.$(OBJEXT): {$(VPATH)}internal/assume.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-builtin.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-builtin.$(OBJEXT): {$(VPATH)}internal/cast.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-builtin.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-builtin.$(OBJEXT): {$(VPATH)}internal/config.h
-builtin.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-builtin.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-builtin.$(OBJEXT): {$(VPATH)}internal/ctype.h
-builtin.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-builtin.$(OBJEXT): {$(VPATH)}internal/dosish.h
-builtin.$(OBJEXT): {$(VPATH)}internal/error.h
-builtin.$(OBJEXT): {$(VPATH)}internal/eval.h
-builtin.$(OBJEXT): {$(VPATH)}internal/event.h
-builtin.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-builtin.$(OBJEXT): {$(VPATH)}internal/gc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/glob.h
-builtin.$(OBJEXT): {$(VPATH)}internal/globals.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-builtin.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-builtin.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-builtin.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-builtin.$(OBJEXT): {$(VPATH)}internal/iterator.h
-builtin.$(OBJEXT): {$(VPATH)}internal/memory.h
-builtin.$(OBJEXT): {$(VPATH)}internal/method.h
-builtin.$(OBJEXT): {$(VPATH)}internal/module.h
-builtin.$(OBJEXT): {$(VPATH)}internal/newobj.h
-builtin.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-builtin.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-builtin.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-builtin.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-builtin.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-builtin.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-builtin.$(OBJEXT): {$(VPATH)}internal/symbol.h
-builtin.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-builtin.$(OBJEXT): {$(VPATH)}internal/value.h
-builtin.$(OBJEXT): {$(VPATH)}internal/value_type.h
-builtin.$(OBJEXT): {$(VPATH)}internal/variable.h
-builtin.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-builtin.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
builtin.$(OBJEXT): {$(VPATH)}iseq.h
builtin.$(OBJEXT): {$(VPATH)}method.h
builtin.$(OBJEXT): {$(VPATH)}missing.h
@@ -2423,186 +1671,18 @@ class.$(OBJEXT): $(CCAN_DIR)/list/list.h
class.$(OBJEXT): $(CCAN_DIR)/str/str.h
class.$(OBJEXT): $(hdrdir)/ruby.h
class.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-class.$(OBJEXT): $(top_srcdir)/internal/array.h
-class.$(OBJEXT): $(top_srcdir)/internal/class.h
-class.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-class.$(OBJEXT): $(top_srcdir)/internal/error.h
-class.$(OBJEXT): $(top_srcdir)/internal/eval.h
-class.$(OBJEXT): $(top_srcdir)/internal/gc.h
-class.$(OBJEXT): $(top_srcdir)/internal/hash.h
-class.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-class.$(OBJEXT): $(top_srcdir)/internal/object.h
-class.$(OBJEXT): $(top_srcdir)/internal/serial.h
-class.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-class.$(OBJEXT): $(top_srcdir)/internal/string.h
-class.$(OBJEXT): $(top_srcdir)/internal/variable.h
-class.$(OBJEXT): $(top_srcdir)/internal/vm.h
-class.$(OBJEXT): $(top_srcdir)/internal/warnings.h
class.$(OBJEXT): {$(VPATH)}assert.h
-class.$(OBJEXT): {$(VPATH)}atomic.h
-class.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-class.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-class.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-class.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-class.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-class.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-class.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-class.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-class.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
class.$(OBJEXT): {$(VPATH)}class.c
class.$(OBJEXT): {$(VPATH)}config.h
class.$(OBJEXT): {$(VPATH)}constant.h
class.$(OBJEXT): {$(VPATH)}defines.h
-class.$(OBJEXT): {$(VPATH)}encoding.h
class.$(OBJEXT): {$(VPATH)}id.h
class.$(OBJEXT): {$(VPATH)}id_table.h
class.$(OBJEXT): {$(VPATH)}intern.h
class.$(OBJEXT): {$(VPATH)}internal.h
-class.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-class.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-class.$(OBJEXT): {$(VPATH)}internal/assume.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-class.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-class.$(OBJEXT): {$(VPATH)}internal/cast.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-class.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-class.$(OBJEXT): {$(VPATH)}internal/config.h
-class.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-class.$(OBJEXT): {$(VPATH)}internal/core.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-class.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-class.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-class.$(OBJEXT): {$(VPATH)}internal/ctype.h
-class.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-class.$(OBJEXT): {$(VPATH)}internal/dosish.h
-class.$(OBJEXT): {$(VPATH)}internal/error.h
-class.$(OBJEXT): {$(VPATH)}internal/eval.h
-class.$(OBJEXT): {$(VPATH)}internal/event.h
-class.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-class.$(OBJEXT): {$(VPATH)}internal/gc.h
-class.$(OBJEXT): {$(VPATH)}internal/glob.h
-class.$(OBJEXT): {$(VPATH)}internal/globals.h
-class.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-class.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-class.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-class.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-class.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-class.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-class.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-class.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-class.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-class.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-class.$(OBJEXT): {$(VPATH)}internal/iterator.h
-class.$(OBJEXT): {$(VPATH)}internal/memory.h
-class.$(OBJEXT): {$(VPATH)}internal/method.h
-class.$(OBJEXT): {$(VPATH)}internal/module.h
-class.$(OBJEXT): {$(VPATH)}internal/newobj.h
-class.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-class.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-class.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-class.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-class.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-class.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-class.$(OBJEXT): {$(VPATH)}internal/symbol.h
-class.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-class.$(OBJEXT): {$(VPATH)}internal/value.h
-class.$(OBJEXT): {$(VPATH)}internal/value_type.h
-class.$(OBJEXT): {$(VPATH)}internal/variable.h
-class.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-class.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
class.$(OBJEXT): {$(VPATH)}method.h
class.$(OBJEXT): {$(VPATH)}missing.h
class.$(OBJEXT): {$(VPATH)}node.h
-class.$(OBJEXT): {$(VPATH)}onigmo.h
-class.$(OBJEXT): {$(VPATH)}oniguruma.h
class.$(OBJEXT): {$(VPATH)}ruby_assert.h
class.$(OBJEXT): {$(VPATH)}ruby_atomic.h
class.$(OBJEXT): {$(VPATH)}st.h
@@ -2613,173 +1693,14 @@ class.$(OBJEXT): {$(VPATH)}vm_core.h
class.$(OBJEXT): {$(VPATH)}vm_opts.h
compar.$(OBJEXT): $(hdrdir)/ruby.h
compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-compar.$(OBJEXT): $(top_srcdir)/internal/compar.h
-compar.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-compar.$(OBJEXT): $(top_srcdir)/internal/error.h
-compar.$(OBJEXT): $(top_srcdir)/internal/serial.h
-compar.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-compar.$(OBJEXT): $(top_srcdir)/internal/string.h
-compar.$(OBJEXT): $(top_srcdir)/internal/vm.h
compar.$(OBJEXT): {$(VPATH)}assert.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-compar.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
compar.$(OBJEXT): {$(VPATH)}compar.c
compar.$(OBJEXT): {$(VPATH)}config.h
compar.$(OBJEXT): {$(VPATH)}defines.h
-compar.$(OBJEXT): {$(VPATH)}encoding.h
compar.$(OBJEXT): {$(VPATH)}id.h
compar.$(OBJEXT): {$(VPATH)}intern.h
compar.$(OBJEXT): {$(VPATH)}internal.h
-compar.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-compar.$(OBJEXT): {$(VPATH)}internal/assume.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-compar.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-compar.$(OBJEXT): {$(VPATH)}internal/cast.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-compar.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-compar.$(OBJEXT): {$(VPATH)}internal/config.h
-compar.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-compar.$(OBJEXT): {$(VPATH)}internal/core.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-compar.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-compar.$(OBJEXT): {$(VPATH)}internal/ctype.h
-compar.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-compar.$(OBJEXT): {$(VPATH)}internal/dosish.h
-compar.$(OBJEXT): {$(VPATH)}internal/error.h
-compar.$(OBJEXT): {$(VPATH)}internal/eval.h
-compar.$(OBJEXT): {$(VPATH)}internal/event.h
-compar.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-compar.$(OBJEXT): {$(VPATH)}internal/gc.h
-compar.$(OBJEXT): {$(VPATH)}internal/glob.h
-compar.$(OBJEXT): {$(VPATH)}internal/globals.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-compar.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-compar.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-compar.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-compar.$(OBJEXT): {$(VPATH)}internal/iterator.h
-compar.$(OBJEXT): {$(VPATH)}internal/memory.h
-compar.$(OBJEXT): {$(VPATH)}internal/method.h
-compar.$(OBJEXT): {$(VPATH)}internal/module.h
-compar.$(OBJEXT): {$(VPATH)}internal/newobj.h
-compar.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-compar.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-compar.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-compar.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-compar.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-compar.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-compar.$(OBJEXT): {$(VPATH)}internal/symbol.h
-compar.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-compar.$(OBJEXT): {$(VPATH)}internal/value.h
-compar.$(OBJEXT): {$(VPATH)}internal/value_type.h
-compar.$(OBJEXT): {$(VPATH)}internal/variable.h
-compar.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-compar.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
compar.$(OBJEXT): {$(VPATH)}missing.h
-compar.$(OBJEXT): {$(VPATH)}onigmo.h
-compar.$(OBJEXT): {$(VPATH)}oniguruma.h
compar.$(OBJEXT): {$(VPATH)}st.h
compar.$(OBJEXT): {$(VPATH)}subst.h
compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
@@ -2788,47 +1709,10 @@ compile.$(OBJEXT): $(CCAN_DIR)/list/list.h
compile.$(OBJEXT): $(CCAN_DIR)/str/str.h
compile.$(OBJEXT): $(hdrdir)/ruby.h
compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-compile.$(OBJEXT): $(top_srcdir)/internal/array.h
-compile.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-compile.$(OBJEXT): $(top_srcdir)/internal/bits.h
-compile.$(OBJEXT): $(top_srcdir)/internal/class.h
-compile.$(OBJEXT): $(top_srcdir)/internal/compile.h
-compile.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-compile.$(OBJEXT): $(top_srcdir)/internal/complex.h
-compile.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-compile.$(OBJEXT): $(top_srcdir)/internal/error.h
-compile.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-compile.$(OBJEXT): $(top_srcdir)/internal/gc.h
-compile.$(OBJEXT): $(top_srcdir)/internal/hash.h
-compile.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-compile.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-compile.$(OBJEXT): $(top_srcdir)/internal/object.h
-compile.$(OBJEXT): $(top_srcdir)/internal/rational.h
-compile.$(OBJEXT): $(top_srcdir)/internal/re.h
-compile.$(OBJEXT): $(top_srcdir)/internal/serial.h
-compile.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-compile.$(OBJEXT): $(top_srcdir)/internal/string.h
-compile.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-compile.$(OBJEXT): $(top_srcdir)/internal/thread.h
-compile.$(OBJEXT): $(top_srcdir)/internal/variable.h
-compile.$(OBJEXT): $(top_srcdir)/internal/vm.h
-compile.$(OBJEXT): $(top_srcdir)/internal/warnings.h
compile.$(OBJEXT): {$(VPATH)}assert.h
-compile.$(OBJEXT): {$(VPATH)}atomic.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-compile.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
compile.$(OBJEXT): {$(VPATH)}builtin.h
compile.$(OBJEXT): {$(VPATH)}compile.c
compile.$(OBJEXT): {$(VPATH)}config.h
-compile.$(OBJEXT): {$(VPATH)}constant.h
-compile.$(OBJEXT): {$(VPATH)}debug_counter.h
compile.$(OBJEXT): {$(VPATH)}defines.h
compile.$(OBJEXT): {$(VPATH)}encindex.h
compile.$(OBJEXT): {$(VPATH)}encoding.h
@@ -2840,147 +1724,6 @@ compile.$(OBJEXT): {$(VPATH)}insns.inc
compile.$(OBJEXT): {$(VPATH)}insns_info.inc
compile.$(OBJEXT): {$(VPATH)}intern.h
compile.$(OBJEXT): {$(VPATH)}internal.h
-compile.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-compile.$(OBJEXT): {$(VPATH)}internal/assume.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-compile.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-compile.$(OBJEXT): {$(VPATH)}internal/cast.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-compile.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-compile.$(OBJEXT): {$(VPATH)}internal/config.h
-compile.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-compile.$(OBJEXT): {$(VPATH)}internal/core.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-compile.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-compile.$(OBJEXT): {$(VPATH)}internal/ctype.h
-compile.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-compile.$(OBJEXT): {$(VPATH)}internal/dosish.h
-compile.$(OBJEXT): {$(VPATH)}internal/error.h
-compile.$(OBJEXT): {$(VPATH)}internal/eval.h
-compile.$(OBJEXT): {$(VPATH)}internal/event.h
-compile.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-compile.$(OBJEXT): {$(VPATH)}internal/gc.h
-compile.$(OBJEXT): {$(VPATH)}internal/glob.h
-compile.$(OBJEXT): {$(VPATH)}internal/globals.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-compile.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-compile.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-compile.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-compile.$(OBJEXT): {$(VPATH)}internal/iterator.h
-compile.$(OBJEXT): {$(VPATH)}internal/memory.h
-compile.$(OBJEXT): {$(VPATH)}internal/method.h
-compile.$(OBJEXT): {$(VPATH)}internal/module.h
-compile.$(OBJEXT): {$(VPATH)}internal/newobj.h
-compile.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-compile.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-compile.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-compile.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-compile.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-compile.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-compile.$(OBJEXT): {$(VPATH)}internal/symbol.h
-compile.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-compile.$(OBJEXT): {$(VPATH)}internal/value.h
-compile.$(OBJEXT): {$(VPATH)}internal/value_type.h
-compile.$(OBJEXT): {$(VPATH)}internal/variable.h
-compile.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-compile.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
compile.$(OBJEXT): {$(VPATH)}iseq.h
compile.$(OBJEXT): {$(VPATH)}method.h
compile.$(OBJEXT): {$(VPATH)}missing.h
@@ -2999,191 +1742,19 @@ compile.$(OBJEXT): {$(VPATH)}subst.h
compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
compile.$(OBJEXT): {$(VPATH)}thread_native.h
compile.$(OBJEXT): {$(VPATH)}util.h
-compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h
compile.$(OBJEXT): {$(VPATH)}vm_core.h
compile.$(OBJEXT): {$(VPATH)}vm_debug.h
compile.$(OBJEXT): {$(VPATH)}vm_opts.h
complex.$(OBJEXT): $(hdrdir)/ruby.h
complex.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-complex.$(OBJEXT): $(top_srcdir)/internal/array.h
-complex.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-complex.$(OBJEXT): $(top_srcdir)/internal/bits.h
-complex.$(OBJEXT): $(top_srcdir)/internal/class.h
-complex.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-complex.$(OBJEXT): $(top_srcdir)/internal/complex.h
-complex.$(OBJEXT): $(top_srcdir)/internal/error.h
-complex.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-complex.$(OBJEXT): $(top_srcdir)/internal/gc.h
-complex.$(OBJEXT): $(top_srcdir)/internal/math.h
-complex.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-complex.$(OBJEXT): $(top_srcdir)/internal/object.h
-complex.$(OBJEXT): $(top_srcdir)/internal/rational.h
-complex.$(OBJEXT): $(top_srcdir)/internal/serial.h
-complex.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-complex.$(OBJEXT): $(top_srcdir)/internal/string.h
-complex.$(OBJEXT): $(top_srcdir)/internal/vm.h
-complex.$(OBJEXT): $(top_srcdir)/internal/warnings.h
complex.$(OBJEXT): {$(VPATH)}assert.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-complex.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
complex.$(OBJEXT): {$(VPATH)}complex.c
complex.$(OBJEXT): {$(VPATH)}config.h
complex.$(OBJEXT): {$(VPATH)}defines.h
-complex.$(OBJEXT): {$(VPATH)}encoding.h
complex.$(OBJEXT): {$(VPATH)}id.h
-complex.$(OBJEXT): {$(VPATH)}id_table.h
complex.$(OBJEXT): {$(VPATH)}intern.h
complex.$(OBJEXT): {$(VPATH)}internal.h
-complex.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-complex.$(OBJEXT): {$(VPATH)}internal/assume.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-complex.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-complex.$(OBJEXT): {$(VPATH)}internal/cast.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-complex.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-complex.$(OBJEXT): {$(VPATH)}internal/config.h
-complex.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-complex.$(OBJEXT): {$(VPATH)}internal/core.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-complex.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-complex.$(OBJEXT): {$(VPATH)}internal/ctype.h
-complex.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-complex.$(OBJEXT): {$(VPATH)}internal/dosish.h
-complex.$(OBJEXT): {$(VPATH)}internal/error.h
-complex.$(OBJEXT): {$(VPATH)}internal/eval.h
-complex.$(OBJEXT): {$(VPATH)}internal/event.h
-complex.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-complex.$(OBJEXT): {$(VPATH)}internal/gc.h
-complex.$(OBJEXT): {$(VPATH)}internal/glob.h
-complex.$(OBJEXT): {$(VPATH)}internal/globals.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-complex.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-complex.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-complex.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-complex.$(OBJEXT): {$(VPATH)}internal/iterator.h
-complex.$(OBJEXT): {$(VPATH)}internal/memory.h
-complex.$(OBJEXT): {$(VPATH)}internal/method.h
-complex.$(OBJEXT): {$(VPATH)}internal/module.h
-complex.$(OBJEXT): {$(VPATH)}internal/newobj.h
-complex.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-complex.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-complex.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-complex.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-complex.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-complex.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-complex.$(OBJEXT): {$(VPATH)}internal/symbol.h
-complex.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-complex.$(OBJEXT): {$(VPATH)}internal/value.h
-complex.$(OBJEXT): {$(VPATH)}internal/value_type.h
-complex.$(OBJEXT): {$(VPATH)}internal/variable.h
-complex.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-complex.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
complex.$(OBJEXT): {$(VPATH)}missing.h
-complex.$(OBJEXT): {$(VPATH)}onigmo.h
-complex.$(OBJEXT): {$(VPATH)}oniguruma.h
complex.$(OBJEXT): {$(VPATH)}ruby_assert.h
complex.$(OBJEXT): {$(VPATH)}st.h
complex.$(OBJEXT): {$(VPATH)}subst.h
@@ -3193,29 +1764,8 @@ cont.$(OBJEXT): $(CCAN_DIR)/list/list.h
cont.$(OBJEXT): $(CCAN_DIR)/str/str.h
cont.$(OBJEXT): $(hdrdir)/ruby.h
cont.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-cont.$(OBJEXT): $(top_srcdir)/internal/array.h
-cont.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-cont.$(OBJEXT): $(top_srcdir)/internal/cont.h
-cont.$(OBJEXT): $(top_srcdir)/internal/gc.h
-cont.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-cont.$(OBJEXT): $(top_srcdir)/internal/proc.h
-cont.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-cont.$(OBJEXT): $(top_srcdir)/internal/serial.h
-cont.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-cont.$(OBJEXT): $(top_srcdir)/internal/vm.h
-cont.$(OBJEXT): $(top_srcdir)/internal/warnings.h
cont.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)
cont.$(OBJEXT): {$(VPATH)}assert.h
-cont.$(OBJEXT): {$(VPATH)}atomic.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-cont.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
cont.$(OBJEXT): {$(VPATH)}config.h
cont.$(OBJEXT): {$(VPATH)}cont.c
cont.$(OBJEXT): {$(VPATH)}debug_counter.h
@@ -3223,155 +1773,12 @@ cont.$(OBJEXT): {$(VPATH)}defines.h
cont.$(OBJEXT): {$(VPATH)}eval_intern.h
cont.$(OBJEXT): {$(VPATH)}gc.h
cont.$(OBJEXT): {$(VPATH)}id.h
-cont.$(OBJEXT): {$(VPATH)}id_table.h
cont.$(OBJEXT): {$(VPATH)}intern.h
cont.$(OBJEXT): {$(VPATH)}internal.h
-cont.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-cont.$(OBJEXT): {$(VPATH)}internal/assume.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-cont.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-cont.$(OBJEXT): {$(VPATH)}internal/cast.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-cont.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-cont.$(OBJEXT): {$(VPATH)}internal/config.h
-cont.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-cont.$(OBJEXT): {$(VPATH)}internal/core.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-cont.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-cont.$(OBJEXT): {$(VPATH)}internal/ctype.h
-cont.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-cont.$(OBJEXT): {$(VPATH)}internal/dosish.h
-cont.$(OBJEXT): {$(VPATH)}internal/error.h
-cont.$(OBJEXT): {$(VPATH)}internal/eval.h
-cont.$(OBJEXT): {$(VPATH)}internal/event.h
-cont.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-cont.$(OBJEXT): {$(VPATH)}internal/gc.h
-cont.$(OBJEXT): {$(VPATH)}internal/glob.h
-cont.$(OBJEXT): {$(VPATH)}internal/globals.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-cont.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-cont.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-cont.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-cont.$(OBJEXT): {$(VPATH)}internal/iterator.h
-cont.$(OBJEXT): {$(VPATH)}internal/memory.h
-cont.$(OBJEXT): {$(VPATH)}internal/method.h
-cont.$(OBJEXT): {$(VPATH)}internal/module.h
-cont.$(OBJEXT): {$(VPATH)}internal/newobj.h
-cont.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-cont.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-cont.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-cont.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-cont.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-cont.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-cont.$(OBJEXT): {$(VPATH)}internal/symbol.h
-cont.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-cont.$(OBJEXT): {$(VPATH)}internal/value.h
-cont.$(OBJEXT): {$(VPATH)}internal/value_type.h
-cont.$(OBJEXT): {$(VPATH)}internal/variable.h
-cont.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-cont.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
cont.$(OBJEXT): {$(VPATH)}method.h
cont.$(OBJEXT): {$(VPATH)}missing.h
cont.$(OBJEXT): {$(VPATH)}mjit.h
cont.$(OBJEXT): {$(VPATH)}node.h
-cont.$(OBJEXT): {$(VPATH)}ractor.h
-cont.$(OBJEXT): {$(VPATH)}ractor_core.h
cont.$(OBJEXT): {$(VPATH)}ruby_assert.h
cont.$(OBJEXT): {$(VPATH)}ruby_atomic.h
cont.$(OBJEXT): {$(VPATH)}st.h
@@ -3379,7 +1786,6 @@ cont.$(OBJEXT): {$(VPATH)}subst.h
cont.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
cont.$(OBJEXT): {$(VPATH)}thread_native.h
cont.$(OBJEXT): {$(VPATH)}vm_core.h
-cont.$(OBJEXT): {$(VPATH)}vm_debug.h
cont.$(OBJEXT): {$(VPATH)}vm_opts.h
debug.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
debug.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
@@ -3387,186 +1793,22 @@ debug.$(OBJEXT): $(CCAN_DIR)/list/list.h
debug.$(OBJEXT): $(CCAN_DIR)/str/str.h
debug.$(OBJEXT): $(hdrdir)/ruby.h
debug.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-debug.$(OBJEXT): $(top_srcdir)/internal/array.h
-debug.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-debug.$(OBJEXT): $(top_srcdir)/internal/gc.h
-debug.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-debug.$(OBJEXT): $(top_srcdir)/internal/serial.h
-debug.$(OBJEXT): $(top_srcdir)/internal/signal.h
-debug.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-debug.$(OBJEXT): $(top_srcdir)/internal/util.h
-debug.$(OBJEXT): $(top_srcdir)/internal/vm.h
-debug.$(OBJEXT): $(top_srcdir)/internal/warnings.h
debug.$(OBJEXT): {$(VPATH)}assert.h
-debug.$(OBJEXT): {$(VPATH)}atomic.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-debug.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
debug.$(OBJEXT): {$(VPATH)}config.h
debug.$(OBJEXT): {$(VPATH)}debug.c
-debug.$(OBJEXT): {$(VPATH)}debug_counter.h
debug.$(OBJEXT): {$(VPATH)}defines.h
debug.$(OBJEXT): {$(VPATH)}encoding.h
debug.$(OBJEXT): {$(VPATH)}eval_intern.h
debug.$(OBJEXT): {$(VPATH)}gc.h
debug.$(OBJEXT): {$(VPATH)}id.h
-debug.$(OBJEXT): {$(VPATH)}id_table.h
debug.$(OBJEXT): {$(VPATH)}intern.h
debug.$(OBJEXT): {$(VPATH)}internal.h
-debug.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-debug.$(OBJEXT): {$(VPATH)}internal/assume.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-debug.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-debug.$(OBJEXT): {$(VPATH)}internal/cast.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-debug.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-debug.$(OBJEXT): {$(VPATH)}internal/config.h
-debug.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-debug.$(OBJEXT): {$(VPATH)}internal/core.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-debug.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-debug.$(OBJEXT): {$(VPATH)}internal/ctype.h
-debug.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-debug.$(OBJEXT): {$(VPATH)}internal/dosish.h
-debug.$(OBJEXT): {$(VPATH)}internal/error.h
-debug.$(OBJEXT): {$(VPATH)}internal/eval.h
-debug.$(OBJEXT): {$(VPATH)}internal/event.h
-debug.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-debug.$(OBJEXT): {$(VPATH)}internal/gc.h
-debug.$(OBJEXT): {$(VPATH)}internal/glob.h
-debug.$(OBJEXT): {$(VPATH)}internal/globals.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-debug.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-debug.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-debug.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-debug.$(OBJEXT): {$(VPATH)}internal/iterator.h
-debug.$(OBJEXT): {$(VPATH)}internal/memory.h
-debug.$(OBJEXT): {$(VPATH)}internal/method.h
-debug.$(OBJEXT): {$(VPATH)}internal/module.h
-debug.$(OBJEXT): {$(VPATH)}internal/newobj.h
-debug.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-debug.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-debug.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-debug.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-debug.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-debug.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-debug.$(OBJEXT): {$(VPATH)}internal/symbol.h
-debug.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-debug.$(OBJEXT): {$(VPATH)}internal/value.h
-debug.$(OBJEXT): {$(VPATH)}internal/value_type.h
-debug.$(OBJEXT): {$(VPATH)}internal/variable.h
-debug.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-debug.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
debug.$(OBJEXT): {$(VPATH)}io.h
debug.$(OBJEXT): {$(VPATH)}method.h
debug.$(OBJEXT): {$(VPATH)}missing.h
debug.$(OBJEXT): {$(VPATH)}node.h
debug.$(OBJEXT): {$(VPATH)}onigmo.h
debug.$(OBJEXT): {$(VPATH)}oniguruma.h
-debug.$(OBJEXT): {$(VPATH)}ractor.h
-debug.$(OBJEXT): {$(VPATH)}ractor_core.h
debug.$(OBJEXT): {$(VPATH)}ruby_assert.h
debug.$(OBJEXT): {$(VPATH)}ruby_atomic.h
debug.$(OBJEXT): {$(VPATH)}st.h
@@ -3575,348 +1817,32 @@ debug.$(OBJEXT): {$(VPATH)}symbol.h
debug.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
debug.$(OBJEXT): {$(VPATH)}thread_native.h
debug.$(OBJEXT): {$(VPATH)}util.h
-debug.$(OBJEXT): {$(VPATH)}vm_callinfo.h
debug.$(OBJEXT): {$(VPATH)}vm_core.h
debug.$(OBJEXT): {$(VPATH)}vm_debug.h
debug.$(OBJEXT): {$(VPATH)}vm_opts.h
debug_counter.$(OBJEXT): $(hdrdir)/ruby.h
debug_counter.$(OBJEXT): $(hdrdir)/ruby/ruby.h
debug_counter.$(OBJEXT): {$(VPATH)}assert.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-debug_counter.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
debug_counter.$(OBJEXT): {$(VPATH)}config.h
debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.c
debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.h
debug_counter.$(OBJEXT): {$(VPATH)}defines.h
debug_counter.$(OBJEXT): {$(VPATH)}intern.h
debug_counter.$(OBJEXT): {$(VPATH)}internal.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/assume.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/cast.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/config.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/ctype.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/dosish.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/error.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/eval.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/event.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/gc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/glob.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/globals.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/iterator.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/memory.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/method.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/module.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/newobj.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/symbol.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/value.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/value_type.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/variable.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-debug_counter.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
debug_counter.$(OBJEXT): {$(VPATH)}missing.h
debug_counter.$(OBJEXT): {$(VPATH)}st.h
debug_counter.$(OBJEXT): {$(VPATH)}subst.h
-debug_counter.$(OBJEXT): {$(VPATH)}thread_native.h
dir.$(OBJEXT): $(hdrdir)/ruby.h
dir.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-dir.$(OBJEXT): $(top_srcdir)/internal/array.h
-dir.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-dir.$(OBJEXT): $(top_srcdir)/internal/dir.h
-dir.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-dir.$(OBJEXT): $(top_srcdir)/internal/error.h
-dir.$(OBJEXT): $(top_srcdir)/internal/file.h
-dir.$(OBJEXT): $(top_srcdir)/internal/gc.h
-dir.$(OBJEXT): $(top_srcdir)/internal/io.h
-dir.$(OBJEXT): $(top_srcdir)/internal/serial.h
-dir.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-dir.$(OBJEXT): $(top_srcdir)/internal/string.h
-dir.$(OBJEXT): $(top_srcdir)/internal/vm.h
-dir.$(OBJEXT): $(top_srcdir)/internal/warnings.h
dir.$(OBJEXT): {$(VPATH)}assert.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-dir.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-dir.$(OBJEXT): {$(VPATH)}builtin.h
dir.$(OBJEXT): {$(VPATH)}config.h
dir.$(OBJEXT): {$(VPATH)}defines.h
dir.$(OBJEXT): {$(VPATH)}dir.c
-dir.$(OBJEXT): {$(VPATH)}dir.rbinc
dir.$(OBJEXT): {$(VPATH)}encindex.h
dir.$(OBJEXT): {$(VPATH)}encoding.h
dir.$(OBJEXT): {$(VPATH)}id.h
dir.$(OBJEXT): {$(VPATH)}intern.h
dir.$(OBJEXT): {$(VPATH)}internal.h
-dir.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-dir.$(OBJEXT): {$(VPATH)}internal/assume.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-dir.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-dir.$(OBJEXT): {$(VPATH)}internal/cast.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-dir.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-dir.$(OBJEXT): {$(VPATH)}internal/config.h
-dir.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-dir.$(OBJEXT): {$(VPATH)}internal/core.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-dir.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-dir.$(OBJEXT): {$(VPATH)}internal/ctype.h
-dir.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-dir.$(OBJEXT): {$(VPATH)}internal/dosish.h
-dir.$(OBJEXT): {$(VPATH)}internal/error.h
-dir.$(OBJEXT): {$(VPATH)}internal/eval.h
-dir.$(OBJEXT): {$(VPATH)}internal/event.h
-dir.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-dir.$(OBJEXT): {$(VPATH)}internal/gc.h
-dir.$(OBJEXT): {$(VPATH)}internal/glob.h
-dir.$(OBJEXT): {$(VPATH)}internal/globals.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-dir.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-dir.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-dir.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-dir.$(OBJEXT): {$(VPATH)}internal/iterator.h
-dir.$(OBJEXT): {$(VPATH)}internal/memory.h
-dir.$(OBJEXT): {$(VPATH)}internal/method.h
-dir.$(OBJEXT): {$(VPATH)}internal/module.h
-dir.$(OBJEXT): {$(VPATH)}internal/newobj.h
-dir.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-dir.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-dir.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-dir.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-dir.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-dir.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-dir.$(OBJEXT): {$(VPATH)}internal/symbol.h
-dir.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-dir.$(OBJEXT): {$(VPATH)}internal/value.h
-dir.$(OBJEXT): {$(VPATH)}internal/value_type.h
-dir.$(OBJEXT): {$(VPATH)}internal/variable.h
-dir.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-dir.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-dir.$(OBJEXT): {$(VPATH)}io.h
dir.$(OBJEXT): {$(VPATH)}missing.h
dir.$(OBJEXT): {$(VPATH)}onigmo.h
dir.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -3926,481 +1852,32 @@ dir.$(OBJEXT): {$(VPATH)}thread.h
dir.$(OBJEXT): {$(VPATH)}util.h
dln.$(OBJEXT): $(hdrdir)/ruby.h
dln.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-dln.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-dln.$(OBJEXT): $(top_srcdir)/internal/warnings.h
dln.$(OBJEXT): {$(VPATH)}assert.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-dln.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
dln.$(OBJEXT): {$(VPATH)}config.h
dln.$(OBJEXT): {$(VPATH)}defines.h
dln.$(OBJEXT): {$(VPATH)}dln.c
dln.$(OBJEXT): {$(VPATH)}dln.h
dln.$(OBJEXT): {$(VPATH)}intern.h
dln.$(OBJEXT): {$(VPATH)}internal.h
-dln.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-dln.$(OBJEXT): {$(VPATH)}internal/assume.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-dln.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-dln.$(OBJEXT): {$(VPATH)}internal/cast.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-dln.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-dln.$(OBJEXT): {$(VPATH)}internal/config.h
-dln.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-dln.$(OBJEXT): {$(VPATH)}internal/core.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-dln.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-dln.$(OBJEXT): {$(VPATH)}internal/ctype.h
-dln.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-dln.$(OBJEXT): {$(VPATH)}internal/dosish.h
-dln.$(OBJEXT): {$(VPATH)}internal/error.h
-dln.$(OBJEXT): {$(VPATH)}internal/eval.h
-dln.$(OBJEXT): {$(VPATH)}internal/event.h
-dln.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-dln.$(OBJEXT): {$(VPATH)}internal/gc.h
-dln.$(OBJEXT): {$(VPATH)}internal/glob.h
-dln.$(OBJEXT): {$(VPATH)}internal/globals.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-dln.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-dln.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-dln.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-dln.$(OBJEXT): {$(VPATH)}internal/iterator.h
-dln.$(OBJEXT): {$(VPATH)}internal/memory.h
-dln.$(OBJEXT): {$(VPATH)}internal/method.h
-dln.$(OBJEXT): {$(VPATH)}internal/module.h
-dln.$(OBJEXT): {$(VPATH)}internal/newobj.h
-dln.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-dln.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-dln.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-dln.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-dln.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-dln.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-dln.$(OBJEXT): {$(VPATH)}internal/symbol.h
-dln.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-dln.$(OBJEXT): {$(VPATH)}internal/value.h
-dln.$(OBJEXT): {$(VPATH)}internal/value_type.h
-dln.$(OBJEXT): {$(VPATH)}internal/variable.h
-dln.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-dln.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
dln.$(OBJEXT): {$(VPATH)}missing.h
dln.$(OBJEXT): {$(VPATH)}st.h
dln.$(OBJEXT): {$(VPATH)}subst.h
dln_find.$(OBJEXT): $(hdrdir)/ruby/ruby.h
dln_find.$(OBJEXT): {$(VPATH)}assert.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-dln_find.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
dln_find.$(OBJEXT): {$(VPATH)}config.h
dln_find.$(OBJEXT): {$(VPATH)}defines.h
dln_find.$(OBJEXT): {$(VPATH)}dln.h
dln_find.$(OBJEXT): {$(VPATH)}dln_find.c
dln_find.$(OBJEXT): {$(VPATH)}intern.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/assume.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/cast.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/config.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/ctype.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/dosish.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/error.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/eval.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/event.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/gc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/glob.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/globals.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/iterator.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/memory.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/method.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/module.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/newobj.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/symbol.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/value.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/value_type.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/variable.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-dln_find.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
dln_find.$(OBJEXT): {$(VPATH)}missing.h
dln_find.$(OBJEXT): {$(VPATH)}st.h
dln_find.$(OBJEXT): {$(VPATH)}subst.h
dmydln.$(OBJEXT): $(hdrdir)/ruby/ruby.h
dmydln.$(OBJEXT): {$(VPATH)}assert.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-dmydln.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
dmydln.$(OBJEXT): {$(VPATH)}config.h
dmydln.$(OBJEXT): {$(VPATH)}defines.h
dmydln.$(OBJEXT): {$(VPATH)}dmydln.c
dmydln.$(OBJEXT): {$(VPATH)}intern.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/assume.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/cast.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/config.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/ctype.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/dosish.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/error.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/eval.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/event.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/gc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/glob.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/globals.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/iterator.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/memory.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/method.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/module.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/newobj.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/symbol.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/value.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/value_type.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/variable.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-dmydln.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
dmydln.$(OBJEXT): {$(VPATH)}missing.h
dmydln.$(OBJEXT): {$(VPATH)}st.h
dmydln.$(OBJEXT): {$(VPATH)}subst.h
@@ -4448,180 +1925,15 @@ enc/utf_8.$(OBJEXT): {$(VPATH)}missing.h
enc/utf_8.$(OBJEXT): {$(VPATH)}regenc.h
encoding.$(OBJEXT): $(hdrdir)/ruby.h
encoding.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/class.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/enc.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/gc.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/inits.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/load.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/object.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/serial.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/string.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/vm.h
-encoding.$(OBJEXT): $(top_srcdir)/internal/warnings.h
encoding.$(OBJEXT): {$(VPATH)}assert.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-encoding.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
encoding.$(OBJEXT): {$(VPATH)}config.h
-encoding.$(OBJEXT): {$(VPATH)}debug_counter.h
encoding.$(OBJEXT): {$(VPATH)}defines.h
encoding.$(OBJEXT): {$(VPATH)}encindex.h
encoding.$(OBJEXT): {$(VPATH)}encoding.c
encoding.$(OBJEXT): {$(VPATH)}encoding.h
-encoding.$(OBJEXT): {$(VPATH)}id_table.h
encoding.$(OBJEXT): {$(VPATH)}intern.h
encoding.$(OBJEXT): {$(VPATH)}internal.h
-encoding.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-encoding.$(OBJEXT): {$(VPATH)}internal/assume.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-encoding.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-encoding.$(OBJEXT): {$(VPATH)}internal/cast.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-encoding.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-encoding.$(OBJEXT): {$(VPATH)}internal/config.h
-encoding.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-encoding.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-encoding.$(OBJEXT): {$(VPATH)}internal/ctype.h
-encoding.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-encoding.$(OBJEXT): {$(VPATH)}internal/dosish.h
-encoding.$(OBJEXT): {$(VPATH)}internal/error.h
-encoding.$(OBJEXT): {$(VPATH)}internal/eval.h
-encoding.$(OBJEXT): {$(VPATH)}internal/event.h
-encoding.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-encoding.$(OBJEXT): {$(VPATH)}internal/gc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/glob.h
-encoding.$(OBJEXT): {$(VPATH)}internal/globals.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-encoding.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-encoding.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-encoding.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-encoding.$(OBJEXT): {$(VPATH)}internal/iterator.h
-encoding.$(OBJEXT): {$(VPATH)}internal/memory.h
-encoding.$(OBJEXT): {$(VPATH)}internal/method.h
-encoding.$(OBJEXT): {$(VPATH)}internal/module.h
-encoding.$(OBJEXT): {$(VPATH)}internal/newobj.h
-encoding.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-encoding.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-encoding.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-encoding.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-encoding.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-encoding.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-encoding.$(OBJEXT): {$(VPATH)}internal/symbol.h
-encoding.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-encoding.$(OBJEXT): {$(VPATH)}internal/value.h
-encoding.$(OBJEXT): {$(VPATH)}internal/value_type.h
-encoding.$(OBJEXT): {$(VPATH)}internal/variable.h
-encoding.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-encoding.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
encoding.$(OBJEXT): {$(VPATH)}missing.h
-encoding.$(OBJEXT): {$(VPATH)}node.h
encoding.$(OBJEXT): {$(VPATH)}onigmo.h
encoding.$(OBJEXT): {$(VPATH)}oniguruma.h
encoding.$(OBJEXT): {$(VPATH)}regenc.h
@@ -4629,378 +1941,33 @@ encoding.$(OBJEXT): {$(VPATH)}ruby_assert.h
encoding.$(OBJEXT): {$(VPATH)}st.h
encoding.$(OBJEXT): {$(VPATH)}subst.h
encoding.$(OBJEXT): {$(VPATH)}util.h
-encoding.$(OBJEXT): {$(VPATH)}vm_debug.h
-encoding.$(OBJEXT): {$(VPATH)}vm_sync.h
enum.$(OBJEXT): $(hdrdir)/ruby.h
enum.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-enum.$(OBJEXT): $(top_srcdir)/internal/array.h
-enum.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-enum.$(OBJEXT): $(top_srcdir)/internal/bits.h
-enum.$(OBJEXT): $(top_srcdir)/internal/class.h
-enum.$(OBJEXT): $(top_srcdir)/internal/compar.h
-enum.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-enum.$(OBJEXT): $(top_srcdir)/internal/enum.h
-enum.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-enum.$(OBJEXT): $(top_srcdir)/internal/gc.h
-enum.$(OBJEXT): $(top_srcdir)/internal/hash.h
-enum.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-enum.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-enum.$(OBJEXT): $(top_srcdir)/internal/object.h
-enum.$(OBJEXT): $(top_srcdir)/internal/proc.h
-enum.$(OBJEXT): $(top_srcdir)/internal/rational.h
-enum.$(OBJEXT): $(top_srcdir)/internal/re.h
-enum.$(OBJEXT): $(top_srcdir)/internal/serial.h
-enum.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-enum.$(OBJEXT): $(top_srcdir)/internal/vm.h
-enum.$(OBJEXT): $(top_srcdir)/internal/warnings.h
enum.$(OBJEXT): {$(VPATH)}assert.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-enum.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
enum.$(OBJEXT): {$(VPATH)}config.h
enum.$(OBJEXT): {$(VPATH)}defines.h
enum.$(OBJEXT): {$(VPATH)}encoding.h
enum.$(OBJEXT): {$(VPATH)}enum.c
enum.$(OBJEXT): {$(VPATH)}id.h
-enum.$(OBJEXT): {$(VPATH)}id_table.h
enum.$(OBJEXT): {$(VPATH)}intern.h
enum.$(OBJEXT): {$(VPATH)}internal.h
-enum.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-enum.$(OBJEXT): {$(VPATH)}internal/assume.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-enum.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-enum.$(OBJEXT): {$(VPATH)}internal/cast.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-enum.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-enum.$(OBJEXT): {$(VPATH)}internal/config.h
-enum.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-enum.$(OBJEXT): {$(VPATH)}internal/core.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-enum.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-enum.$(OBJEXT): {$(VPATH)}internal/ctype.h
-enum.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-enum.$(OBJEXT): {$(VPATH)}internal/dosish.h
-enum.$(OBJEXT): {$(VPATH)}internal/error.h
-enum.$(OBJEXT): {$(VPATH)}internal/eval.h
-enum.$(OBJEXT): {$(VPATH)}internal/event.h
-enum.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-enum.$(OBJEXT): {$(VPATH)}internal/gc.h
-enum.$(OBJEXT): {$(VPATH)}internal/glob.h
-enum.$(OBJEXT): {$(VPATH)}internal/globals.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-enum.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-enum.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-enum.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-enum.$(OBJEXT): {$(VPATH)}internal/iterator.h
-enum.$(OBJEXT): {$(VPATH)}internal/memory.h
-enum.$(OBJEXT): {$(VPATH)}internal/method.h
-enum.$(OBJEXT): {$(VPATH)}internal/module.h
-enum.$(OBJEXT): {$(VPATH)}internal/newobj.h
-enum.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-enum.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-enum.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-enum.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-enum.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-enum.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-enum.$(OBJEXT): {$(VPATH)}internal/symbol.h
-enum.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-enum.$(OBJEXT): {$(VPATH)}internal/value.h
-enum.$(OBJEXT): {$(VPATH)}internal/value_type.h
-enum.$(OBJEXT): {$(VPATH)}internal/variable.h
-enum.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-enum.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
enum.$(OBJEXT): {$(VPATH)}missing.h
enum.$(OBJEXT): {$(VPATH)}onigmo.h
enum.$(OBJEXT): {$(VPATH)}oniguruma.h
-enum.$(OBJEXT): {$(VPATH)}ruby_assert.h
enum.$(OBJEXT): {$(VPATH)}st.h
enum.$(OBJEXT): {$(VPATH)}subst.h
enum.$(OBJEXT): {$(VPATH)}symbol.h
enum.$(OBJEXT): {$(VPATH)}util.h
enumerator.$(OBJEXT): $(hdrdir)/ruby.h
enumerator.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/array.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/bits.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/enumerator.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/error.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/gc.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/hash.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/range.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/rational.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/serial.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/string.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/struct.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/vm.h
-enumerator.$(OBJEXT): $(top_srcdir)/internal/warnings.h
enumerator.$(OBJEXT): {$(VPATH)}assert.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
enumerator.$(OBJEXT): {$(VPATH)}config.h
enumerator.$(OBJEXT): {$(VPATH)}defines.h
-enumerator.$(OBJEXT): {$(VPATH)}encoding.h
enumerator.$(OBJEXT): {$(VPATH)}enumerator.c
enumerator.$(OBJEXT): {$(VPATH)}id.h
enumerator.$(OBJEXT): {$(VPATH)}intern.h
enumerator.$(OBJEXT): {$(VPATH)}internal.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/assume.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/cast.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/config.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/ctype.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/dosish.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/error.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/eval.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/event.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/gc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/glob.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/globals.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/iterator.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/memory.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/method.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/module.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/newobj.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/symbol.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/value.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/value_type.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/variable.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-enumerator.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
enumerator.$(OBJEXT): {$(VPATH)}missing.h
-enumerator.$(OBJEXT): {$(VPATH)}onigmo.h
-enumerator.$(OBJEXT): {$(VPATH)}oniguruma.h
-enumerator.$(OBJEXT): {$(VPATH)}ruby_assert.h
enumerator.$(OBJEXT): {$(VPATH)}st.h
enumerator.$(OBJEXT): {$(VPATH)}subst.h
error.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
@@ -5009,187 +1976,16 @@ error.$(OBJEXT): $(CCAN_DIR)/list/list.h
error.$(OBJEXT): $(CCAN_DIR)/str/str.h
error.$(OBJEXT): $(hdrdir)/ruby.h
error.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-error.$(OBJEXT): $(top_srcdir)/internal/array.h
-error.$(OBJEXT): $(top_srcdir)/internal/class.h
-error.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-error.$(OBJEXT): $(top_srcdir)/internal/error.h
-error.$(OBJEXT): $(top_srcdir)/internal/eval.h
-error.$(OBJEXT): $(top_srcdir)/internal/gc.h
-error.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-error.$(OBJEXT): $(top_srcdir)/internal/io.h
-error.$(OBJEXT): $(top_srcdir)/internal/load.h
-error.$(OBJEXT): $(top_srcdir)/internal/object.h
-error.$(OBJEXT): $(top_srcdir)/internal/serial.h
-error.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-error.$(OBJEXT): $(top_srcdir)/internal/string.h
-error.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-error.$(OBJEXT): $(top_srcdir)/internal/thread.h
-error.$(OBJEXT): $(top_srcdir)/internal/variable.h
-error.$(OBJEXT): $(top_srcdir)/internal/vm.h
-error.$(OBJEXT): $(top_srcdir)/internal/warnings.h
error.$(OBJEXT): {$(VPATH)}assert.h
-error.$(OBJEXT): {$(VPATH)}atomic.h
-error.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-error.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-error.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-error.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-error.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-error.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-error.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-error.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-error.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
error.$(OBJEXT): {$(VPATH)}builtin.h
error.$(OBJEXT): {$(VPATH)}config.h
-error.$(OBJEXT): {$(VPATH)}constant.h
error.$(OBJEXT): {$(VPATH)}defines.h
error.$(OBJEXT): {$(VPATH)}encoding.h
error.$(OBJEXT): {$(VPATH)}error.c
error.$(OBJEXT): {$(VPATH)}eval_intern.h
error.$(OBJEXT): {$(VPATH)}id.h
-error.$(OBJEXT): {$(VPATH)}id_table.h
error.$(OBJEXT): {$(VPATH)}intern.h
error.$(OBJEXT): {$(VPATH)}internal.h
-error.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-error.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-error.$(OBJEXT): {$(VPATH)}internal/assume.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-error.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-error.$(OBJEXT): {$(VPATH)}internal/cast.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-error.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-error.$(OBJEXT): {$(VPATH)}internal/config.h
-error.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-error.$(OBJEXT): {$(VPATH)}internal/core.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-error.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-error.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-error.$(OBJEXT): {$(VPATH)}internal/ctype.h
-error.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-error.$(OBJEXT): {$(VPATH)}internal/dosish.h
-error.$(OBJEXT): {$(VPATH)}internal/error.h
-error.$(OBJEXT): {$(VPATH)}internal/eval.h
-error.$(OBJEXT): {$(VPATH)}internal/event.h
-error.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-error.$(OBJEXT): {$(VPATH)}internal/gc.h
-error.$(OBJEXT): {$(VPATH)}internal/glob.h
-error.$(OBJEXT): {$(VPATH)}internal/globals.h
-error.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-error.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-error.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-error.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-error.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-error.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-error.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-error.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-error.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-error.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-error.$(OBJEXT): {$(VPATH)}internal/iterator.h
-error.$(OBJEXT): {$(VPATH)}internal/memory.h
-error.$(OBJEXT): {$(VPATH)}internal/method.h
-error.$(OBJEXT): {$(VPATH)}internal/module.h
-error.$(OBJEXT): {$(VPATH)}internal/newobj.h
-error.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-error.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-error.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-error.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-error.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-error.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-error.$(OBJEXT): {$(VPATH)}internal/symbol.h
-error.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-error.$(OBJEXT): {$(VPATH)}internal/value.h
-error.$(OBJEXT): {$(VPATH)}internal/value_type.h
-error.$(OBJEXT): {$(VPATH)}internal/variable.h
-error.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-error.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-error.$(OBJEXT): {$(VPATH)}io.h
error.$(OBJEXT): {$(VPATH)}known_errors.inc
error.$(OBJEXT): {$(VPATH)}method.h
error.$(OBJEXT): {$(VPATH)}missing.h
@@ -5211,203 +2007,26 @@ eval.$(OBJEXT): $(CCAN_DIR)/list/list.h
eval.$(OBJEXT): $(CCAN_DIR)/str/str.h
eval.$(OBJEXT): $(hdrdir)/ruby.h
eval.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-eval.$(OBJEXT): $(top_srcdir)/internal/array.h
-eval.$(OBJEXT): $(top_srcdir)/internal/class.h
-eval.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-eval.$(OBJEXT): $(top_srcdir)/internal/error.h
-eval.$(OBJEXT): $(top_srcdir)/internal/eval.h
-eval.$(OBJEXT): $(top_srcdir)/internal/gc.h
-eval.$(OBJEXT): $(top_srcdir)/internal/hash.h
-eval.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-eval.$(OBJEXT): $(top_srcdir)/internal/inits.h
-eval.$(OBJEXT): $(top_srcdir)/internal/io.h
-eval.$(OBJEXT): $(top_srcdir)/internal/object.h
-eval.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-eval.$(OBJEXT): $(top_srcdir)/internal/serial.h
-eval.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-eval.$(OBJEXT): $(top_srcdir)/internal/string.h
-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): {$(VPATH)}assert.h
-eval.$(OBJEXT): {$(VPATH)}atomic.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-eval.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
eval.$(OBJEXT): {$(VPATH)}config.h
-eval.$(OBJEXT): {$(VPATH)}constant.h
eval.$(OBJEXT): {$(VPATH)}debug_counter.h
eval.$(OBJEXT): {$(VPATH)}defines.h
-eval.$(OBJEXT): {$(VPATH)}encoding.h
eval.$(OBJEXT): {$(VPATH)}eval.c
eval.$(OBJEXT): {$(VPATH)}eval_error.c
eval.$(OBJEXT): {$(VPATH)}eval_intern.h
eval.$(OBJEXT): {$(VPATH)}eval_jump.c
eval.$(OBJEXT): {$(VPATH)}gc.h
eval.$(OBJEXT): {$(VPATH)}id.h
-eval.$(OBJEXT): {$(VPATH)}id_table.h
eval.$(OBJEXT): {$(VPATH)}intern.h
eval.$(OBJEXT): {$(VPATH)}internal.h
-eval.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-eval.$(OBJEXT): {$(VPATH)}internal/assume.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-eval.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-eval.$(OBJEXT): {$(VPATH)}internal/cast.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-eval.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-eval.$(OBJEXT): {$(VPATH)}internal/config.h
-eval.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-eval.$(OBJEXT): {$(VPATH)}internal/core.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-eval.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-eval.$(OBJEXT): {$(VPATH)}internal/ctype.h
-eval.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-eval.$(OBJEXT): {$(VPATH)}internal/dosish.h
-eval.$(OBJEXT): {$(VPATH)}internal/error.h
-eval.$(OBJEXT): {$(VPATH)}internal/eval.h
-eval.$(OBJEXT): {$(VPATH)}internal/event.h
-eval.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-eval.$(OBJEXT): {$(VPATH)}internal/gc.h
-eval.$(OBJEXT): {$(VPATH)}internal/glob.h
-eval.$(OBJEXT): {$(VPATH)}internal/globals.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-eval.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-eval.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-eval.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-eval.$(OBJEXT): {$(VPATH)}internal/iterator.h
-eval.$(OBJEXT): {$(VPATH)}internal/memory.h
-eval.$(OBJEXT): {$(VPATH)}internal/method.h
-eval.$(OBJEXT): {$(VPATH)}internal/module.h
-eval.$(OBJEXT): {$(VPATH)}internal/newobj.h
-eval.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-eval.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-eval.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-eval.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-eval.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-eval.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-eval.$(OBJEXT): {$(VPATH)}internal/symbol.h
-eval.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-eval.$(OBJEXT): {$(VPATH)}internal/value.h
-eval.$(OBJEXT): {$(VPATH)}internal/value_type.h
-eval.$(OBJEXT): {$(VPATH)}internal/variable.h
-eval.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-eval.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-eval.$(OBJEXT): {$(VPATH)}io.h
eval.$(OBJEXT): {$(VPATH)}iseq.h
eval.$(OBJEXT): {$(VPATH)}method.h
eval.$(OBJEXT): {$(VPATH)}missing.h
eval.$(OBJEXT): {$(VPATH)}mjit.h
eval.$(OBJEXT): {$(VPATH)}node.h
-eval.$(OBJEXT): {$(VPATH)}onigmo.h
-eval.$(OBJEXT): {$(VPATH)}oniguruma.h
eval.$(OBJEXT): {$(VPATH)}probes.dmyh
eval.$(OBJEXT): {$(VPATH)}probes.h
eval.$(OBJEXT): {$(VPATH)}probes_helper.h
-eval.$(OBJEXT): {$(VPATH)}ractor.h
-eval.$(OBJEXT): {$(VPATH)}ractor_core.h
eval.$(OBJEXT): {$(VPATH)}ruby_assert.h
eval.$(OBJEXT): {$(VPATH)}ruby_atomic.h
eval.$(OBJEXT): {$(VPATH)}st.h
@@ -5416,51 +2035,13 @@ eval.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
eval.$(OBJEXT): {$(VPATH)}thread_native.h
eval.$(OBJEXT): {$(VPATH)}vm.h
eval.$(OBJEXT): {$(VPATH)}vm_core.h
-eval.$(OBJEXT): {$(VPATH)}vm_debug.h
eval.$(OBJEXT): {$(VPATH)}vm_opts.h
explicit_bzero.$(OBJEXT): {$(VPATH)}config.h
explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/config.h
-explicit_bzero.$(OBJEXT): {$(VPATH)}internal/dllexport.h
explicit_bzero.$(OBJEXT): {$(VPATH)}missing.h
file.$(OBJEXT): $(hdrdir)/ruby.h
file.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-file.$(OBJEXT): $(top_srcdir)/internal/array.h
-file.$(OBJEXT): $(top_srcdir)/internal/class.h
-file.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-file.$(OBJEXT): $(top_srcdir)/internal/dir.h
-file.$(OBJEXT): $(top_srcdir)/internal/error.h
-file.$(OBJEXT): $(top_srcdir)/internal/file.h
-file.$(OBJEXT): $(top_srcdir)/internal/gc.h
-file.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-file.$(OBJEXT): $(top_srcdir)/internal/io.h
-file.$(OBJEXT): $(top_srcdir)/internal/load.h
-file.$(OBJEXT): $(top_srcdir)/internal/object.h
-file.$(OBJEXT): $(top_srcdir)/internal/process.h
-file.$(OBJEXT): $(top_srcdir)/internal/serial.h
-file.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-file.$(OBJEXT): $(top_srcdir)/internal/string.h
-file.$(OBJEXT): $(top_srcdir)/internal/thread.h
-file.$(OBJEXT): $(top_srcdir)/internal/vm.h
-file.$(OBJEXT): $(top_srcdir)/internal/warnings.h
file.$(OBJEXT): {$(VPATH)}assert.h
-file.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-file.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-file.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-file.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-file.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-file.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-file.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-file.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-file.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
file.$(OBJEXT): {$(VPATH)}config.h
file.$(OBJEXT): {$(VPATH)}defines.h
file.$(OBJEXT): {$(VPATH)}dln.h
@@ -5468,149 +2049,8 @@ file.$(OBJEXT): {$(VPATH)}encindex.h
file.$(OBJEXT): {$(VPATH)}encoding.h
file.$(OBJEXT): {$(VPATH)}file.c
file.$(OBJEXT): {$(VPATH)}id.h
-file.$(OBJEXT): {$(VPATH)}id_table.h
file.$(OBJEXT): {$(VPATH)}intern.h
file.$(OBJEXT): {$(VPATH)}internal.h
-file.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-file.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-file.$(OBJEXT): {$(VPATH)}internal/assume.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-file.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-file.$(OBJEXT): {$(VPATH)}internal/cast.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-file.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-file.$(OBJEXT): {$(VPATH)}internal/config.h
-file.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-file.$(OBJEXT): {$(VPATH)}internal/core.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-file.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-file.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-file.$(OBJEXT): {$(VPATH)}internal/ctype.h
-file.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-file.$(OBJEXT): {$(VPATH)}internal/dosish.h
-file.$(OBJEXT): {$(VPATH)}internal/error.h
-file.$(OBJEXT): {$(VPATH)}internal/eval.h
-file.$(OBJEXT): {$(VPATH)}internal/event.h
-file.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-file.$(OBJEXT): {$(VPATH)}internal/gc.h
-file.$(OBJEXT): {$(VPATH)}internal/glob.h
-file.$(OBJEXT): {$(VPATH)}internal/globals.h
-file.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-file.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-file.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-file.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-file.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-file.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-file.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-file.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-file.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-file.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-file.$(OBJEXT): {$(VPATH)}internal/iterator.h
-file.$(OBJEXT): {$(VPATH)}internal/memory.h
-file.$(OBJEXT): {$(VPATH)}internal/method.h
-file.$(OBJEXT): {$(VPATH)}internal/module.h
-file.$(OBJEXT): {$(VPATH)}internal/newobj.h
-file.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-file.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-file.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-file.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-file.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-file.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-file.$(OBJEXT): {$(VPATH)}internal/symbol.h
-file.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-file.$(OBJEXT): {$(VPATH)}internal/value.h
-file.$(OBJEXT): {$(VPATH)}internal/value_type.h
-file.$(OBJEXT): {$(VPATH)}internal/variable.h
-file.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-file.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
file.$(OBJEXT): {$(VPATH)}io.h
file.$(OBJEXT): {$(VPATH)}missing.h
file.$(OBJEXT): {$(VPATH)}onigmo.h
@@ -5625,45 +2065,7 @@ gc.$(OBJEXT): $(CCAN_DIR)/list/list.h
gc.$(OBJEXT): $(CCAN_DIR)/str/str.h
gc.$(OBJEXT): $(hdrdir)/ruby.h
gc.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-gc.$(OBJEXT): $(top_srcdir)/internal/array.h
-gc.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-gc.$(OBJEXT): $(top_srcdir)/internal/bits.h
-gc.$(OBJEXT): $(top_srcdir)/internal/class.h
-gc.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-gc.$(OBJEXT): $(top_srcdir)/internal/complex.h
-gc.$(OBJEXT): $(top_srcdir)/internal/cont.h
-gc.$(OBJEXT): $(top_srcdir)/internal/error.h
-gc.$(OBJEXT): $(top_srcdir)/internal/eval.h
-gc.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-gc.$(OBJEXT): $(top_srcdir)/internal/gc.h
-gc.$(OBJEXT): $(top_srcdir)/internal/hash.h
-gc.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-gc.$(OBJEXT): $(top_srcdir)/internal/io.h
-gc.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-gc.$(OBJEXT): $(top_srcdir)/internal/object.h
-gc.$(OBJEXT): $(top_srcdir)/internal/proc.h
-gc.$(OBJEXT): $(top_srcdir)/internal/rational.h
-gc.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-gc.$(OBJEXT): $(top_srcdir)/internal/serial.h
-gc.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-gc.$(OBJEXT): $(top_srcdir)/internal/string.h
-gc.$(OBJEXT): $(top_srcdir)/internal/struct.h
-gc.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-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): {$(VPATH)}assert.h
-gc.$(OBJEXT): {$(VPATH)}atomic.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-gc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
gc.$(OBJEXT): {$(VPATH)}builtin.h
gc.$(OBJEXT): {$(VPATH)}config.h
gc.$(OBJEXT): {$(VPATH)}constant.h
@@ -5679,147 +2081,6 @@ gc.$(OBJEXT): {$(VPATH)}id.h
gc.$(OBJEXT): {$(VPATH)}id_table.h
gc.$(OBJEXT): {$(VPATH)}intern.h
gc.$(OBJEXT): {$(VPATH)}internal.h
-gc.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-gc.$(OBJEXT): {$(VPATH)}internal/assume.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-gc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-gc.$(OBJEXT): {$(VPATH)}internal/cast.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-gc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-gc.$(OBJEXT): {$(VPATH)}internal/config.h
-gc.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-gc.$(OBJEXT): {$(VPATH)}internal/core.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-gc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-gc.$(OBJEXT): {$(VPATH)}internal/ctype.h
-gc.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-gc.$(OBJEXT): {$(VPATH)}internal/dosish.h
-gc.$(OBJEXT): {$(VPATH)}internal/error.h
-gc.$(OBJEXT): {$(VPATH)}internal/eval.h
-gc.$(OBJEXT): {$(VPATH)}internal/event.h
-gc.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-gc.$(OBJEXT): {$(VPATH)}internal/gc.h
-gc.$(OBJEXT): {$(VPATH)}internal/glob.h
-gc.$(OBJEXT): {$(VPATH)}internal/globals.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-gc.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-gc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-gc.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-gc.$(OBJEXT): {$(VPATH)}internal/iterator.h
-gc.$(OBJEXT): {$(VPATH)}internal/memory.h
-gc.$(OBJEXT): {$(VPATH)}internal/method.h
-gc.$(OBJEXT): {$(VPATH)}internal/module.h
-gc.$(OBJEXT): {$(VPATH)}internal/newobj.h
-gc.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-gc.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-gc.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-gc.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-gc.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-gc.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-gc.$(OBJEXT): {$(VPATH)}internal/symbol.h
-gc.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-gc.$(OBJEXT): {$(VPATH)}internal/value.h
-gc.$(OBJEXT): {$(VPATH)}internal/value_type.h
-gc.$(OBJEXT): {$(VPATH)}internal/variable.h
-gc.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-gc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
gc.$(OBJEXT): {$(VPATH)}io.h
gc.$(OBJEXT): {$(VPATH)}method.h
gc.$(OBJEXT): {$(VPATH)}missing.h
@@ -5829,8 +2090,6 @@ gc.$(OBJEXT): {$(VPATH)}onigmo.h
gc.$(OBJEXT): {$(VPATH)}oniguruma.h
gc.$(OBJEXT): {$(VPATH)}probes.dmyh
gc.$(OBJEXT): {$(VPATH)}probes.h
-gc.$(OBJEXT): {$(VPATH)}ractor.h
-gc.$(OBJEXT): {$(VPATH)}ractor_core.h
gc.$(OBJEXT): {$(VPATH)}re.h
gc.$(OBJEXT): {$(VPATH)}regenc.h
gc.$(OBJEXT): {$(VPATH)}regex.h
@@ -5845,36 +2104,15 @@ gc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
gc.$(OBJEXT): {$(VPATH)}thread_native.h
gc.$(OBJEXT): {$(VPATH)}transient_heap.h
gc.$(OBJEXT): {$(VPATH)}util.h
-gc.$(OBJEXT): {$(VPATH)}vm_callinfo.h
gc.$(OBJEXT): {$(VPATH)}vm_core.h
-gc.$(OBJEXT): {$(VPATH)}vm_debug.h
gc.$(OBJEXT): {$(VPATH)}vm_opts.h
-gc.$(OBJEXT): {$(VPATH)}vm_sync.h
golf_prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
golf_prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
golf_prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h
golf_prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h
golf_prelude.$(OBJEXT): $(hdrdir)/ruby.h
golf_prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/array.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/gc.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/serial.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/vm.h
-golf_prelude.$(OBJEXT): $(top_srcdir)/internal/warnings.h
golf_prelude.$(OBJEXT): {$(VPATH)}assert.h
-golf_prelude.$(OBJEXT): {$(VPATH)}atomic.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-golf_prelude.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
golf_prelude.$(OBJEXT): {$(VPATH)}config.h
golf_prelude.$(OBJEXT): {$(VPATH)}defines.h
golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c
@@ -5882,146 +2120,6 @@ golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.rb
golf_prelude.$(OBJEXT): {$(VPATH)}id.h
golf_prelude.$(OBJEXT): {$(VPATH)}intern.h
golf_prelude.$(OBJEXT): {$(VPATH)}internal.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/assume.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/cast.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/config.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/ctype.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/dosish.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/error.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/eval.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/event.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/gc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/glob.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/globals.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/iterator.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/memory.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/method.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/module.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/newobj.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/symbol.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/value.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/value_type.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/variable.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-golf_prelude.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
golf_prelude.$(OBJEXT): {$(VPATH)}iseq.h
golf_prelude.$(OBJEXT): {$(VPATH)}method.h
golf_prelude.$(OBJEXT): {$(VPATH)}missing.h
@@ -6038,159 +2136,10 @@ goruby.$(OBJEXT): $(hdrdir)/ruby.h
goruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h
goruby.$(OBJEXT): {$(VPATH)}assert.h
goruby.$(OBJEXT): {$(VPATH)}backward.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-goruby.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
goruby.$(OBJEXT): {$(VPATH)}config.h
goruby.$(OBJEXT): {$(VPATH)}defines.h
goruby.$(OBJEXT): {$(VPATH)}goruby.c
goruby.$(OBJEXT): {$(VPATH)}intern.h
-goruby.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-goruby.$(OBJEXT): {$(VPATH)}internal/assume.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-goruby.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-goruby.$(OBJEXT): {$(VPATH)}internal/cast.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-goruby.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-goruby.$(OBJEXT): {$(VPATH)}internal/config.h
-goruby.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-goruby.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-goruby.$(OBJEXT): {$(VPATH)}internal/ctype.h
-goruby.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-goruby.$(OBJEXT): {$(VPATH)}internal/dosish.h
-goruby.$(OBJEXT): {$(VPATH)}internal/error.h
-goruby.$(OBJEXT): {$(VPATH)}internal/eval.h
-goruby.$(OBJEXT): {$(VPATH)}internal/event.h
-goruby.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-goruby.$(OBJEXT): {$(VPATH)}internal/gc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/glob.h
-goruby.$(OBJEXT): {$(VPATH)}internal/globals.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-goruby.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-goruby.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-goruby.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-goruby.$(OBJEXT): {$(VPATH)}internal/iterator.h
-goruby.$(OBJEXT): {$(VPATH)}internal/memory.h
-goruby.$(OBJEXT): {$(VPATH)}internal/method.h
-goruby.$(OBJEXT): {$(VPATH)}internal/module.h
-goruby.$(OBJEXT): {$(VPATH)}internal/newobj.h
-goruby.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-goruby.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-goruby.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-goruby.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-goruby.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-goruby.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-goruby.$(OBJEXT): {$(VPATH)}internal/symbol.h
-goruby.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-goruby.$(OBJEXT): {$(VPATH)}internal/value.h
-goruby.$(OBJEXT): {$(VPATH)}internal/value_type.h
-goruby.$(OBJEXT): {$(VPATH)}internal/variable.h
-goruby.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-goruby.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
goruby.$(OBJEXT): {$(VPATH)}main.c
goruby.$(OBJEXT): {$(VPATH)}missing.h
goruby.$(OBJEXT): {$(VPATH)}node.h
@@ -6199,183 +2148,15 @@ goruby.$(OBJEXT): {$(VPATH)}subst.h
goruby.$(OBJEXT): {$(VPATH)}vm_debug.h
hash.$(OBJEXT): $(hdrdir)/ruby.h
hash.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-hash.$(OBJEXT): $(top_srcdir)/internal/array.h
-hash.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-hash.$(OBJEXT): $(top_srcdir)/internal/bits.h
-hash.$(OBJEXT): $(top_srcdir)/internal/class.h
-hash.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-hash.$(OBJEXT): $(top_srcdir)/internal/cont.h
-hash.$(OBJEXT): $(top_srcdir)/internal/error.h
-hash.$(OBJEXT): $(top_srcdir)/internal/gc.h
-hash.$(OBJEXT): $(top_srcdir)/internal/hash.h
-hash.$(OBJEXT): $(top_srcdir)/internal/object.h
-hash.$(OBJEXT): $(top_srcdir)/internal/proc.h
-hash.$(OBJEXT): $(top_srcdir)/internal/serial.h
-hash.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-hash.$(OBJEXT): $(top_srcdir)/internal/string.h
-hash.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-hash.$(OBJEXT): $(top_srcdir)/internal/time.h
-hash.$(OBJEXT): $(top_srcdir)/internal/vm.h
-hash.$(OBJEXT): $(top_srcdir)/internal/warnings.h
hash.$(OBJEXT): {$(VPATH)}assert.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-hash.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
hash.$(OBJEXT): {$(VPATH)}config.h
hash.$(OBJEXT): {$(VPATH)}debug_counter.h
hash.$(OBJEXT): {$(VPATH)}defines.h
hash.$(OBJEXT): {$(VPATH)}encoding.h
hash.$(OBJEXT): {$(VPATH)}hash.c
hash.$(OBJEXT): {$(VPATH)}id.h
-hash.$(OBJEXT): {$(VPATH)}id_table.h
hash.$(OBJEXT): {$(VPATH)}intern.h
hash.$(OBJEXT): {$(VPATH)}internal.h
-hash.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-hash.$(OBJEXT): {$(VPATH)}internal/assume.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-hash.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-hash.$(OBJEXT): {$(VPATH)}internal/cast.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-hash.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-hash.$(OBJEXT): {$(VPATH)}internal/config.h
-hash.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-hash.$(OBJEXT): {$(VPATH)}internal/core.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-hash.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-hash.$(OBJEXT): {$(VPATH)}internal/ctype.h
-hash.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-hash.$(OBJEXT): {$(VPATH)}internal/dosish.h
-hash.$(OBJEXT): {$(VPATH)}internal/error.h
-hash.$(OBJEXT): {$(VPATH)}internal/eval.h
-hash.$(OBJEXT): {$(VPATH)}internal/event.h
-hash.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-hash.$(OBJEXT): {$(VPATH)}internal/gc.h
-hash.$(OBJEXT): {$(VPATH)}internal/glob.h
-hash.$(OBJEXT): {$(VPATH)}internal/globals.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-hash.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-hash.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-hash.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-hash.$(OBJEXT): {$(VPATH)}internal/iterator.h
-hash.$(OBJEXT): {$(VPATH)}internal/memory.h
-hash.$(OBJEXT): {$(VPATH)}internal/method.h
-hash.$(OBJEXT): {$(VPATH)}internal/module.h
-hash.$(OBJEXT): {$(VPATH)}internal/newobj.h
-hash.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-hash.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-hash.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-hash.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-hash.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-hash.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-hash.$(OBJEXT): {$(VPATH)}internal/symbol.h
-hash.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-hash.$(OBJEXT): {$(VPATH)}internal/value.h
-hash.$(OBJEXT): {$(VPATH)}internal/value_type.h
-hash.$(OBJEXT): {$(VPATH)}internal/variable.h
-hash.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-hash.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
hash.$(OBJEXT): {$(VPATH)}missing.h
hash.$(OBJEXT): {$(VPATH)}onigmo.h
hash.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -6389,165 +2170,13 @@ hash.$(OBJEXT): {$(VPATH)}transient_heap.h
hash.$(OBJEXT): {$(VPATH)}util.h
inits.$(OBJEXT): $(hdrdir)/ruby.h
inits.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-inits.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-inits.$(OBJEXT): $(top_srcdir)/internal/inits.h
-inits.$(OBJEXT): $(top_srcdir)/internal/warnings.h
inits.$(OBJEXT): {$(VPATH)}assert.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-inits.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
inits.$(OBJEXT): {$(VPATH)}builtin.h
inits.$(OBJEXT): {$(VPATH)}config.h
inits.$(OBJEXT): {$(VPATH)}defines.h
inits.$(OBJEXT): {$(VPATH)}inits.c
inits.$(OBJEXT): {$(VPATH)}intern.h
inits.$(OBJEXT): {$(VPATH)}internal.h
-inits.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-inits.$(OBJEXT): {$(VPATH)}internal/assume.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-inits.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-inits.$(OBJEXT): {$(VPATH)}internal/cast.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-inits.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-inits.$(OBJEXT): {$(VPATH)}internal/config.h
-inits.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-inits.$(OBJEXT): {$(VPATH)}internal/core.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-inits.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-inits.$(OBJEXT): {$(VPATH)}internal/ctype.h
-inits.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-inits.$(OBJEXT): {$(VPATH)}internal/dosish.h
-inits.$(OBJEXT): {$(VPATH)}internal/error.h
-inits.$(OBJEXT): {$(VPATH)}internal/eval.h
-inits.$(OBJEXT): {$(VPATH)}internal/event.h
-inits.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-inits.$(OBJEXT): {$(VPATH)}internal/gc.h
-inits.$(OBJEXT): {$(VPATH)}internal/glob.h
-inits.$(OBJEXT): {$(VPATH)}internal/globals.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-inits.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-inits.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-inits.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-inits.$(OBJEXT): {$(VPATH)}internal/iterator.h
-inits.$(OBJEXT): {$(VPATH)}internal/memory.h
-inits.$(OBJEXT): {$(VPATH)}internal/method.h
-inits.$(OBJEXT): {$(VPATH)}internal/module.h
-inits.$(OBJEXT): {$(VPATH)}internal/newobj.h
-inits.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-inits.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-inits.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-inits.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-inits.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-inits.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-inits.$(OBJEXT): {$(VPATH)}internal/symbol.h
-inits.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-inits.$(OBJEXT): {$(VPATH)}internal/value.h
-inits.$(OBJEXT): {$(VPATH)}internal/value_type.h
-inits.$(OBJEXT): {$(VPATH)}internal/variable.h
-inits.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-inits.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
inits.$(OBJEXT): {$(VPATH)}missing.h
inits.$(OBJEXT): {$(VPATH)}prelude.rbinc
inits.$(OBJEXT): {$(VPATH)}st.h
@@ -6558,192 +2187,16 @@ io.$(OBJEXT): $(CCAN_DIR)/list/list.h
io.$(OBJEXT): $(CCAN_DIR)/str/str.h
io.$(OBJEXT): $(hdrdir)/ruby.h
io.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-io.$(OBJEXT): $(top_srcdir)/internal/array.h
-io.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-io.$(OBJEXT): $(top_srcdir)/internal/bits.h
-io.$(OBJEXT): $(top_srcdir)/internal/class.h
-io.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-io.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-io.$(OBJEXT): $(top_srcdir)/internal/error.h
-io.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-io.$(OBJEXT): $(top_srcdir)/internal/gc.h
-io.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-io.$(OBJEXT): $(top_srcdir)/internal/inits.h
-io.$(OBJEXT): $(top_srcdir)/internal/io.h
-io.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-io.$(OBJEXT): $(top_srcdir)/internal/object.h
-io.$(OBJEXT): $(top_srcdir)/internal/process.h
-io.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-io.$(OBJEXT): $(top_srcdir)/internal/serial.h
-io.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-io.$(OBJEXT): $(top_srcdir)/internal/string.h
-io.$(OBJEXT): $(top_srcdir)/internal/thread.h
-io.$(OBJEXT): $(top_srcdir)/internal/transcode.h
-io.$(OBJEXT): $(top_srcdir)/internal/variable.h
-io.$(OBJEXT): $(top_srcdir)/internal/vm.h
-io.$(OBJEXT): $(top_srcdir)/internal/warnings.h
io.$(OBJEXT): {$(VPATH)}assert.h
-io.$(OBJEXT): {$(VPATH)}atomic.h
-io.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-io.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-io.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-io.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-io.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-io.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-io.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-io.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-io.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
io.$(OBJEXT): {$(VPATH)}builtin.h
io.$(OBJEXT): {$(VPATH)}config.h
-io.$(OBJEXT): {$(VPATH)}constant.h
io.$(OBJEXT): {$(VPATH)}defines.h
io.$(OBJEXT): {$(VPATH)}dln.h
io.$(OBJEXT): {$(VPATH)}encindex.h
io.$(OBJEXT): {$(VPATH)}encoding.h
io.$(OBJEXT): {$(VPATH)}id.h
-io.$(OBJEXT): {$(VPATH)}id_table.h
io.$(OBJEXT): {$(VPATH)}intern.h
io.$(OBJEXT): {$(VPATH)}internal.h
-io.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-io.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-io.$(OBJEXT): {$(VPATH)}internal/assume.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-io.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-io.$(OBJEXT): {$(VPATH)}internal/cast.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-io.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-io.$(OBJEXT): {$(VPATH)}internal/config.h
-io.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-io.$(OBJEXT): {$(VPATH)}internal/core.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-io.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-io.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-io.$(OBJEXT): {$(VPATH)}internal/ctype.h
-io.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-io.$(OBJEXT): {$(VPATH)}internal/dosish.h
-io.$(OBJEXT): {$(VPATH)}internal/error.h
-io.$(OBJEXT): {$(VPATH)}internal/eval.h
-io.$(OBJEXT): {$(VPATH)}internal/event.h
-io.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-io.$(OBJEXT): {$(VPATH)}internal/gc.h
-io.$(OBJEXT): {$(VPATH)}internal/glob.h
-io.$(OBJEXT): {$(VPATH)}internal/globals.h
-io.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-io.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-io.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-io.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-io.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-io.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-io.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-io.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-io.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-io.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-io.$(OBJEXT): {$(VPATH)}internal/iterator.h
-io.$(OBJEXT): {$(VPATH)}internal/memory.h
-io.$(OBJEXT): {$(VPATH)}internal/method.h
-io.$(OBJEXT): {$(VPATH)}internal/module.h
-io.$(OBJEXT): {$(VPATH)}internal/newobj.h
-io.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-io.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-io.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-io.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-io.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-io.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-io.$(OBJEXT): {$(VPATH)}internal/symbol.h
-io.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-io.$(OBJEXT): {$(VPATH)}internal/value.h
-io.$(OBJEXT): {$(VPATH)}internal/value_type.h
-io.$(OBJEXT): {$(VPATH)}internal/variable.h
-io.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-io.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
io.$(OBJEXT): {$(VPATH)}io.c
io.$(OBJEXT): {$(VPATH)}io.h
io.$(OBJEXT): {$(VPATH)}io.rbinc
@@ -6752,7 +2205,6 @@ io.$(OBJEXT): {$(VPATH)}missing.h
io.$(OBJEXT): {$(VPATH)}node.h
io.$(OBJEXT): {$(VPATH)}onigmo.h
io.$(OBJEXT): {$(VPATH)}oniguruma.h
-io.$(OBJEXT): {$(VPATH)}ractor.h
io.$(OBJEXT): {$(VPATH)}ruby_assert.h
io.$(OBJEXT): {$(VPATH)}ruby_atomic.h
io.$(OBJEXT): {$(VPATH)}st.h
@@ -6769,43 +2221,11 @@ iseq.$(OBJEXT): $(CCAN_DIR)/list/list.h
iseq.$(OBJEXT): $(CCAN_DIR)/str/str.h
iseq.$(OBJEXT): $(hdrdir)/ruby.h
iseq.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/array.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/bits.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/class.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/compile.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/error.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/file.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/gc.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/hash.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/parse.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/serial.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/string.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/thread.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/variable.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/vm.h
-iseq.$(OBJEXT): $(top_srcdir)/internal/warnings.h
iseq.$(OBJEXT): {$(VPATH)}assert.h
-iseq.$(OBJEXT): {$(VPATH)}atomic.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-iseq.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
iseq.$(OBJEXT): {$(VPATH)}builtin.h
iseq.$(OBJEXT): {$(VPATH)}config.h
-iseq.$(OBJEXT): {$(VPATH)}constant.h
iseq.$(OBJEXT): {$(VPATH)}debug_counter.h
iseq.$(OBJEXT): {$(VPATH)}defines.h
-iseq.$(OBJEXT): {$(VPATH)}encoding.h
iseq.$(OBJEXT): {$(VPATH)}eval_intern.h
iseq.$(OBJEXT): {$(VPATH)}gc.h
iseq.$(OBJEXT): {$(VPATH)}id.h
@@ -6815,146 +2235,6 @@ iseq.$(OBJEXT): {$(VPATH)}insns.inc
iseq.$(OBJEXT): {$(VPATH)}insns_info.inc
iseq.$(OBJEXT): {$(VPATH)}intern.h
iseq.$(OBJEXT): {$(VPATH)}internal.h
-iseq.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-iseq.$(OBJEXT): {$(VPATH)}internal/assume.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-iseq.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-iseq.$(OBJEXT): {$(VPATH)}internal/cast.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-iseq.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-iseq.$(OBJEXT): {$(VPATH)}internal/config.h
-iseq.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-iseq.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-iseq.$(OBJEXT): {$(VPATH)}internal/ctype.h
-iseq.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-iseq.$(OBJEXT): {$(VPATH)}internal/dosish.h
-iseq.$(OBJEXT): {$(VPATH)}internal/error.h
-iseq.$(OBJEXT): {$(VPATH)}internal/eval.h
-iseq.$(OBJEXT): {$(VPATH)}internal/event.h
-iseq.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-iseq.$(OBJEXT): {$(VPATH)}internal/gc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/glob.h
-iseq.$(OBJEXT): {$(VPATH)}internal/globals.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-iseq.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-iseq.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-iseq.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-iseq.$(OBJEXT): {$(VPATH)}internal/iterator.h
-iseq.$(OBJEXT): {$(VPATH)}internal/memory.h
-iseq.$(OBJEXT): {$(VPATH)}internal/method.h
-iseq.$(OBJEXT): {$(VPATH)}internal/module.h
-iseq.$(OBJEXT): {$(VPATH)}internal/newobj.h
-iseq.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-iseq.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-iseq.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-iseq.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-iseq.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-iseq.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-iseq.$(OBJEXT): {$(VPATH)}internal/symbol.h
-iseq.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-iseq.$(OBJEXT): {$(VPATH)}internal/value.h
-iseq.$(OBJEXT): {$(VPATH)}internal/value_type.h
-iseq.$(OBJEXT): {$(VPATH)}internal/variable.h
-iseq.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-iseq.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
iseq.$(OBJEXT): {$(VPATH)}iseq.c
iseq.$(OBJEXT): {$(VPATH)}iseq.h
iseq.$(OBJEXT): {$(VPATH)}method.h
@@ -6962,8 +2242,6 @@ iseq.$(OBJEXT): {$(VPATH)}missing.h
iseq.$(OBJEXT): {$(VPATH)}mjit.h
iseq.$(OBJEXT): {$(VPATH)}node.h
iseq.$(OBJEXT): {$(VPATH)}node_name.inc
-iseq.$(OBJEXT): {$(VPATH)}onigmo.h
-iseq.$(OBJEXT): {$(VPATH)}oniguruma.h
iseq.$(OBJEXT): {$(VPATH)}ruby_assert.h
iseq.$(OBJEXT): {$(VPATH)}ruby_atomic.h
iseq.$(OBJEXT): {$(VPATH)}st.h
@@ -6971,7 +2249,6 @@ iseq.$(OBJEXT): {$(VPATH)}subst.h
iseq.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
iseq.$(OBJEXT): {$(VPATH)}thread_native.h
iseq.$(OBJEXT): {$(VPATH)}util.h
-iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h
iseq.$(OBJEXT): {$(VPATH)}vm_core.h
iseq.$(OBJEXT): {$(VPATH)}vm_opts.h
load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
@@ -6980,183 +2257,15 @@ load.$(OBJEXT): $(CCAN_DIR)/list/list.h
load.$(OBJEXT): $(CCAN_DIR)/str/str.h
load.$(OBJEXT): $(hdrdir)/ruby.h
load.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-load.$(OBJEXT): $(top_srcdir)/internal/array.h
-load.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-load.$(OBJEXT): $(top_srcdir)/internal/dir.h
-load.$(OBJEXT): $(top_srcdir)/internal/error.h
-load.$(OBJEXT): $(top_srcdir)/internal/file.h
-load.$(OBJEXT): $(top_srcdir)/internal/gc.h
-load.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-load.$(OBJEXT): $(top_srcdir)/internal/load.h
-load.$(OBJEXT): $(top_srcdir)/internal/parse.h
-load.$(OBJEXT): $(top_srcdir)/internal/serial.h
-load.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-load.$(OBJEXT): $(top_srcdir)/internal/string.h
-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): {$(VPATH)}assert.h
-load.$(OBJEXT): {$(VPATH)}atomic.h
-load.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-load.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-load.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-load.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-load.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-load.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-load.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-load.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-load.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
load.$(OBJEXT): {$(VPATH)}config.h
-load.$(OBJEXT): {$(VPATH)}constant.h
load.$(OBJEXT): {$(VPATH)}defines.h
load.$(OBJEXT): {$(VPATH)}dln.h
load.$(OBJEXT): {$(VPATH)}encoding.h
load.$(OBJEXT): {$(VPATH)}eval_intern.h
load.$(OBJEXT): {$(VPATH)}id.h
-load.$(OBJEXT): {$(VPATH)}id_table.h
load.$(OBJEXT): {$(VPATH)}intern.h
load.$(OBJEXT): {$(VPATH)}internal.h
-load.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-load.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-load.$(OBJEXT): {$(VPATH)}internal/assume.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-load.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-load.$(OBJEXT): {$(VPATH)}internal/cast.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-load.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-load.$(OBJEXT): {$(VPATH)}internal/config.h
-load.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-load.$(OBJEXT): {$(VPATH)}internal/core.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-load.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-load.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-load.$(OBJEXT): {$(VPATH)}internal/ctype.h
-load.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-load.$(OBJEXT): {$(VPATH)}internal/dosish.h
-load.$(OBJEXT): {$(VPATH)}internal/error.h
-load.$(OBJEXT): {$(VPATH)}internal/eval.h
-load.$(OBJEXT): {$(VPATH)}internal/event.h
-load.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-load.$(OBJEXT): {$(VPATH)}internal/gc.h
-load.$(OBJEXT): {$(VPATH)}internal/glob.h
-load.$(OBJEXT): {$(VPATH)}internal/globals.h
-load.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-load.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-load.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-load.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-load.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-load.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-load.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-load.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-load.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-load.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-load.$(OBJEXT): {$(VPATH)}internal/iterator.h
-load.$(OBJEXT): {$(VPATH)}internal/memory.h
-load.$(OBJEXT): {$(VPATH)}internal/method.h
-load.$(OBJEXT): {$(VPATH)}internal/module.h
-load.$(OBJEXT): {$(VPATH)}internal/newobj.h
-load.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-load.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-load.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-load.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-load.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-load.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-load.$(OBJEXT): {$(VPATH)}internal/symbol.h
-load.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-load.$(OBJEXT): {$(VPATH)}internal/value.h
-load.$(OBJEXT): {$(VPATH)}internal/value_type.h
-load.$(OBJEXT): {$(VPATH)}internal/variable.h
-load.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-load.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
load.$(OBJEXT): {$(VPATH)}iseq.h
load.$(OBJEXT): {$(VPATH)}load.c
load.$(OBJEXT): {$(VPATH)}method.h
@@ -7179,158 +2288,9 @@ loadpath.$(OBJEXT): $(hdrdir)/ruby/ruby.h
loadpath.$(OBJEXT): $(hdrdir)/ruby/version.h
loadpath.$(OBJEXT): $(top_srcdir)/version.h
loadpath.$(OBJEXT): {$(VPATH)}assert.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-loadpath.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
loadpath.$(OBJEXT): {$(VPATH)}config.h
loadpath.$(OBJEXT): {$(VPATH)}defines.h
loadpath.$(OBJEXT): {$(VPATH)}intern.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/assume.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/cast.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/config.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/ctype.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/dosish.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/error.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/eval.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/event.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/gc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/glob.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/globals.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/iterator.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/memory.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/method.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/module.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/newobj.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/symbol.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/value.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/value_type.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/variable.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-loadpath.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
loadpath.$(OBJEXT): {$(VPATH)}loadpath.c
loadpath.$(OBJEXT): {$(VPATH)}missing.h
loadpath.$(OBJEXT): {$(VPATH)}st.h
@@ -7339,161 +2299,12 @@ loadpath.$(OBJEXT): {$(VPATH)}verconf.h
localeinit.$(OBJEXT): $(hdrdir)/ruby.h
localeinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h
localeinit.$(OBJEXT): {$(VPATH)}assert.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-localeinit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
localeinit.$(OBJEXT): {$(VPATH)}config.h
localeinit.$(OBJEXT): {$(VPATH)}defines.h
localeinit.$(OBJEXT): {$(VPATH)}encindex.h
localeinit.$(OBJEXT): {$(VPATH)}encoding.h
localeinit.$(OBJEXT): {$(VPATH)}intern.h
localeinit.$(OBJEXT): {$(VPATH)}internal.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/assume.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/cast.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/config.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/ctype.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/dosish.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/error.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/eval.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/event.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/gc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/glob.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/globals.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/iterator.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/memory.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/method.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/module.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/newobj.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/symbol.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/value.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/value_type.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/variable.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-localeinit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
localeinit.$(OBJEXT): {$(VPATH)}localeinit.c
localeinit.$(OBJEXT): {$(VPATH)}missing.h
localeinit.$(OBJEXT): {$(VPATH)}onigmo.h
@@ -7504,158 +2315,9 @@ main.$(OBJEXT): $(hdrdir)/ruby.h
main.$(OBJEXT): $(hdrdir)/ruby/ruby.h
main.$(OBJEXT): {$(VPATH)}assert.h
main.$(OBJEXT): {$(VPATH)}backward.h
-main.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-main.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-main.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-main.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-main.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-main.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-main.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-main.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-main.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
main.$(OBJEXT): {$(VPATH)}config.h
main.$(OBJEXT): {$(VPATH)}defines.h
main.$(OBJEXT): {$(VPATH)}intern.h
-main.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-main.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-main.$(OBJEXT): {$(VPATH)}internal/assume.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-main.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-main.$(OBJEXT): {$(VPATH)}internal/cast.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-main.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-main.$(OBJEXT): {$(VPATH)}internal/config.h
-main.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-main.$(OBJEXT): {$(VPATH)}internal/core.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-main.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-main.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-main.$(OBJEXT): {$(VPATH)}internal/ctype.h
-main.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-main.$(OBJEXT): {$(VPATH)}internal/dosish.h
-main.$(OBJEXT): {$(VPATH)}internal/error.h
-main.$(OBJEXT): {$(VPATH)}internal/eval.h
-main.$(OBJEXT): {$(VPATH)}internal/event.h
-main.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-main.$(OBJEXT): {$(VPATH)}internal/gc.h
-main.$(OBJEXT): {$(VPATH)}internal/glob.h
-main.$(OBJEXT): {$(VPATH)}internal/globals.h
-main.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-main.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-main.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-main.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-main.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-main.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-main.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-main.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-main.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-main.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-main.$(OBJEXT): {$(VPATH)}internal/iterator.h
-main.$(OBJEXT): {$(VPATH)}internal/memory.h
-main.$(OBJEXT): {$(VPATH)}internal/method.h
-main.$(OBJEXT): {$(VPATH)}internal/module.h
-main.$(OBJEXT): {$(VPATH)}internal/newobj.h
-main.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-main.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-main.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-main.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-main.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-main.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-main.$(OBJEXT): {$(VPATH)}internal/symbol.h
-main.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-main.$(OBJEXT): {$(VPATH)}internal/value.h
-main.$(OBJEXT): {$(VPATH)}internal/value_type.h
-main.$(OBJEXT): {$(VPATH)}internal/variable.h
-main.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-main.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
main.$(OBJEXT): {$(VPATH)}main.c
main.$(OBJEXT): {$(VPATH)}missing.h
main.$(OBJEXT): {$(VPATH)}node.h
@@ -7664,32 +2326,7 @@ main.$(OBJEXT): {$(VPATH)}subst.h
main.$(OBJEXT): {$(VPATH)}vm_debug.h
marshal.$(OBJEXT): $(hdrdir)/ruby.h
marshal.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/array.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/class.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/error.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/gc.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/hash.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/object.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/serial.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/string.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/struct.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/util.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/vm.h
-marshal.$(OBJEXT): $(top_srcdir)/internal/warnings.h
marshal.$(OBJEXT): {$(VPATH)}assert.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-marshal.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
marshal.$(OBJEXT): {$(VPATH)}config.h
marshal.$(OBJEXT): {$(VPATH)}defines.h
marshal.$(OBJEXT): {$(VPATH)}encindex.h
@@ -7697,146 +2334,6 @@ marshal.$(OBJEXT): {$(VPATH)}encoding.h
marshal.$(OBJEXT): {$(VPATH)}id_table.h
marshal.$(OBJEXT): {$(VPATH)}intern.h
marshal.$(OBJEXT): {$(VPATH)}internal.h
-marshal.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-marshal.$(OBJEXT): {$(VPATH)}internal/assume.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-marshal.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-marshal.$(OBJEXT): {$(VPATH)}internal/cast.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-marshal.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-marshal.$(OBJEXT): {$(VPATH)}internal/config.h
-marshal.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-marshal.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-marshal.$(OBJEXT): {$(VPATH)}internal/ctype.h
-marshal.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-marshal.$(OBJEXT): {$(VPATH)}internal/dosish.h
-marshal.$(OBJEXT): {$(VPATH)}internal/error.h
-marshal.$(OBJEXT): {$(VPATH)}internal/eval.h
-marshal.$(OBJEXT): {$(VPATH)}internal/event.h
-marshal.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-marshal.$(OBJEXT): {$(VPATH)}internal/gc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/glob.h
-marshal.$(OBJEXT): {$(VPATH)}internal/globals.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-marshal.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-marshal.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-marshal.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-marshal.$(OBJEXT): {$(VPATH)}internal/iterator.h
-marshal.$(OBJEXT): {$(VPATH)}internal/memory.h
-marshal.$(OBJEXT): {$(VPATH)}internal/method.h
-marshal.$(OBJEXT): {$(VPATH)}internal/module.h
-marshal.$(OBJEXT): {$(VPATH)}internal/newobj.h
-marshal.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-marshal.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-marshal.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-marshal.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-marshal.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-marshal.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-marshal.$(OBJEXT): {$(VPATH)}internal/symbol.h
-marshal.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-marshal.$(OBJEXT): {$(VPATH)}internal/value.h
-marshal.$(OBJEXT): {$(VPATH)}internal/value_type.h
-marshal.$(OBJEXT): {$(VPATH)}internal/variable.h
-marshal.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-marshal.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
marshal.$(OBJEXT): {$(VPATH)}io.h
marshal.$(OBJEXT): {$(VPATH)}marshal.c
marshal.$(OBJEXT): {$(VPATH)}missing.h
@@ -7847,526 +2344,34 @@ marshal.$(OBJEXT): {$(VPATH)}subst.h
marshal.$(OBJEXT): {$(VPATH)}util.h
math.$(OBJEXT): $(hdrdir)/ruby.h
math.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-math.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-math.$(OBJEXT): $(top_srcdir)/internal/class.h
-math.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-math.$(OBJEXT): $(top_srcdir)/internal/complex.h
-math.$(OBJEXT): $(top_srcdir)/internal/gc.h
-math.$(OBJEXT): $(top_srcdir)/internal/math.h
-math.$(OBJEXT): $(top_srcdir)/internal/object.h
-math.$(OBJEXT): $(top_srcdir)/internal/serial.h
-math.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-math.$(OBJEXT): $(top_srcdir)/internal/vm.h
-math.$(OBJEXT): $(top_srcdir)/internal/warnings.h
math.$(OBJEXT): {$(VPATH)}assert.h
-math.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-math.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-math.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-math.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-math.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-math.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-math.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-math.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-math.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
math.$(OBJEXT): {$(VPATH)}config.h
math.$(OBJEXT): {$(VPATH)}defines.h
-math.$(OBJEXT): {$(VPATH)}id_table.h
math.$(OBJEXT): {$(VPATH)}intern.h
math.$(OBJEXT): {$(VPATH)}internal.h
-math.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-math.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-math.$(OBJEXT): {$(VPATH)}internal/assume.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-math.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-math.$(OBJEXT): {$(VPATH)}internal/cast.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-math.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-math.$(OBJEXT): {$(VPATH)}internal/config.h
-math.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-math.$(OBJEXT): {$(VPATH)}internal/core.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-math.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-math.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-math.$(OBJEXT): {$(VPATH)}internal/ctype.h
-math.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-math.$(OBJEXT): {$(VPATH)}internal/dosish.h
-math.$(OBJEXT): {$(VPATH)}internal/error.h
-math.$(OBJEXT): {$(VPATH)}internal/eval.h
-math.$(OBJEXT): {$(VPATH)}internal/event.h
-math.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-math.$(OBJEXT): {$(VPATH)}internal/gc.h
-math.$(OBJEXT): {$(VPATH)}internal/glob.h
-math.$(OBJEXT): {$(VPATH)}internal/globals.h
-math.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-math.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-math.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-math.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-math.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-math.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-math.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-math.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-math.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-math.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-math.$(OBJEXT): {$(VPATH)}internal/iterator.h
-math.$(OBJEXT): {$(VPATH)}internal/memory.h
-math.$(OBJEXT): {$(VPATH)}internal/method.h
-math.$(OBJEXT): {$(VPATH)}internal/module.h
-math.$(OBJEXT): {$(VPATH)}internal/newobj.h
-math.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-math.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-math.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-math.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-math.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-math.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-math.$(OBJEXT): {$(VPATH)}internal/symbol.h
-math.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-math.$(OBJEXT): {$(VPATH)}internal/value.h
-math.$(OBJEXT): {$(VPATH)}internal/value_type.h
-math.$(OBJEXT): {$(VPATH)}internal/variable.h
-math.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-math.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
math.$(OBJEXT): {$(VPATH)}math.c
math.$(OBJEXT): {$(VPATH)}missing.h
math.$(OBJEXT): {$(VPATH)}st.h
math.$(OBJEXT): {$(VPATH)}subst.h
-memory_view.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-memory_view.$(OBJEXT): $(top_srcdir)/internal/hash.h
-memory_view.$(OBJEXT): $(top_srcdir)/internal/util.h
-memory_view.$(OBJEXT): $(top_srcdir)/internal/variable.h
-memory_view.$(OBJEXT): {$(VPATH)}assert.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-memory_view.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-memory_view.$(OBJEXT): {$(VPATH)}config.h
-memory_view.$(OBJEXT): {$(VPATH)}constant.h
-memory_view.$(OBJEXT): {$(VPATH)}debug_counter.h
-memory_view.$(OBJEXT): {$(VPATH)}defines.h
-memory_view.$(OBJEXT): {$(VPATH)}id_table.h
-memory_view.$(OBJEXT): {$(VPATH)}intern.h
-memory_view.$(OBJEXT): {$(VPATH)}internal.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/assume.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/cast.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/config.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/ctype.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/dosish.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/error.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/eval.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/event.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/gc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/glob.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/globals.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/iterator.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/memory.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/method.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/module.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/newobj.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/symbol.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/value.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/value_type.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/variable.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-memory_view.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-memory_view.$(OBJEXT): {$(VPATH)}memory_view.c
-memory_view.$(OBJEXT): {$(VPATH)}memory_view.h
-memory_view.$(OBJEXT): {$(VPATH)}missing.h
-memory_view.$(OBJEXT): {$(VPATH)}node.h
-memory_view.$(OBJEXT): {$(VPATH)}st.h
-memory_view.$(OBJEXT): {$(VPATH)}subst.h
-memory_view.$(OBJEXT): {$(VPATH)}vm_debug.h
-memory_view.$(OBJEXT): {$(VPATH)}vm_sync.h
miniinit.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
miniinit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
miniinit.$(OBJEXT): $(CCAN_DIR)/list/list.h
miniinit.$(OBJEXT): $(CCAN_DIR)/str/str.h
miniinit.$(OBJEXT): $(hdrdir)/ruby.h
miniinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/array.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/gc.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/serial.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/vm.h
-miniinit.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-miniinit.$(OBJEXT): {$(VPATH)}array.rb
miniinit.$(OBJEXT): {$(VPATH)}assert.h
miniinit.$(OBJEXT): {$(VPATH)}ast.rb
-miniinit.$(OBJEXT): {$(VPATH)}atomic.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-miniinit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
miniinit.$(OBJEXT): {$(VPATH)}builtin.h
miniinit.$(OBJEXT): {$(VPATH)}config.h
miniinit.$(OBJEXT): {$(VPATH)}defines.h
-miniinit.$(OBJEXT): {$(VPATH)}dir.rb
miniinit.$(OBJEXT): {$(VPATH)}encoding.h
miniinit.$(OBJEXT): {$(VPATH)}gc.rb
miniinit.$(OBJEXT): {$(VPATH)}gem_prelude.rb
miniinit.$(OBJEXT): {$(VPATH)}id.h
-miniinit.$(OBJEXT): {$(VPATH)}integer.rb
miniinit.$(OBJEXT): {$(VPATH)}intern.h
miniinit.$(OBJEXT): {$(VPATH)}internal.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/assume.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/cast.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/config.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/ctype.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/dosish.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/error.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/eval.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/event.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/gc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/glob.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/globals.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/iterator.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/memory.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/method.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/module.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/newobj.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/symbol.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/value.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/value_type.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/variable.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-miniinit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
miniinit.$(OBJEXT): {$(VPATH)}io.rb
miniinit.$(OBJEXT): {$(VPATH)}iseq.h
-miniinit.$(OBJEXT): {$(VPATH)}kernel.rb
miniinit.$(OBJEXT): {$(VPATH)}method.h
miniinit.$(OBJEXT): {$(VPATH)}mini_builtin.c
miniinit.$(OBJEXT): {$(VPATH)}miniinit.c
@@ -8377,7 +2382,6 @@ miniinit.$(OBJEXT): {$(VPATH)}onigmo.h
miniinit.$(OBJEXT): {$(VPATH)}oniguruma.h
miniinit.$(OBJEXT): {$(VPATH)}pack.rb
miniinit.$(OBJEXT): {$(VPATH)}prelude.rb
-miniinit.$(OBJEXT): {$(VPATH)}ractor.rb
miniinit.$(OBJEXT): {$(VPATH)}ruby_assert.h
miniinit.$(OBJEXT): {$(VPATH)}ruby_atomic.h
miniinit.$(OBJEXT): {$(VPATH)}st.h
@@ -8388,226 +2392,24 @@ miniinit.$(OBJEXT): {$(VPATH)}trace_point.rb
miniinit.$(OBJEXT): {$(VPATH)}vm_core.h
miniinit.$(OBJEXT): {$(VPATH)}vm_opts.h
miniinit.$(OBJEXT): {$(VPATH)}warning.rb
-miniprelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-miniprelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-miniprelude.$(OBJEXT): $(CCAN_DIR)/list/list.h
-miniprelude.$(OBJEXT): $(CCAN_DIR)/str/str.h
-miniprelude.$(OBJEXT): $(hdrdir)/ruby.h
-miniprelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-miniprelude.$(OBJEXT): {$(VPATH)}assert.h
-miniprelude.$(OBJEXT): {$(VPATH)}ast.rb
-miniprelude.$(OBJEXT): {$(VPATH)}atomic.h
-miniprelude.$(OBJEXT): {$(VPATH)}config.h
-miniprelude.$(OBJEXT): {$(VPATH)}defines.h
-miniprelude.$(OBJEXT): {$(VPATH)}gc.rb
-miniprelude.$(OBJEXT): {$(VPATH)}id.h
-miniprelude.$(OBJEXT): {$(VPATH)}intern.h
-miniprelude.$(OBJEXT): {$(VPATH)}internal.h
-miniprelude.$(OBJEXT): {$(VPATH)}io.rb
-miniprelude.$(OBJEXT): {$(VPATH)}iseq.h
-miniprelude.$(OBJEXT): {$(VPATH)}method.h
-miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c
-miniprelude.$(OBJEXT): {$(VPATH)}missing.h
-miniprelude.$(OBJEXT): {$(VPATH)}node.h
-miniprelude.$(OBJEXT): {$(VPATH)}pack.rb
-miniprelude.$(OBJEXT): {$(VPATH)}prelude.rb
-miniprelude.$(OBJEXT): {$(VPATH)}ruby_assert.h
-miniprelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h
-miniprelude.$(OBJEXT): {$(VPATH)}st.h
-miniprelude.$(OBJEXT): {$(VPATH)}subst.h
-miniprelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-miniprelude.$(OBJEXT): {$(VPATH)}thread_native.h
-miniprelude.$(OBJEXT): {$(VPATH)}trace_point.rb
-miniprelude.$(OBJEXT): {$(VPATH)}vm_core.h
-miniprelude.$(OBJEXT): {$(VPATH)}vm_opts.h
mjit.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
mjit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
mjit.$(OBJEXT): $(CCAN_DIR)/list/list.h
mjit.$(OBJEXT): $(CCAN_DIR)/str/str.h
mjit.$(OBJEXT): $(hdrdir)/ruby.h
mjit.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-mjit.$(OBJEXT): $(hdrdir)/ruby/version.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/array.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/class.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/compile.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/cont.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/file.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/gc.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/hash.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/serial.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/vm.h
-mjit.$(OBJEXT): $(top_srcdir)/internal/warnings.h
mjit.$(OBJEXT): {$(VPATH)}assert.h
-mjit.$(OBJEXT): {$(VPATH)}atomic.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-mjit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-mjit.$(OBJEXT): {$(VPATH)}builtin.h
mjit.$(OBJEXT): {$(VPATH)}config.h
mjit.$(OBJEXT): {$(VPATH)}constant.h
mjit.$(OBJEXT): {$(VPATH)}debug.h
mjit.$(OBJEXT): {$(VPATH)}debug_counter.h
mjit.$(OBJEXT): {$(VPATH)}defines.h
mjit.$(OBJEXT): {$(VPATH)}dln.h
-mjit.$(OBJEXT): {$(VPATH)}encoding.h
mjit.$(OBJEXT): {$(VPATH)}gc.h
mjit.$(OBJEXT): {$(VPATH)}id.h
mjit.$(OBJEXT): {$(VPATH)}id_table.h
-mjit.$(OBJEXT): {$(VPATH)}insns.def
-mjit.$(OBJEXT): {$(VPATH)}insns.inc
-mjit.$(OBJEXT): {$(VPATH)}insns_info.inc
mjit.$(OBJEXT): {$(VPATH)}intern.h
mjit.$(OBJEXT): {$(VPATH)}internal.h
-mjit.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-mjit.$(OBJEXT): {$(VPATH)}internal/assume.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-mjit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-mjit.$(OBJEXT): {$(VPATH)}internal/cast.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-mjit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-mjit.$(OBJEXT): {$(VPATH)}internal/config.h
-mjit.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-mjit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-mjit.$(OBJEXT): {$(VPATH)}internal/ctype.h
-mjit.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-mjit.$(OBJEXT): {$(VPATH)}internal/dosish.h
-mjit.$(OBJEXT): {$(VPATH)}internal/error.h
-mjit.$(OBJEXT): {$(VPATH)}internal/eval.h
-mjit.$(OBJEXT): {$(VPATH)}internal/event.h
-mjit.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-mjit.$(OBJEXT): {$(VPATH)}internal/gc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/glob.h
-mjit.$(OBJEXT): {$(VPATH)}internal/globals.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-mjit.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-mjit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-mjit.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-mjit.$(OBJEXT): {$(VPATH)}internal/iterator.h
-mjit.$(OBJEXT): {$(VPATH)}internal/memory.h
-mjit.$(OBJEXT): {$(VPATH)}internal/method.h
-mjit.$(OBJEXT): {$(VPATH)}internal/module.h
-mjit.$(OBJEXT): {$(VPATH)}internal/newobj.h
-mjit.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-mjit.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-mjit.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-mjit.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-mjit.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-mjit.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-mjit.$(OBJEXT): {$(VPATH)}internal/symbol.h
-mjit.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-mjit.$(OBJEXT): {$(VPATH)}internal/value.h
-mjit.$(OBJEXT): {$(VPATH)}internal/value_type.h
-mjit.$(OBJEXT): {$(VPATH)}internal/variable.h
-mjit.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-mjit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-mjit.$(OBJEXT): {$(VPATH)}iseq.h
mjit.$(OBJEXT): {$(VPATH)}method.h
mjit.$(OBJEXT): {$(VPATH)}missing.h
mjit.$(OBJEXT): {$(VPATH)}mjit.c
@@ -8615,8 +2417,6 @@ mjit.$(OBJEXT): {$(VPATH)}mjit.h
mjit.$(OBJEXT): {$(VPATH)}mjit_config.h
mjit.$(OBJEXT): {$(VPATH)}mjit_worker.c
mjit.$(OBJEXT): {$(VPATH)}node.h
-mjit.$(OBJEXT): {$(VPATH)}onigmo.h
-mjit.$(OBJEXT): {$(VPATH)}oniguruma.h
mjit.$(OBJEXT): {$(VPATH)}ruby_assert.h
mjit.$(OBJEXT): {$(VPATH)}ruby_atomic.h
mjit.$(OBJEXT): {$(VPATH)}st.h
@@ -8625,203 +2425,25 @@ mjit.$(OBJEXT): {$(VPATH)}thread.h
mjit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
mjit.$(OBJEXT): {$(VPATH)}thread_native.h
mjit.$(OBJEXT): {$(VPATH)}util.h
-mjit.$(OBJEXT): {$(VPATH)}vm_callinfo.h
mjit.$(OBJEXT): {$(VPATH)}vm_core.h
mjit.$(OBJEXT): {$(VPATH)}vm_opts.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}config.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}internal/config.h
-mjit_build_dir.$(OBJEXT): {$(VPATH)}ruby-runner.c
-mjit_build_dir.$(OBJEXT): {$(VPATH)}ruby-runner.h
mjit_compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
mjit_compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
mjit_compile.$(OBJEXT): $(CCAN_DIR)/list/list.h
mjit_compile.$(OBJEXT): $(CCAN_DIR)/str/str.h
mjit_compile.$(OBJEXT): $(hdrdir)/ruby.h
mjit_compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/array.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/class.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/compile.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/gc.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/hash.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/object.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/serial.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/variable.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/vm.h
-mjit_compile.$(OBJEXT): $(top_srcdir)/internal/warnings.h
mjit_compile.$(OBJEXT): {$(VPATH)}assert.h
-mjit_compile.$(OBJEXT): {$(VPATH)}atomic.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-mjit_compile.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
mjit_compile.$(OBJEXT): {$(VPATH)}builtin.h
mjit_compile.$(OBJEXT): {$(VPATH)}config.h
-mjit_compile.$(OBJEXT): {$(VPATH)}constant.h
mjit_compile.$(OBJEXT): {$(VPATH)}debug_counter.h
mjit_compile.$(OBJEXT): {$(VPATH)}defines.h
mjit_compile.$(OBJEXT): {$(VPATH)}id.h
-mjit_compile.$(OBJEXT): {$(VPATH)}id_table.h
mjit_compile.$(OBJEXT): {$(VPATH)}insns.def
mjit_compile.$(OBJEXT): {$(VPATH)}insns.inc
mjit_compile.$(OBJEXT): {$(VPATH)}insns_info.inc
mjit_compile.$(OBJEXT): {$(VPATH)}intern.h
mjit_compile.$(OBJEXT): {$(VPATH)}internal.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/assume.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/cast.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/config.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/ctype.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/dosish.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/error.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/eval.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/event.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/gc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/glob.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/globals.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/iterator.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/memory.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/method.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/module.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/newobj.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/symbol.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/value.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/value_type.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/variable.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-mjit_compile.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
mjit_compile.$(OBJEXT): {$(VPATH)}iseq.h
mjit_compile.$(OBJEXT): {$(VPATH)}method.h
mjit_compile.$(OBJEXT): {$(VPATH)}missing.h
@@ -8835,7 +2457,6 @@ mjit_compile.$(OBJEXT): {$(VPATH)}st.h
mjit_compile.$(OBJEXT): {$(VPATH)}subst.h
mjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
mjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h
-mjit_compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h
mjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h
mjit_compile.$(OBJEXT): {$(VPATH)}vm_exec.h
mjit_compile.$(OBJEXT): {$(VPATH)}vm_insnhelper.h
@@ -8846,174 +2467,12 @@ node.$(OBJEXT): $(CCAN_DIR)/list/list.h
node.$(OBJEXT): $(CCAN_DIR)/str/str.h
node.$(OBJEXT): $(hdrdir)/ruby.h
node.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-node.$(OBJEXT): $(top_srcdir)/internal/array.h
-node.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-node.$(OBJEXT): $(top_srcdir)/internal/gc.h
-node.$(OBJEXT): $(top_srcdir)/internal/hash.h
-node.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-node.$(OBJEXT): $(top_srcdir)/internal/serial.h
-node.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-node.$(OBJEXT): $(top_srcdir)/internal/variable.h
-node.$(OBJEXT): $(top_srcdir)/internal/vm.h
-node.$(OBJEXT): $(top_srcdir)/internal/warnings.h
node.$(OBJEXT): {$(VPATH)}assert.h
-node.$(OBJEXT): {$(VPATH)}atomic.h
-node.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-node.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-node.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-node.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-node.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-node.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-node.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-node.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-node.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
node.$(OBJEXT): {$(VPATH)}config.h
-node.$(OBJEXT): {$(VPATH)}constant.h
node.$(OBJEXT): {$(VPATH)}defines.h
node.$(OBJEXT): {$(VPATH)}id.h
-node.$(OBJEXT): {$(VPATH)}id_table.h
node.$(OBJEXT): {$(VPATH)}intern.h
node.$(OBJEXT): {$(VPATH)}internal.h
-node.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-node.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-node.$(OBJEXT): {$(VPATH)}internal/assume.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-node.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-node.$(OBJEXT): {$(VPATH)}internal/cast.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-node.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-node.$(OBJEXT): {$(VPATH)}internal/config.h
-node.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-node.$(OBJEXT): {$(VPATH)}internal/core.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-node.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-node.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-node.$(OBJEXT): {$(VPATH)}internal/ctype.h
-node.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-node.$(OBJEXT): {$(VPATH)}internal/dosish.h
-node.$(OBJEXT): {$(VPATH)}internal/error.h
-node.$(OBJEXT): {$(VPATH)}internal/eval.h
-node.$(OBJEXT): {$(VPATH)}internal/event.h
-node.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-node.$(OBJEXT): {$(VPATH)}internal/gc.h
-node.$(OBJEXT): {$(VPATH)}internal/glob.h
-node.$(OBJEXT): {$(VPATH)}internal/globals.h
-node.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-node.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-node.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-node.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-node.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-node.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-node.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-node.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-node.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-node.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-node.$(OBJEXT): {$(VPATH)}internal/iterator.h
-node.$(OBJEXT): {$(VPATH)}internal/memory.h
-node.$(OBJEXT): {$(VPATH)}internal/method.h
-node.$(OBJEXT): {$(VPATH)}internal/module.h
-node.$(OBJEXT): {$(VPATH)}internal/newobj.h
-node.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-node.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-node.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-node.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-node.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-node.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-node.$(OBJEXT): {$(VPATH)}internal/symbol.h
-node.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-node.$(OBJEXT): {$(VPATH)}internal/value.h
-node.$(OBJEXT): {$(VPATH)}internal/value_type.h
-node.$(OBJEXT): {$(VPATH)}internal/variable.h
-node.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-node.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
node.$(OBJEXT): {$(VPATH)}method.h
node.$(OBJEXT): {$(VPATH)}missing.h
node.$(OBJEXT): {$(VPATH)}node.c
@@ -9028,377 +2487,30 @@ node.$(OBJEXT): {$(VPATH)}vm_core.h
node.$(OBJEXT): {$(VPATH)}vm_opts.h
numeric.$(OBJEXT): $(hdrdir)/ruby.h
numeric.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/array.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/bits.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/class.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/complex.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/enumerator.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/gc.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/hash.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/object.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/rational.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/serial.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/util.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/variable.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/vm.h
-numeric.$(OBJEXT): $(top_srcdir)/internal/warnings.h
numeric.$(OBJEXT): {$(VPATH)}assert.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-numeric.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-numeric.$(OBJEXT): {$(VPATH)}builtin.h
numeric.$(OBJEXT): {$(VPATH)}config.h
-numeric.$(OBJEXT): {$(VPATH)}constant.h
numeric.$(OBJEXT): {$(VPATH)}defines.h
numeric.$(OBJEXT): {$(VPATH)}encoding.h
numeric.$(OBJEXT): {$(VPATH)}id.h
-numeric.$(OBJEXT): {$(VPATH)}id_table.h
-numeric.$(OBJEXT): {$(VPATH)}integer.rb
-numeric.$(OBJEXT): {$(VPATH)}integer.rbinc
numeric.$(OBJEXT): {$(VPATH)}intern.h
numeric.$(OBJEXT): {$(VPATH)}internal.h
-numeric.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-numeric.$(OBJEXT): {$(VPATH)}internal/assume.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-numeric.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-numeric.$(OBJEXT): {$(VPATH)}internal/cast.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-numeric.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-numeric.$(OBJEXT): {$(VPATH)}internal/config.h
-numeric.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-numeric.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-numeric.$(OBJEXT): {$(VPATH)}internal/ctype.h
-numeric.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-numeric.$(OBJEXT): {$(VPATH)}internal/dosish.h
-numeric.$(OBJEXT): {$(VPATH)}internal/error.h
-numeric.$(OBJEXT): {$(VPATH)}internal/eval.h
-numeric.$(OBJEXT): {$(VPATH)}internal/event.h
-numeric.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-numeric.$(OBJEXT): {$(VPATH)}internal/gc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/glob.h
-numeric.$(OBJEXT): {$(VPATH)}internal/globals.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-numeric.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-numeric.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-numeric.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-numeric.$(OBJEXT): {$(VPATH)}internal/iterator.h
-numeric.$(OBJEXT): {$(VPATH)}internal/memory.h
-numeric.$(OBJEXT): {$(VPATH)}internal/method.h
-numeric.$(OBJEXT): {$(VPATH)}internal/module.h
-numeric.$(OBJEXT): {$(VPATH)}internal/newobj.h
-numeric.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-numeric.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-numeric.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-numeric.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-numeric.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-numeric.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-numeric.$(OBJEXT): {$(VPATH)}internal/symbol.h
-numeric.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-numeric.$(OBJEXT): {$(VPATH)}internal/value.h
-numeric.$(OBJEXT): {$(VPATH)}internal/value_type.h
-numeric.$(OBJEXT): {$(VPATH)}internal/variable.h
-numeric.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-numeric.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
numeric.$(OBJEXT): {$(VPATH)}missing.h
numeric.$(OBJEXT): {$(VPATH)}numeric.c
numeric.$(OBJEXT): {$(VPATH)}onigmo.h
numeric.$(OBJEXT): {$(VPATH)}oniguruma.h
-numeric.$(OBJEXT): {$(VPATH)}ruby_assert.h
numeric.$(OBJEXT): {$(VPATH)}st.h
numeric.$(OBJEXT): {$(VPATH)}subst.h
numeric.$(OBJEXT): {$(VPATH)}util.h
object.$(OBJEXT): $(hdrdir)/ruby.h
object.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-object.$(OBJEXT): $(top_srcdir)/internal/array.h
-object.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-object.$(OBJEXT): $(top_srcdir)/internal/bits.h
-object.$(OBJEXT): $(top_srcdir)/internal/class.h
-object.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-object.$(OBJEXT): $(top_srcdir)/internal/error.h
-object.$(OBJEXT): $(top_srcdir)/internal/eval.h
-object.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-object.$(OBJEXT): $(top_srcdir)/internal/gc.h
-object.$(OBJEXT): $(top_srcdir)/internal/inits.h
-object.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-object.$(OBJEXT): $(top_srcdir)/internal/object.h
-object.$(OBJEXT): $(top_srcdir)/internal/serial.h
-object.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-object.$(OBJEXT): $(top_srcdir)/internal/string.h
-object.$(OBJEXT): $(top_srcdir)/internal/struct.h
-object.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-object.$(OBJEXT): $(top_srcdir)/internal/variable.h
-object.$(OBJEXT): $(top_srcdir)/internal/vm.h
-object.$(OBJEXT): $(top_srcdir)/internal/warnings.h
object.$(OBJEXT): {$(VPATH)}assert.h
-object.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-object.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-object.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-object.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-object.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-object.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-object.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-object.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-object.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-object.$(OBJEXT): {$(VPATH)}builtin.h
object.$(OBJEXT): {$(VPATH)}config.h
object.$(OBJEXT): {$(VPATH)}constant.h
object.$(OBJEXT): {$(VPATH)}defines.h
object.$(OBJEXT): {$(VPATH)}encoding.h
object.$(OBJEXT): {$(VPATH)}id.h
-object.$(OBJEXT): {$(VPATH)}id_table.h
object.$(OBJEXT): {$(VPATH)}intern.h
object.$(OBJEXT): {$(VPATH)}internal.h
-object.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-object.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-object.$(OBJEXT): {$(VPATH)}internal/assume.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-object.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-object.$(OBJEXT): {$(VPATH)}internal/cast.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-object.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-object.$(OBJEXT): {$(VPATH)}internal/config.h
-object.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-object.$(OBJEXT): {$(VPATH)}internal/core.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-object.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-object.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-object.$(OBJEXT): {$(VPATH)}internal/ctype.h
-object.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-object.$(OBJEXT): {$(VPATH)}internal/dosish.h
-object.$(OBJEXT): {$(VPATH)}internal/error.h
-object.$(OBJEXT): {$(VPATH)}internal/eval.h
-object.$(OBJEXT): {$(VPATH)}internal/event.h
-object.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-object.$(OBJEXT): {$(VPATH)}internal/gc.h
-object.$(OBJEXT): {$(VPATH)}internal/glob.h
-object.$(OBJEXT): {$(VPATH)}internal/globals.h
-object.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-object.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-object.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-object.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-object.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-object.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-object.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-object.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-object.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-object.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-object.$(OBJEXT): {$(VPATH)}internal/iterator.h
-object.$(OBJEXT): {$(VPATH)}internal/memory.h
-object.$(OBJEXT): {$(VPATH)}internal/method.h
-object.$(OBJEXT): {$(VPATH)}internal/module.h
-object.$(OBJEXT): {$(VPATH)}internal/newobj.h
-object.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-object.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-object.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-object.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-object.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-object.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-object.$(OBJEXT): {$(VPATH)}internal/symbol.h
-object.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-object.$(OBJEXT): {$(VPATH)}internal/value.h
-object.$(OBJEXT): {$(VPATH)}internal/value_type.h
-object.$(OBJEXT): {$(VPATH)}internal/variable.h
-object.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-object.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-object.$(OBJEXT): {$(VPATH)}kernel.rb
-object.$(OBJEXT): {$(VPATH)}kernel.rbinc
object.$(OBJEXT): {$(VPATH)}missing.h
object.$(OBJEXT): {$(VPATH)}object.c
object.$(OBJEXT): {$(VPATH)}onigmo.h
@@ -9410,173 +2522,13 @@ object.$(OBJEXT): {$(VPATH)}subst.h
object.$(OBJEXT): {$(VPATH)}util.h
pack.$(OBJEXT): $(hdrdir)/ruby.h
pack.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-pack.$(OBJEXT): $(top_srcdir)/internal/array.h
-pack.$(OBJEXT): $(top_srcdir)/internal/bits.h
-pack.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-pack.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-pack.$(OBJEXT): $(top_srcdir)/internal/string.h
-pack.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-pack.$(OBJEXT): $(top_srcdir)/internal/util.h
-pack.$(OBJEXT): $(top_srcdir)/internal/variable.h
-pack.$(OBJEXT): $(top_srcdir)/internal/warnings.h
pack.$(OBJEXT): {$(VPATH)}assert.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-pack.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
pack.$(OBJEXT): {$(VPATH)}builtin.h
pack.$(OBJEXT): {$(VPATH)}config.h
-pack.$(OBJEXT): {$(VPATH)}constant.h
pack.$(OBJEXT): {$(VPATH)}defines.h
pack.$(OBJEXT): {$(VPATH)}encoding.h
-pack.$(OBJEXT): {$(VPATH)}id_table.h
pack.$(OBJEXT): {$(VPATH)}intern.h
pack.$(OBJEXT): {$(VPATH)}internal.h
-pack.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-pack.$(OBJEXT): {$(VPATH)}internal/assume.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-pack.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-pack.$(OBJEXT): {$(VPATH)}internal/cast.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-pack.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-pack.$(OBJEXT): {$(VPATH)}internal/config.h
-pack.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-pack.$(OBJEXT): {$(VPATH)}internal/core.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-pack.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-pack.$(OBJEXT): {$(VPATH)}internal/ctype.h
-pack.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-pack.$(OBJEXT): {$(VPATH)}internal/dosish.h
-pack.$(OBJEXT): {$(VPATH)}internal/error.h
-pack.$(OBJEXT): {$(VPATH)}internal/eval.h
-pack.$(OBJEXT): {$(VPATH)}internal/event.h
-pack.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-pack.$(OBJEXT): {$(VPATH)}internal/gc.h
-pack.$(OBJEXT): {$(VPATH)}internal/glob.h
-pack.$(OBJEXT): {$(VPATH)}internal/globals.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-pack.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-pack.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-pack.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-pack.$(OBJEXT): {$(VPATH)}internal/iterator.h
-pack.$(OBJEXT): {$(VPATH)}internal/memory.h
-pack.$(OBJEXT): {$(VPATH)}internal/method.h
-pack.$(OBJEXT): {$(VPATH)}internal/module.h
-pack.$(OBJEXT): {$(VPATH)}internal/newobj.h
-pack.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-pack.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-pack.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-pack.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-pack.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-pack.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-pack.$(OBJEXT): {$(VPATH)}internal/symbol.h
-pack.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-pack.$(OBJEXT): {$(VPATH)}internal/value.h
-pack.$(OBJEXT): {$(VPATH)}internal/value_type.h
-pack.$(OBJEXT): {$(VPATH)}internal/variable.h
-pack.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-pack.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
pack.$(OBJEXT): {$(VPATH)}missing.h
pack.$(OBJEXT): {$(VPATH)}onigmo.h
pack.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -9586,191 +2538,14 @@ pack.$(OBJEXT): {$(VPATH)}st.h
pack.$(OBJEXT): {$(VPATH)}subst.h
parse.$(OBJEXT): $(hdrdir)/ruby.h
parse.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-parse.$(OBJEXT): $(top_srcdir)/internal/array.h
-parse.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-parse.$(OBJEXT): $(top_srcdir)/internal/bits.h
-parse.$(OBJEXT): $(top_srcdir)/internal/compile.h
-parse.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-parse.$(OBJEXT): $(top_srcdir)/internal/complex.h
-parse.$(OBJEXT): $(top_srcdir)/internal/error.h
-parse.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-parse.$(OBJEXT): $(top_srcdir)/internal/gc.h
-parse.$(OBJEXT): $(top_srcdir)/internal/hash.h
-parse.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-parse.$(OBJEXT): $(top_srcdir)/internal/io.h
-parse.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-parse.$(OBJEXT): $(top_srcdir)/internal/parse.h
-parse.$(OBJEXT): $(top_srcdir)/internal/rational.h
-parse.$(OBJEXT): $(top_srcdir)/internal/re.h
-parse.$(OBJEXT): $(top_srcdir)/internal/serial.h
-parse.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-parse.$(OBJEXT): $(top_srcdir)/internal/string.h
-parse.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-parse.$(OBJEXT): $(top_srcdir)/internal/thread.h
-parse.$(OBJEXT): $(top_srcdir)/internal/util.h
-parse.$(OBJEXT): $(top_srcdir)/internal/variable.h
-parse.$(OBJEXT): $(top_srcdir)/internal/vm.h
-parse.$(OBJEXT): $(top_srcdir)/internal/warnings.h
parse.$(OBJEXT): {$(VPATH)}assert.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-parse.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
parse.$(OBJEXT): {$(VPATH)}config.h
-parse.$(OBJEXT): {$(VPATH)}constant.h
parse.$(OBJEXT): {$(VPATH)}defines.h
parse.$(OBJEXT): {$(VPATH)}defs/keywords
parse.$(OBJEXT): {$(VPATH)}encoding.h
parse.$(OBJEXT): {$(VPATH)}id.h
-parse.$(OBJEXT): {$(VPATH)}id_table.h
parse.$(OBJEXT): {$(VPATH)}intern.h
parse.$(OBJEXT): {$(VPATH)}internal.h
-parse.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-parse.$(OBJEXT): {$(VPATH)}internal/assume.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-parse.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-parse.$(OBJEXT): {$(VPATH)}internal/cast.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-parse.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-parse.$(OBJEXT): {$(VPATH)}internal/config.h
-parse.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-parse.$(OBJEXT): {$(VPATH)}internal/core.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-parse.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-parse.$(OBJEXT): {$(VPATH)}internal/ctype.h
-parse.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-parse.$(OBJEXT): {$(VPATH)}internal/dosish.h
-parse.$(OBJEXT): {$(VPATH)}internal/error.h
-parse.$(OBJEXT): {$(VPATH)}internal/eval.h
-parse.$(OBJEXT): {$(VPATH)}internal/event.h
-parse.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-parse.$(OBJEXT): {$(VPATH)}internal/gc.h
-parse.$(OBJEXT): {$(VPATH)}internal/glob.h
-parse.$(OBJEXT): {$(VPATH)}internal/globals.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-parse.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-parse.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-parse.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-parse.$(OBJEXT): {$(VPATH)}internal/iterator.h
-parse.$(OBJEXT): {$(VPATH)}internal/memory.h
-parse.$(OBJEXT): {$(VPATH)}internal/method.h
-parse.$(OBJEXT): {$(VPATH)}internal/module.h
-parse.$(OBJEXT): {$(VPATH)}internal/newobj.h
-parse.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-parse.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-parse.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-parse.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-parse.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-parse.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-parse.$(OBJEXT): {$(VPATH)}internal/symbol.h
-parse.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-parse.$(OBJEXT): {$(VPATH)}internal/value.h
-parse.$(OBJEXT): {$(VPATH)}internal/value_type.h
-parse.$(OBJEXT): {$(VPATH)}internal/variable.h
-parse.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-parse.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-parse.$(OBJEXT): {$(VPATH)}io.h
parse.$(OBJEXT): {$(VPATH)}lex.c
parse.$(OBJEXT): {$(VPATH)}missing.h
parse.$(OBJEXT): {$(VPATH)}node.h
@@ -9781,228 +2556,30 @@ parse.$(OBJEXT): {$(VPATH)}parse.h
parse.$(OBJEXT): {$(VPATH)}parse.y
parse.$(OBJEXT): {$(VPATH)}probes.dmyh
parse.$(OBJEXT): {$(VPATH)}probes.h
-parse.$(OBJEXT): {$(VPATH)}ractor.h
parse.$(OBJEXT): {$(VPATH)}regenc.h
parse.$(OBJEXT): {$(VPATH)}regex.h
-parse.$(OBJEXT): {$(VPATH)}ruby_assert.h
parse.$(OBJEXT): {$(VPATH)}st.h
parse.$(OBJEXT): {$(VPATH)}subst.h
parse.$(OBJEXT): {$(VPATH)}symbol.h
parse.$(OBJEXT): {$(VPATH)}util.h
-prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h
-prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h
-prelude.$(OBJEXT): $(hdrdir)/ruby.h
-prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-prelude.$(OBJEXT): {$(VPATH)}assert.h
-prelude.$(OBJEXT): {$(VPATH)}atomic.h
-prelude.$(OBJEXT): {$(VPATH)}config.h
-prelude.$(OBJEXT): {$(VPATH)}defines.h
-prelude.$(OBJEXT): {$(VPATH)}gem_prelude.rb
-prelude.$(OBJEXT): {$(VPATH)}id.h
-prelude.$(OBJEXT): {$(VPATH)}intern.h
-prelude.$(OBJEXT): {$(VPATH)}internal.h
-prelude.$(OBJEXT): {$(VPATH)}iseq.h
-prelude.$(OBJEXT): {$(VPATH)}method.h
-prelude.$(OBJEXT): {$(VPATH)}missing.h
-prelude.$(OBJEXT): {$(VPATH)}node.h
-prelude.$(OBJEXT): {$(VPATH)}prelude.c
-prelude.$(OBJEXT): {$(VPATH)}ruby_assert.h
-prelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h
-prelude.$(OBJEXT): {$(VPATH)}st.h
-prelude.$(OBJEXT): {$(VPATH)}subst.h
-prelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-prelude.$(OBJEXT): {$(VPATH)}thread_native.h
-prelude.$(OBJEXT): {$(VPATH)}vm_core.h
-prelude.$(OBJEXT): {$(VPATH)}vm_opts.h
proc.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
proc.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
proc.$(OBJEXT): $(CCAN_DIR)/list/list.h
proc.$(OBJEXT): $(CCAN_DIR)/str/str.h
proc.$(OBJEXT): $(hdrdir)/ruby.h
proc.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-proc.$(OBJEXT): $(top_srcdir)/internal/array.h
-proc.$(OBJEXT): $(top_srcdir)/internal/class.h
-proc.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-proc.$(OBJEXT): $(top_srcdir)/internal/error.h
-proc.$(OBJEXT): $(top_srcdir)/internal/eval.h
-proc.$(OBJEXT): $(top_srcdir)/internal/gc.h
-proc.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-proc.$(OBJEXT): $(top_srcdir)/internal/object.h
-proc.$(OBJEXT): $(top_srcdir)/internal/proc.h
-proc.$(OBJEXT): $(top_srcdir)/internal/serial.h
-proc.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-proc.$(OBJEXT): $(top_srcdir)/internal/string.h
-proc.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-proc.$(OBJEXT): $(top_srcdir)/internal/vm.h
-proc.$(OBJEXT): $(top_srcdir)/internal/warnings.h
proc.$(OBJEXT): {$(VPATH)}assert.h
-proc.$(OBJEXT): {$(VPATH)}atomic.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-proc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
proc.$(OBJEXT): {$(VPATH)}config.h
proc.$(OBJEXT): {$(VPATH)}defines.h
-proc.$(OBJEXT): {$(VPATH)}encoding.h
proc.$(OBJEXT): {$(VPATH)}eval_intern.h
proc.$(OBJEXT): {$(VPATH)}gc.h
proc.$(OBJEXT): {$(VPATH)}id.h
-proc.$(OBJEXT): {$(VPATH)}id_table.h
proc.$(OBJEXT): {$(VPATH)}intern.h
proc.$(OBJEXT): {$(VPATH)}internal.h
-proc.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-proc.$(OBJEXT): {$(VPATH)}internal/assume.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-proc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-proc.$(OBJEXT): {$(VPATH)}internal/cast.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-proc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-proc.$(OBJEXT): {$(VPATH)}internal/config.h
-proc.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-proc.$(OBJEXT): {$(VPATH)}internal/core.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-proc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-proc.$(OBJEXT): {$(VPATH)}internal/ctype.h
-proc.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-proc.$(OBJEXT): {$(VPATH)}internal/dosish.h
-proc.$(OBJEXT): {$(VPATH)}internal/error.h
-proc.$(OBJEXT): {$(VPATH)}internal/eval.h
-proc.$(OBJEXT): {$(VPATH)}internal/event.h
-proc.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-proc.$(OBJEXT): {$(VPATH)}internal/gc.h
-proc.$(OBJEXT): {$(VPATH)}internal/glob.h
-proc.$(OBJEXT): {$(VPATH)}internal/globals.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-proc.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-proc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-proc.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-proc.$(OBJEXT): {$(VPATH)}internal/iterator.h
-proc.$(OBJEXT): {$(VPATH)}internal/memory.h
-proc.$(OBJEXT): {$(VPATH)}internal/method.h
-proc.$(OBJEXT): {$(VPATH)}internal/module.h
-proc.$(OBJEXT): {$(VPATH)}internal/newobj.h
-proc.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-proc.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-proc.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-proc.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-proc.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-proc.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-proc.$(OBJEXT): {$(VPATH)}internal/symbol.h
-proc.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-proc.$(OBJEXT): {$(VPATH)}internal/value.h
-proc.$(OBJEXT): {$(VPATH)}internal/value_type.h
-proc.$(OBJEXT): {$(VPATH)}internal/variable.h
-proc.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-proc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
proc.$(OBJEXT): {$(VPATH)}iseq.h
proc.$(OBJEXT): {$(VPATH)}method.h
proc.$(OBJEXT): {$(VPATH)}missing.h
proc.$(OBJEXT): {$(VPATH)}node.h
-proc.$(OBJEXT): {$(VPATH)}onigmo.h
-proc.$(OBJEXT): {$(VPATH)}oniguruma.h
proc.$(OBJEXT): {$(VPATH)}proc.c
proc.$(OBJEXT): {$(VPATH)}ruby_assert.h
proc.$(OBJEXT): {$(VPATH)}ruby_atomic.h
@@ -10018,198 +2595,22 @@ process.$(OBJEXT): $(CCAN_DIR)/list/list.h
process.$(OBJEXT): $(CCAN_DIR)/str/str.h
process.$(OBJEXT): $(hdrdir)/ruby.h
process.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-process.$(OBJEXT): $(top_srcdir)/internal/array.h
-process.$(OBJEXT): $(top_srcdir)/internal/bits.h
-process.$(OBJEXT): $(top_srcdir)/internal/class.h
-process.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-process.$(OBJEXT): $(top_srcdir)/internal/dir.h
-process.$(OBJEXT): $(top_srcdir)/internal/error.h
-process.$(OBJEXT): $(top_srcdir)/internal/eval.h
-process.$(OBJEXT): $(top_srcdir)/internal/gc.h
-process.$(OBJEXT): $(top_srcdir)/internal/hash.h
-process.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-process.$(OBJEXT): $(top_srcdir)/internal/object.h
-process.$(OBJEXT): $(top_srcdir)/internal/process.h
-process.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-process.$(OBJEXT): $(top_srcdir)/internal/serial.h
-process.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-process.$(OBJEXT): $(top_srcdir)/internal/string.h
-process.$(OBJEXT): $(top_srcdir)/internal/thread.h
-process.$(OBJEXT): $(top_srcdir)/internal/variable.h
-process.$(OBJEXT): $(top_srcdir)/internal/vm.h
-process.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-process.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)
process.$(OBJEXT): {$(VPATH)}assert.h
-process.$(OBJEXT): {$(VPATH)}atomic.h
-process.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-process.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-process.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-process.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-process.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-process.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-process.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-process.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-process.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
process.$(OBJEXT): {$(VPATH)}config.h
-process.$(OBJEXT): {$(VPATH)}constant.h
-process.$(OBJEXT): {$(VPATH)}debug_counter.h
process.$(OBJEXT): {$(VPATH)}defines.h
process.$(OBJEXT): {$(VPATH)}dln.h
process.$(OBJEXT): {$(VPATH)}encoding.h
process.$(OBJEXT): {$(VPATH)}hrtime.h
process.$(OBJEXT): {$(VPATH)}id.h
-process.$(OBJEXT): {$(VPATH)}id_table.h
process.$(OBJEXT): {$(VPATH)}intern.h
process.$(OBJEXT): {$(VPATH)}internal.h
-process.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-process.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-process.$(OBJEXT): {$(VPATH)}internal/assume.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-process.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-process.$(OBJEXT): {$(VPATH)}internal/cast.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-process.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-process.$(OBJEXT): {$(VPATH)}internal/config.h
-process.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-process.$(OBJEXT): {$(VPATH)}internal/core.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-process.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-process.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-process.$(OBJEXT): {$(VPATH)}internal/ctype.h
-process.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-process.$(OBJEXT): {$(VPATH)}internal/dosish.h
-process.$(OBJEXT): {$(VPATH)}internal/error.h
-process.$(OBJEXT): {$(VPATH)}internal/eval.h
-process.$(OBJEXT): {$(VPATH)}internal/event.h
-process.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-process.$(OBJEXT): {$(VPATH)}internal/gc.h
-process.$(OBJEXT): {$(VPATH)}internal/glob.h
-process.$(OBJEXT): {$(VPATH)}internal/globals.h
-process.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-process.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-process.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-process.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-process.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-process.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-process.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-process.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-process.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-process.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-process.$(OBJEXT): {$(VPATH)}internal/iterator.h
-process.$(OBJEXT): {$(VPATH)}internal/memory.h
-process.$(OBJEXT): {$(VPATH)}internal/method.h
-process.$(OBJEXT): {$(VPATH)}internal/module.h
-process.$(OBJEXT): {$(VPATH)}internal/newobj.h
-process.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-process.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-process.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-process.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-process.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-process.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-process.$(OBJEXT): {$(VPATH)}internal/symbol.h
-process.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-process.$(OBJEXT): {$(VPATH)}internal/value.h
-process.$(OBJEXT): {$(VPATH)}internal/value_type.h
-process.$(OBJEXT): {$(VPATH)}internal/variable.h
-process.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-process.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
process.$(OBJEXT): {$(VPATH)}io.h
process.$(OBJEXT): {$(VPATH)}method.h
process.$(OBJEXT): {$(VPATH)}missing.h
-process.$(OBJEXT): {$(VPATH)}mjit.h
process.$(OBJEXT): {$(VPATH)}node.h
process.$(OBJEXT): {$(VPATH)}onigmo.h
process.$(OBJEXT): {$(VPATH)}oniguruma.h
process.$(OBJEXT): {$(VPATH)}process.c
-process.$(OBJEXT): {$(VPATH)}ractor.h
process.$(OBJEXT): {$(VPATH)}ruby_assert.h
process.$(OBJEXT): {$(VPATH)}ruby_atomic.h
process.$(OBJEXT): {$(VPATH)}st.h
@@ -10220,398 +2621,16 @@ process.$(OBJEXT): {$(VPATH)}thread_native.h
process.$(OBJEXT): {$(VPATH)}util.h
process.$(OBJEXT): {$(VPATH)}vm_core.h
process.$(OBJEXT): {$(VPATH)}vm_opts.h
-ractor.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-ractor.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-ractor.$(OBJEXT): $(CCAN_DIR)/list/list.h
-ractor.$(OBJEXT): $(CCAN_DIR)/str/str.h
-ractor.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/array.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/bits.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/complex.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/error.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/gc.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/hash.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/rational.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/serial.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/string.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/struct.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/thread.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/vm.h
-ractor.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-ractor.$(OBJEXT): {$(VPATH)}assert.h
-ractor.$(OBJEXT): {$(VPATH)}atomic.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-ractor.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-ractor.$(OBJEXT): {$(VPATH)}builtin.h
-ractor.$(OBJEXT): {$(VPATH)}config.h
-ractor.$(OBJEXT): {$(VPATH)}constant.h
-ractor.$(OBJEXT): {$(VPATH)}debug.h
-ractor.$(OBJEXT): {$(VPATH)}debug_counter.h
-ractor.$(OBJEXT): {$(VPATH)}defines.h
-ractor.$(OBJEXT): {$(VPATH)}encoding.h
-ractor.$(OBJEXT): {$(VPATH)}gc.h
-ractor.$(OBJEXT): {$(VPATH)}id.h
-ractor.$(OBJEXT): {$(VPATH)}id_table.h
-ractor.$(OBJEXT): {$(VPATH)}intern.h
-ractor.$(OBJEXT): {$(VPATH)}internal.h
-ractor.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-ractor.$(OBJEXT): {$(VPATH)}internal/assume.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-ractor.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-ractor.$(OBJEXT): {$(VPATH)}internal/cast.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-ractor.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-ractor.$(OBJEXT): {$(VPATH)}internal/config.h
-ractor.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-ractor.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-ractor.$(OBJEXT): {$(VPATH)}internal/ctype.h
-ractor.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-ractor.$(OBJEXT): {$(VPATH)}internal/dosish.h
-ractor.$(OBJEXT): {$(VPATH)}internal/error.h
-ractor.$(OBJEXT): {$(VPATH)}internal/eval.h
-ractor.$(OBJEXT): {$(VPATH)}internal/event.h
-ractor.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-ractor.$(OBJEXT): {$(VPATH)}internal/gc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/glob.h
-ractor.$(OBJEXT): {$(VPATH)}internal/globals.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-ractor.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-ractor.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-ractor.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-ractor.$(OBJEXT): {$(VPATH)}internal/iterator.h
-ractor.$(OBJEXT): {$(VPATH)}internal/memory.h
-ractor.$(OBJEXT): {$(VPATH)}internal/method.h
-ractor.$(OBJEXT): {$(VPATH)}internal/module.h
-ractor.$(OBJEXT): {$(VPATH)}internal/newobj.h
-ractor.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-ractor.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-ractor.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-ractor.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-ractor.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-ractor.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-ractor.$(OBJEXT): {$(VPATH)}internal/symbol.h
-ractor.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-ractor.$(OBJEXT): {$(VPATH)}internal/value.h
-ractor.$(OBJEXT): {$(VPATH)}internal/value_type.h
-ractor.$(OBJEXT): {$(VPATH)}internal/variable.h
-ractor.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-ractor.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-ractor.$(OBJEXT): {$(VPATH)}method.h
-ractor.$(OBJEXT): {$(VPATH)}missing.h
-ractor.$(OBJEXT): {$(VPATH)}node.h
-ractor.$(OBJEXT): {$(VPATH)}onigmo.h
-ractor.$(OBJEXT): {$(VPATH)}oniguruma.h
-ractor.$(OBJEXT): {$(VPATH)}ractor.c
-ractor.$(OBJEXT): {$(VPATH)}ractor.h
-ractor.$(OBJEXT): {$(VPATH)}ractor.rb
-ractor.$(OBJEXT): {$(VPATH)}ractor.rbinc
-ractor.$(OBJEXT): {$(VPATH)}ractor_core.h
-ractor.$(OBJEXT): {$(VPATH)}ruby_assert.h
-ractor.$(OBJEXT): {$(VPATH)}ruby_atomic.h
-ractor.$(OBJEXT): {$(VPATH)}st.h
-ractor.$(OBJEXT): {$(VPATH)}subst.h
-ractor.$(OBJEXT): {$(VPATH)}thread.h
-ractor.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-ractor.$(OBJEXT): {$(VPATH)}thread_native.h
-ractor.$(OBJEXT): {$(VPATH)}transient_heap.h
-ractor.$(OBJEXT): {$(VPATH)}variable.h
-ractor.$(OBJEXT): {$(VPATH)}vm_core.h
-ractor.$(OBJEXT): {$(VPATH)}vm_debug.h
-ractor.$(OBJEXT): {$(VPATH)}vm_opts.h
-ractor.$(OBJEXT): {$(VPATH)}vm_sync.h
random.$(OBJEXT): $(hdrdir)/ruby.h
random.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-random.$(OBJEXT): $(top_srcdir)/internal/array.h
-random.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-random.$(OBJEXT): $(top_srcdir)/internal/bits.h
-random.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-random.$(OBJEXT): $(top_srcdir)/internal/error.h
-random.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-random.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-random.$(OBJEXT): $(top_srcdir)/internal/random.h
-random.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-random.$(OBJEXT): $(top_srcdir)/internal/serial.h
-random.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-random.$(OBJEXT): $(top_srcdir)/internal/string.h
-random.$(OBJEXT): $(top_srcdir)/internal/variable.h
-random.$(OBJEXT): $(top_srcdir)/internal/vm.h
-random.$(OBJEXT): $(top_srcdir)/internal/warnings.h
random.$(OBJEXT): {$(VPATH)}assert.h
-random.$(OBJEXT): {$(VPATH)}atomic.h
-random.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-random.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-random.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-random.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-random.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-random.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-random.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-random.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-random.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
random.$(OBJEXT): {$(VPATH)}config.h
-random.$(OBJEXT): {$(VPATH)}constant.h
random.$(OBJEXT): {$(VPATH)}defines.h
-random.$(OBJEXT): {$(VPATH)}encoding.h
-random.$(OBJEXT): {$(VPATH)}id_table.h
random.$(OBJEXT): {$(VPATH)}intern.h
random.$(OBJEXT): {$(VPATH)}internal.h
-random.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-random.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-random.$(OBJEXT): {$(VPATH)}internal/assume.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-random.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-random.$(OBJEXT): {$(VPATH)}internal/cast.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-random.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-random.$(OBJEXT): {$(VPATH)}internal/config.h
-random.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-random.$(OBJEXT): {$(VPATH)}internal/core.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-random.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-random.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-random.$(OBJEXT): {$(VPATH)}internal/ctype.h
-random.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-random.$(OBJEXT): {$(VPATH)}internal/dosish.h
-random.$(OBJEXT): {$(VPATH)}internal/error.h
-random.$(OBJEXT): {$(VPATH)}internal/eval.h
-random.$(OBJEXT): {$(VPATH)}internal/event.h
-random.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-random.$(OBJEXT): {$(VPATH)}internal/gc.h
-random.$(OBJEXT): {$(VPATH)}internal/glob.h
-random.$(OBJEXT): {$(VPATH)}internal/globals.h
-random.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-random.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-random.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-random.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-random.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-random.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-random.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-random.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-random.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-random.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-random.$(OBJEXT): {$(VPATH)}internal/iterator.h
-random.$(OBJEXT): {$(VPATH)}internal/memory.h
-random.$(OBJEXT): {$(VPATH)}internal/method.h
-random.$(OBJEXT): {$(VPATH)}internal/module.h
-random.$(OBJEXT): {$(VPATH)}internal/newobj.h
-random.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-random.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-random.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-random.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-random.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-random.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-random.$(OBJEXT): {$(VPATH)}internal/symbol.h
-random.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-random.$(OBJEXT): {$(VPATH)}internal/value.h
-random.$(OBJEXT): {$(VPATH)}internal/value_type.h
-random.$(OBJEXT): {$(VPATH)}internal/variable.h
-random.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-random.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
random.$(OBJEXT): {$(VPATH)}missing.h
random.$(OBJEXT): {$(VPATH)}mt19937.c
-random.$(OBJEXT): {$(VPATH)}onigmo.h
-random.$(OBJEXT): {$(VPATH)}oniguruma.h
-random.$(OBJEXT): {$(VPATH)}ractor.h
random.$(OBJEXT): {$(VPATH)}random.c
-random.$(OBJEXT): {$(VPATH)}random.h
random.$(OBJEXT): {$(VPATH)}ruby_atomic.h
random.$(OBJEXT): {$(VPATH)}siphash.c
random.$(OBJEXT): {$(VPATH)}siphash.h
@@ -10619,541 +2638,38 @@ random.$(OBJEXT): {$(VPATH)}st.h
random.$(OBJEXT): {$(VPATH)}subst.h
range.$(OBJEXT): $(hdrdir)/ruby.h
range.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-range.$(OBJEXT): $(top_srcdir)/internal/array.h
-range.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-range.$(OBJEXT): $(top_srcdir)/internal/bits.h
-range.$(OBJEXT): $(top_srcdir)/internal/compar.h
-range.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-range.$(OBJEXT): $(top_srcdir)/internal/enum.h
-range.$(OBJEXT): $(top_srcdir)/internal/enumerator.h
-range.$(OBJEXT): $(top_srcdir)/internal/error.h
-range.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-range.$(OBJEXT): $(top_srcdir)/internal/gc.h
-range.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-range.$(OBJEXT): $(top_srcdir)/internal/range.h
-range.$(OBJEXT): $(top_srcdir)/internal/serial.h
-range.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-range.$(OBJEXT): $(top_srcdir)/internal/string.h
-range.$(OBJEXT): $(top_srcdir)/internal/struct.h
-range.$(OBJEXT): $(top_srcdir)/internal/vm.h
-range.$(OBJEXT): $(top_srcdir)/internal/warnings.h
range.$(OBJEXT): {$(VPATH)}assert.h
-range.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-range.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-range.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-range.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-range.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-range.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-range.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-range.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-range.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
range.$(OBJEXT): {$(VPATH)}config.h
range.$(OBJEXT): {$(VPATH)}defines.h
-range.$(OBJEXT): {$(VPATH)}encoding.h
range.$(OBJEXT): {$(VPATH)}id.h
range.$(OBJEXT): {$(VPATH)}intern.h
range.$(OBJEXT): {$(VPATH)}internal.h
-range.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-range.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-range.$(OBJEXT): {$(VPATH)}internal/assume.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-range.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-range.$(OBJEXT): {$(VPATH)}internal/cast.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-range.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-range.$(OBJEXT): {$(VPATH)}internal/config.h
-range.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-range.$(OBJEXT): {$(VPATH)}internal/core.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-range.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-range.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-range.$(OBJEXT): {$(VPATH)}internal/ctype.h
-range.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-range.$(OBJEXT): {$(VPATH)}internal/dosish.h
-range.$(OBJEXT): {$(VPATH)}internal/error.h
-range.$(OBJEXT): {$(VPATH)}internal/eval.h
-range.$(OBJEXT): {$(VPATH)}internal/event.h
-range.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-range.$(OBJEXT): {$(VPATH)}internal/gc.h
-range.$(OBJEXT): {$(VPATH)}internal/glob.h
-range.$(OBJEXT): {$(VPATH)}internal/globals.h
-range.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-range.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-range.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-range.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-range.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-range.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-range.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-range.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-range.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-range.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-range.$(OBJEXT): {$(VPATH)}internal/iterator.h
-range.$(OBJEXT): {$(VPATH)}internal/memory.h
-range.$(OBJEXT): {$(VPATH)}internal/method.h
-range.$(OBJEXT): {$(VPATH)}internal/module.h
-range.$(OBJEXT): {$(VPATH)}internal/newobj.h
-range.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-range.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-range.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-range.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-range.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-range.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-range.$(OBJEXT): {$(VPATH)}internal/symbol.h
-range.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-range.$(OBJEXT): {$(VPATH)}internal/value.h
-range.$(OBJEXT): {$(VPATH)}internal/value_type.h
-range.$(OBJEXT): {$(VPATH)}internal/variable.h
-range.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-range.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
range.$(OBJEXT): {$(VPATH)}missing.h
-range.$(OBJEXT): {$(VPATH)}onigmo.h
-range.$(OBJEXT): {$(VPATH)}oniguruma.h
range.$(OBJEXT): {$(VPATH)}range.c
range.$(OBJEXT): {$(VPATH)}st.h
range.$(OBJEXT): {$(VPATH)}subst.h
rational.$(OBJEXT): $(hdrdir)/ruby.h
rational.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-rational.$(OBJEXT): $(top_srcdir)/internal/array.h
-rational.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-rational.$(OBJEXT): $(top_srcdir)/internal/bits.h
-rational.$(OBJEXT): $(top_srcdir)/internal/class.h
-rational.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-rational.$(OBJEXT): $(top_srcdir)/internal/complex.h
-rational.$(OBJEXT): $(top_srcdir)/internal/error.h
-rational.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-rational.$(OBJEXT): $(top_srcdir)/internal/gc.h
-rational.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-rational.$(OBJEXT): $(top_srcdir)/internal/object.h
-rational.$(OBJEXT): $(top_srcdir)/internal/rational.h
-rational.$(OBJEXT): $(top_srcdir)/internal/serial.h
-rational.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-rational.$(OBJEXT): $(top_srcdir)/internal/string.h
-rational.$(OBJEXT): $(top_srcdir)/internal/vm.h
-rational.$(OBJEXT): $(top_srcdir)/internal/warnings.h
rational.$(OBJEXT): {$(VPATH)}assert.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-rational.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
rational.$(OBJEXT): {$(VPATH)}config.h
rational.$(OBJEXT): {$(VPATH)}defines.h
-rational.$(OBJEXT): {$(VPATH)}encoding.h
rational.$(OBJEXT): {$(VPATH)}id.h
-rational.$(OBJEXT): {$(VPATH)}id_table.h
rational.$(OBJEXT): {$(VPATH)}intern.h
rational.$(OBJEXT): {$(VPATH)}internal.h
-rational.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-rational.$(OBJEXT): {$(VPATH)}internal/assume.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-rational.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-rational.$(OBJEXT): {$(VPATH)}internal/cast.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-rational.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-rational.$(OBJEXT): {$(VPATH)}internal/config.h
-rational.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-rational.$(OBJEXT): {$(VPATH)}internal/core.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-rational.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-rational.$(OBJEXT): {$(VPATH)}internal/ctype.h
-rational.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-rational.$(OBJEXT): {$(VPATH)}internal/dosish.h
-rational.$(OBJEXT): {$(VPATH)}internal/error.h
-rational.$(OBJEXT): {$(VPATH)}internal/eval.h
-rational.$(OBJEXT): {$(VPATH)}internal/event.h
-rational.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-rational.$(OBJEXT): {$(VPATH)}internal/gc.h
-rational.$(OBJEXT): {$(VPATH)}internal/glob.h
-rational.$(OBJEXT): {$(VPATH)}internal/globals.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-rational.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-rational.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-rational.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-rational.$(OBJEXT): {$(VPATH)}internal/iterator.h
-rational.$(OBJEXT): {$(VPATH)}internal/memory.h
-rational.$(OBJEXT): {$(VPATH)}internal/method.h
-rational.$(OBJEXT): {$(VPATH)}internal/module.h
-rational.$(OBJEXT): {$(VPATH)}internal/newobj.h
-rational.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-rational.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-rational.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-rational.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-rational.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-rational.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-rational.$(OBJEXT): {$(VPATH)}internal/symbol.h
-rational.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-rational.$(OBJEXT): {$(VPATH)}internal/value.h
-rational.$(OBJEXT): {$(VPATH)}internal/value_type.h
-rational.$(OBJEXT): {$(VPATH)}internal/variable.h
-rational.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-rational.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
rational.$(OBJEXT): {$(VPATH)}missing.h
-rational.$(OBJEXT): {$(VPATH)}onigmo.h
-rational.$(OBJEXT): {$(VPATH)}oniguruma.h
rational.$(OBJEXT): {$(VPATH)}rational.c
rational.$(OBJEXT): {$(VPATH)}ruby_assert.h
rational.$(OBJEXT): {$(VPATH)}st.h
rational.$(OBJEXT): {$(VPATH)}subst.h
re.$(OBJEXT): $(hdrdir)/ruby.h
re.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-re.$(OBJEXT): $(top_srcdir)/internal/array.h
-re.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-re.$(OBJEXT): $(top_srcdir)/internal/error.h
-re.$(OBJEXT): $(top_srcdir)/internal/gc.h
-re.$(OBJEXT): $(top_srcdir)/internal/hash.h
-re.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-re.$(OBJEXT): $(top_srcdir)/internal/re.h
-re.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-re.$(OBJEXT): $(top_srcdir)/internal/string.h
-re.$(OBJEXT): $(top_srcdir)/internal/variable.h
-re.$(OBJEXT): $(top_srcdir)/internal/warnings.h
re.$(OBJEXT): {$(VPATH)}assert.h
-re.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-re.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-re.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-re.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-re.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-re.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-re.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-re.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-re.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
re.$(OBJEXT): {$(VPATH)}config.h
-re.$(OBJEXT): {$(VPATH)}constant.h
re.$(OBJEXT): {$(VPATH)}defines.h
re.$(OBJEXT): {$(VPATH)}encindex.h
re.$(OBJEXT): {$(VPATH)}encoding.h
-re.$(OBJEXT): {$(VPATH)}id_table.h
re.$(OBJEXT): {$(VPATH)}intern.h
re.$(OBJEXT): {$(VPATH)}internal.h
-re.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-re.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-re.$(OBJEXT): {$(VPATH)}internal/assume.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-re.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-re.$(OBJEXT): {$(VPATH)}internal/cast.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-re.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-re.$(OBJEXT): {$(VPATH)}internal/config.h
-re.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-re.$(OBJEXT): {$(VPATH)}internal/core.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h
-re.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-re.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-re.$(OBJEXT): {$(VPATH)}internal/ctype.h
-re.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-re.$(OBJEXT): {$(VPATH)}internal/dosish.h
-re.$(OBJEXT): {$(VPATH)}internal/error.h
-re.$(OBJEXT): {$(VPATH)}internal/eval.h
-re.$(OBJEXT): {$(VPATH)}internal/event.h
-re.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-re.$(OBJEXT): {$(VPATH)}internal/gc.h
-re.$(OBJEXT): {$(VPATH)}internal/glob.h
-re.$(OBJEXT): {$(VPATH)}internal/globals.h
-re.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-re.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-re.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-re.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-re.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-re.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-re.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-re.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-re.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-re.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-re.$(OBJEXT): {$(VPATH)}internal/iterator.h
-re.$(OBJEXT): {$(VPATH)}internal/memory.h
-re.$(OBJEXT): {$(VPATH)}internal/method.h
-re.$(OBJEXT): {$(VPATH)}internal/module.h
-re.$(OBJEXT): {$(VPATH)}internal/newobj.h
-re.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-re.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-re.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-re.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-re.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-re.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-re.$(OBJEXT): {$(VPATH)}internal/symbol.h
-re.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-re.$(OBJEXT): {$(VPATH)}internal/value.h
-re.$(OBJEXT): {$(VPATH)}internal/value_type.h
-re.$(OBJEXT): {$(VPATH)}internal/variable.h
-re.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-re.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
re.$(OBJEXT): {$(VPATH)}missing.h
re.$(OBJEXT): {$(VPATH)}onigmo.h
re.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -11167,158 +2683,9 @@ re.$(OBJEXT): {$(VPATH)}subst.h
re.$(OBJEXT): {$(VPATH)}util.h
regcomp.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regcomp.$(OBJEXT): {$(VPATH)}assert.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regcomp.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regcomp.$(OBJEXT): {$(VPATH)}config.h
regcomp.$(OBJEXT): {$(VPATH)}defines.h
regcomp.$(OBJEXT): {$(VPATH)}intern.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/assume.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/cast.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/config.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/error.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/eval.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/event.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/gc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/glob.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/globals.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/memory.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/method.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/module.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/value.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/variable.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regcomp.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regcomp.$(OBJEXT): {$(VPATH)}missing.h
regcomp.$(OBJEXT): {$(VPATH)}onigmo.h
regcomp.$(OBJEXT): {$(VPATH)}regcomp.c
@@ -11329,158 +2696,9 @@ regcomp.$(OBJEXT): {$(VPATH)}st.h
regcomp.$(OBJEXT): {$(VPATH)}subst.h
regenc.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regenc.$(OBJEXT): {$(VPATH)}assert.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regenc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regenc.$(OBJEXT): {$(VPATH)}config.h
regenc.$(OBJEXT): {$(VPATH)}defines.h
regenc.$(OBJEXT): {$(VPATH)}intern.h
-regenc.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regenc.$(OBJEXT): {$(VPATH)}internal/assume.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regenc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regenc.$(OBJEXT): {$(VPATH)}internal/cast.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regenc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regenc.$(OBJEXT): {$(VPATH)}internal/config.h
-regenc.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regenc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regenc.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regenc.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regenc.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regenc.$(OBJEXT): {$(VPATH)}internal/error.h
-regenc.$(OBJEXT): {$(VPATH)}internal/eval.h
-regenc.$(OBJEXT): {$(VPATH)}internal/event.h
-regenc.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regenc.$(OBJEXT): {$(VPATH)}internal/gc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/glob.h
-regenc.$(OBJEXT): {$(VPATH)}internal/globals.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regenc.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regenc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regenc.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regenc.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regenc.$(OBJEXT): {$(VPATH)}internal/memory.h
-regenc.$(OBJEXT): {$(VPATH)}internal/method.h
-regenc.$(OBJEXT): {$(VPATH)}internal/module.h
-regenc.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regenc.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regenc.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regenc.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regenc.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regenc.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regenc.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regenc.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regenc.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regenc.$(OBJEXT): {$(VPATH)}internal/value.h
-regenc.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regenc.$(OBJEXT): {$(VPATH)}internal/variable.h
-regenc.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regenc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regenc.$(OBJEXT): {$(VPATH)}missing.h
regenc.$(OBJEXT): {$(VPATH)}onigmo.h
regenc.$(OBJEXT): {$(VPATH)}regenc.c
@@ -11490,158 +2708,9 @@ regenc.$(OBJEXT): {$(VPATH)}st.h
regenc.$(OBJEXT): {$(VPATH)}subst.h
regerror.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regerror.$(OBJEXT): {$(VPATH)}assert.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regerror.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regerror.$(OBJEXT): {$(VPATH)}config.h
regerror.$(OBJEXT): {$(VPATH)}defines.h
regerror.$(OBJEXT): {$(VPATH)}intern.h
-regerror.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regerror.$(OBJEXT): {$(VPATH)}internal/assume.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regerror.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regerror.$(OBJEXT): {$(VPATH)}internal/cast.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regerror.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regerror.$(OBJEXT): {$(VPATH)}internal/config.h
-regerror.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regerror.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regerror.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regerror.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regerror.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regerror.$(OBJEXT): {$(VPATH)}internal/error.h
-regerror.$(OBJEXT): {$(VPATH)}internal/eval.h
-regerror.$(OBJEXT): {$(VPATH)}internal/event.h
-regerror.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regerror.$(OBJEXT): {$(VPATH)}internal/gc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/glob.h
-regerror.$(OBJEXT): {$(VPATH)}internal/globals.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regerror.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regerror.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regerror.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regerror.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regerror.$(OBJEXT): {$(VPATH)}internal/memory.h
-regerror.$(OBJEXT): {$(VPATH)}internal/method.h
-regerror.$(OBJEXT): {$(VPATH)}internal/module.h
-regerror.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regerror.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regerror.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regerror.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regerror.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regerror.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regerror.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regerror.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regerror.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regerror.$(OBJEXT): {$(VPATH)}internal/value.h
-regerror.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regerror.$(OBJEXT): {$(VPATH)}internal/variable.h
-regerror.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regerror.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regerror.$(OBJEXT): {$(VPATH)}missing.h
regerror.$(OBJEXT): {$(VPATH)}onigmo.h
regerror.$(OBJEXT): {$(VPATH)}regenc.h
@@ -11651,158 +2720,9 @@ regerror.$(OBJEXT): {$(VPATH)}st.h
regerror.$(OBJEXT): {$(VPATH)}subst.h
regexec.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regexec.$(OBJEXT): {$(VPATH)}assert.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regexec.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regexec.$(OBJEXT): {$(VPATH)}config.h
regexec.$(OBJEXT): {$(VPATH)}defines.h
regexec.$(OBJEXT): {$(VPATH)}intern.h
-regexec.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regexec.$(OBJEXT): {$(VPATH)}internal/assume.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regexec.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regexec.$(OBJEXT): {$(VPATH)}internal/cast.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regexec.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regexec.$(OBJEXT): {$(VPATH)}internal/config.h
-regexec.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regexec.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regexec.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regexec.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regexec.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regexec.$(OBJEXT): {$(VPATH)}internal/error.h
-regexec.$(OBJEXT): {$(VPATH)}internal/eval.h
-regexec.$(OBJEXT): {$(VPATH)}internal/event.h
-regexec.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regexec.$(OBJEXT): {$(VPATH)}internal/gc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/glob.h
-regexec.$(OBJEXT): {$(VPATH)}internal/globals.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regexec.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regexec.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regexec.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regexec.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regexec.$(OBJEXT): {$(VPATH)}internal/memory.h
-regexec.$(OBJEXT): {$(VPATH)}internal/method.h
-regexec.$(OBJEXT): {$(VPATH)}internal/module.h
-regexec.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regexec.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regexec.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regexec.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regexec.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regexec.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regexec.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regexec.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regexec.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regexec.$(OBJEXT): {$(VPATH)}internal/value.h
-regexec.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regexec.$(OBJEXT): {$(VPATH)}internal/variable.h
-regexec.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regexec.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regexec.$(OBJEXT): {$(VPATH)}missing.h
regexec.$(OBJEXT): {$(VPATH)}onigmo.h
regexec.$(OBJEXT): {$(VPATH)}regenc.h
@@ -11812,158 +2732,9 @@ regexec.$(OBJEXT): {$(VPATH)}st.h
regexec.$(OBJEXT): {$(VPATH)}subst.h
regparse.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regparse.$(OBJEXT): {$(VPATH)}assert.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regparse.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regparse.$(OBJEXT): {$(VPATH)}config.h
regparse.$(OBJEXT): {$(VPATH)}defines.h
regparse.$(OBJEXT): {$(VPATH)}intern.h
-regparse.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regparse.$(OBJEXT): {$(VPATH)}internal/assume.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regparse.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regparse.$(OBJEXT): {$(VPATH)}internal/cast.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regparse.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regparse.$(OBJEXT): {$(VPATH)}internal/config.h
-regparse.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regparse.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regparse.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regparse.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regparse.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regparse.$(OBJEXT): {$(VPATH)}internal/error.h
-regparse.$(OBJEXT): {$(VPATH)}internal/eval.h
-regparse.$(OBJEXT): {$(VPATH)}internal/event.h
-regparse.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regparse.$(OBJEXT): {$(VPATH)}internal/gc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/glob.h
-regparse.$(OBJEXT): {$(VPATH)}internal/globals.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regparse.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regparse.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regparse.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regparse.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regparse.$(OBJEXT): {$(VPATH)}internal/memory.h
-regparse.$(OBJEXT): {$(VPATH)}internal/method.h
-regparse.$(OBJEXT): {$(VPATH)}internal/module.h
-regparse.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regparse.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regparse.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regparse.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regparse.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regparse.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regparse.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regparse.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regparse.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regparse.$(OBJEXT): {$(VPATH)}internal/value.h
-regparse.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regparse.$(OBJEXT): {$(VPATH)}internal/variable.h
-regparse.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regparse.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regparse.$(OBJEXT): {$(VPATH)}missing.h
regparse.$(OBJEXT): {$(VPATH)}onigmo.h
regparse.$(OBJEXT): {$(VPATH)}regenc.h
@@ -11974,158 +2745,9 @@ regparse.$(OBJEXT): {$(VPATH)}st.h
regparse.$(OBJEXT): {$(VPATH)}subst.h
regsyntax.$(OBJEXT): $(hdrdir)/ruby/ruby.h
regsyntax.$(OBJEXT): {$(VPATH)}assert.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-regsyntax.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
regsyntax.$(OBJEXT): {$(VPATH)}config.h
regsyntax.$(OBJEXT): {$(VPATH)}defines.h
regsyntax.$(OBJEXT): {$(VPATH)}intern.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/assume.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/cast.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/config.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/ctype.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/dosish.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/error.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/eval.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/event.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/gc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/glob.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/globals.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/iterator.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/memory.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/method.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/module.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/newobj.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/symbol.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/value.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/value_type.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/variable.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-regsyntax.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
regsyntax.$(OBJEXT): {$(VPATH)}missing.h
regsyntax.$(OBJEXT): {$(VPATH)}onigmo.h
regsyntax.$(OBJEXT): {$(VPATH)}regenc.h
@@ -12134,15 +2756,6 @@ regsyntax.$(OBJEXT): {$(VPATH)}regsyntax.c
regsyntax.$(OBJEXT): {$(VPATH)}st.h
regsyntax.$(OBJEXT): {$(VPATH)}subst.h
ruby-runner.$(OBJEXT): {$(VPATH)}config.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-ruby-runner.$(OBJEXT): {$(VPATH)}internal/config.h
ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.c
ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.h
ruby.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
@@ -12152,190 +2765,16 @@ ruby.$(OBJEXT): $(CCAN_DIR)/str/str.h
ruby.$(OBJEXT): $(hdrdir)/ruby.h
ruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h
ruby.$(OBJEXT): $(hdrdir)/ruby/version.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/array.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/class.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/error.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/file.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/gc.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/inits.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/io.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/load.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/loadpath.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/missing.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/object.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/parse.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/process.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/serial.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/string.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/variable.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/vm.h
-ruby.$(OBJEXT): $(top_srcdir)/internal/warnings.h
ruby.$(OBJEXT): {$(VPATH)}assert.h
-ruby.$(OBJEXT): {$(VPATH)}atomic.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-ruby.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
ruby.$(OBJEXT): {$(VPATH)}config.h
-ruby.$(OBJEXT): {$(VPATH)}constant.h
ruby.$(OBJEXT): {$(VPATH)}debug_counter.h
ruby.$(OBJEXT): {$(VPATH)}defines.h
ruby.$(OBJEXT): {$(VPATH)}dln.h
ruby.$(OBJEXT): {$(VPATH)}encoding.h
ruby.$(OBJEXT): {$(VPATH)}eval_intern.h
ruby.$(OBJEXT): {$(VPATH)}id.h
-ruby.$(OBJEXT): {$(VPATH)}id_table.h
ruby.$(OBJEXT): {$(VPATH)}intern.h
ruby.$(OBJEXT): {$(VPATH)}internal.h
-ruby.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-ruby.$(OBJEXT): {$(VPATH)}internal/assume.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-ruby.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-ruby.$(OBJEXT): {$(VPATH)}internal/cast.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-ruby.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-ruby.$(OBJEXT): {$(VPATH)}internal/config.h
-ruby.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-ruby.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-ruby.$(OBJEXT): {$(VPATH)}internal/ctype.h
-ruby.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-ruby.$(OBJEXT): {$(VPATH)}internal/dosish.h
-ruby.$(OBJEXT): {$(VPATH)}internal/error.h
-ruby.$(OBJEXT): {$(VPATH)}internal/eval.h
-ruby.$(OBJEXT): {$(VPATH)}internal/event.h
-ruby.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-ruby.$(OBJEXT): {$(VPATH)}internal/gc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/glob.h
-ruby.$(OBJEXT): {$(VPATH)}internal/globals.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-ruby.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-ruby.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-ruby.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-ruby.$(OBJEXT): {$(VPATH)}internal/iterator.h
-ruby.$(OBJEXT): {$(VPATH)}internal/memory.h
-ruby.$(OBJEXT): {$(VPATH)}internal/method.h
-ruby.$(OBJEXT): {$(VPATH)}internal/module.h
-ruby.$(OBJEXT): {$(VPATH)}internal/newobj.h
-ruby.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-ruby.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-ruby.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-ruby.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-ruby.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-ruby.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-ruby.$(OBJEXT): {$(VPATH)}internal/symbol.h
-ruby.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-ruby.$(OBJEXT): {$(VPATH)}internal/value.h
-ruby.$(OBJEXT): {$(VPATH)}internal/value_type.h
-ruby.$(OBJEXT): {$(VPATH)}internal/variable.h
-ruby.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-ruby.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-ruby.$(OBJEXT): {$(VPATH)}io.h
ruby.$(OBJEXT): {$(VPATH)}method.h
ruby.$(OBJEXT): {$(VPATH)}missing.h
ruby.$(OBJEXT): {$(VPATH)}mjit.h
@@ -12353,348 +2792,36 @@ ruby.$(OBJEXT): {$(VPATH)}thread_native.h
ruby.$(OBJEXT): {$(VPATH)}util.h
ruby.$(OBJEXT): {$(VPATH)}vm_core.h
ruby.$(OBJEXT): {$(VPATH)}vm_opts.h
-scheduler.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-scheduler.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-scheduler.$(OBJEXT): $(CCAN_DIR)/list/list.h
-scheduler.$(OBJEXT): $(CCAN_DIR)/str/str.h
-scheduler.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/array.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/gc.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/serial.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/vm.h
-scheduler.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-scheduler.$(OBJEXT): {$(VPATH)}assert.h
-scheduler.$(OBJEXT): {$(VPATH)}atomic.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-scheduler.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-scheduler.$(OBJEXT): {$(VPATH)}config.h
-scheduler.$(OBJEXT): {$(VPATH)}defines.h
-scheduler.$(OBJEXT): {$(VPATH)}encoding.h
-scheduler.$(OBJEXT): {$(VPATH)}id.h
-scheduler.$(OBJEXT): {$(VPATH)}intern.h
-scheduler.$(OBJEXT): {$(VPATH)}internal.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/assume.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/cast.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/config.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/ctype.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/dosish.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/error.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/eval.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/event.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/gc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/glob.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/globals.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/iterator.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/memory.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/method.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/module.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/newobj.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/scheduler.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/symbol.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/value.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/value_type.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/variable.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-scheduler.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-scheduler.$(OBJEXT): {$(VPATH)}io.h
-scheduler.$(OBJEXT): {$(VPATH)}method.h
-scheduler.$(OBJEXT): {$(VPATH)}missing.h
-scheduler.$(OBJEXT): {$(VPATH)}node.h
-scheduler.$(OBJEXT): {$(VPATH)}onigmo.h
-scheduler.$(OBJEXT): {$(VPATH)}oniguruma.h
-scheduler.$(OBJEXT): {$(VPATH)}ruby_assert.h
-scheduler.$(OBJEXT): {$(VPATH)}ruby_atomic.h
-scheduler.$(OBJEXT): {$(VPATH)}scheduler.c
-scheduler.$(OBJEXT): {$(VPATH)}st.h
-scheduler.$(OBJEXT): {$(VPATH)}subst.h
-scheduler.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-scheduler.$(OBJEXT): {$(VPATH)}thread_native.h
-scheduler.$(OBJEXT): {$(VPATH)}vm_core.h
-scheduler.$(OBJEXT): {$(VPATH)}vm_opts.h
+safe.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
+safe.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
+safe.$(OBJEXT): $(CCAN_DIR)/list/list.h
+safe.$(OBJEXT): $(CCAN_DIR)/str/str.h
+safe.$(OBJEXT): $(hdrdir)/ruby.h
+safe.$(OBJEXT): $(hdrdir)/ruby/ruby.h
+safe.$(OBJEXT): {$(VPATH)}assert.h
+safe.$(OBJEXT): {$(VPATH)}config.h
+safe.$(OBJEXT): {$(VPATH)}defines.h
+safe.$(OBJEXT): {$(VPATH)}id.h
+safe.$(OBJEXT): {$(VPATH)}intern.h
+safe.$(OBJEXT): {$(VPATH)}internal.h
+safe.$(OBJEXT): {$(VPATH)}method.h
+safe.$(OBJEXT): {$(VPATH)}missing.h
+safe.$(OBJEXT): {$(VPATH)}node.h
+safe.$(OBJEXT): {$(VPATH)}ruby_assert.h
+safe.$(OBJEXT): {$(VPATH)}ruby_atomic.h
+safe.$(OBJEXT): {$(VPATH)}safe.c
+safe.$(OBJEXT): {$(VPATH)}st.h
+safe.$(OBJEXT): {$(VPATH)}subst.h
+safe.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
+safe.$(OBJEXT): {$(VPATH)}thread_native.h
+safe.$(OBJEXT): {$(VPATH)}vm_core.h
+safe.$(OBJEXT): {$(VPATH)}vm_opts.h
setproctitle.$(OBJEXT): $(hdrdir)/ruby.h
setproctitle.$(OBJEXT): $(hdrdir)/ruby/ruby.h
setproctitle.$(OBJEXT): {$(VPATH)}assert.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-setproctitle.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
setproctitle.$(OBJEXT): {$(VPATH)}config.h
setproctitle.$(OBJEXT): {$(VPATH)}defines.h
setproctitle.$(OBJEXT): {$(VPATH)}intern.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/assume.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/cast.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/config.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/ctype.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/dosish.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/error.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/eval.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/event.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/gc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/glob.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/globals.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/iterator.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/memory.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/method.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/module.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/newobj.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/symbol.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/value.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/value_type.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/variable.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-setproctitle.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
setproctitle.$(OBJEXT): {$(VPATH)}missing.h
setproctitle.$(OBJEXT): {$(VPATH)}setproctitle.c
setproctitle.$(OBJEXT): {$(VPATH)}st.h
@@ -12706,186 +2833,17 @@ signal.$(OBJEXT): $(CCAN_DIR)/list/list.h
signal.$(OBJEXT): $(CCAN_DIR)/str/str.h
signal.$(OBJEXT): $(hdrdir)/ruby.h
signal.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-signal.$(OBJEXT): $(top_srcdir)/internal/array.h
-signal.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-signal.$(OBJEXT): $(top_srcdir)/internal/eval.h
-signal.$(OBJEXT): $(top_srcdir)/internal/gc.h
-signal.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-signal.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-signal.$(OBJEXT): $(top_srcdir)/internal/serial.h
-signal.$(OBJEXT): $(top_srcdir)/internal/signal.h
-signal.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-signal.$(OBJEXT): $(top_srcdir)/internal/string.h
-signal.$(OBJEXT): $(top_srcdir)/internal/thread.h
-signal.$(OBJEXT): $(top_srcdir)/internal/vm.h
-signal.$(OBJEXT): $(top_srcdir)/internal/warnings.h
signal.$(OBJEXT): {$(VPATH)}assert.h
-signal.$(OBJEXT): {$(VPATH)}atomic.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-signal.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
signal.$(OBJEXT): {$(VPATH)}config.h
signal.$(OBJEXT): {$(VPATH)}debug_counter.h
signal.$(OBJEXT): {$(VPATH)}defines.h
-signal.$(OBJEXT): {$(VPATH)}encoding.h
signal.$(OBJEXT): {$(VPATH)}eval_intern.h
signal.$(OBJEXT): {$(VPATH)}id.h
-signal.$(OBJEXT): {$(VPATH)}id_table.h
signal.$(OBJEXT): {$(VPATH)}intern.h
signal.$(OBJEXT): {$(VPATH)}internal.h
-signal.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-signal.$(OBJEXT): {$(VPATH)}internal/assume.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-signal.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-signal.$(OBJEXT): {$(VPATH)}internal/cast.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-signal.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-signal.$(OBJEXT): {$(VPATH)}internal/config.h
-signal.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-signal.$(OBJEXT): {$(VPATH)}internal/core.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-signal.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-signal.$(OBJEXT): {$(VPATH)}internal/ctype.h
-signal.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-signal.$(OBJEXT): {$(VPATH)}internal/dosish.h
-signal.$(OBJEXT): {$(VPATH)}internal/error.h
-signal.$(OBJEXT): {$(VPATH)}internal/eval.h
-signal.$(OBJEXT): {$(VPATH)}internal/event.h
-signal.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-signal.$(OBJEXT): {$(VPATH)}internal/gc.h
-signal.$(OBJEXT): {$(VPATH)}internal/glob.h
-signal.$(OBJEXT): {$(VPATH)}internal/globals.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-signal.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-signal.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-signal.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-signal.$(OBJEXT): {$(VPATH)}internal/iterator.h
-signal.$(OBJEXT): {$(VPATH)}internal/memory.h
-signal.$(OBJEXT): {$(VPATH)}internal/method.h
-signal.$(OBJEXT): {$(VPATH)}internal/module.h
-signal.$(OBJEXT): {$(VPATH)}internal/newobj.h
-signal.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-signal.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-signal.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-signal.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-signal.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-signal.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-signal.$(OBJEXT): {$(VPATH)}internal/symbol.h
-signal.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-signal.$(OBJEXT): {$(VPATH)}internal/value.h
-signal.$(OBJEXT): {$(VPATH)}internal/value_type.h
-signal.$(OBJEXT): {$(VPATH)}internal/variable.h
-signal.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-signal.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
signal.$(OBJEXT): {$(VPATH)}method.h
signal.$(OBJEXT): {$(VPATH)}missing.h
signal.$(OBJEXT): {$(VPATH)}node.h
-signal.$(OBJEXT): {$(VPATH)}onigmo.h
-signal.$(OBJEXT): {$(VPATH)}oniguruma.h
-signal.$(OBJEXT): {$(VPATH)}ractor.h
-signal.$(OBJEXT): {$(VPATH)}ractor_core.h
signal.$(OBJEXT): {$(VPATH)}ruby_assert.h
signal.$(OBJEXT): {$(VPATH)}ruby_atomic.h
signal.$(OBJEXT): {$(VPATH)}signal.c
@@ -12894,186 +2852,16 @@ signal.$(OBJEXT): {$(VPATH)}subst.h
signal.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
signal.$(OBJEXT): {$(VPATH)}thread_native.h
signal.$(OBJEXT): {$(VPATH)}vm_core.h
-signal.$(OBJEXT): {$(VPATH)}vm_debug.h
signal.$(OBJEXT): {$(VPATH)}vm_opts.h
sprintf.$(OBJEXT): $(hdrdir)/ruby.h
sprintf.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/bits.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/class.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/error.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/gc.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/hash.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/object.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/serial.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/string.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/util.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/vm.h
-sprintf.$(OBJEXT): $(top_srcdir)/internal/warnings.h
sprintf.$(OBJEXT): {$(VPATH)}assert.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-sprintf.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
sprintf.$(OBJEXT): {$(VPATH)}config.h
sprintf.$(OBJEXT): {$(VPATH)}defines.h
sprintf.$(OBJEXT): {$(VPATH)}encoding.h
sprintf.$(OBJEXT): {$(VPATH)}id.h
-sprintf.$(OBJEXT): {$(VPATH)}id_table.h
sprintf.$(OBJEXT): {$(VPATH)}intern.h
sprintf.$(OBJEXT): {$(VPATH)}internal.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/assume.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/cast.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/config.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/ctype.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/dosish.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/error.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/eval.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/event.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/gc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/glob.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/globals.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/iterator.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/memory.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/method.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/module.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/newobj.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/symbol.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/value.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/value_type.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/variable.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-sprintf.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
sprintf.$(OBJEXT): {$(VPATH)}missing.h
sprintf.$(OBJEXT): {$(VPATH)}onigmo.h
sprintf.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -13085,333 +2873,23 @@ sprintf.$(OBJEXT): {$(VPATH)}subst.h
sprintf.$(OBJEXT): {$(VPATH)}vsnprintf.c
st.$(OBJEXT): $(hdrdir)/ruby.h
st.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-st.$(OBJEXT): $(top_srcdir)/internal/bits.h
-st.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-st.$(OBJEXT): $(top_srcdir)/internal/hash.h
-st.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-st.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-st.$(OBJEXT): $(top_srcdir)/internal/warnings.h
st.$(OBJEXT): {$(VPATH)}assert.h
-st.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-st.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-st.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-st.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-st.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-st.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-st.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-st.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-st.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
st.$(OBJEXT): {$(VPATH)}config.h
st.$(OBJEXT): {$(VPATH)}defines.h
st.$(OBJEXT): {$(VPATH)}intern.h
st.$(OBJEXT): {$(VPATH)}internal.h
-st.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-st.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-st.$(OBJEXT): {$(VPATH)}internal/assume.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-st.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-st.$(OBJEXT): {$(VPATH)}internal/cast.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-st.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-st.$(OBJEXT): {$(VPATH)}internal/config.h
-st.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-st.$(OBJEXT): {$(VPATH)}internal/core.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-st.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-st.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-st.$(OBJEXT): {$(VPATH)}internal/ctype.h
-st.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-st.$(OBJEXT): {$(VPATH)}internal/dosish.h
-st.$(OBJEXT): {$(VPATH)}internal/error.h
-st.$(OBJEXT): {$(VPATH)}internal/eval.h
-st.$(OBJEXT): {$(VPATH)}internal/event.h
-st.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-st.$(OBJEXT): {$(VPATH)}internal/gc.h
-st.$(OBJEXT): {$(VPATH)}internal/glob.h
-st.$(OBJEXT): {$(VPATH)}internal/globals.h
-st.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-st.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-st.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-st.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-st.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-st.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-st.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-st.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-st.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-st.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-st.$(OBJEXT): {$(VPATH)}internal/iterator.h
-st.$(OBJEXT): {$(VPATH)}internal/memory.h
-st.$(OBJEXT): {$(VPATH)}internal/method.h
-st.$(OBJEXT): {$(VPATH)}internal/module.h
-st.$(OBJEXT): {$(VPATH)}internal/newobj.h
-st.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-st.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-st.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-st.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-st.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-st.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-st.$(OBJEXT): {$(VPATH)}internal/symbol.h
-st.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-st.$(OBJEXT): {$(VPATH)}internal/value.h
-st.$(OBJEXT): {$(VPATH)}internal/value_type.h
-st.$(OBJEXT): {$(VPATH)}internal/variable.h
-st.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-st.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
st.$(OBJEXT): {$(VPATH)}missing.h
st.$(OBJEXT): {$(VPATH)}st.c
st.$(OBJEXT): {$(VPATH)}st.h
st.$(OBJEXT): {$(VPATH)}subst.h
strftime.$(OBJEXT): $(hdrdir)/ruby.h
strftime.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/serial.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/string.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/util.h
-strftime.$(OBJEXT): $(top_srcdir)/internal/vm.h
strftime.$(OBJEXT): {$(VPATH)}assert.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-strftime.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
strftime.$(OBJEXT): {$(VPATH)}config.h
strftime.$(OBJEXT): {$(VPATH)}defines.h
strftime.$(OBJEXT): {$(VPATH)}encoding.h
strftime.$(OBJEXT): {$(VPATH)}intern.h
strftime.$(OBJEXT): {$(VPATH)}internal.h
-strftime.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-strftime.$(OBJEXT): {$(VPATH)}internal/assume.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-strftime.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-strftime.$(OBJEXT): {$(VPATH)}internal/cast.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-strftime.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-strftime.$(OBJEXT): {$(VPATH)}internal/config.h
-strftime.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-strftime.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-strftime.$(OBJEXT): {$(VPATH)}internal/ctype.h
-strftime.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-strftime.$(OBJEXT): {$(VPATH)}internal/dosish.h
-strftime.$(OBJEXT): {$(VPATH)}internal/error.h
-strftime.$(OBJEXT): {$(VPATH)}internal/eval.h
-strftime.$(OBJEXT): {$(VPATH)}internal/event.h
-strftime.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-strftime.$(OBJEXT): {$(VPATH)}internal/gc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/glob.h
-strftime.$(OBJEXT): {$(VPATH)}internal/globals.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-strftime.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-strftime.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-strftime.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-strftime.$(OBJEXT): {$(VPATH)}internal/iterator.h
-strftime.$(OBJEXT): {$(VPATH)}internal/memory.h
-strftime.$(OBJEXT): {$(VPATH)}internal/method.h
-strftime.$(OBJEXT): {$(VPATH)}internal/module.h
-strftime.$(OBJEXT): {$(VPATH)}internal/newobj.h
-strftime.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-strftime.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-strftime.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-strftime.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-strftime.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-strftime.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-strftime.$(OBJEXT): {$(VPATH)}internal/symbol.h
-strftime.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-strftime.$(OBJEXT): {$(VPATH)}internal/value.h
-strftime.$(OBJEXT): {$(VPATH)}internal/value_type.h
-strftime.$(OBJEXT): {$(VPATH)}internal/variable.h
-strftime.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-strftime.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
strftime.$(OBJEXT): {$(VPATH)}missing.h
strftime.$(OBJEXT): {$(VPATH)}onigmo.h
strftime.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -13421,37 +2899,7 @@ strftime.$(OBJEXT): {$(VPATH)}subst.h
strftime.$(OBJEXT): {$(VPATH)}timev.h
string.$(OBJEXT): $(hdrdir)/ruby.h
string.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-string.$(OBJEXT): $(top_srcdir)/internal/array.h
-string.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-string.$(OBJEXT): $(top_srcdir)/internal/bits.h
-string.$(OBJEXT): $(top_srcdir)/internal/class.h
-string.$(OBJEXT): $(top_srcdir)/internal/compar.h
-string.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-string.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-string.$(OBJEXT): $(top_srcdir)/internal/error.h
-string.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-string.$(OBJEXT): $(top_srcdir)/internal/gc.h
-string.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-string.$(OBJEXT): $(top_srcdir)/internal/object.h
-string.$(OBJEXT): $(top_srcdir)/internal/proc.h
-string.$(OBJEXT): $(top_srcdir)/internal/re.h
-string.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-string.$(OBJEXT): $(top_srcdir)/internal/serial.h
-string.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-string.$(OBJEXT): $(top_srcdir)/internal/string.h
-string.$(OBJEXT): $(top_srcdir)/internal/transcode.h
-string.$(OBJEXT): $(top_srcdir)/internal/vm.h
-string.$(OBJEXT): $(top_srcdir)/internal/warnings.h
string.$(OBJEXT): {$(VPATH)}assert.h
-string.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-string.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-string.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-string.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-string.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-string.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-string.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-string.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-string.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
string.$(OBJEXT): {$(VPATH)}config.h
string.$(OBJEXT): {$(VPATH)}crypt.h
string.$(OBJEXT): {$(VPATH)}debug_counter.h
@@ -13460,152 +2908,9 @@ string.$(OBJEXT): {$(VPATH)}encindex.h
string.$(OBJEXT): {$(VPATH)}encoding.h
string.$(OBJEXT): {$(VPATH)}gc.h
string.$(OBJEXT): {$(VPATH)}id.h
-string.$(OBJEXT): {$(VPATH)}id_table.h
string.$(OBJEXT): {$(VPATH)}intern.h
string.$(OBJEXT): {$(VPATH)}internal.h
-string.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-string.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-string.$(OBJEXT): {$(VPATH)}internal/assume.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-string.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-string.$(OBJEXT): {$(VPATH)}internal/cast.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-string.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-string.$(OBJEXT): {$(VPATH)}internal/config.h
-string.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-string.$(OBJEXT): {$(VPATH)}internal/core.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h
-string.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-string.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-string.$(OBJEXT): {$(VPATH)}internal/ctype.h
-string.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-string.$(OBJEXT): {$(VPATH)}internal/dosish.h
-string.$(OBJEXT): {$(VPATH)}internal/error.h
-string.$(OBJEXT): {$(VPATH)}internal/eval.h
-string.$(OBJEXT): {$(VPATH)}internal/event.h
-string.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-string.$(OBJEXT): {$(VPATH)}internal/gc.h
-string.$(OBJEXT): {$(VPATH)}internal/glob.h
-string.$(OBJEXT): {$(VPATH)}internal/globals.h
-string.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-string.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-string.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-string.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-string.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-string.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-string.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-string.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-string.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-string.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-string.$(OBJEXT): {$(VPATH)}internal/iterator.h
-string.$(OBJEXT): {$(VPATH)}internal/memory.h
-string.$(OBJEXT): {$(VPATH)}internal/method.h
-string.$(OBJEXT): {$(VPATH)}internal/module.h
-string.$(OBJEXT): {$(VPATH)}internal/newobj.h
-string.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-string.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-string.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-string.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-string.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-string.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-string.$(OBJEXT): {$(VPATH)}internal/symbol.h
-string.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-string.$(OBJEXT): {$(VPATH)}internal/value.h
-string.$(OBJEXT): {$(VPATH)}internal/value_type.h
-string.$(OBJEXT): {$(VPATH)}internal/variable.h
-string.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-string.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
string.$(OBJEXT): {$(VPATH)}missing.h
-string.$(OBJEXT): {$(VPATH)}node.h
string.$(OBJEXT): {$(VPATH)}onigmo.h
string.$(OBJEXT): {$(VPATH)}oniguruma.h
string.$(OBJEXT): {$(VPATH)}probes.dmyh
@@ -13617,32 +2922,10 @@ string.$(OBJEXT): {$(VPATH)}st.h
string.$(OBJEXT): {$(VPATH)}string.c
string.$(OBJEXT): {$(VPATH)}subst.h
string.$(OBJEXT): {$(VPATH)}util.h
-string.$(OBJEXT): {$(VPATH)}vm_debug.h
-string.$(OBJEXT): {$(VPATH)}vm_sync.h
strlcat.$(OBJEXT): {$(VPATH)}config.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/config.h
-strlcat.$(OBJEXT): {$(VPATH)}internal/dllexport.h
strlcat.$(OBJEXT): {$(VPATH)}missing.h
strlcat.$(OBJEXT): {$(VPATH)}strlcat.c
strlcpy.$(OBJEXT): {$(VPATH)}config.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/config.h
-strlcpy.$(OBJEXT): {$(VPATH)}internal/dllexport.h
strlcpy.$(OBJEXT): {$(VPATH)}missing.h
strlcpy.$(OBJEXT): {$(VPATH)}strlcpy.c
struct.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
@@ -13651,186 +2934,15 @@ struct.$(OBJEXT): $(CCAN_DIR)/list/list.h
struct.$(OBJEXT): $(CCAN_DIR)/str/str.h
struct.$(OBJEXT): $(hdrdir)/ruby.h
struct.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-struct.$(OBJEXT): $(top_srcdir)/internal/array.h
-struct.$(OBJEXT): $(top_srcdir)/internal/class.h
-struct.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-struct.$(OBJEXT): $(top_srcdir)/internal/error.h
-struct.$(OBJEXT): $(top_srcdir)/internal/gc.h
-struct.$(OBJEXT): $(top_srcdir)/internal/hash.h
-struct.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-struct.$(OBJEXT): $(top_srcdir)/internal/object.h
-struct.$(OBJEXT): $(top_srcdir)/internal/proc.h
-struct.$(OBJEXT): $(top_srcdir)/internal/serial.h
-struct.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-struct.$(OBJEXT): $(top_srcdir)/internal/string.h
-struct.$(OBJEXT): $(top_srcdir)/internal/struct.h
-struct.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-struct.$(OBJEXT): $(top_srcdir)/internal/vm.h
-struct.$(OBJEXT): $(top_srcdir)/internal/warnings.h
struct.$(OBJEXT): {$(VPATH)}assert.h
-struct.$(OBJEXT): {$(VPATH)}atomic.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-struct.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-struct.$(OBJEXT): {$(VPATH)}builtin.h
struct.$(OBJEXT): {$(VPATH)}config.h
struct.$(OBJEXT): {$(VPATH)}defines.h
-struct.$(OBJEXT): {$(VPATH)}encoding.h
struct.$(OBJEXT): {$(VPATH)}id.h
-struct.$(OBJEXT): {$(VPATH)}id_table.h
struct.$(OBJEXT): {$(VPATH)}intern.h
struct.$(OBJEXT): {$(VPATH)}internal.h
-struct.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-struct.$(OBJEXT): {$(VPATH)}internal/assume.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-struct.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-struct.$(OBJEXT): {$(VPATH)}internal/cast.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-struct.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-struct.$(OBJEXT): {$(VPATH)}internal/config.h
-struct.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-struct.$(OBJEXT): {$(VPATH)}internal/core.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-struct.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-struct.$(OBJEXT): {$(VPATH)}internal/ctype.h
-struct.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-struct.$(OBJEXT): {$(VPATH)}internal/dosish.h
-struct.$(OBJEXT): {$(VPATH)}internal/error.h
-struct.$(OBJEXT): {$(VPATH)}internal/eval.h
-struct.$(OBJEXT): {$(VPATH)}internal/event.h
-struct.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-struct.$(OBJEXT): {$(VPATH)}internal/gc.h
-struct.$(OBJEXT): {$(VPATH)}internal/glob.h
-struct.$(OBJEXT): {$(VPATH)}internal/globals.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-struct.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-struct.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-struct.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-struct.$(OBJEXT): {$(VPATH)}internal/iterator.h
-struct.$(OBJEXT): {$(VPATH)}internal/memory.h
-struct.$(OBJEXT): {$(VPATH)}internal/method.h
-struct.$(OBJEXT): {$(VPATH)}internal/module.h
-struct.$(OBJEXT): {$(VPATH)}internal/newobj.h
-struct.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-struct.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-struct.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-struct.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-struct.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-struct.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-struct.$(OBJEXT): {$(VPATH)}internal/symbol.h
-struct.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-struct.$(OBJEXT): {$(VPATH)}internal/value.h
-struct.$(OBJEXT): {$(VPATH)}internal/value_type.h
-struct.$(OBJEXT): {$(VPATH)}internal/variable.h
-struct.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-struct.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
struct.$(OBJEXT): {$(VPATH)}method.h
struct.$(OBJEXT): {$(VPATH)}missing.h
struct.$(OBJEXT): {$(VPATH)}node.h
-struct.$(OBJEXT): {$(VPATH)}onigmo.h
-struct.$(OBJEXT): {$(VPATH)}oniguruma.h
struct.$(OBJEXT): {$(VPATH)}ruby_assert.h
struct.$(OBJEXT): {$(VPATH)}ruby_atomic.h
struct.$(OBJEXT): {$(VPATH)}st.h
@@ -13843,30 +2955,8 @@ struct.$(OBJEXT): {$(VPATH)}vm_core.h
struct.$(OBJEXT): {$(VPATH)}vm_opts.h
symbol.$(OBJEXT): $(hdrdir)/ruby.h
symbol.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/class.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/error.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/gc.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/hash.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/object.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/serial.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/string.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/vm.h
-symbol.$(OBJEXT): $(top_srcdir)/internal/warnings.h
symbol.$(OBJEXT): {$(VPATH)}assert.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-symbol.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
symbol.$(OBJEXT): {$(VPATH)}config.h
-symbol.$(OBJEXT): {$(VPATH)}debug_counter.h
symbol.$(OBJEXT): {$(VPATH)}defines.h
symbol.$(OBJEXT): {$(VPATH)}encoding.h
symbol.$(OBJEXT): {$(VPATH)}gc.h
@@ -13876,148 +2966,7 @@ symbol.$(OBJEXT): {$(VPATH)}id_table.c
symbol.$(OBJEXT): {$(VPATH)}id_table.h
symbol.$(OBJEXT): {$(VPATH)}intern.h
symbol.$(OBJEXT): {$(VPATH)}internal.h
-symbol.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-symbol.$(OBJEXT): {$(VPATH)}internal/assume.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-symbol.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-symbol.$(OBJEXT): {$(VPATH)}internal/cast.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-symbol.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-symbol.$(OBJEXT): {$(VPATH)}internal/config.h
-symbol.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-symbol.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-symbol.$(OBJEXT): {$(VPATH)}internal/ctype.h
-symbol.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-symbol.$(OBJEXT): {$(VPATH)}internal/dosish.h
-symbol.$(OBJEXT): {$(VPATH)}internal/error.h
-symbol.$(OBJEXT): {$(VPATH)}internal/eval.h
-symbol.$(OBJEXT): {$(VPATH)}internal/event.h
-symbol.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-symbol.$(OBJEXT): {$(VPATH)}internal/gc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/glob.h
-symbol.$(OBJEXT): {$(VPATH)}internal/globals.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-symbol.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-symbol.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-symbol.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-symbol.$(OBJEXT): {$(VPATH)}internal/iterator.h
-symbol.$(OBJEXT): {$(VPATH)}internal/memory.h
-symbol.$(OBJEXT): {$(VPATH)}internal/method.h
-symbol.$(OBJEXT): {$(VPATH)}internal/module.h
-symbol.$(OBJEXT): {$(VPATH)}internal/newobj.h
-symbol.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-symbol.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-symbol.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-symbol.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-symbol.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-symbol.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-symbol.$(OBJEXT): {$(VPATH)}internal/symbol.h
-symbol.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-symbol.$(OBJEXT): {$(VPATH)}internal/value.h
-symbol.$(OBJEXT): {$(VPATH)}internal/value_type.h
-symbol.$(OBJEXT): {$(VPATH)}internal/variable.h
-symbol.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-symbol.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
symbol.$(OBJEXT): {$(VPATH)}missing.h
-symbol.$(OBJEXT): {$(VPATH)}node.h
symbol.$(OBJEXT): {$(VPATH)}onigmo.h
symbol.$(OBJEXT): {$(VPATH)}oniguruma.h
symbol.$(OBJEXT): {$(VPATH)}probes.dmyh
@@ -14027,47 +2976,13 @@ symbol.$(OBJEXT): {$(VPATH)}st.h
symbol.$(OBJEXT): {$(VPATH)}subst.h
symbol.$(OBJEXT): {$(VPATH)}symbol.c
symbol.$(OBJEXT): {$(VPATH)}symbol.h
-symbol.$(OBJEXT): {$(VPATH)}vm_debug.h
-symbol.$(OBJEXT): {$(VPATH)}vm_sync.h
thread.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
thread.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
thread.$(OBJEXT): $(CCAN_DIR)/list/list.h
thread.$(OBJEXT): $(CCAN_DIR)/str/str.h
thread.$(OBJEXT): $(hdrdir)/ruby.h
thread.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-thread.$(OBJEXT): $(top_srcdir)/internal/array.h
-thread.$(OBJEXT): $(top_srcdir)/internal/bits.h
-thread.$(OBJEXT): $(top_srcdir)/internal/class.h
-thread.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-thread.$(OBJEXT): $(top_srcdir)/internal/cont.h
-thread.$(OBJEXT): $(top_srcdir)/internal/error.h
-thread.$(OBJEXT): $(top_srcdir)/internal/gc.h
-thread.$(OBJEXT): $(top_srcdir)/internal/hash.h
-thread.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-thread.$(OBJEXT): $(top_srcdir)/internal/io.h
-thread.$(OBJEXT): $(top_srcdir)/internal/object.h
-thread.$(OBJEXT): $(top_srcdir)/internal/proc.h
-thread.$(OBJEXT): $(top_srcdir)/internal/scheduler.h
-thread.$(OBJEXT): $(top_srcdir)/internal/serial.h
-thread.$(OBJEXT): $(top_srcdir)/internal/signal.h
-thread.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-thread.$(OBJEXT): $(top_srcdir)/internal/string.h
-thread.$(OBJEXT): $(top_srcdir)/internal/thread.h
-thread.$(OBJEXT): $(top_srcdir)/internal/time.h
-thread.$(OBJEXT): $(top_srcdir)/internal/vm.h
-thread.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-thread.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)
thread.$(OBJEXT): {$(VPATH)}assert.h
-thread.$(OBJEXT): {$(VPATH)}atomic.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-thread.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
thread.$(OBJEXT): {$(VPATH)}config.h
thread.$(OBJEXT): {$(VPATH)}debug.h
thread.$(OBJEXT): {$(VPATH)}debug_counter.h
@@ -14077,149 +2992,8 @@ thread.$(OBJEXT): {$(VPATH)}eval_intern.h
thread.$(OBJEXT): {$(VPATH)}gc.h
thread.$(OBJEXT): {$(VPATH)}hrtime.h
thread.$(OBJEXT): {$(VPATH)}id.h
-thread.$(OBJEXT): {$(VPATH)}id_table.h
thread.$(OBJEXT): {$(VPATH)}intern.h
thread.$(OBJEXT): {$(VPATH)}internal.h
-thread.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-thread.$(OBJEXT): {$(VPATH)}internal/assume.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-thread.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-thread.$(OBJEXT): {$(VPATH)}internal/cast.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-thread.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-thread.$(OBJEXT): {$(VPATH)}internal/config.h
-thread.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-thread.$(OBJEXT): {$(VPATH)}internal/core.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-thread.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-thread.$(OBJEXT): {$(VPATH)}internal/ctype.h
-thread.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-thread.$(OBJEXT): {$(VPATH)}internal/dosish.h
-thread.$(OBJEXT): {$(VPATH)}internal/error.h
-thread.$(OBJEXT): {$(VPATH)}internal/eval.h
-thread.$(OBJEXT): {$(VPATH)}internal/event.h
-thread.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-thread.$(OBJEXT): {$(VPATH)}internal/gc.h
-thread.$(OBJEXT): {$(VPATH)}internal/glob.h
-thread.$(OBJEXT): {$(VPATH)}internal/globals.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-thread.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-thread.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-thread.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-thread.$(OBJEXT): {$(VPATH)}internal/iterator.h
-thread.$(OBJEXT): {$(VPATH)}internal/memory.h
-thread.$(OBJEXT): {$(VPATH)}internal/method.h
-thread.$(OBJEXT): {$(VPATH)}internal/module.h
-thread.$(OBJEXT): {$(VPATH)}internal/newobj.h
-thread.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-thread.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-thread.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-thread.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-thread.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-thread.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-thread.$(OBJEXT): {$(VPATH)}internal/symbol.h
-thread.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-thread.$(OBJEXT): {$(VPATH)}internal/value.h
-thread.$(OBJEXT): {$(VPATH)}internal/value_type.h
-thread.$(OBJEXT): {$(VPATH)}internal/variable.h
-thread.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-thread.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
thread.$(OBJEXT): {$(VPATH)}io.h
thread.$(OBJEXT): {$(VPATH)}iseq.h
thread.$(OBJEXT): {$(VPATH)}method.h
@@ -14228,8 +3002,6 @@ thread.$(OBJEXT): {$(VPATH)}mjit.h
thread.$(OBJEXT): {$(VPATH)}node.h
thread.$(OBJEXT): {$(VPATH)}onigmo.h
thread.$(OBJEXT): {$(VPATH)}oniguruma.h
-thread.$(OBJEXT): {$(VPATH)}ractor.h
-thread.$(OBJEXT): {$(VPATH)}ractor_core.h
thread.$(OBJEXT): {$(VPATH)}ruby_assert.h
thread.$(OBJEXT): {$(VPATH)}ruby_atomic.h
thread.$(OBJEXT): {$(VPATH)}st.h
@@ -14242,363 +3014,31 @@ thread.$(OBJEXT): {$(VPATH)}thread_native.h
thread.$(OBJEXT): {$(VPATH)}thread_sync.c
thread.$(OBJEXT): {$(VPATH)}timev.h
thread.$(OBJEXT): {$(VPATH)}vm_core.h
-thread.$(OBJEXT): {$(VPATH)}vm_debug.h
thread.$(OBJEXT): {$(VPATH)}vm_opts.h
-thread.$(OBJEXT): {$(VPATH)}vm_sync.h
time.$(OBJEXT): $(hdrdir)/ruby.h
time.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-time.$(OBJEXT): $(top_srcdir)/internal/array.h
-time.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-time.$(OBJEXT): $(top_srcdir)/internal/bits.h
-time.$(OBJEXT): $(top_srcdir)/internal/compar.h
-time.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-time.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-time.$(OBJEXT): $(top_srcdir)/internal/gc.h
-time.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-time.$(OBJEXT): $(top_srcdir)/internal/rational.h
-time.$(OBJEXT): $(top_srcdir)/internal/serial.h
-time.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-time.$(OBJEXT): $(top_srcdir)/internal/string.h
-time.$(OBJEXT): $(top_srcdir)/internal/time.h
-time.$(OBJEXT): $(top_srcdir)/internal/variable.h
-time.$(OBJEXT): $(top_srcdir)/internal/vm.h
-time.$(OBJEXT): $(top_srcdir)/internal/warnings.h
time.$(OBJEXT): {$(VPATH)}assert.h
-time.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-time.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-time.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-time.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-time.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-time.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-time.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-time.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-time.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
time.$(OBJEXT): {$(VPATH)}config.h
-time.$(OBJEXT): {$(VPATH)}constant.h
time.$(OBJEXT): {$(VPATH)}defines.h
time.$(OBJEXT): {$(VPATH)}encoding.h
time.$(OBJEXT): {$(VPATH)}id.h
-time.$(OBJEXT): {$(VPATH)}id_table.h
time.$(OBJEXT): {$(VPATH)}intern.h
time.$(OBJEXT): {$(VPATH)}internal.h
-time.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-time.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-time.$(OBJEXT): {$(VPATH)}internal/assume.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-time.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-time.$(OBJEXT): {$(VPATH)}internal/cast.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-time.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-time.$(OBJEXT): {$(VPATH)}internal/config.h
-time.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-time.$(OBJEXT): {$(VPATH)}internal/core.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-time.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-time.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-time.$(OBJEXT): {$(VPATH)}internal/ctype.h
-time.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-time.$(OBJEXT): {$(VPATH)}internal/dosish.h
-time.$(OBJEXT): {$(VPATH)}internal/error.h
-time.$(OBJEXT): {$(VPATH)}internal/eval.h
-time.$(OBJEXT): {$(VPATH)}internal/event.h
-time.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-time.$(OBJEXT): {$(VPATH)}internal/gc.h
-time.$(OBJEXT): {$(VPATH)}internal/glob.h
-time.$(OBJEXT): {$(VPATH)}internal/globals.h
-time.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-time.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-time.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-time.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-time.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-time.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-time.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-time.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-time.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-time.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-time.$(OBJEXT): {$(VPATH)}internal/iterator.h
-time.$(OBJEXT): {$(VPATH)}internal/memory.h
-time.$(OBJEXT): {$(VPATH)}internal/method.h
-time.$(OBJEXT): {$(VPATH)}internal/module.h
-time.$(OBJEXT): {$(VPATH)}internal/newobj.h
-time.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-time.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-time.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-time.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-time.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-time.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-time.$(OBJEXT): {$(VPATH)}internal/symbol.h
-time.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-time.$(OBJEXT): {$(VPATH)}internal/value.h
-time.$(OBJEXT): {$(VPATH)}internal/value_type.h
-time.$(OBJEXT): {$(VPATH)}internal/variable.h
-time.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-time.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
time.$(OBJEXT): {$(VPATH)}missing.h
time.$(OBJEXT): {$(VPATH)}onigmo.h
time.$(OBJEXT): {$(VPATH)}oniguruma.h
-time.$(OBJEXT): {$(VPATH)}ruby_assert.h
time.$(OBJEXT): {$(VPATH)}st.h
time.$(OBJEXT): {$(VPATH)}subst.h
time.$(OBJEXT): {$(VPATH)}time.c
time.$(OBJEXT): {$(VPATH)}timev.h
transcode.$(OBJEXT): $(hdrdir)/ruby.h
transcode.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/array.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/class.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/gc.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/inits.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/object.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/serial.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/string.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/transcode.h
-transcode.$(OBJEXT): $(top_srcdir)/internal/warnings.h
transcode.$(OBJEXT): {$(VPATH)}assert.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-transcode.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
transcode.$(OBJEXT): {$(VPATH)}config.h
transcode.$(OBJEXT): {$(VPATH)}defines.h
transcode.$(OBJEXT): {$(VPATH)}encoding.h
-transcode.$(OBJEXT): {$(VPATH)}id.h
-transcode.$(OBJEXT): {$(VPATH)}id_table.h
transcode.$(OBJEXT): {$(VPATH)}intern.h
transcode.$(OBJEXT): {$(VPATH)}internal.h
-transcode.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-transcode.$(OBJEXT): {$(VPATH)}internal/assume.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-transcode.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-transcode.$(OBJEXT): {$(VPATH)}internal/cast.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-transcode.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-transcode.$(OBJEXT): {$(VPATH)}internal/config.h
-transcode.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-transcode.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-transcode.$(OBJEXT): {$(VPATH)}internal/ctype.h
-transcode.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-transcode.$(OBJEXT): {$(VPATH)}internal/dosish.h
-transcode.$(OBJEXT): {$(VPATH)}internal/error.h
-transcode.$(OBJEXT): {$(VPATH)}internal/eval.h
-transcode.$(OBJEXT): {$(VPATH)}internal/event.h
-transcode.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-transcode.$(OBJEXT): {$(VPATH)}internal/gc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/glob.h
-transcode.$(OBJEXT): {$(VPATH)}internal/globals.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-transcode.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-transcode.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-transcode.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-transcode.$(OBJEXT): {$(VPATH)}internal/iterator.h
-transcode.$(OBJEXT): {$(VPATH)}internal/memory.h
-transcode.$(OBJEXT): {$(VPATH)}internal/method.h
-transcode.$(OBJEXT): {$(VPATH)}internal/module.h
-transcode.$(OBJEXT): {$(VPATH)}internal/newobj.h
-transcode.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-transcode.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-transcode.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-transcode.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-transcode.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-transcode.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-transcode.$(OBJEXT): {$(VPATH)}internal/symbol.h
-transcode.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-transcode.$(OBJEXT): {$(VPATH)}internal/value.h
-transcode.$(OBJEXT): {$(VPATH)}internal/value_type.h
-transcode.$(OBJEXT): {$(VPATH)}internal/variable.h
-transcode.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-transcode.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
transcode.$(OBJEXT): {$(VPATH)}missing.h
transcode.$(OBJEXT): {$(VPATH)}onigmo.h
transcode.$(OBJEXT): {$(VPATH)}oniguruma.h
@@ -14606,364 +3046,33 @@ transcode.$(OBJEXT): {$(VPATH)}st.h
transcode.$(OBJEXT): {$(VPATH)}subst.h
transcode.$(OBJEXT): {$(VPATH)}transcode.c
transcode.$(OBJEXT): {$(VPATH)}transcode_data.h
-transient_heap.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-transient_heap.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-transient_heap.$(OBJEXT): $(CCAN_DIR)/list/list.h
-transient_heap.$(OBJEXT): $(CCAN_DIR)/str/str.h
transient_heap.$(OBJEXT): $(hdrdir)/ruby.h
transient_heap.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/array.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/gc.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/hash.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/serial.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/struct.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/variable.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/vm.h
-transient_heap.$(OBJEXT): $(top_srcdir)/internal/warnings.h
transient_heap.$(OBJEXT): {$(VPATH)}assert.h
-transient_heap.$(OBJEXT): {$(VPATH)}atomic.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-transient_heap.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
transient_heap.$(OBJEXT): {$(VPATH)}config.h
-transient_heap.$(OBJEXT): {$(VPATH)}constant.h
transient_heap.$(OBJEXT): {$(VPATH)}debug.h
transient_heap.$(OBJEXT): {$(VPATH)}debug_counter.h
transient_heap.$(OBJEXT): {$(VPATH)}defines.h
transient_heap.$(OBJEXT): {$(VPATH)}gc.h
-transient_heap.$(OBJEXT): {$(VPATH)}id.h
-transient_heap.$(OBJEXT): {$(VPATH)}id_table.h
transient_heap.$(OBJEXT): {$(VPATH)}intern.h
transient_heap.$(OBJEXT): {$(VPATH)}internal.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/assume.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/cast.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/config.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/ctype.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/dosish.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/error.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/eval.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/event.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/gc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/glob.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/globals.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/iterator.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/memory.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/method.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/module.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/newobj.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/symbol.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/value.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/value_type.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/variable.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-transient_heap.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-transient_heap.$(OBJEXT): {$(VPATH)}method.h
transient_heap.$(OBJEXT): {$(VPATH)}missing.h
transient_heap.$(OBJEXT): {$(VPATH)}node.h
transient_heap.$(OBJEXT): {$(VPATH)}ruby_assert.h
-transient_heap.$(OBJEXT): {$(VPATH)}ruby_atomic.h
transient_heap.$(OBJEXT): {$(VPATH)}st.h
transient_heap.$(OBJEXT): {$(VPATH)}subst.h
-transient_heap.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-transient_heap.$(OBJEXT): {$(VPATH)}thread_native.h
transient_heap.$(OBJEXT): {$(VPATH)}transient_heap.c
transient_heap.$(OBJEXT): {$(VPATH)}transient_heap.h
-transient_heap.$(OBJEXT): {$(VPATH)}vm_core.h
transient_heap.$(OBJEXT): {$(VPATH)}vm_debug.h
-transient_heap.$(OBJEXT): {$(VPATH)}vm_opts.h
-transient_heap.$(OBJEXT): {$(VPATH)}vm_sync.h
util.$(OBJEXT): $(hdrdir)/ruby.h
util.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-util.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-util.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-util.$(OBJEXT): $(top_srcdir)/internal/util.h
-util.$(OBJEXT): $(top_srcdir)/internal/warnings.h
util.$(OBJEXT): {$(VPATH)}assert.h
-util.$(OBJEXT): {$(VPATH)}atomic.h
-util.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-util.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-util.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-util.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-util.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-util.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-util.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-util.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-util.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
util.$(OBJEXT): {$(VPATH)}config.h
util.$(OBJEXT): {$(VPATH)}defines.h
util.$(OBJEXT): {$(VPATH)}dtoa.c
util.$(OBJEXT): {$(VPATH)}intern.h
util.$(OBJEXT): {$(VPATH)}internal.h
-util.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-util.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-util.$(OBJEXT): {$(VPATH)}internal/assume.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-util.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-util.$(OBJEXT): {$(VPATH)}internal/cast.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-util.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-util.$(OBJEXT): {$(VPATH)}internal/config.h
-util.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-util.$(OBJEXT): {$(VPATH)}internal/core.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-util.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-util.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-util.$(OBJEXT): {$(VPATH)}internal/ctype.h
-util.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-util.$(OBJEXT): {$(VPATH)}internal/dosish.h
-util.$(OBJEXT): {$(VPATH)}internal/error.h
-util.$(OBJEXT): {$(VPATH)}internal/eval.h
-util.$(OBJEXT): {$(VPATH)}internal/event.h
-util.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-util.$(OBJEXT): {$(VPATH)}internal/gc.h
-util.$(OBJEXT): {$(VPATH)}internal/glob.h
-util.$(OBJEXT): {$(VPATH)}internal/globals.h
-util.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-util.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-util.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-util.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-util.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-util.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-util.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-util.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-util.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-util.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-util.$(OBJEXT): {$(VPATH)}internal/iterator.h
-util.$(OBJEXT): {$(VPATH)}internal/memory.h
-util.$(OBJEXT): {$(VPATH)}internal/method.h
-util.$(OBJEXT): {$(VPATH)}internal/module.h
-util.$(OBJEXT): {$(VPATH)}internal/newobj.h
-util.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-util.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-util.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-util.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-util.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-util.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-util.$(OBJEXT): {$(VPATH)}internal/symbol.h
-util.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-util.$(OBJEXT): {$(VPATH)}internal/value.h
-util.$(OBJEXT): {$(VPATH)}internal/value_type.h
-util.$(OBJEXT): {$(VPATH)}internal/variable.h
-util.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-util.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
util.$(OBJEXT): {$(VPATH)}missing.h
-util.$(OBJEXT): {$(VPATH)}ruby_atomic.h
util.$(OBJEXT): {$(VPATH)}st.h
util.$(OBJEXT): {$(VPATH)}subst.h
util.$(OBJEXT): {$(VPATH)}util.c
@@ -14974,35 +3083,7 @@ variable.$(OBJEXT): $(CCAN_DIR)/list/list.h
variable.$(OBJEXT): $(CCAN_DIR)/str/str.h
variable.$(OBJEXT): $(hdrdir)/ruby.h
variable.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-variable.$(OBJEXT): $(top_srcdir)/internal/array.h
-variable.$(OBJEXT): $(top_srcdir)/internal/class.h
-variable.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-variable.$(OBJEXT): $(top_srcdir)/internal/error.h
-variable.$(OBJEXT): $(top_srcdir)/internal/eval.h
-variable.$(OBJEXT): $(top_srcdir)/internal/gc.h
-variable.$(OBJEXT): $(top_srcdir)/internal/hash.h
-variable.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-variable.$(OBJEXT): $(top_srcdir)/internal/object.h
-variable.$(OBJEXT): $(top_srcdir)/internal/re.h
-variable.$(OBJEXT): $(top_srcdir)/internal/serial.h
-variable.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-variable.$(OBJEXT): $(top_srcdir)/internal/string.h
-variable.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-variable.$(OBJEXT): $(top_srcdir)/internal/thread.h
-variable.$(OBJEXT): $(top_srcdir)/internal/variable.h
-variable.$(OBJEXT): $(top_srcdir)/internal/vm.h
-variable.$(OBJEXT): $(top_srcdir)/internal/warnings.h
variable.$(OBJEXT): {$(VPATH)}assert.h
-variable.$(OBJEXT): {$(VPATH)}atomic.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-variable.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
variable.$(OBJEXT): {$(VPATH)}config.h
variable.$(OBJEXT): {$(VPATH)}constant.h
variable.$(OBJEXT): {$(VPATH)}debug_counter.h
@@ -15012,153 +3093,11 @@ variable.$(OBJEXT): {$(VPATH)}id.h
variable.$(OBJEXT): {$(VPATH)}id_table.h
variable.$(OBJEXT): {$(VPATH)}intern.h
variable.$(OBJEXT): {$(VPATH)}internal.h
-variable.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-variable.$(OBJEXT): {$(VPATH)}internal/assume.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-variable.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-variable.$(OBJEXT): {$(VPATH)}internal/cast.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-variable.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-variable.$(OBJEXT): {$(VPATH)}internal/config.h
-variable.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-variable.$(OBJEXT): {$(VPATH)}internal/core.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-variable.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-variable.$(OBJEXT): {$(VPATH)}internal/ctype.h
-variable.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-variable.$(OBJEXT): {$(VPATH)}internal/dosish.h
-variable.$(OBJEXT): {$(VPATH)}internal/error.h
-variable.$(OBJEXT): {$(VPATH)}internal/eval.h
-variable.$(OBJEXT): {$(VPATH)}internal/event.h
-variable.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-variable.$(OBJEXT): {$(VPATH)}internal/gc.h
-variable.$(OBJEXT): {$(VPATH)}internal/glob.h
-variable.$(OBJEXT): {$(VPATH)}internal/globals.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-variable.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-variable.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-variable.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-variable.$(OBJEXT): {$(VPATH)}internal/iterator.h
-variable.$(OBJEXT): {$(VPATH)}internal/memory.h
-variable.$(OBJEXT): {$(VPATH)}internal/method.h
-variable.$(OBJEXT): {$(VPATH)}internal/module.h
-variable.$(OBJEXT): {$(VPATH)}internal/newobj.h
-variable.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-variable.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-variable.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-variable.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-variable.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-variable.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-variable.$(OBJEXT): {$(VPATH)}internal/symbol.h
-variable.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-variable.$(OBJEXT): {$(VPATH)}internal/value.h
-variable.$(OBJEXT): {$(VPATH)}internal/value_type.h
-variable.$(OBJEXT): {$(VPATH)}internal/variable.h
-variable.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-variable.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
variable.$(OBJEXT): {$(VPATH)}method.h
variable.$(OBJEXT): {$(VPATH)}missing.h
variable.$(OBJEXT): {$(VPATH)}node.h
variable.$(OBJEXT): {$(VPATH)}onigmo.h
variable.$(OBJEXT): {$(VPATH)}oniguruma.h
-variable.$(OBJEXT): {$(VPATH)}ractor.h
-variable.$(OBJEXT): {$(VPATH)}ractor_core.h
variable.$(OBJEXT): {$(VPATH)}ruby_assert.h
variable.$(OBJEXT): {$(VPATH)}ruby_atomic.h
variable.$(OBJEXT): {$(VPATH)}st.h
@@ -15170,9 +3109,7 @@ variable.$(OBJEXT): {$(VPATH)}util.h
variable.$(OBJEXT): {$(VPATH)}variable.c
variable.$(OBJEXT): {$(VPATH)}variable.h
variable.$(OBJEXT): {$(VPATH)}vm_core.h
-variable.$(OBJEXT): {$(VPATH)}vm_debug.h
variable.$(OBJEXT): {$(VPATH)}vm_opts.h
-variable.$(OBJEXT): {$(VPATH)}vm_sync.h
version.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
version.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
version.$(OBJEXT): $(CCAN_DIR)/list/list.h
@@ -15180,173 +3117,15 @@ version.$(OBJEXT): $(CCAN_DIR)/str/str.h
version.$(OBJEXT): $(hdrdir)/ruby.h
version.$(OBJEXT): $(hdrdir)/ruby/ruby.h
version.$(OBJEXT): $(hdrdir)/ruby/version.h
-version.$(OBJEXT): $(top_srcdir)/internal/array.h
-version.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-version.$(OBJEXT): $(top_srcdir)/internal/gc.h
-version.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-version.$(OBJEXT): $(top_srcdir)/internal/serial.h
-version.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-version.$(OBJEXT): $(top_srcdir)/internal/vm.h
-version.$(OBJEXT): $(top_srcdir)/internal/warnings.h
version.$(OBJEXT): $(top_srcdir)/revision.h
version.$(OBJEXT): $(top_srcdir)/version.h
version.$(OBJEXT): {$(VPATH)}assert.h
-version.$(OBJEXT): {$(VPATH)}atomic.h
-version.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-version.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-version.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-version.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-version.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-version.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-version.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-version.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-version.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
version.$(OBJEXT): {$(VPATH)}config.h
version.$(OBJEXT): {$(VPATH)}debug_counter.h
version.$(OBJEXT): {$(VPATH)}defines.h
version.$(OBJEXT): {$(VPATH)}id.h
version.$(OBJEXT): {$(VPATH)}intern.h
version.$(OBJEXT): {$(VPATH)}internal.h
-version.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-version.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-version.$(OBJEXT): {$(VPATH)}internal/assume.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-version.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-version.$(OBJEXT): {$(VPATH)}internal/cast.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-version.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-version.$(OBJEXT): {$(VPATH)}internal/config.h
-version.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-version.$(OBJEXT): {$(VPATH)}internal/core.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-version.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-version.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-version.$(OBJEXT): {$(VPATH)}internal/ctype.h
-version.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-version.$(OBJEXT): {$(VPATH)}internal/dosish.h
-version.$(OBJEXT): {$(VPATH)}internal/error.h
-version.$(OBJEXT): {$(VPATH)}internal/eval.h
-version.$(OBJEXT): {$(VPATH)}internal/event.h
-version.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-version.$(OBJEXT): {$(VPATH)}internal/gc.h
-version.$(OBJEXT): {$(VPATH)}internal/glob.h
-version.$(OBJEXT): {$(VPATH)}internal/globals.h
-version.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-version.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-version.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-version.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-version.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-version.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-version.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-version.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-version.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-version.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-version.$(OBJEXT): {$(VPATH)}internal/iterator.h
-version.$(OBJEXT): {$(VPATH)}internal/memory.h
-version.$(OBJEXT): {$(VPATH)}internal/method.h
-version.$(OBJEXT): {$(VPATH)}internal/module.h
-version.$(OBJEXT): {$(VPATH)}internal/newobj.h
-version.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-version.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-version.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-version.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-version.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-version.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-version.$(OBJEXT): {$(VPATH)}internal/symbol.h
-version.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-version.$(OBJEXT): {$(VPATH)}internal/value.h
-version.$(OBJEXT): {$(VPATH)}internal/value_type.h
-version.$(OBJEXT): {$(VPATH)}internal/variable.h
-version.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-version.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
version.$(OBJEXT): {$(VPATH)}method.h
version.$(OBJEXT): {$(VPATH)}missing.h
version.$(OBJEXT): {$(VPATH)}mjit.h
@@ -15366,53 +3145,13 @@ vm.$(OBJEXT): $(CCAN_DIR)/list/list.h
vm.$(OBJEXT): $(CCAN_DIR)/str/str.h
vm.$(OBJEXT): $(hdrdir)/ruby.h
vm.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-vm.$(OBJEXT): $(top_srcdir)/internal/array.h
-vm.$(OBJEXT): $(top_srcdir)/internal/bignum.h
-vm.$(OBJEXT): $(top_srcdir)/internal/bits.h
-vm.$(OBJEXT): $(top_srcdir)/internal/class.h
-vm.$(OBJEXT): $(top_srcdir)/internal/compar.h
-vm.$(OBJEXT): $(top_srcdir)/internal/compile.h
-vm.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-vm.$(OBJEXT): $(top_srcdir)/internal/cont.h
-vm.$(OBJEXT): $(top_srcdir)/internal/error.h
-vm.$(OBJEXT): $(top_srcdir)/internal/eval.h
-vm.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
-vm.$(OBJEXT): $(top_srcdir)/internal/gc.h
-vm.$(OBJEXT): $(top_srcdir)/internal/hash.h
-vm.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-vm.$(OBJEXT): $(top_srcdir)/internal/inits.h
-vm.$(OBJEXT): $(top_srcdir)/internal/numeric.h
-vm.$(OBJEXT): $(top_srcdir)/internal/object.h
-vm.$(OBJEXT): $(top_srcdir)/internal/parse.h
-vm.$(OBJEXT): $(top_srcdir)/internal/proc.h
-vm.$(OBJEXT): $(top_srcdir)/internal/random.h
-vm.$(OBJEXT): $(top_srcdir)/internal/re.h
-vm.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
-vm.$(OBJEXT): $(top_srcdir)/internal/serial.h
-vm.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-vm.$(OBJEXT): $(top_srcdir)/internal/string.h
-vm.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-vm.$(OBJEXT): $(top_srcdir)/internal/variable.h
-vm.$(OBJEXT): $(top_srcdir)/internal/vm.h
-vm.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm.$(OBJEXT): {$(VPATH)}assert.h
-vm.$(OBJEXT): {$(VPATH)}atomic.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-vm.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
vm.$(OBJEXT): {$(VPATH)}builtin.h
vm.$(OBJEXT): {$(VPATH)}config.h
vm.$(OBJEXT): {$(VPATH)}constant.h
vm.$(OBJEXT): {$(VPATH)}debug_counter.h
vm.$(OBJEXT): {$(VPATH)}defines.h
vm.$(OBJEXT): {$(VPATH)}defs/opt_operand.def
-vm.$(OBJEXT): {$(VPATH)}encoding.h
vm.$(OBJEXT): {$(VPATH)}eval_intern.h
vm.$(OBJEXT): {$(VPATH)}gc.h
vm.$(OBJEXT): {$(VPATH)}id.h
@@ -15422,158 +3161,14 @@ vm.$(OBJEXT): {$(VPATH)}insns.inc
vm.$(OBJEXT): {$(VPATH)}insns_info.inc
vm.$(OBJEXT): {$(VPATH)}intern.h
vm.$(OBJEXT): {$(VPATH)}internal.h
-vm.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-vm.$(OBJEXT): {$(VPATH)}internal/assume.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-vm.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-vm.$(OBJEXT): {$(VPATH)}internal/cast.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-vm.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-vm.$(OBJEXT): {$(VPATH)}internal/config.h
-vm.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-vm.$(OBJEXT): {$(VPATH)}internal/core.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-vm.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-vm.$(OBJEXT): {$(VPATH)}internal/ctype.h
-vm.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-vm.$(OBJEXT): {$(VPATH)}internal/dosish.h
-vm.$(OBJEXT): {$(VPATH)}internal/error.h
-vm.$(OBJEXT): {$(VPATH)}internal/eval.h
-vm.$(OBJEXT): {$(VPATH)}internal/event.h
-vm.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-vm.$(OBJEXT): {$(VPATH)}internal/gc.h
-vm.$(OBJEXT): {$(VPATH)}internal/glob.h
-vm.$(OBJEXT): {$(VPATH)}internal/globals.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-vm.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-vm.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-vm.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-vm.$(OBJEXT): {$(VPATH)}internal/iterator.h
-vm.$(OBJEXT): {$(VPATH)}internal/memory.h
-vm.$(OBJEXT): {$(VPATH)}internal/method.h
-vm.$(OBJEXT): {$(VPATH)}internal/module.h
-vm.$(OBJEXT): {$(VPATH)}internal/newobj.h
-vm.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-vm.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-vm.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-vm.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-vm.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-vm.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-vm.$(OBJEXT): {$(VPATH)}internal/symbol.h
-vm.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-vm.$(OBJEXT): {$(VPATH)}internal/value.h
-vm.$(OBJEXT): {$(VPATH)}internal/value_type.h
-vm.$(OBJEXT): {$(VPATH)}internal/variable.h
-vm.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-vm.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
vm.$(OBJEXT): {$(VPATH)}iseq.h
vm.$(OBJEXT): {$(VPATH)}method.h
vm.$(OBJEXT): {$(VPATH)}missing.h
vm.$(OBJEXT): {$(VPATH)}mjit.h
vm.$(OBJEXT): {$(VPATH)}node.h
-vm.$(OBJEXT): {$(VPATH)}onigmo.h
-vm.$(OBJEXT): {$(VPATH)}oniguruma.h
vm.$(OBJEXT): {$(VPATH)}probes.dmyh
vm.$(OBJEXT): {$(VPATH)}probes.h
vm.$(OBJEXT): {$(VPATH)}probes_helper.h
-vm.$(OBJEXT): {$(VPATH)}ractor.h
-vm.$(OBJEXT): {$(VPATH)}ractor_core.h
vm.$(OBJEXT): {$(VPATH)}ruby_assert.h
vm.$(OBJEXT): {$(VPATH)}ruby_atomic.h
vm.$(OBJEXT): {$(VPATH)}st.h
@@ -15586,7 +3181,6 @@ vm.$(OBJEXT): {$(VPATH)}vm.h
vm.$(OBJEXT): {$(VPATH)}vm.inc
vm.$(OBJEXT): {$(VPATH)}vm_args.c
vm.$(OBJEXT): {$(VPATH)}vm_call_iseq_optimized.inc
-vm.$(OBJEXT): {$(VPATH)}vm_callinfo.h
vm.$(OBJEXT): {$(VPATH)}vm_core.h
vm.$(OBJEXT): {$(VPATH)}vm_debug.h
vm.$(OBJEXT): {$(VPATH)}vm_eval.c
@@ -15596,7 +3190,6 @@ vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.c
vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.h
vm.$(OBJEXT): {$(VPATH)}vm_method.c
vm.$(OBJEXT): {$(VPATH)}vm_opts.h
-vm.$(OBJEXT): {$(VPATH)}vm_sync.h
vm.$(OBJEXT): {$(VPATH)}vmtc.inc
vm_backtrace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
vm_backtrace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
@@ -15604,25 +3197,7 @@ vm_backtrace.$(OBJEXT): $(CCAN_DIR)/list/list.h
vm_backtrace.$(OBJEXT): $(CCAN_DIR)/str/str.h
vm_backtrace.$(OBJEXT): $(hdrdir)/ruby.h
vm_backtrace.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/array.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/gc.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/serial.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/vm.h
-vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm_backtrace.$(OBJEXT): {$(VPATH)}assert.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}atomic.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
vm_backtrace.$(OBJEXT): {$(VPATH)}config.h
vm_backtrace.$(OBJEXT): {$(VPATH)}debug.h
vm_backtrace.$(OBJEXT): {$(VPATH)}defines.h
@@ -15631,146 +3206,6 @@ vm_backtrace.$(OBJEXT): {$(VPATH)}eval_intern.h
vm_backtrace.$(OBJEXT): {$(VPATH)}id.h
vm_backtrace.$(OBJEXT): {$(VPATH)}intern.h
vm_backtrace.$(OBJEXT): {$(VPATH)}internal.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/assume.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/cast.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/config.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/ctype.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/dosish.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/error.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/eval.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/event.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/gc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/glob.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/globals.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/iterator.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/memory.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/method.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/module.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/newobj.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/symbol.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/value.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/value_type.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/variable.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-vm_backtrace.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
vm_backtrace.$(OBJEXT): {$(VPATH)}iseq.h
vm_backtrace.$(OBJEXT): {$(VPATH)}method.h
vm_backtrace.$(OBJEXT): {$(VPATH)}missing.h
@@ -15792,182 +3227,19 @@ vm_dump.$(OBJEXT): $(CCAN_DIR)/list/list.h
vm_dump.$(OBJEXT): $(CCAN_DIR)/str/str.h
vm_dump.$(OBJEXT): $(hdrdir)/ruby.h
vm_dump.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-vm_dump.$(OBJEXT): $(top_srcdir)/internal/array.h
-vm_dump.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-vm_dump.$(OBJEXT): $(top_srcdir)/internal/gc.h
-vm_dump.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-vm_dump.$(OBJEXT): $(top_srcdir)/internal/serial.h
-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): {$(VPATH)}addr2line.h
vm_dump.$(OBJEXT): {$(VPATH)}assert.h
-vm_dump.$(OBJEXT): {$(VPATH)}atomic.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-vm_dump.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
vm_dump.$(OBJEXT): {$(VPATH)}config.h
-vm_dump.$(OBJEXT): {$(VPATH)}constant.h
vm_dump.$(OBJEXT): {$(VPATH)}defines.h
vm_dump.$(OBJEXT): {$(VPATH)}gc.h
vm_dump.$(OBJEXT): {$(VPATH)}id.h
-vm_dump.$(OBJEXT): {$(VPATH)}id_table.h
vm_dump.$(OBJEXT): {$(VPATH)}intern.h
vm_dump.$(OBJEXT): {$(VPATH)}internal.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/assume.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/cast.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/config.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/ctype.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/dosish.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/error.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/eval.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/event.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/gc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/glob.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/globals.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/iterator.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/memory.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/method.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/module.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/newobj.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/symbol.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/value.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/value_type.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/variable.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-vm_dump.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
vm_dump.$(OBJEXT): {$(VPATH)}iseq.h
vm_dump.$(OBJEXT): {$(VPATH)}method.h
vm_dump.$(OBJEXT): {$(VPATH)}missing.h
vm_dump.$(OBJEXT): {$(VPATH)}node.h
vm_dump.$(OBJEXT): {$(VPATH)}procstat_vm.c
-vm_dump.$(OBJEXT): {$(VPATH)}ractor.h
-vm_dump.$(OBJEXT): {$(VPATH)}ractor_core.h
vm_dump.$(OBJEXT): {$(VPATH)}ruby_assert.h
vm_dump.$(OBJEXT): {$(VPATH)}ruby_atomic.h
vm_dump.$(OBJEXT): {$(VPATH)}st.h
@@ -15975,393 +3247,29 @@ vm_dump.$(OBJEXT): {$(VPATH)}subst.h
vm_dump.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
vm_dump.$(OBJEXT): {$(VPATH)}thread_native.h
vm_dump.$(OBJEXT): {$(VPATH)}vm_core.h
-vm_dump.$(OBJEXT): {$(VPATH)}vm_debug.h
vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c
vm_dump.$(OBJEXT): {$(VPATH)}vm_opts.h
-vm_sync.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
-vm_sync.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
-vm_sync.$(OBJEXT): $(CCAN_DIR)/list/list.h
-vm_sync.$(OBJEXT): $(CCAN_DIR)/str/str.h
-vm_sync.$(OBJEXT): $(hdrdir)/ruby.h
-vm_sync.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/array.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/gc.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/serial.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/vm.h
-vm_sync.$(OBJEXT): $(top_srcdir)/internal/warnings.h
-vm_sync.$(OBJEXT): {$(VPATH)}addr2line.h
-vm_sync.$(OBJEXT): {$(VPATH)}assert.h
-vm_sync.$(OBJEXT): {$(VPATH)}atomic.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-vm_sync.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
-vm_sync.$(OBJEXT): {$(VPATH)}config.h
-vm_sync.$(OBJEXT): {$(VPATH)}constant.h
-vm_sync.$(OBJEXT): {$(VPATH)}debug_counter.h
-vm_sync.$(OBJEXT): {$(VPATH)}defines.h
-vm_sync.$(OBJEXT): {$(VPATH)}gc.h
-vm_sync.$(OBJEXT): {$(VPATH)}id.h
-vm_sync.$(OBJEXT): {$(VPATH)}id_table.h
-vm_sync.$(OBJEXT): {$(VPATH)}intern.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/array.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/assume.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/cast.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/compilers.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/config.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/ctype.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/dosish.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/error.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/eval.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/event.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/gc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/glob.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/globals.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/imemo.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/iterator.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/memory.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/method.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/module.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/newobj.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/serial.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/symbol.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/value.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/value_type.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/variable.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/vm.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/warnings.h
-vm_sync.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
-vm_sync.$(OBJEXT): {$(VPATH)}iseq.h
-vm_sync.$(OBJEXT): {$(VPATH)}method.h
-vm_sync.$(OBJEXT): {$(VPATH)}missing.h
-vm_sync.$(OBJEXT): {$(VPATH)}node.h
-vm_sync.$(OBJEXT): {$(VPATH)}procstat_vm.c
-vm_sync.$(OBJEXT): {$(VPATH)}ractor.h
-vm_sync.$(OBJEXT): {$(VPATH)}ractor_core.h
-vm_sync.$(OBJEXT): {$(VPATH)}ruby_assert.h
-vm_sync.$(OBJEXT): {$(VPATH)}ruby_atomic.h
-vm_sync.$(OBJEXT): {$(VPATH)}st.h
-vm_sync.$(OBJEXT): {$(VPATH)}subst.h
-vm_sync.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
-vm_sync.$(OBJEXT): {$(VPATH)}thread_native.h
-vm_sync.$(OBJEXT): {$(VPATH)}vm_core.h
-vm_sync.$(OBJEXT): {$(VPATH)}vm_debug.h
-vm_sync.$(OBJEXT): {$(VPATH)}vm_opts.h
-vm_sync.$(OBJEXT): {$(VPATH)}vm_sync.c
-vm_sync.$(OBJEXT): {$(VPATH)}vm_sync.h
vm_trace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
vm_trace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
vm_trace.$(OBJEXT): $(CCAN_DIR)/list/list.h
vm_trace.$(OBJEXT): $(CCAN_DIR)/str/str.h
vm_trace.$(OBJEXT): $(hdrdir)/ruby.h
vm_trace.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/array.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/compilers.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/gc.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/hash.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/imemo.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/serial.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/symbol.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/vm.h
-vm_trace.$(OBJEXT): $(top_srcdir)/internal/warnings.h
vm_trace.$(OBJEXT): {$(VPATH)}assert.h
-vm_trace.$(OBJEXT): {$(VPATH)}atomic.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/assume.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/bool.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/limits.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
-vm_trace.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
vm_trace.$(OBJEXT): {$(VPATH)}builtin.h
vm_trace.$(OBJEXT): {$(VPATH)}config.h
vm_trace.$(OBJEXT): {$(VPATH)}debug.h
vm_trace.$(OBJEXT): {$(VPATH)}debug_counter.h
vm_trace.$(OBJEXT): {$(VPATH)}defines.h
-vm_trace.$(OBJEXT): {$(VPATH)}encoding.h
vm_trace.$(OBJEXT): {$(VPATH)}eval_intern.h
vm_trace.$(OBJEXT): {$(VPATH)}id.h
vm_trace.$(OBJEXT): {$(VPATH)}intern.h
vm_trace.$(OBJEXT): {$(VPATH)}internal.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/anyargs.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/assume.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/const.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/error.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/format.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/cast.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/config.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/constant_p.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/robject.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/ctype.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/dllexport.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/dosish.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/error.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/eval.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/event.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/fl_type.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/gc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/glob.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/globals.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/extension.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/feature.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/has/warning.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/array.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/class.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/error.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/file.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/gc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/io.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/load.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/object.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/process.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/random.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/range.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/re.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/select.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/string.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/time.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/interpreter.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/iterator.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/memory.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/method.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/module.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/newobj.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/rgengc.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/scan_args.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/special_consts.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/static_assert.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/stdalign.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/stdbool.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/symbol.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/token_paste.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/value.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/value_type.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/variable.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/warning_push.h
-vm_trace.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
vm_trace.$(OBJEXT): {$(VPATH)}iseq.h
vm_trace.$(OBJEXT): {$(VPATH)}method.h
vm_trace.$(OBJEXT): {$(VPATH)}missing.h
vm_trace.$(OBJEXT): {$(VPATH)}mjit.h
vm_trace.$(OBJEXT): {$(VPATH)}node.h
-vm_trace.$(OBJEXT): {$(VPATH)}onigmo.h
-vm_trace.$(OBJEXT): {$(VPATH)}oniguruma.h
-vm_trace.$(OBJEXT): {$(VPATH)}ractor.h
vm_trace.$(OBJEXT): {$(VPATH)}ruby_assert.h
vm_trace.$(OBJEXT): {$(VPATH)}ruby_atomic.h
vm_trace.$(OBJEXT): {$(VPATH)}st.h
diff --git a/compar.c b/compar.c
index 04d4ff8c70..94072c9fc1 100644
--- a/compar.c
+++ b/compar.c
@@ -9,12 +9,9 @@
**********************************************************************/
+#include "ruby/ruby.h"
#include "id.h"
#include "internal.h"
-#include "internal/compar.h"
-#include "internal/error.h"
-#include "internal/vm.h"
-#include "ruby/ruby.h"
VALUE rb_mComparable;
@@ -233,9 +230,11 @@ cmp_clamp(int argc, VALUE *argv, VALUE x)
}
if (!NIL_P(max)) {
if (excl) rb_raise(rb_eArgError, "cannot clamp with an exclusive range");
+ if (!NIL_P(min) && cmpint(min, max) > 0) goto arg_error;
}
}
- if (!NIL_P(min) && !NIL_P(max) && cmpint(min, max) > 0) {
+ else if (cmpint(min, max) > 0) {
+ arg_error:
rb_raise(rb_eArgError, "min argument must be smaller than max argument");
}
@@ -294,6 +293,9 @@ cmp_clamp(int argc, VALUE *argv, VALUE x)
void
Init_Comparable(void)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
+
rb_mComparable = rb_define_module("Comparable");
rb_define_method(rb_mComparable, "==", cmp_equal, 1);
rb_define_method(rb_mComparable, ">", cmp_gt, 1);
diff --git a/compile.c b/compile.c
index 502d12d6c7..7043ba9a73 100644
--- a/compile.c
+++ b/compile.c
@@ -9,40 +9,25 @@
**********************************************************************/
-#include "ruby/internal/config.h"
-#include <math.h>
-
-#ifdef HAVE_DLADDR
-# include <dlfcn.h>
-#endif
-
-#include "encindex.h"
-#include "gc.h"
-#include "id_table.h"
-#include "internal.h"
-#include "internal/array.h"
-#include "internal/compile.h"
-#include "internal/complex.h"
-#include "internal/encoding.h"
-#include "internal/error.h"
-#include "internal/hash.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/rational.h"
-#include "internal/re.h"
-#include "internal/symbol.h"
-#include "internal/thread.h"
-#include "internal/variable.h"
-#include "iseq.h"
+#include "ruby/encoding.h"
#include "ruby/re.h"
#include "ruby/util.h"
+#include "internal.h"
+#include "encindex.h"
+#include <math.h>
+
#include "vm_core.h"
-#include "vm_callinfo.h"
#include "vm_debug.h"
-
#include "builtin.h"
+#include "iseq.h"
#include "insns.inc"
#include "insns_info.inc"
+#include "id_table.h"
+#include "gc.h"
+
+#ifdef HAVE_DLADDR
+# include <dlfcn.h>
+#endif
#undef RUBY_UNTYPED_DATA_WARNING
#define RUBY_UNTYPED_DATA_WARNING 0
@@ -191,7 +176,6 @@ const ID rb_iseq_shared_exc_local_tbl[] = {idERROR_INFO};
#endif
#if CPDEBUG > 1 || CPDEBUG < 0
-#undef printf
#define printf ruby_debug_printf
#define debugs if (compile_debug_print_indent(1)) ruby_debug_printf
#define debug_compile(msg, v) ((void)(compile_debug_print_indent(1) && fputs((msg), stderr)), (v))
@@ -283,6 +267,41 @@ const ID rb_iseq_shared_exc_local_tbl[] = {idERROR_INFO};
#define ADD_TRACE_WITH_DATA(seq, event, data) \
ADD_ELEM((seq), (LINK_ELEMENT *)new_trace_body(iseq, (event), (data)))
+
+#define DECL_BRANCH_BASE(branches, first_line, first_column, last_line, last_column, type) \
+ do { \
+ if (ISEQ_COVERAGE(iseq) && \
+ ISEQ_BRANCH_COVERAGE(iseq) && \
+ (first_line) > 0) { \
+ VALUE structure = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 0); \
+ branches = rb_ary_tmp_new(5); \
+ rb_ary_push(structure, branches); \
+ rb_ary_push(branches, ID2SYM(rb_intern(type))); \
+ rb_ary_push(branches, INT2FIX(first_line)); \
+ rb_ary_push(branches, INT2FIX(first_column)); \
+ rb_ary_push(branches, INT2FIX(last_line)); \
+ rb_ary_push(branches, INT2FIX(last_column)); \
+ } \
+ } while (0)
+#define ADD_TRACE_BRANCH_COVERAGE(seq, first_line, first_column, last_line, last_column, type, branches) \
+ do { \
+ if (ISEQ_COVERAGE(iseq) && \
+ ISEQ_BRANCH_COVERAGE(iseq) && \
+ (first_line) > 0) { \
+ VALUE counters = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 1); \
+ long counter_idx = RARRAY_LEN(counters); \
+ rb_ary_push(counters, INT2FIX(0)); \
+ rb_ary_push(branches, ID2SYM(rb_intern(type))); \
+ rb_ary_push(branches, INT2FIX(first_line)); \
+ rb_ary_push(branches, INT2FIX(first_column)); \
+ rb_ary_push(branches, INT2FIX(last_line)); \
+ rb_ary_push(branches, INT2FIX(last_column)); \
+ rb_ary_push(branches, INT2FIX(counter_idx)); \
+ ADD_TRACE_WITH_DATA(seq, RUBY_EVENT_COVERAGE_BRANCH, counter_idx); \
+ ADD_INSN(seq, last_line, nop); \
+ } \
+ } while (0)
+
static void iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);
static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);
@@ -491,7 +510,6 @@ static int iseq_set_exception_table(rb_iseq_t *iseq);
static int iseq_set_optargs_table(rb_iseq_t *iseq);
static int compile_defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE needstr);
-static int compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int method_call_keywords, int popped);
/*
* To make Array to LinkedList, use link_anchor
@@ -533,8 +551,6 @@ static void
verify_call_cache(rb_iseq_t *iseq)
{
#if CPDEBUG
- // fprintf(stderr, "ci_size:%d\t", iseq->body->ci_size); rp(iseq);
-
VALUE *original = rb_iseq_original_iseq(iseq);
size_t i = 0;
while (i < iseq->body->iseq_size) {
@@ -543,27 +559,16 @@ verify_call_cache(rb_iseq_t *iseq)
for (int j=0; types[j]; j++) {
if (types[j] == TS_CALLDATA) {
+ struct rb_call_cache cc;
struct rb_call_data *cd = (struct rb_call_data *)original[i+j+1];
- const struct rb_callinfo *ci = cd->ci;
- const struct rb_callcache *cc = cd->cc;
- if (cc != vm_cc_empty()) {
- vm_ci_dump(ci);
- rb_bug("call cache is not initialized by vm_cc_empty()");
+ MEMZERO(&cc, cc, 1);
+ if (memcmp(&cc, &cd->cc, sizeof(cc))) {
+ rb_bug("call cache not zero for fresh iseq");
}
}
}
i += insn_len(insn);
}
-
- for (unsigned int i=0; i<iseq->body->ci_size; i++) {
- struct rb_call_data *cd = &iseq->body->call_data[i];
- const struct rb_callinfo *ci = cd->ci;
- const struct rb_callcache *cc = cd->cc;
- if (cc != NULL && cc != vm_cc_empty()) {
- vm_ci_dump(ci);
- rb_bug("call cache is not initialized by vm_cc_empty()");
- }
- }
#endif
}
@@ -597,96 +602,6 @@ APPEND_ELEM(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *before, LI
#define APPEND_ELEM(anchor, before, elem) APPEND_ELEM(iseq, (anchor), (before), (elem))
#endif
-static int
-branch_coverage_valid_p(rb_iseq_t *iseq, int first_line)
-{
- if (!ISEQ_COVERAGE(iseq)) return 0;
- if (!ISEQ_BRANCH_COVERAGE(iseq)) return 0;
- if (first_line <= 0) return 0;
- return 1;
-}
-
-static VALUE
-decl_branch_base(rb_iseq_t *iseq, const NODE *node, const char *type)
-{
- const int first_lineno = nd_first_lineno(node), first_column = nd_first_column(node);
- const int last_lineno = nd_last_lineno(node), last_column = nd_last_column(node);
-
- if (!branch_coverage_valid_p(iseq, first_lineno)) return Qundef;
-
- /*
- * if !structure[node]
- * structure[node] = [type, first_lineno, first_column, last_lineno, last_column, branches = {}]
- * else
- * branches = structure[node][5]
- * end
- */
-
- VALUE structure = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 0);
- VALUE key = (VALUE)node | 1; // FIXNUM for hash key
- VALUE branch_base = rb_hash_aref(structure, key);
- VALUE branches;
-
- if (NIL_P(branch_base)) {
- branch_base = rb_ary_tmp_new(6);
- rb_hash_aset(structure, key, branch_base);
- rb_ary_push(branch_base, ID2SYM(rb_intern(type)));
- rb_ary_push(branch_base, INT2FIX(first_lineno));
- rb_ary_push(branch_base, INT2FIX(first_column));
- rb_ary_push(branch_base, INT2FIX(last_lineno));
- rb_ary_push(branch_base, INT2FIX(last_column));
- branches = rb_hash_new();
- rb_obj_hide(branches);
- rb_ary_push(branch_base, branches);
- }
- else {
- branches = RARRAY_AREF(branch_base, 5);
- }
-
- return branches;
-}
-
-static void
-add_trace_branch_coverage(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *node, int branch_id, const char *type, VALUE branches)
-{
- const int first_lineno = nd_first_lineno(node), first_column = nd_first_column(node);
- const int last_lineno = nd_last_lineno(node), last_column = nd_last_column(node);
-
- if (!branch_coverage_valid_p(iseq, first_lineno)) return;
-
- /*
- * if !branches[branch_id]
- * branches[branch_id] = [type, first_lineno, first_column, last_lineno, last_column, counter_idx]
- * else
- * counter_idx= branches[branch_id][5]
- * end
- */
-
- VALUE key = INT2FIX(branch_id);
- VALUE branch = rb_hash_aref(branches, key);
- long counter_idx;
-
- if (NIL_P(branch)) {
- branch = rb_ary_tmp_new(6);
- rb_hash_aset(branches, key, branch);
- rb_ary_push(branch, ID2SYM(rb_intern(type)));
- rb_ary_push(branch, INT2FIX(first_lineno));
- rb_ary_push(branch, INT2FIX(first_column));
- rb_ary_push(branch, INT2FIX(last_lineno));
- rb_ary_push(branch, INT2FIX(last_column));
- VALUE counters = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 1);
- counter_idx = RARRAY_LEN(counters);
- rb_ary_push(branch, LONG2FIX(counter_idx));
- rb_ary_push(counters, INT2FIX(0));
- }
- else {
- counter_idx = FIX2LONG(RARRAY_AREF(branch, 5));
- }
-
- ADD_TRACE_WITH_DATA(seq, RUBY_EVENT_COVERAGE_BRANCH, counter_idx);
- ADD_INSN(seq, last_lineno, nop);
-}
-
#define ISEQ_LAST_LINE(iseq) (ISEQ_COMPILE_DATA(iseq)->last_line)
static int
@@ -731,7 +646,7 @@ rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node)
DECL_ANCHOR(ret);
INIT_ANCHOR(ret);
- if (IMEMO_TYPE_P(node, imemo_ifunc)) {
+ if (imemo_type_p((VALUE)node, imemo_ifunc)) {
rb_raise(rb_eArgError, "unexpected imemo_ifunc");
}
@@ -854,7 +769,7 @@ rb_iseq_translate_threaded_code(rb_iseq_t *iseq)
encoded[i] = (VALUE)table[insn];
i += len;
}
- FL_SET((VALUE)iseq, ISEQ_TRANSLATED);
+ FL_SET(iseq, ISEQ_TRANSLATED);
#endif
return COMPILE_OK;
}
@@ -898,16 +813,6 @@ rb_iseq_original_iseq(const rb_iseq_t *iseq) /* cold path */
#define STRICT_ALIGNMENT
#endif
-/*
- * Some OpenBSD platforms (including sparc64) require strict alignment.
- */
-#if defined(__OpenBSD__)
- #include <sys/endian.h>
- #ifdef __STRICT_ALIGNMENT
- #define STRICT_ALIGNMENT
- #endif
-#endif
-
#ifdef STRICT_ALIGNMENT
#if defined(HAVE_TRUE_LONG_LONG) && SIZEOF_LONG_LONG > SIZEOF_VALUE
#define ALIGNMENT_SIZE SIZEOF_LONG_LONG
@@ -1000,15 +905,6 @@ compile_data_alloc2(rb_iseq_t *iseq, size_t x, size_t y)
return compile_data_alloc(iseq, size);
}
-static inline void *
-compile_data_calloc2(rb_iseq_t *iseq, size_t x, size_t y)
-{
- size_t size = rb_size_mul_or_raise(x, y, rb_eRuntimeError);
- void *p = compile_data_alloc(iseq, size);
- memset(p, 0, size);
- return p;
-}
-
static INSN *
compile_data_alloc_insn(rb_iseq_t *iseq)
{
@@ -1174,7 +1070,7 @@ APPEND_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)
#if CPDEBUG && 0
static void
-debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *cur)
+debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor)
{
LINK_ELEMENT *list = FIRST_ELEMENT(anchor);
printf("----\n");
@@ -1182,19 +1078,19 @@ debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *cur)
anchor->anchor.next, anchor->last);
while (list) {
printf("curr: %p, next: %p, prev: %p, type: %d\n", list, list->next,
- list->prev, (int)list->type);
+ list->prev, FIX2INT(list->type));
list = list->next;
}
printf("----\n");
- dump_disasm_list_with_cursor(anchor->anchor.next, cur, 0);
+ dump_disasm_list(anchor->anchor.next);
verify_list("debug list", anchor);
}
#if CPDEBUG < 0
-#define debug_list(anc, cur) debug_list(iseq, (anc), (cur))
+#define debug_list(anc) debug_list(iseq, (anc))
#endif
#else
-#define debug_list(anc, cur) ((void)0)
+#define debug_list(anc) ((void)0)
#endif
static TRACE *
@@ -1266,7 +1162,7 @@ new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int a
va_list argv;
if (argc > 0) {
int i;
- va_start(argv, argc);
+ va_init_list(argv, argc);
operands = compile_data_alloc2(iseq, sizeof(VALUE), argc);
for (i = 0; i < argc; i++) {
VALUE v = va_arg(argv, VALUE);
@@ -1277,42 +1173,41 @@ new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int a
return new_insn_core(iseq, line_no, insn_id, argc, operands);
}
-static const struct rb_callinfo *
-new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_callinfo_kwarg *kw_arg, int has_blockiseq)
+static struct rb_call_info *
+new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_call_info_kw_arg *kw_arg, int has_blockiseq)
{
- VM_ASSERT(argc >= 0);
+ size_t size = kw_arg != NULL ? sizeof(struct rb_call_info_with_kwarg) : sizeof(struct rb_call_info);
+ struct rb_call_info *ci = (struct rb_call_info *)compile_data_alloc(iseq, size);
+ struct rb_call_info_with_kwarg *ci_kw = (struct rb_call_info_with_kwarg *)ci;
- if (!(flag & (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT)) &&
- kw_arg == NULL && !has_blockiseq) {
- flag |= VM_CALL_ARGS_SIMPLE;
- }
+ ci->mid = mid;
+ ci->flag = flag;
+ ci->orig_argc = argc;
if (kw_arg) {
- flag |= VM_CALL_KWARG;
- argc += kw_arg->keyword_len;
+ ci->flag |= VM_CALL_KWARG;
+ ci_kw->kw_arg = kw_arg;
+ ci->orig_argc += kw_arg->keyword_len;
+ iseq->body->ci_kw_size++;
+ }
+ else {
+ iseq->body->ci_size++;
}
- // fprintf(stderr, "[%d] id:%s\t", (int)iseq->body->ci_size, rb_id2name(mid)); rp(iseq);
- iseq->body->ci_size++;
- const struct rb_callinfo *ci = vm_ci_new(mid, flag, argc, kw_arg);
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
+ if (!(ci->flag & (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT)) &&
+ kw_arg == NULL && !has_blockiseq) {
+ ci->flag |= VM_CALL_ARGS_SIMPLE;
+ }
return ci;
}
static INSN *
-new_insn_send(rb_iseq_t *iseq, int line_no, ID id, VALUE argc, const rb_iseq_t *blockiseq, VALUE flag, struct rb_callinfo_kwarg *keywords)
+new_insn_send(rb_iseq_t *iseq, int line_no, ID id, VALUE argc, const rb_iseq_t *blockiseq, VALUE flag, struct rb_call_info_kw_arg *keywords)
{
- VALUE *operands = compile_data_calloc2(iseq, sizeof(VALUE), 2);
- VALUE ci = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL);
- operands[0] = ci;
+ VALUE *operands = compile_data_alloc2(iseq, sizeof(VALUE), 2);
+ operands[0] = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL);
operands[1] = (VALUE)blockiseq;
- if (blockiseq) {
- RB_OBJ_WRITTEN(iseq, Qundef, blockiseq);
- }
- INSN *insn = new_insn_core(iseq, line_no, BIN(send), 2, operands);
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
- RB_GC_GUARD(ci);
- return insn;
+ return new_insn_core(iseq, line_no, BIN(send), 2, operands);
}
static rb_iseq_t *
@@ -1327,12 +1222,9 @@ new_child_iseq(rb_iseq_t *iseq, const NODE *const node,
ast.line_count = -1;
debugs("[new_child_iseq]> ---------------------------------------\n");
- int isolated_depth = ISEQ_COMPILE_DATA(iseq)->isolated_depth;
ret_iseq = rb_iseq_new_with_opt(&ast, name,
rb_iseq_path(iseq), rb_iseq_realpath(iseq),
- INT2FIX(line_no), parent,
- isolated_depth ? isolated_depth + 1 : 0,
- type, ISEQ_COMPILE_DATA(iseq)->option);
+ INT2FIX(line_no), parent, type, ISEQ_COMPILE_DATA(iseq)->option);
debugs("[new_child_iseq]< ---------------------------------------\n");
return ret_iseq;
}
@@ -1461,8 +1353,6 @@ iseq_setup_insn(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
debugs("[compile step 3.4 (iseq_insert_nop_between_end_and_cont)]\n");
iseq_insert_nop_between_end_and_cont(iseq);
- if (compile_debug > 5)
- dump_disasm_list(FIRST_ELEMENT(anchor));
return COMPILE_OK;
}
@@ -1487,16 +1377,8 @@ iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
debugs("[compile step 5 (iseq_translate_threaded_code)] \n");
if (!rb_iseq_translate_threaded_code(iseq)) return COMPILE_NG;
- debugs("[compile step 6 (update_catch_except_flags)] \n");
update_catch_except_flags(iseq->body);
-#if VM_INSN_INFO_TABLE_IMPL == 2
- if (iseq->body->insns_info.succ_index_table == NULL) {
- debugs("[compile step 7 (rb_iseq_insns_info_encode_positions)] \n");
- rb_iseq_insns_info_encode_positions(iseq);
- }
-#endif
-
if (compile_debug > 1) {
VALUE str = rb_iseq_disasm(iseq);
printf("%s\n", StringValueCStr(str));
@@ -1612,53 +1494,6 @@ iseq_block_param_id_p(const rb_iseq_t *iseq, ID id, int *pidx, int *plevel)
}
static void
-access_outer_variables(const rb_iseq_t *iseq, int level, ID id, bool write)
-{
- int isolated_depth = ISEQ_COMPILE_DATA(iseq)->isolated_depth;
-
- if (isolated_depth && level >= isolated_depth) {
- if (id == rb_intern("yield")) {
- COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq), "can not yield from isolated Proc", rb_id2name(id));
- }
- else {
- COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq), "can not access variable `%s' from isolated Proc", rb_id2name(id));
- }
- }
-
- for (int i=0; i<level; i++) {
- VALUE val;
- struct rb_id_table *ovs = iseq->body->outer_variables;
-
- if (!ovs) {
- ovs = iseq->body->outer_variables = rb_id_table_create(8);
- }
-
- if (rb_id_table_lookup(iseq->body->outer_variables, id, &val)) {
- if (write && !val) {
- rb_id_table_insert(iseq->body->outer_variables, id, Qtrue);
- }
- }
- else {
- rb_id_table_insert(iseq->body->outer_variables, id, write ? Qtrue : Qfalse);
- }
-
- iseq = iseq->body->parent_iseq;
- }
-}
-
-static ID
-iseq_lvar_id(const rb_iseq_t *iseq, int idx, int level)
-{
- for (int i=0; i<level; i++) {
- iseq = iseq->body->parent_iseq;
- }
-
- ID id = iseq->body->local_table[iseq->body->local_table_size - idx];
- // fprintf(stderr, "idx:%d level:%d ID:%s\n", idx, level, rb_id2name(id));
- return id;
-}
-
-static void
iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level)
{
if (iseq_local_block_param_p(iseq, idx, level)) {
@@ -1667,7 +1502,6 @@ iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, in
else {
ADD_INSN2(seq, line, getlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));
}
- if (level > 0) access_outer_variables(iseq, level, iseq_lvar_id(iseq, idx, level), Qfalse);
}
static void
@@ -1679,7 +1513,6 @@ iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, in
else {
ADD_INSN2(seq, line, setlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));
}
- if (level > 0) access_outer_variables(iseq, level, iseq_lvar_id(iseq, idx, level), Qtrue);
}
@@ -1986,16 +1819,6 @@ cdhash_cmp(VALUE val, VALUE lit)
else if (tlit == T_FLOAT) {
return rb_float_cmp(lit, val);
}
- else if (tlit == T_RATIONAL) {
- const struct RRational *rat1 = RRATIONAL(val);
- const struct RRational *rat2 = RRATIONAL(lit);
- return cdhash_cmp(rat1->num, rat2->num) || cdhash_cmp(rat1->den, rat2->den);
- }
- else if (tlit == T_COMPLEX) {
- const struct RComplex *comp1 = RCOMPLEX(val);
- const struct RComplex *comp2 = RCOMPLEX(lit);
- return cdhash_cmp(comp1->real, comp2->real) || cdhash_cmp(comp1->imag, comp2->imag);
- }
else {
UNREACHABLE_RETURN(-1);
}
@@ -2014,10 +1837,6 @@ cdhash_hash(VALUE a)
return FIX2LONG(rb_big_hash(a));
case T_FLOAT:
return rb_dbl_long_hash(RFLOAT_VALUE(a));
- case T_RATIONAL:
- return rb_rational_hash(a);
- case T_COMPLEX:
- return rb_complex_hash(a);
default:
UNREACHABLE_RETURN(0);
}
@@ -2135,11 +1954,7 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
}
if (lobj->sp == -1) {
lobj->sp = sp;
- } else if (lobj->sp != sp) {
- debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
- RSTRING_PTR(rb_iseq_path(iseq)), line,
- lobj->label_no, lobj->sp, sp);
- }
+ }
}
}
break;
@@ -2151,11 +1966,6 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
lobj->sp = sp;
}
else {
- if (lobj->sp != sp) {
- debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
- RSTRING_PTR(rb_iseq_path(iseq)), line,
- lobj->label_no, lobj->sp, sp);
- }
sp = lobj->sp;
}
break;
@@ -2224,7 +2034,6 @@ add_adjust_info(struct iseq_insn_info_entry *insns_info, unsigned int *positions
static int
iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
{
- VALUE iseqv = (VALUE)iseq;
struct iseq_insn_info_entry *insns_info;
struct rb_iseq_constant_body *const body = iseq->body;
unsigned int *positions;
@@ -2273,11 +2082,6 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
{
LABEL *lobj = (LABEL *)list;
lobj->position = code_index;
- if (lobj->sp != sp) {
- debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
- RSTRING_PTR(rb_iseq_path(iseq)),
- lobj->label_no, lobj->sp, sp);
- }
sp = lobj->sp;
break;
}
@@ -2311,8 +2115,11 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
insns_info = ALLOC_N(struct iseq_insn_info_entry, insn_num);
positions = ALLOC_N(unsigned int, insn_num);
body->is_entries = ZALLOC_N(union iseq_inline_storage_entry, body->is_size);
- body->call_data = ZALLOC_N(struct rb_call_data, body->ci_size);
- ISEQ_COMPILE_DATA(iseq)->ci_index = 0;
+ body->call_data =
+ rb_xcalloc_mul_add_mul(
+ sizeof(struct rb_call_data), body->ci_size,
+ sizeof(struct rb_kwarg_call_data), body->ci_kw_size);
+ ISEQ_COMPILE_DATA(iseq)->ci_index = ISEQ_COMPILE_DATA(iseq)->ci_kw_index = 0;
list = FIRST_ELEMENT(anchor);
insns_info_index = code_index = sp = 0;
@@ -2359,7 +2166,7 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
freeze_hide_obj(map);
generated_iseq[code_index + 1 + j] = map;
RB_OBJ_WRITTEN(iseq, Qundef, map);
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
break;
}
case TS_LINDEX:
@@ -2374,12 +2181,15 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
/* to mark ruby object */
if (!SPECIAL_CONST_P(v)) {
RB_OBJ_WRITTEN(iseq, Qundef, v);
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
}
break;
}
- case TS_IC: /* inline cache */
case TS_ISE: /* inline storage entry */
+ /* Treated as an IC, but may contain a markable VALUE */
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
+ /* fall through */
+ case TS_IC: /* inline cache */
case TS_IVC: /* inline ivar cache */
{
unsigned int ic_index = FIX2UINT(operands[j]);
@@ -2391,22 +2201,39 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
ic_index, body->is_size);
}
generated_iseq[code_index + 1 + j] = (VALUE)ic;
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
break;
}
case TS_CALLDATA:
{
- const struct rb_callinfo *source_ci = (const struct rb_callinfo *)operands[j];
- struct rb_call_data *cd = &body->call_data[ISEQ_COMPILE_DATA(iseq)->ci_index++];
- assert(ISEQ_COMPILE_DATA(iseq)->ci_index <= body->ci_size);
- cd->ci = source_ci;
- cd->cc = vm_cc_empty();
+ struct rb_call_info *source_ci = (struct rb_call_info *)operands[j];
+ struct rb_call_data *cd;
+
+ if (source_ci->flag & VM_CALL_KWARG) {
+ struct rb_kwarg_call_data *kw_calls = (struct rb_kwarg_call_data *)&body->call_data[body->ci_size];
+ struct rb_kwarg_call_data *cd_kw = &kw_calls[ISEQ_COMPILE_DATA(iseq)->ci_kw_index++];
+ cd_kw->ci_kw = *((struct rb_call_info_with_kwarg *)source_ci);
+ cd = (struct rb_call_data *)cd_kw;
+ assert(ISEQ_COMPILE_DATA(iseq)->ci_kw_index <= body->ci_kw_size);
+ }
+ else {
+ cd = &body->call_data[ISEQ_COMPILE_DATA(iseq)->ci_index++];
+ cd->ci = *source_ci;
+ assert(ISEQ_COMPILE_DATA(iseq)->ci_index <= body->ci_size);
+ }
+
generated_iseq[code_index + 1 + j] = (VALUE)cd;
break;
}
case TS_ID: /* ID */
generated_iseq[code_index + 1 + j] = SYM2ID(operands[j]);
break;
+ case TS_GENTRY:
+ {
+ struct rb_global_entry *entry =
+ (struct rb_global_entry *)(operands[j] & (~1));
+ generated_iseq[code_index + 1 + j] = (VALUE)entry;
+ }
+ break;
case TS_FUNCPTR:
generated_iseq[code_index + 1 + j] = operands[j];
break;
@@ -2426,11 +2253,6 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
case ISEQ_ELEMENT_LABEL:
{
LABEL *lobj = (LABEL *)list;
- if (lobj->sp != sp) {
- debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",
- RSTRING_PTR(rb_iseq_path(iseq)),
- lobj->label_no, lobj->sp, sp);
- }
sp = lobj->sp;
break;
}
@@ -2463,7 +2285,7 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
xfree(generated_iseq);
xfree(insns_info);
xfree(positions);
- debug_list(anchor, list);
+ debug_list(anchor);
COMPILE_ERROR(iseq, adjust->line_no,
"iseq_set_sequence: adjust bug to %d %d < %d",
label_no, orig_sp, sp);
@@ -2515,8 +2337,7 @@ iseq_set_exception_table(rb_iseq_t *iseq)
unsigned int tlen, i;
struct iseq_catch_table_entry *entry;
- iseq->body->catch_table = NULL;
- if (NIL_P(ISEQ_COMPILE_DATA(iseq)->catch_table_ary)) return COMPILE_OK;
+ if (NIL_P(ISEQ_COMPILE_DATA(iseq)->catch_table_ary)) goto no_catch_table;
tlen = (int)RARRAY_LEN(ISEQ_COMPILE_DATA(iseq)->catch_table_ary);
tptr = RARRAY_CONST_PTR_TRANSIENT(ISEQ_COMPILE_DATA(iseq)->catch_table_ary);
@@ -2553,6 +2374,10 @@ iseq_set_exception_table(rb_iseq_t *iseq)
iseq->body->catch_table = table;
RB_OBJ_WRITE(iseq, &ISEQ_COMPILE_DATA(iseq)->catch_table_ary, 0); /* free */
}
+ else {
+ no_catch_table:
+ iseq->body->catch_table = NULL;
+ }
return COMPILE_OK;
}
@@ -2726,7 +2551,10 @@ remove_unreachable_chunk(rb_iseq_t *iseq, LINK_ELEMENT *i)
unref_destination((INSN *)i, pos);
break;
case TS_CALLDATA:
- --(body->ci_size);
+ if (((struct rb_call_info *)OPERAND_AT(i, pos))->flag & VM_CALL_KWARG)
+ --(body->ci_kw_size);
+ else
+ --(body->ci_size);
break;
}
}
@@ -2753,6 +2581,21 @@ iseq_pop_newarray(rb_iseq_t *iseq, INSN *iobj)
}
static int
+same_debug_pos_p(LINK_ELEMENT *iobj1, LINK_ELEMENT *iobj2)
+{
+ VALUE debug1 = OPERAND_AT(iobj1, 0);
+ VALUE debug2 = OPERAND_AT(iobj2, 0);
+ if (debug1 == debug2) return TRUE;
+ if (!RB_TYPE_P(debug1, T_ARRAY)) return FALSE;
+ if (!RB_TYPE_P(debug2, T_ARRAY)) return FALSE;
+ if (RARRAY_LEN(debug1) != 2) return FALSE;
+ if (RARRAY_LEN(debug2) != 2) return FALSE;
+ if (RARRAY_AREF(debug1, 0) != RARRAY_AREF(debug2, 0)) return FALSE;
+ if (RARRAY_AREF(debug1, 1) != RARRAY_AREF(debug2, 1)) return FALSE;
+ return TRUE;
+}
+
+static int
is_frozen_putstring(INSN *insn, VALUE *op)
{
if (IS_INSN_ID(insn, putstring)) {
@@ -2818,6 +2661,7 @@ optimize_checktype(rb_iseq_t *iseq, INSN *iobj)
if (!ciobj || !IS_INSN_ID(ciobj, checktype)) return FALSE;
niobj = (INSN *)get_next_insn(ciobj);
if (!niobj) {
+ no_branch:
/* TODO: putobject true/false */
return FALSE;
}
@@ -2833,7 +2677,7 @@ optimize_checktype(rb_iseq_t *iseq, INSN *iobj)
}
break;
default:
- return FALSE;
+ goto no_branch;
}
line = ciobj->insn_info.line_no;
if (!dest) {
@@ -2851,28 +2695,6 @@ optimize_checktype(rb_iseq_t *iseq, INSN *iobj)
return TRUE;
}
-static const struct rb_callinfo *
-ci_flag_set(const rb_iseq_t *iseq, const struct rb_callinfo *ci, unsigned int add)
-{
- const struct rb_callinfo *nci = vm_ci_new(vm_ci_mid(ci),
- vm_ci_flag(ci) | add,
- vm_ci_argc(ci),
- vm_ci_kwarg(ci));
- RB_OBJ_WRITTEN(iseq, ci, nci);
- return nci;
-}
-
-static const struct rb_callinfo *
-ci_argc_set(const rb_iseq_t *iseq, const struct rb_callinfo *ci, int argc)
-{
- const struct rb_callinfo *nci = vm_ci_new(vm_ci_mid(ci),
- vm_ci_flag(ci),
- argc,
- vm_ci_kwarg(ci));
- RB_OBJ_WRITTEN(iseq, ci, nci);
- return nci;
-}
-
static int
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)
{
@@ -2897,10 +2719,8 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
ELEM_REMOVE(&iobj->link);
return COMPILE_OK;
}
- else if (iobj != diobj && IS_INSN(&diobj->link) &&
- IS_INSN_ID(diobj, jump) &&
- OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0) &&
- diobj->insn_info.events == 0) {
+ else if (iobj != diobj && IS_INSN_ID(diobj, jump) &&
+ OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0)) {
/*
* useless jump elimination:
* jump LABEL1
@@ -2916,6 +2736,7 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
goto again;
}
else if (IS_INSN_ID(diobj, leave)) {
+ INSN *pop;
/*
* jump LABEL
* ...
@@ -2923,6 +2744,7 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
* leave
* =>
* leave
+ * pop
* ...
* LABEL:
* leave
@@ -2932,9 +2754,12 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
iobj->insn_id = BIN(leave);
iobj->operand_size = 0;
iobj->insn_info = diobj->insn_info;
+ /* adjust stack depth */
+ pop = new_insn_body(iseq, diobj->insn_info.line_no, BIN(pop), 0);
+ ELEM_INSERT_NEXT(&iobj->link, &pop->link);
goto again;
}
- else if (IS_INSN(iobj->link.prev) &&
+ else if (IS_INSN(iobj->link.prev) &&
(piobj = (INSN *)iobj->link.prev) &&
(IS_INSN_ID(piobj, branchif) ||
IS_INSN_ID(piobj, branchunless))) {
@@ -3072,7 +2897,7 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
}
for (;;) {
- if (IS_INSN(&nobj->link) && IS_INSN_ID(nobj, jump)) {
+ if (IS_INSN_ID(nobj, jump)) {
replace_destination(iobj, nobj);
}
else if (prev_dup && IS_INSN_ID(nobj, dup) &&
@@ -3270,8 +3095,10 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
* =>
* concatstrings N+M-1
*/
- LINK_ELEMENT *next = iobj->link.next;
+ LINK_ELEMENT *next = iobj->link.next, *freeze = 0;
INSN *jump = 0;
+ if (IS_INSN(next) && IS_INSN_ID(next, freezestring))
+ next = (freeze = next)->next;
if (IS_INSN(next) && IS_INSN_ID(next, jump))
next = get_destination_insn(jump = (INSN *)next);
if (IS_INSN(next) && IS_INSN_ID(next, concatstrings)) {
@@ -3287,15 +3114,43 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
OPERAND_AT(jump, 0) = (VALUE)label;
}
label->refcnt++;
+ if (freeze && IS_NEXT_INSN_ID(next, freezestring)) {
+ if (same_debug_pos_p(freeze, next->next)) {
+ ELEM_REMOVE(freeze);
+ }
+ else {
+ next = next->next;
+ }
+ }
ELEM_INSERT_NEXT(next, &label->link);
CHECK(iseq_peephole_optimize(iseq, get_next_insn(jump), do_tailcallopt));
}
else {
+ if (freeze) ELEM_REMOVE(freeze);
ELEM_REMOVE(next);
}
}
}
+ if (IS_INSN_ID(iobj, freezestring) &&
+ NIL_P(OPERAND_AT(iobj, 0)) &&
+ IS_NEXT_INSN_ID(&iobj->link, send)) {
+ INSN *niobj = (INSN *)iobj->link.next;
+ struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(niobj, 0);
+ /*
+ * freezestring nil # no debug_info
+ * send <:+@, 0, ARG_SIMPLE> # :-@, too
+ * =>
+ * send <:+@, 0, ARG_SIMPLE> # :-@, too
+ */
+ if ((ci->mid == idUPlus || ci->mid == idUMinus) &&
+ (ci->flag & VM_CALL_ARGS_SIMPLE) &&
+ ci->orig_argc == 0) {
+ ELEM_REMOVE(list);
+ return COMPILE_OK;
+ }
+ }
+
if (do_tailcallopt &&
(IS_INSN_ID(iobj, send) ||
IS_INSN_ID(iobj, opt_aref_with) ||
@@ -3338,19 +3193,14 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
}
if (piobj) {
- const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(piobj, 0);
- if (IS_INSN_ID(piobj, send) ||
- IS_INSN_ID(piobj, invokesuper)) {
+ struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(piobj, 0);
+ if (IS_INSN_ID(piobj, send) || IS_INSN_ID(piobj, invokesuper)) {
if (OPERAND_AT(piobj, 1) == 0) { /* no blockiseq */
- ci = ci_flag_set(iseq, ci, VM_CALL_TAILCALL);
- OPERAND_AT(piobj, 0) = (VALUE)ci;
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
+ ci->flag |= VM_CALL_TAILCALL;
}
}
else {
- ci = ci_flag_set(iseq, ci, VM_CALL_TAILCALL);
- OPERAND_AT(piobj, 0) = (VALUE)ci;
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
+ ci->flag |= VM_CALL_TAILCALL;
}
}
}
@@ -3413,7 +3263,7 @@ insn_set_specialized_instruction(rb_iseq_t *iseq, INSN *iobj, int insn_id)
if (insn_id == BIN(opt_neq)) {
VALUE *old_operands = iobj->operands;
iobj->operand_size = 2;
- iobj->operands = compile_data_calloc2(iseq, iobj->operand_size, sizeof(VALUE));
+ iobj->operands = compile_data_alloc2(iseq, iobj->operand_size, sizeof(VALUE));
iobj->operands[0] = (VALUE)new_callinfo(iseq, idEq, 1, 0, NULL, FALSE);
iobj->operands[1] = old_operands[0];
}
@@ -3431,9 +3281,9 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)
*/
INSN *niobj = (INSN *)iobj->link.next;
if (IS_INSN_ID(niobj, send)) {
- const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(niobj, 0);
- if ((vm_ci_flag(ci) & VM_CALL_ARGS_SIMPLE) && vm_ci_argc(ci) == 0) {
- switch (vm_ci_mid(ci)) {
+ struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(niobj, 0);
+ if ((ci->flag & VM_CALL_ARGS_SIMPLE) && ci->orig_argc == 0) {
+ switch (ci->mid) {
case idMax:
iobj->insn_id = BIN(opt_newarray_max);
ELEM_REMOVE(&niobj->link);
@@ -3448,14 +3298,14 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)
}
if (IS_INSN_ID(iobj, send)) {
- const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, 0);
+ struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, 0);
const rb_iseq_t *blockiseq = (rb_iseq_t *)OPERAND_AT(iobj, 1);
#define SP_INSN(opt) insn_set_specialized_instruction(iseq, iobj, BIN(opt_##opt))
- if (vm_ci_flag(ci) & VM_CALL_ARGS_SIMPLE) {
- switch (vm_ci_argc(ci)) {
+ if (ci->flag & VM_CALL_ARGS_SIMPLE) {
+ switch (ci->orig_argc) {
case 0:
- switch (vm_ci_mid(ci)) {
+ switch (ci->mid) {
case idLength: SP_INSN(length); return COMPILE_OK;
case idSize: SP_INSN(size); return COMPILE_OK;
case idEmptyP: SP_INSN(empty_p);return COMPILE_OK;
@@ -3465,7 +3315,7 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)
}
break;
case 1:
- switch (vm_ci_mid(ci)) {
+ switch (ci->mid) {
case idPLUS: SP_INSN(plus); return COMPILE_OK;
case idMINUS: SP_INSN(minus); return COMPILE_OK;
case idMULT: SP_INSN(mult); return COMPILE_OK;
@@ -3485,14 +3335,14 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)
}
break;
case 2:
- switch (vm_ci_mid(ci)) {
+ switch (ci->mid) {
case idASET: SP_INSN(aset); return COMPILE_OK;
}
break;
}
}
- if ((vm_ci_flag(ci) & VM_CALL_ARGS_BLOCKARG) == 0 && blockiseq == NULL) {
+ if ((ci->flag & VM_CALL_ARGS_BLOCKARG) == 0 && blockiseq == NULL) {
iobj->insn_id = BIN(opt_send_without_block);
iobj->operand_size = insn_len(iobj->insn_id) - 1;
}
@@ -3580,7 +3430,8 @@ new_unified_insn(rb_iseq_t *iseq,
}
if (argc > 0) {
- ptr = operands = compile_data_alloc2(iseq, sizeof(VALUE), argc);
+ ptr = operands =
+ compile_data_alloc2(iseq, sizeof(VALUE), argc);
}
/* copy operands */
@@ -3884,16 +3735,8 @@ static int
compile_dstr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)
{
int cnt;
- if (!node->nd_next) {
- VALUE lit = rb_fstring(node->nd_lit);
- const int line = (int)nd_line(node);
- ADD_INSN1(ret, line, putstring, lit);
- RB_OBJ_WRITTEN(iseq, Qundef, lit);
- }
- else {
- CHECK(compile_dstr_fragments(iseq, ret, node, &cnt));
- ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));
- }
+ CHECK(compile_dstr_fragments(iseq, ret, node, &cnt));
+ ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));
return COMPILE_OK;
}
@@ -3950,10 +3793,7 @@ compile_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *co
LABEL *label = NEW_LABEL(nd_line(cond));
CHECK(compile_branch_condition(iseq, ret, cond->nd_1st, label,
else_label));
- if (!label->refcnt) {
- ADD_INSN(ret, nd_line(cond), putnil);
- break;
- }
+ if (!label->refcnt) break;
ADD_LABEL(ret, label);
cond = cond->nd_2nd;
goto again;
@@ -3963,10 +3803,7 @@ compile_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *co
LABEL *label = NEW_LABEL(nd_line(cond));
CHECK(compile_branch_condition(iseq, ret, cond->nd_1st, then_label,
label));
- if (!label->refcnt) {
- ADD_INSN(ret, nd_line(cond), putnil);
- break;
- }
+ if (!label->refcnt) break;
ADD_LABEL(ret, label);
cond = cond->nd_2nd;
goto again;
@@ -3978,77 +3815,68 @@ compile_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *co
case NODE_LAMBDA:
/* printf("useless condition eliminate (%s)\n", ruby_node_name(nd_type(cond))); */
ADD_INSNL(ret, nd_line(cond), jump, then_label);
- return COMPILE_OK;
+ break;
case NODE_FALSE:
case NODE_NIL:
/* printf("useless condition eliminate (%s)\n", ruby_node_name(nd_type(cond))); */
ADD_INSNL(ret, nd_line(cond), jump, else_label);
- return COMPILE_OK;
+ break;
case NODE_LIST:
case NODE_ARGSCAT:
case NODE_DREGX:
case NODE_DSTR:
CHECK(COMPILE_POPPED(ret, "branch condition", cond));
ADD_INSNL(ret, nd_line(cond), jump, then_label);
- return COMPILE_OK;
+ break;
case NODE_FLIP2:
CHECK(compile_flip_flop(iseq, ret, cond, TRUE, then_label, else_label));
- return COMPILE_OK;
+ break;
case NODE_FLIP3:
CHECK(compile_flip_flop(iseq, ret, cond, FALSE, then_label, else_label));
- return COMPILE_OK;
+ break;
case NODE_DEFINED:
CHECK(compile_defined_expr(iseq, ret, cond, Qfalse));
- break;
+ goto branch;
default:
CHECK(COMPILE(ret, "branch condition", cond));
- break;
+ branch:
+ ADD_INSNL(ret, nd_line(cond), branchunless, else_label);
+ ADD_INSNL(ret, nd_line(cond), jump, then_label);
+ break;
}
-
- ADD_INSNL(ret, nd_line(cond), branchunless, else_label);
- ADD_INSNL(ret, nd_line(cond), jump, then_label);
return COMPILE_OK;
}
-#define HASH_BRACE 1
-
static int
keyword_node_p(const NODE *const node)
{
- return nd_type(node) == NODE_HASH && (node->nd_brace & HASH_BRACE) != HASH_BRACE;
+ return nd_type(node) == NODE_HASH && node->nd_brace == FALSE;
}
static int
compile_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,
const NODE *const root_node,
- struct rb_callinfo_kwarg **const kw_arg_ptr,
+ struct rb_call_info_kw_arg **const kw_arg_ptr,
unsigned int *flag)
{
if (kw_arg_ptr == NULL) return FALSE;
- if (root_node->nd_head && nd_type(root_node->nd_head) == NODE_LIST) {
+ if (keyword_node_p(root_node) && root_node->nd_head && nd_type(root_node->nd_head) == NODE_LIST) {
const NODE *node = root_node->nd_head;
- int seen_nodes = 0;
while (node) {
const NODE *key_node = node->nd_head;
- seen_nodes++;
assert(nd_type(node) == NODE_LIST);
- if (key_node && nd_type(key_node) == NODE_LIT && RB_TYPE_P(key_node->nd_lit, T_SYMBOL)) {
+ if (!key_node) {
+ if (flag) *flag |= VM_CALL_KW_SPLAT;
+ return FALSE;
+ }
+ else if (nd_type(key_node) == NODE_LIT && RB_TYPE_P(key_node->nd_lit, T_SYMBOL)) {
/* can be keywords */
}
else {
- if (flag) {
- *flag |= VM_CALL_KW_SPLAT;
- if (seen_nodes > 1 || node->nd_next->nd_next) {
- /* A new hash will be created for the keyword arguments
- * in this case, so mark the method as passing mutable
- * keyword splat.
- */
- *flag |= VM_CALL_KW_SPLAT_MUT;
- }
- }
+ if (flag) *flag |= VM_CALL_KW_SPLAT;
return FALSE;
}
node = node->nd_next; /* skip value node */
@@ -4059,8 +3887,8 @@ compile_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,
node = root_node->nd_head;
{
int len = (int)node->nd_alen / 2;
- struct rb_callinfo_kwarg *kw_arg =
- rb_xmalloc_mul_add(len, sizeof(VALUE), sizeof(struct rb_callinfo_kwarg));
+ struct rb_call_info_kw_arg *kw_arg =
+ rb_xmalloc_mul_add(len - 1, sizeof(VALUE), sizeof(struct rb_call_info_kw_arg));
VALUE *keywords = kw_arg->keywords;
int i = 0;
kw_arg->keyword_len = len;
@@ -4082,7 +3910,7 @@ compile_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,
static int
compile_args(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node,
- struct rb_callinfo_kwarg **keywords_ptr, unsigned int *flag)
+ struct rb_call_info_kw_arg **keywords_ptr, unsigned int *flag)
{
int len = 0;
@@ -4091,13 +3919,9 @@ compile_args(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node,
EXPECT_NODE("compile_args", node, NODE_LIST, -1);
}
- if (node->nd_next == NULL && keyword_node_p(node->nd_head)) { /* last node */
- if (compile_keyword_arg(iseq, ret, node->nd_head, keywords_ptr, flag)) {
- len--;
- }
- else {
- compile_hash(iseq, ret, node->nd_head, TRUE, FALSE);
- }
+ if (node->nd_next == NULL /* last node */ &&
+ compile_keyword_arg(iseq, ret, node->nd_head, keywords_ptr, flag)) {
+ len--;
}
else {
NO_CHECK(COMPILE_(ret, "array element", node->nd_head, FALSE));
@@ -4287,7 +4111,7 @@ static_literal_node_pair_p(const NODE *node, const rb_iseq_t *iseq)
}
static int
-compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int method_call_keywords, int popped)
+compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped)
{
int line = (int)nd_line(node);
@@ -4416,54 +4240,38 @@ compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int meth
FLUSH_CHUNK();
const NODE *kw = node->nd_next->nd_head;
- int empty_kw = nd_type(kw) == NODE_LIT && RB_TYPE_P(kw->nd_lit, T_HASH); /* foo( ..., **{}, ...) */
+ int empty_kw = nd_type(kw) == NODE_LIT; /* foo( ..., **{}, ...) */
int first_kw = first_chunk && stack_len == 0; /* foo(1,2,3, **kw, ...) */
int last_kw = !node->nd_next->nd_next; /* foo( ..., **kw) */
int only_kw = last_kw && first_kw; /* foo(1,2,3, **kw) */
if (empty_kw) {
- if (only_kw && method_call_keywords) {
- /* **{} appears at the only keyword argument in method call,
- * so it won't be modified.
+ if (only_kw) {
+ /* **{} appears at the last, so it won't be modified.
* kw is a special NODE_LIT that contains a special empty hash,
- * so this emits: putobject {}.
- * This is only done for method calls and not for literal hashes,
- * because literal hashes should always result in a new hash.
+ * so this emits: putobject {}
*/
NO_CHECK(COMPILE(ret, "keyword splat", kw));
}
else if (first_kw) {
- /* **{} appears as the first keyword argument, so it may be modified.
+ /* **{} appears at the first, so it may be modified.
* We need to create a fresh hash object.
*/
ADD_INSN1(ret, line, newhash, INT2FIX(0));
}
- /* Any empty keyword splats that are not the first can be ignored.
- * since merging an empty hash into the existing hash is the same
- * as not merging it. */
}
else {
- if (only_kw && method_call_keywords) {
- /* **kw is only keyword argument in method call.
- * Use directly. This will be not be flagged as mutable.
- * This is only done for method calls and not for literal hashes,
- * because literal hashes should always result in a new hash.
- */
- NO_CHECK(COMPILE(ret, "keyword splat", kw));
- }
- else {
- /* There is more than one keyword argument, or this is not a method
- * call. In that case, we need to add an empty hash (if first keyword),
- * or merge the hash to the accumulated hash (if not the first keyword).
- */
- ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
- if (first_kw) ADD_INSN1(ret, line, newhash, INT2FIX(0));
- else ADD_INSN(ret, line, swap);
+ /* This is not empty hash: **{k:1}.
+ * We need to clone the hash (if first), or merge the hash to
+ * the accumulated hash (if not first).
+ */
+ ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
+ if (first_kw) ADD_INSN1(ret, line, newhash, INT2FIX(0));
+ else ADD_INSN(ret, line, swap);
- NO_CHECK(COMPILE(ret, "keyword splat", kw));
+ NO_CHECK(COMPILE(ret, "keyword splat", kw));
- ADD_SEND(ret, line, id_core_hash_merge_kwd, INT2FIX(2));
- }
+ ADD_SEND(ret, line, id_core_hash_merge_kwd, INT2FIX(2));
}
first_chunk = 0;
@@ -4585,26 +4393,21 @@ compile_massign_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const n
switch (nd_type(node)) {
case NODE_ATTRASGN: {
INSN *iobj;
+ struct rb_call_info *ci;
VALUE dupidx;
int line = nd_line(node);
CHECK(COMPILE_POPPED(ret, "masgn lhs (NODE_ATTRASGN)", node));
iobj = (INSN *)get_prev_insn((INSN *)LAST_ELEMENT(ret)); /* send insn */
- const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, 0);
- int argc = vm_ci_argc(ci) + 1;
- ci = ci_argc_set(iseq, ci, argc);
- OPERAND_AT(iobj, 0) = (VALUE)ci;
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
- dupidx = INT2FIX(argc);
+ ci = (struct rb_call_info *)OPERAND_AT(iobj, 0);
+ ci->orig_argc += 1;
+ dupidx = INT2FIX(ci->orig_argc);
INSERT_BEFORE_INSN1(iobj, line, topn, dupidx);
- if (vm_ci_flag(ci) & VM_CALL_ARGS_SPLAT) {
- int argc = vm_ci_argc(ci);
- ci = ci_argc_set(iseq, ci, argc - 1);
- OPERAND_AT(iobj, 0) = (VALUE)ci;
- RB_OBJ_WRITTEN(iseq, Qundef, iobj);
- INSERT_BEFORE_INSN1(iobj, line, newarray, INT2FIX(1));
+ if (ci->flag & VM_CALL_ARGS_SPLAT) {
+ --ci->orig_argc;
+ INSERT_BEFORE_INSN1(iobj, line, newarray, INT2FIX(1));
INSERT_BEFORE_INSN(iobj, line, concatarray);
}
ADD_INSN(ret, line, pop); /* result */
@@ -4926,7 +4729,7 @@ defined_expr0(rb_iseq_t *iseq, LINK_ANCHOR *const ret,
case NODE_GVAR:
ADD_INSN(ret, line, putnil);
ADD_INSN3(ret, line, defined, INT2FIX(DEFINED_GVAR),
- ID2SYM(node->nd_entry), needstr);
+ ID2SYM(node->nd_entry->id), needstr);
return;
case NODE_CVAR:
@@ -5200,7 +5003,7 @@ check_keyword(const NODE *node)
static VALUE
setup_args_core(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,
- int dup_rest, unsigned int *flag, struct rb_callinfo_kwarg **keywords)
+ int dup_rest, unsigned int *flag, struct rb_call_info_kw_arg **keywords)
{
if (argn) {
switch (nd_type(argn)) {
@@ -5260,16 +5063,16 @@ setup_args_core(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,
static VALUE
setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,
- unsigned int *flag, struct rb_callinfo_kwarg **keywords)
+ unsigned int *flag, struct rb_call_info_kw_arg **keywords)
{
VALUE ret;
if (argn && nd_type(argn) == NODE_BLOCK_PASS) {
- unsigned int dup_rest = 1;
DECL_ANCHOR(arg_block);
INIT_ANCHOR(arg_block);
NO_CHECK(COMPILE(arg_block, "block", argn->nd_body));
*flag |= VM_CALL_ARGS_BLOCKARG;
+ ret = setup_args_core(iseq, args, argn->nd_head, 0, flag, keywords);
if (LIST_INSN_SIZE_ONE(arg_block)) {
LINK_ELEMENT *elem = FIRST_ELEMENT(arg_block);
@@ -5278,10 +5081,8 @@ setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,
if (iobj->insn_id == BIN(getblockparam)) {
iobj->insn_id = BIN(getblockparamproxy);
}
- dup_rest = 0;
}
}
- ret = setup_args_core(iseq, args, argn->nd_head, dup_rest, flag, keywords);
ADD_SEQ(args, arg_block);
}
else {
@@ -5313,7 +5114,7 @@ compile_named_capture_assign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE
LABEL *fail_label = NEW_LABEL(line), *end_label = NEW_LABEL(line);
#if !(defined(NAMED_CAPTURE_BY_SVAR) && NAMED_CAPTURE_BY_SVAR-0)
- ADD_INSN1(ret, line, getglobal, ID2SYM(idBACKREF));
+ ADD_INSN1(ret, line, getglobal, ((VALUE)rb_global_entry(idBACKREF) | 1));
#else
ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */, INT2FIX(0));
#endif
@@ -5364,17 +5165,9 @@ compile_named_capture_assign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE
}
static int
-optimizable_range_item_p(const NODE *n)
+number_literal_p(const NODE *n)
{
- if (!n) return FALSE;
- switch (nd_type(n)) {
- case NODE_LIT:
- return RB_INTEGER_TYPE_P(n->nd_lit);
- case NODE_NIL:
- return TRUE;
- default:
- return FALSE;
- }
+ return (n && nd_type(n) == NODE_LIT && RB_INTEGER_TYPE_P(n->nd_lit));
}
static int
@@ -5385,12 +5178,16 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int
const NODE *const node_else = type == NODE_IF ? node->nd_else : node->nd_body;
const int line = nd_line(node);
+ const int lineno = nd_first_lineno(node);
+ const int column = nd_first_column(node);
+ const int last_lineno = nd_last_lineno(node);
+ const int last_column = nd_last_column(node);
DECL_ANCHOR(cond_seq);
DECL_ANCHOR(then_seq);
DECL_ANCHOR(else_seq);
LABEL *then_label, *else_label, *end_label;
VALUE branches = Qfalse;
- int ci_size;
+ int ci_size, ci_kw_size;
VALUE catch_table = ISEQ_COMPILE_DATA(iseq)->catch_table_ary;
long catch_table_size = NIL_P(catch_table) ? 0 : RARRAY_LEN(catch_table);
@@ -5405,10 +5202,12 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int
then_label, else_label);
ci_size = body->ci_size;
+ ci_kw_size = body->ci_kw_size;
CHECK(COMPILE_(then_seq, "then", node_body, popped));
catch_table = ISEQ_COMPILE_DATA(iseq)->catch_table_ary;
if (!then_label->refcnt) {
body->ci_size = ci_size;
+ body->ci_kw_size = ci_kw_size;
if (!NIL_P(catch_table)) rb_ary_set_len(catch_table, catch_table_size);
}
else {
@@ -5416,10 +5215,12 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int
}
ci_size = body->ci_size;
+ ci_kw_size = body->ci_kw_size;
CHECK(COMPILE_(else_seq, "else", node_else, popped));
catch_table = ISEQ_COMPILE_DATA(iseq)->catch_table_ary;
if (!else_label->refcnt) {
body->ci_size = ci_size;
+ body->ci_kw_size = ci_kw_size;
if (!NIL_P(catch_table)) rb_ary_set_len(catch_table, catch_table_size);
}
else {
@@ -5429,24 +5230,22 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int
ADD_SEQ(ret, cond_seq);
if (then_label->refcnt && else_label->refcnt) {
- branches = decl_branch_base(iseq, node, type == NODE_IF ? "if" : "unless");
+ DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_IF ? "if" : "unless");
}
if (then_label->refcnt) {
ADD_LABEL(ret, then_label);
if (else_label->refcnt) {
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
ret,
- node_body ? node_body : node,
- 0,
+ node_body ? nd_first_lineno(node_body) : lineno,
+ node_body ? nd_first_column(node_body) : column,
+ node_body ? nd_last_lineno(node_body) : last_lineno,
+ node_body ? nd_last_column(node_body) : last_column,
type == NODE_IF ? "then" : "else",
branches);
end_label = NEW_LABEL(line);
ADD_INSNL(then_seq, line, jump, end_label);
- if (!popped) {
- ADD_INSN(then_seq, line, pop);
- }
}
ADD_SEQ(ret, then_seq);
}
@@ -5454,11 +5253,12 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int
if (else_label->refcnt) {
ADD_LABEL(ret, else_label);
if (then_label->refcnt) {
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
ret,
- node_else ? node_else : node,
- 1,
+ node_else ? nd_first_lineno(node_else) : lineno,
+ node_else ? nd_first_column(node_else) : column,
+ node_else ? nd_last_lineno(node_else) : last_lineno,
+ node_else ? nd_last_column(node_else) : last_column,
type == NODE_IF ? "else" : "then",
branches);
}
@@ -5483,10 +5283,9 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod
DECL_ANCHOR(cond_seq);
int only_special_literals = 1;
VALUE literals = rb_hash_new();
- int line;
+ int line, lineno, column, last_lineno, last_column;
enum node_type type;
VALUE branches = Qfalse;
- int branch_id = 0;
INIT_ANCHOR(head);
INIT_ANCHOR(body_seq);
@@ -5496,12 +5295,16 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod
CHECK(COMPILE(head, "case base", node->nd_head));
- branches = decl_branch_base(iseq, node, "case");
+ DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "case");
node = node->nd_body;
EXPECT_NODE("NODE_CASE", node, NODE_WHEN, COMPILE_NG);
type = nd_type(node);
line = nd_line(node);
+ lineno = nd_first_lineno(node);
+ column = nd_first_column(node);
+ last_lineno = nd_last_lineno(node);
+ last_column = nd_last_column(node);
endlabel = NEW_LABEL(line);
elselabel = NEW_LABEL(line);
@@ -5514,11 +5317,12 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod
l1 = NEW_LABEL(line);
ADD_LABEL(body_seq, l1);
ADD_INSN(body_seq, line, pop);
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
body_seq,
- node->nd_body ? node->nd_body : node,
- branch_id++,
+ node->nd_body ? nd_first_lineno(node->nd_body) : lineno,
+ node->nd_body ? nd_first_column(node->nd_body) : column,
+ node->nd_body ? nd_last_lineno(node->nd_body) : last_lineno,
+ node->nd_body ? nd_last_column(node->nd_body) : last_column,
"when",
branches);
CHECK(COMPILE_(body_seq, "when body", node->nd_body, popped));
@@ -5551,12 +5355,16 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod
}
type = nd_type(node);
line = nd_line(node);
+ lineno = nd_first_lineno(node);
+ column = nd_first_column(node);
+ last_lineno = nd_last_lineno(node);
+ last_column = nd_last_column(node);
}
/* else */
if (node) {
ADD_LABEL(cond_seq, elselabel);
ADD_INSN(cond_seq, line, pop);
- add_trace_branch_coverage(iseq, cond_seq, node, branch_id, "else", branches);
+ ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);
CHECK(COMPILE_(cond_seq, "else", node, popped));
ADD_INSNL(cond_seq, line, jump, endlabel);
}
@@ -5564,7 +5372,7 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod
debugs("== else (implicit)\n");
ADD_LABEL(cond_seq, elselabel);
ADD_INSN(cond_seq, nd_line(orig_node), pop);
- add_trace_branch_coverage(iseq, cond_seq, orig_node, branch_id, "else", branches);
+ ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "else", branches);
if (!popped) {
ADD_INSN(cond_seq, nd_line(orig_node), putnil);
}
@@ -5593,22 +5401,26 @@ compile_case2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
LABEL *endlabel;
DECL_ANCHOR(body_seq);
VALUE branches = Qfalse;
- int branch_id = 0;
- branches = decl_branch_base(iseq, orig_node, "case");
+ DECL_BRANCH_BASE(branches, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "case");
INIT_ANCHOR(body_seq);
endlabel = NEW_LABEL(nd_line(node));
while (node && nd_type(node) == NODE_WHEN) {
const int line = nd_line(node);
+ const int lineno = nd_first_lineno(node);
+ const int column = nd_first_column(node);
+ const int last_lineno = nd_last_lineno(node);
+ const int last_column = nd_last_column(node);
LABEL *l1 = NEW_LABEL(line);
ADD_LABEL(body_seq, l1);
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
body_seq,
- node->nd_body ? node->nd_body : node,
- branch_id++,
+ node->nd_body ? nd_first_lineno(node->nd_body) : lineno,
+ node->nd_body ? nd_first_column(node->nd_body) : column,
+ node->nd_body ? nd_last_lineno(node->nd_body) : last_lineno,
+ node->nd_body ? nd_last_column(node->nd_body) : last_column,
"when",
branches);
CHECK(COMPILE_(body_seq, "when", node->nd_body, popped));
@@ -5644,11 +5456,12 @@ compile_case2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
node = node->nd_next;
}
/* else */
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
ret,
- node ? node : orig_node,
- branch_id,
+ node ? nd_first_lineno(node) : nd_first_lineno(orig_node),
+ node ? nd_first_column(node) : nd_first_column(orig_node),
+ node ? nd_last_lineno(node) : nd_last_lineno(orig_node),
+ node ? nd_last_column(node) : nd_last_column(orig_node),
"else",
branches);
CHECK(COMPILE_(ret, "else", node, popped));
@@ -5659,12 +5472,8 @@ compile_case2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
return COMPILE_OK;
}
-static int iseq_compile_pattern_match(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *unmatched, int in_alt_pattern, int deconstructed_pos);
-
-static int iseq_compile_array_deconstruct(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *deconstruct, LABEL *deconstructed, LABEL *match_failed, LABEL *type_error, int deconstructed_pos);
-
static int
-iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *matched, LABEL *unmatched, int in_alt_pattern, int deconstructed_pos)
+iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int in_alt_pattern)
{
const int line = nd_line(node);
@@ -5716,11 +5525,13 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
* goto match_failed
* end
* end
- * goto matched
+ * true
+ * goto fin
* type_error:
* FrozenCore.raise TypeError
* match_failed:
- * goto unmatched
+ * false
+ * fin:
*/
struct rb_ary_pattern_info *apinfo = node->nd_apinfo;
const NODE *args = apinfo->pre_args;
@@ -5731,19 +5542,15 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
const int use_rest_num = apinfo->rest_arg && (NODE_NAMED_REST_P(apinfo->rest_arg) ||
(!NODE_NAMED_REST_P(apinfo->rest_arg) && post_args_num > 0));
- LABEL *match_failed, *type_error, *deconstruct, *deconstructed;
+ LABEL *match_failed, *type_error, *fin;
int i;
match_failed = NEW_LABEL(line);
type_error = NEW_LABEL(line);
- deconstruct = NEW_LABEL(line);
- deconstructed = NEW_LABEL(line);
+ fin = NEW_LABEL(line);
if (use_rest_num) {
ADD_INSN1(ret, line, putobject, INT2FIX(0)); /* allocate stack for rest_num */
ADD_INSN(ret, line, swap);
- if (deconstructed_pos) {
- deconstructed_pos++;
- }
}
if (node->nd_pconst) {
@@ -5753,7 +5560,16 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
ADD_INSNL(ret, line, branchunless, match_failed);
}
- CHECK(iseq_compile_array_deconstruct(iseq, ret, node, deconstruct, deconstructed, match_failed, type_error, deconstructed_pos));
+ ADD_INSN(ret, line, dup);
+ ADD_INSN1(ret, line, putobject, ID2SYM(rb_intern("deconstruct")));
+ ADD_SEND(ret, line, idRespond_to, INT2FIX(1));
+ ADD_INSNL(ret, line, branchunless, match_failed);
+
+ ADD_SEND(ret, line, rb_intern("deconstruct"), INT2FIX(0));
+
+ ADD_INSN(ret, line, dup);
+ ADD_INSN1(ret, line, checktype, INT2FIX(T_ARRAY));
+ ADD_INSNL(ret, line, branchunless, type_error);
ADD_INSN(ret, line, dup);
ADD_SEND(ret, line, idLength, INT2FIX(0));
@@ -5765,8 +5581,9 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
ADD_INSN(ret, line, dup);
ADD_INSN1(ret, line, putobject, INT2FIX(i));
ADD_SEND(ret, line, idAREF, INT2FIX(1));
- CHECK(iseq_compile_pattern_match(iseq, ret, args->nd_head, match_failed, in_alt_pattern, FALSE));
+ iseq_compile_pattern_each(iseq, ret, args->nd_head, in_alt_pattern);
args = args->nd_next;
+ ADD_INSNL(ret, line, branchunless, match_failed);
}
if (apinfo->rest_arg) {
@@ -5780,7 +5597,8 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
ADD_INSN1(ret, line, setn, INT2FIX(4));
ADD_SEND(ret, line, idAREF, INT2FIX(2));
- CHECK(iseq_compile_pattern_match(iseq, ret, apinfo->rest_arg, match_failed, in_alt_pattern, FALSE));
+ iseq_compile_pattern_each(iseq, ret, apinfo->rest_arg, in_alt_pattern);
+ ADD_INSNL(ret, line, branchunless, match_failed);
}
else {
if (post_args_num > 0) {
@@ -5803,196 +5621,31 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
ADD_SEND(ret, line, idPLUS, INT2FIX(1));
ADD_SEND(ret, line, idAREF, INT2FIX(1));
- CHECK(iseq_compile_pattern_match(iseq, ret, args->nd_head, match_failed, in_alt_pattern, FALSE));
+ iseq_compile_pattern_each(iseq, ret, args->nd_head, in_alt_pattern);
args = args->nd_next;
+ ADD_INSNL(ret, line, branchunless, match_failed);
}
ADD_INSN(ret, line, pop);
if (use_rest_num) {
ADD_INSN(ret, line, pop);
}
- ADD_INSNL(ret, line, jump, matched);
- ADD_INSN(ret, line, putnil);
- if (use_rest_num) {
- ADD_INSN(ret, line, putnil);
- }
+ ADD_INSN1(ret, line, putobject, Qtrue);
+ ADD_INSNL(ret, line, jump, fin);
ADD_LABEL(ret, type_error);
ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
ADD_INSN1(ret, line, putobject, rb_eTypeError);
ADD_INSN1(ret, line, putobject, rb_fstring_lit("deconstruct must return Array"));
ADD_SEND(ret, line, id_core_raise, INT2FIX(2));
- ADD_INSN(ret, line, pop);
ADD_LABEL(ret, match_failed);
ADD_INSN(ret, line, pop);
if (use_rest_num) {
ADD_INSN(ret, line, pop);
}
- ADD_INSNL(ret, line, jump, unmatched);
-
- break;
- }
- case NODE_FNDPTN: {
- /*
- * if pattern.has_constant_node?
- * unless pattern.constant === obj
- * goto match_failed
- * end
- * end
- * unless obj.respond_to?(:deconstruct)
- * goto match_failed
- * end
- * d = obj.deconstruct
- * unless Array === d
- * goto type_error
- * end
- * unless d.length >= pattern.args_num
- * goto match_failed
- * end
- *
- * begin
- * len = d.length
- * limit = d.length - pattern.args_num
- * i = 0
- * while i <= limit
- * if pattern.args_num.times.all? {|j| pattern.args[j].match?(d[i+j]) }
- * if pattern.has_pre_rest_arg_id
- * unless pattern.pre_rest_arg.match?(d[0, i])
- * goto find_failed
- * end
- * end
- * if pattern.has_post_rest_arg_id
- * unless pattern.post_rest_arg.match?(d[i+pattern.args_num, len])
- * goto find_failed
- * end
- * end
- * goto find_succeeded
- * end
- * i+=1
- * end
- * find_failed:
- * goto match_failed
- * find_succeeded:
- * end
- *
- * goto matched
- * type_error:
- * FrozenCore.raise TypeError
- * match_failed:
- * goto unmatched
- */
- struct rb_fnd_pattern_info *fpinfo = node->nd_fpinfo;
- const NODE *args = fpinfo->args;
- const int args_num = fpinfo->args ? rb_long2int(fpinfo->args->nd_alen) : 0;
-
- LABEL *match_failed, *type_error, *deconstruct, *deconstructed;
- match_failed = NEW_LABEL(line);
- type_error = NEW_LABEL(line);
- deconstruct = NEW_LABEL(line);
- deconstructed = NEW_LABEL(line);
-
- if (node->nd_pconst) {
- ADD_INSN(ret, line, dup);
- CHECK(COMPILE(ret, "constant", node->nd_pconst));
- ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));
- ADD_INSNL(ret, line, branchunless, match_failed);
- }
-
- CHECK(iseq_compile_array_deconstruct(iseq, ret, node, deconstruct, deconstructed, match_failed, type_error, deconstructed_pos));
-
- ADD_INSN(ret, line, dup);
- ADD_SEND(ret, line, idLength, INT2FIX(0));
- ADD_INSN1(ret, line, putobject, INT2FIX(args_num));
- ADD_SEND(ret, line, idGE, INT2FIX(1));
- ADD_INSNL(ret, line, branchunless, match_failed);
-
- {
- LABEL *while_begin = NEW_LABEL(nd_line(node));
- LABEL *next_loop = NEW_LABEL(nd_line(node));
- LABEL *find_succeeded = NEW_LABEL(line);
- LABEL *find_failed = NEW_LABEL(nd_line(node));
- int j;
-
- ADD_INSN(ret, line, dup); /* allocate stack for len */
- ADD_SEND(ret, line, idLength, INT2FIX(0));
-
- ADD_INSN(ret, line, dup); /* allocate stack for limit */
- ADD_INSN1(ret, line, putobject, INT2FIX(args_num));
- ADD_SEND(ret, line, idMINUS, INT2FIX(1));
-
- ADD_INSN1(ret, line, putobject, INT2FIX(0)); /* allocate stack for i */
-
- ADD_LABEL(ret, while_begin);
-
- ADD_INSN(ret, line, dup);
- ADD_INSN1(ret, line, topn, INT2FIX(2));
- ADD_SEND(ret, line, idLE, INT2FIX(1));
- ADD_INSNL(ret, line, branchunless, find_failed);
-
- for (j = 0; j < args_num; j++) {
- ADD_INSN1(ret, line, topn, INT2FIX(3));
- ADD_INSN1(ret, line, topn, INT2FIX(1));
- if (j != 0) {
- ADD_INSN1(ret, line, putobject, INT2FIX(j));
- ADD_SEND(ret, line, idPLUS, INT2FIX(1));
- }
- ADD_SEND(ret, line, idAREF, INT2FIX(1));
-
- CHECK(iseq_compile_pattern_match(iseq, ret, args->nd_head, next_loop, in_alt_pattern, FALSE));
- args = args->nd_next;
- }
-
- if (NODE_NAMED_REST_P(fpinfo->pre_rest_arg)) {
- ADD_INSN1(ret, line, topn, INT2FIX(3));
- ADD_INSN1(ret, line, putobject, INT2FIX(0));
- ADD_INSN1(ret, line, topn, INT2FIX(2));
- ADD_SEND(ret, line, idAREF, INT2FIX(2));
- CHECK(iseq_compile_pattern_match(iseq, ret, fpinfo->pre_rest_arg, find_failed, in_alt_pattern, FALSE));
- }
- if (NODE_NAMED_REST_P(fpinfo->post_rest_arg)) {
- ADD_INSN1(ret, line, topn, INT2FIX(3));
- ADD_INSN1(ret, line, topn, INT2FIX(1));
- ADD_INSN1(ret, line, putobject, INT2FIX(args_num));
- ADD_SEND(ret, line, idPLUS, INT2FIX(1));
- ADD_INSN1(ret, line, topn, INT2FIX(3));
- ADD_SEND(ret, line, idAREF, INT2FIX(2));
- CHECK(iseq_compile_pattern_match(iseq, ret, fpinfo->post_rest_arg, find_failed, in_alt_pattern, FALSE));
- }
- ADD_INSNL(ret, line, jump, find_succeeded);
-
- ADD_LABEL(ret, next_loop);
- ADD_INSN1(ret, line, putobject, INT2FIX(1));
- ADD_SEND(ret, line, idPLUS, INT2FIX(1));
- ADD_INSNL(ret, line, jump, while_begin);
-
- ADD_LABEL(ret, find_failed);
- ADD_INSN(ret, line, pop);
- ADD_INSN(ret, line, pop);
- ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, match_failed);
- ADD_INSN1(ret, line, dupn, INT2FIX(3));
-
- ADD_LABEL(ret, find_succeeded);
- ADD_INSN(ret, line, pop);
- ADD_INSN(ret, line, pop);
- ADD_INSN(ret, line, pop);
- }
-
- ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, matched);
- ADD_INSN(ret, line, putnil);
-
- ADD_LABEL(ret, type_error);
- ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
- ADD_INSN1(ret, line, putobject, rb_eTypeError);
- ADD_INSN1(ret, line, putobject, rb_fstring_lit("deconstruct must return Array"));
- ADD_SEND(ret, line, id_core_raise, INT2FIX(2));
- ADD_INSN(ret, line, pop);
-
- ADD_LABEL(ret, match_failed);
- ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, unmatched);
+ ADD_INSN1(ret, line, putobject, Qfalse);
+ ADD_LABEL(ret, fin);
break;
}
@@ -6050,17 +5703,20 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
* end
* end
* end
- * goto matched
+ * true
+ * goto fin
* type_error:
* FrozenCore.raise TypeError
* match_failed:
- * goto unmatched
+ * false
+ * fin:
*/
- LABEL *match_failed, *type_error;
+ LABEL *match_failed, *type_error, *fin;
VALUE keys = Qnil;
match_failed = NEW_LABEL(line);
type_error = NEW_LABEL(line);
+ fin = NEW_LABEL(line);
if (node->nd_pkwargs && !node->nd_pkwrestarg) {
const NODE *kw_args = node->nd_pkwargs->nd_head;
@@ -6127,7 +5783,8 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
ADD_INSN(match_values, line, dup);
ADD_INSN1(match_values, line, putobject, key);
ADD_SEND(match_values, line, node->nd_pkwrestarg ? rb_intern("delete") : idAREF, INT2FIX(1));
- CHECK(iseq_compile_pattern_match(iseq, match_values, value_node, match_failed, in_alt_pattern, FALSE));
+ iseq_compile_pattern_each(iseq, match_values, value_node, in_alt_pattern);
+ ADD_INSNL(match_values, line, branchunless, match_failed);
args = args->nd_next->nd_next;
}
ADD_SEQ(ret, match_values);
@@ -6147,24 +5804,26 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
}
else {
ADD_INSN(ret, line, dup);
- CHECK(iseq_compile_pattern_match(iseq, ret, node->nd_pkwrestarg, match_failed, in_alt_pattern, FALSE));
+ iseq_compile_pattern_each(iseq, ret, node->nd_pkwrestarg, in_alt_pattern);
+ ADD_INSNL(ret, line, branchunless, match_failed);
}
}
ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, matched);
- ADD_INSN(ret, line, putnil);
+ ADD_INSN1(ret, line, putobject, Qtrue);
+ ADD_INSNL(ret, line, jump, fin);
ADD_LABEL(ret, type_error);
ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
ADD_INSN1(ret, line, putobject, rb_eTypeError);
ADD_INSN1(ret, line, putobject, rb_fstring_lit("deconstruct_keys must return Hash"));
ADD_SEND(ret, line, id_core_raise, INT2FIX(2));
- ADD_INSN(ret, line, pop);
ADD_LABEL(ret, match_failed);
ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, unmatched);
+ ADD_INSN1(ret, line, putobject, Qfalse);
+
+ ADD_LABEL(ret, fin);
break;
}
case NODE_LIT:
@@ -6189,8 +5848,6 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
case NODE_COLON3:
CHECK(COMPILE(ret, "case in literal", node));
ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));
- ADD_INSNL(ret, line, branchif, matched);
- ADD_INSNL(ret, line, jump, unmatched);
break;
case NODE_LASGN: {
struct rb_iseq_constant_body *const body = iseq->body;
@@ -6207,7 +5864,7 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
}
ADD_SETLOCAL(ret, line, idx, get_lvar_level(iseq));
- ADD_INSNL(ret, line, jump, matched);
+ ADD_INSN1(ret, line, putobject, Qtrue);
break;
}
case NODE_DASGN:
@@ -6232,14 +5889,16 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
return COMPILE_NG;
}
ADD_SETLOCAL(ret, line, ls - idx, lv);
- ADD_INSNL(ret, line, jump, matched);
+ ADD_INSN1(ret, line, putobject, Qtrue);
break;
}
case NODE_IF:
case NODE_UNLESS: {
- LABEL *match_failed;
- match_failed = unmatched;
- CHECK(iseq_compile_pattern_match(iseq, ret, node->nd_body, unmatched, in_alt_pattern, deconstructed_pos));
+ LABEL *match_failed, *fin;
+ match_failed = NEW_LABEL(line);
+ fin = NEW_LABEL(line);
+ iseq_compile_pattern_each(iseq, ret, node->nd_body, in_alt_pattern);
+ ADD_INSNL(ret, line, branchunless, match_failed);
CHECK(COMPILE(ret, "case in if", node->nd_cond));
if (nd_type(node) == NODE_IF) {
ADD_INSNL(ret, line, branchunless, match_failed);
@@ -6247,13 +5906,20 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
else {
ADD_INSNL(ret, line, branchif, match_failed);
}
- ADD_INSNL(ret, line, jump, matched);
+ ADD_INSN1(ret, line, putobject, Qtrue);
+ ADD_INSNL(ret, line, jump, fin);
+
+ ADD_LABEL(ret, match_failed);
+ ADD_INSN1(ret, line, putobject, Qfalse);
+
+ ADD_LABEL(ret, fin);
break;
}
case NODE_HASH: {
NODE *n;
- LABEL *match_failed;
+ LABEL *match_failed, *fin;
match_failed = NEW_LABEL(line);
+ fin = NEW_LABEL(line);
n = node->nd_head;
if (! (nd_type(n) == NODE_LIST && n->nd_alen == 2)) {
@@ -6262,13 +5928,16 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
}
ADD_INSN(ret, line, dup);
- CHECK(iseq_compile_pattern_match(iseq, ret, n->nd_head, match_failed, in_alt_pattern, deconstructed_pos ? deconstructed_pos + 1 : FALSE));
- CHECK(iseq_compile_pattern_each(iseq, ret, n->nd_next->nd_head, matched, match_failed, in_alt_pattern, FALSE));
- ADD_INSN(ret, line, putnil);
+ iseq_compile_pattern_each(iseq, ret, n->nd_head, in_alt_pattern);
+ ADD_INSNL(ret, line, branchunless, match_failed);
+ iseq_compile_pattern_each(iseq, ret, n->nd_next->nd_head, in_alt_pattern);
+ ADD_INSNL(ret, line, jump, fin);
ADD_LABEL(ret, match_failed);
ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, unmatched);
+ ADD_INSN1(ret, line, putobject, Qfalse);
+
+ ADD_LABEL(ret, fin);
break;
}
case NODE_OR: {
@@ -6277,13 +5946,16 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
fin = NEW_LABEL(line);
ADD_INSN(ret, line, dup);
- CHECK(iseq_compile_pattern_each(iseq, ret, node->nd_1st, match_succeeded, fin, TRUE, deconstructed_pos ? deconstructed_pos + 1 : FALSE));
+ iseq_compile_pattern_each(iseq, ret, node->nd_1st, TRUE);
+ ADD_INSNL(ret, line, branchif, match_succeeded);
+ iseq_compile_pattern_each(iseq, ret, node->nd_2nd, TRUE);
+ ADD_INSNL(ret, line, jump, fin);
+
ADD_LABEL(ret, match_succeeded);
ADD_INSN(ret, line, pop);
- ADD_INSNL(ret, line, jump, matched);
- ADD_INSN(ret, line, putnil);
+ ADD_INSN1(ret, line, putobject, Qtrue);
+
ADD_LABEL(ret, fin);
- CHECK(iseq_compile_pattern_each(iseq, ret, node->nd_2nd, matched, unmatched, TRUE, deconstructed_pos));
break;
}
default:
@@ -6293,71 +5965,6 @@ iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *c
}
static int
-iseq_compile_pattern_match(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *unmatched, int in_alt_pattern, int deconstructed_pos)
-{
- LABEL *fin = NEW_LABEL(nd_line(node));
- CHECK(iseq_compile_pattern_each(iseq, ret, node, fin, unmatched, in_alt_pattern, deconstructed_pos));
- ADD_LABEL(ret, fin);
- return COMPILE_OK;
-}
-
-static int
-iseq_compile_array_deconstruct(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *deconstruct, LABEL *deconstructed, LABEL *match_failed, LABEL *type_error, int deconstructed_pos)
-{
- const int line = nd_line(node);
-
- // NOTE: this optimization allows us to re-use the #deconstruct value
- // (or its absence).
- // `deconstructed_pos` contains the distance to the stack relative location
- // where the value is stored.
- if (deconstructed_pos) {
- // If value is nil then we haven't tried to deconstruct
- ADD_INSN1(ret, line, topn, INT2FIX(deconstructed_pos));
- ADD_INSNL(ret, line, branchnil, deconstruct);
-
- // If false then the value is not deconstructable
- ADD_INSN1(ret, line, topn, INT2FIX(deconstructed_pos));
- ADD_INSNL(ret, line, branchunless, match_failed);
-
- // Drop value, add deconstructed to the stack and jump
- ADD_INSN(ret, line, pop);
- ADD_INSN1(ret, line, topn, INT2FIX(deconstructed_pos - 1));
- ADD_INSNL(ret, line, jump, deconstructed);
- }
- else {
- ADD_INSNL(ret, line, jump, deconstruct);
- }
-
- ADD_LABEL(ret, deconstruct);
- ADD_INSN(ret, line, dup);
- ADD_INSN1(ret, line, putobject, ID2SYM(rb_intern("deconstruct")));
- ADD_SEND(ret, line, idRespond_to, INT2FIX(1));
-
- // Cache the result of respond_to? (in case it's false is stays there, if true - it's overwritten after #deconstruct)
- if (deconstructed_pos) {
- ADD_INSN1(ret, line, setn, INT2FIX(deconstructed_pos + 1));
- }
-
- ADD_INSNL(ret, line, branchunless, match_failed);
-
- ADD_SEND(ret, line, rb_intern("deconstruct"), INT2FIX(0));
-
- // Cache the result (if it's cacheable - currently, only top-level array patterns)
- if (deconstructed_pos) {
- ADD_INSN1(ret, line, setn, INT2FIX(deconstructed_pos));
- }
-
- ADD_INSN(ret, line, dup);
- ADD_INSN1(ret, line, checktype, INT2FIX(T_ARRAY));
- ADD_INSNL(ret, line, branchunless, type_error);
- ADD_INSNL(ret, line, jump, deconstructed);
-
- ADD_LABEL(ret, deconstructed);
-
- return COMPILE_OK;
-}
-
-static int
compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_node, int popped)
{
const NODE *pattern;
@@ -6366,46 +5973,44 @@ compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
DECL_ANCHOR(head);
DECL_ANCHOR(body_seq);
DECL_ANCHOR(cond_seq);
- int line;
+ int line, lineno, column, last_lineno, last_column;
enum node_type type;
VALUE branches = 0;
- int branch_id = 0;
INIT_ANCHOR(head);
INIT_ANCHOR(body_seq);
INIT_ANCHOR(cond_seq);
- branches = decl_branch_base(iseq, node, "case");
+ CHECK(COMPILE(head, "case base", node->nd_head));
+
+ DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "case");
node = node->nd_body;
EXPECT_NODE("NODE_CASE3", node, NODE_IN, COMPILE_NG);
type = nd_type(node);
line = nd_line(node);
+ lineno = nd_first_lineno(node);
+ column = nd_first_column(node);
+ last_lineno = nd_last_lineno(node);
+ last_column = nd_last_column(node);
endlabel = NEW_LABEL(line);
elselabel = NEW_LABEL(line);
- ADD_INSN(head, line, putnil); /* allocate stack for cached #deconstruct value */
-
- CHECK(COMPILE(head, "case base", orig_node->nd_head));
-
ADD_SEQ(ret, head); /* case VAL */
while (type == NODE_IN) {
LABEL *l1;
- if (branch_id) {
- ADD_INSN(body_seq, line, putnil);
- }
l1 = NEW_LABEL(line);
ADD_LABEL(body_seq, l1);
ADD_INSN(body_seq, line, pop);
- ADD_INSN(body_seq, line, pop); /* discard cached #deconstruct value */
- add_trace_branch_coverage(
- iseq,
+ ADD_TRACE_BRANCH_COVERAGE(
body_seq,
- node->nd_body ? node->nd_body : node,
- branch_id++,
+ node->nd_body ? nd_first_lineno(node->nd_body) : lineno,
+ node->nd_body ? nd_first_column(node->nd_body) : column,
+ node->nd_body ? nd_last_lineno(node->nd_body) : last_lineno,
+ node->nd_body ? nd_last_column(node->nd_body) : last_column,
"in",
branches);
CHECK(COMPILE_(body_seq, "in body", node->nd_body, popped));
@@ -6413,14 +6018,9 @@ compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
pattern = node->nd_head;
if (pattern) {
- int pat_line = nd_line(pattern);
- LABEL *next_pat = NEW_LABEL(pat_line);
- ADD_INSN (cond_seq, pat_line, dup);
- // NOTE: set deconstructed_pos to the current cached value location
- // (it's "under" the matchee value, so it's position is 2)
- CHECK(iseq_compile_pattern_each(iseq, cond_seq, pattern, l1, next_pat, FALSE, 2));
- ADD_LABEL(cond_seq, next_pat);
- LABEL_UNREMOVABLE(next_pat);
+ ADD_INSN (cond_seq, nd_line(pattern), dup);
+ iseq_compile_pattern_each(iseq, cond_seq, pattern, FALSE);
+ ADD_INSNL(cond_seq, nd_line(pattern), branchif, l1);
}
else {
COMPILE_ERROR(ERROR_ARGS "unexpected node");
@@ -6433,39 +6033,33 @@ compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
}
type = nd_type(node);
line = nd_line(node);
+ lineno = nd_first_lineno(node);
+ column = nd_first_column(node);
+ last_lineno = nd_last_lineno(node);
+ last_column = nd_last_column(node);
}
/* else */
if (node) {
ADD_LABEL(cond_seq, elselabel);
ADD_INSN(cond_seq, line, pop);
- ADD_INSN(cond_seq, line, pop); /* discard cached #deconstruct value */
- add_trace_branch_coverage(iseq, cond_seq, node, branch_id, "else", branches);
+ ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);
CHECK(COMPILE_(cond_seq, "else", node, popped));
ADD_INSNL(cond_seq, line, jump, endlabel);
- ADD_INSN(cond_seq, line, putnil);
- if (popped) {
- ADD_INSN(cond_seq, line, putnil);
- }
}
else {
debugs("== else (implicit)\n");
ADD_LABEL(cond_seq, elselabel);
- add_trace_branch_coverage(iseq, cond_seq, orig_node, branch_id, "else", branches);
+ ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "else", branches);
ADD_INSN1(cond_seq, nd_line(orig_node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));
ADD_INSN1(cond_seq, nd_line(orig_node), putobject, rb_eNoMatchingPatternError);
ADD_INSN1(cond_seq, nd_line(orig_node), topn, INT2FIX(2));
ADD_SEND(cond_seq, nd_line(orig_node), id_core_raise, INT2FIX(2));
ADD_INSN(cond_seq, nd_line(orig_node), pop);
ADD_INSN(cond_seq, nd_line(orig_node), pop);
- ADD_INSN(cond_seq, nd_line(orig_node), pop); /* discard cached #deconstruct value */
if (!popped) {
ADD_INSN(cond_seq, nd_line(orig_node), putnil);
}
ADD_INSNL(cond_seq, nd_line(orig_node), jump, endlabel);
- ADD_INSN(cond_seq, line, putnil);
- if (popped) {
- ADD_INSN(cond_seq, line, putnil);
- }
}
ADD_SEQ(ret, cond_seq);
@@ -6478,7 +6072,10 @@ static int
compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)
{
const int line = (int)nd_line(node);
-
+ const int lineno = nd_first_lineno(node);
+ const int column = nd_first_column(node);
+ const int last_lineno = nd_last_lineno(node);
+ const int last_column = nd_last_column(node);
LABEL *prev_start_label = ISEQ_COMPILE_DATA(iseq)->start_label;
LABEL *prev_end_label = ISEQ_COMPILE_DATA(iseq)->end_label;
LABEL *prev_redo_label = ISEQ_COMPILE_DATA(iseq)->redo_label;
@@ -6514,12 +6111,13 @@ compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in
if (tmp_label) ADD_LABEL(ret, tmp_label);
ADD_LABEL(ret, redo_label);
- branches = decl_branch_base(iseq, node, type == NODE_WHILE ? "while" : "until");
- add_trace_branch_coverage(
- iseq,
+ DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_WHILE ? "while" : "until");
+ ADD_TRACE_BRANCH_COVERAGE(
ret,
- node->nd_body ? node->nd_body : node,
- 0,
+ node->nd_body ? nd_first_lineno(node->nd_body) : lineno,
+ node->nd_body ? nd_first_column(node->nd_body) : column,
+ node->nd_body ? nd_last_lineno(node->nd_body) : last_lineno,
+ node->nd_body ? nd_last_column(node->nd_body) : last_column,
"body",
branches);
CHECK(COMPILE_POPPED(ret, "while body", node->nd_body));
@@ -6656,8 +6254,22 @@ compile_break(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, i
ADD_INSN(ret, line, putnil);
}
}
+ else if (iseq->body->type == ISEQ_TYPE_BLOCK) {
+ break_by_insn:
+ /* escape from block */
+ CHECK(COMPILE(ret, "break val (block)", node->nd_stts));
+ ADD_INSN1(ret, line, throw, INT2FIX(throw_flag | TAG_BREAK));
+ if (popped) {
+ ADD_INSN(ret, line, pop);
+ }
+ }
+ else if (iseq->body->type == ISEQ_TYPE_EVAL) {
+ break_in_eval:
+ COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with break");
+ return COMPILE_NG;
+ }
else {
- const rb_iseq_t *ip = iseq;
+ const rb_iseq_t *ip = iseq->body->parent_iseq;
while (ip) {
if (!ISEQ_COMPILE_DATA(ip)) {
@@ -6667,26 +6279,16 @@ compile_break(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, i
if (ISEQ_COMPILE_DATA(ip)->redo_label != 0) {
throw_flag = VM_THROW_NO_ESCAPE_FLAG;
+ goto break_by_insn;
}
else if (ip->body->type == ISEQ_TYPE_BLOCK) {
- throw_flag = 0;
+ goto break_by_insn;
}
else if (ip->body->type == ISEQ_TYPE_EVAL) {
- COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with break");
- return COMPILE_NG;
+ goto break_in_eval;
}
- else {
- ip = ip->body->parent_iseq;
- continue;
- }
- /* escape from block */
- CHECK(COMPILE(ret, "break val (block)", node->nd_stts));
- ADD_INSN1(ret, line, throw, INT2FIX(throw_flag | TAG_BREAK));
- if (popped) {
- ADD_INSN(ret, line, pop);
- }
- return COMPILE_OK;
+ ip = ip->body->parent_iseq;
}
COMPILE_ERROR(ERROR_ARGS "Invalid break");
return COMPILE_NG;
@@ -6728,6 +6330,11 @@ compile_next(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in
ADD_INSN(ret, line, putnil);
}
}
+ else if (iseq->body->type == ISEQ_TYPE_EVAL) {
+ next_in_eval:
+ COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with next");
+ return COMPILE_NG;
+ }
else {
const rb_iseq_t *ip = iseq;
@@ -6746,8 +6353,7 @@ compile_next(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in
break;
}
else if (ip->body->type == ISEQ_TYPE_EVAL) {
- COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with next");
- return COMPILE_NG;
+ goto next_in_eval;
}
ip = ip->body->parent_iseq;
@@ -6785,7 +6391,12 @@ compile_redo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in
ADD_INSN(ret, line, putnil);
}
}
- else if (iseq->body->type != ISEQ_TYPE_EVAL && ISEQ_COMPILE_DATA(iseq)->start_label) {
+ else if (iseq->body->type == ISEQ_TYPE_EVAL) {
+ redo_in_eval:
+ COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with redo");
+ return COMPILE_NG;
+ }
+ else if (ISEQ_COMPILE_DATA(iseq)->start_label) {
LABEL *splabel = NEW_LABEL(0);
debugs("redo in block");
@@ -6815,8 +6426,7 @@ compile_redo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in
break;
}
else if (ip->body->type == ISEQ_TYPE_EVAL) {
- COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with redo");
- return COMPILE_NG;
+ goto redo_in_eval;
}
ip = ip->body->parent_iseq;
@@ -7076,13 +6686,15 @@ static LABEL *
qcall_branch_start(rb_iseq_t *iseq, LINK_ANCHOR *const recv, VALUE *branches, const NODE *node, int line)
{
LABEL *else_label = NEW_LABEL(line);
+ const int first_lineno = nd_first_lineno(node), first_column = nd_first_column(node);
+ const int last_lineno = nd_last_lineno(node), last_column = nd_last_column(node);
VALUE br = 0;
- br = decl_branch_base(iseq, node, "&.");
+ DECL_BRANCH_BASE(br, first_lineno, first_column, last_lineno, last_column, "&.");
*branches = br;
ADD_INSN(recv, line, dup);
ADD_INSNL(recv, line, branchnil, else_label);
- add_trace_branch_coverage(iseq, recv, node, 0, "then", br);
+ ADD_TRACE_BRANCH_COVERAGE(recv, first_lineno, first_column, last_lineno, last_column, "then", br);
return else_label;
}
@@ -7094,7 +6706,8 @@ qcall_branch_end(rb_iseq_t *iseq, LINK_ANCHOR *const ret, LABEL *else_label, VAL
end_label = NEW_LABEL(line);
ADD_INSNL(ret, line, jump, end_label);
ADD_LABEL(ret, else_label);
- add_trace_branch_coverage(iseq, ret, node, 1, "else", branches);
+ ADD_TRACE_BRANCH_COVERAGE(ret, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node),
+ "else", branches);
ADD_LABEL(ret, end_label);
}
@@ -7166,39 +6779,18 @@ iseq_builtin_function_lookup(const rb_iseq_t *iseq, const char *name)
}
static const char *
-iseq_builtin_function_name(const enum node_type type, const NODE *recv, ID mid)
+iseq_builtin_function_name(ID mid)
{
const char *name = rb_id2name(mid);
static const char prefix[] = "__builtin_";
const size_t prefix_len = sizeof(prefix) - 1;
- switch (type) {
- case NODE_CALL:
- if (recv) {
- switch (nd_type(recv)) {
- case NODE_VCALL:
- if (recv->nd_mid == rb_intern("__builtin")) {
- return name;
- }
- break;
- case NODE_CONST:
- if (recv->nd_vid == rb_intern("Primitive")) {
- return name;
- }
- break;
- default: break;
- }
- }
- break;
- case NODE_VCALL:
- case NODE_FCALL:
- if (UNLIKELY(strncmp(prefix, name, prefix_len) == 0)) {
- return &name[prefix_len];
- }
- break;
- default: break;
+ if (UNLIKELY(strncmp(prefix, name, prefix_len) == 0)) {
+ return &name[prefix_len];
+ }
+ else {
+ return NULL;
}
- return NULL;
}
static int
@@ -7264,93 +6856,7 @@ delegate_call_p(const rb_iseq_t *iseq, unsigned int argc, const LINK_ANCHOR *arg
}
static int
-compile_builtin_function_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int line, int popped,
- const rb_iseq_t *parent_block, LINK_ANCHOR *args, const char *builtin_func)
-{
- NODE *args_node = node->nd_args;
-
- if (parent_block != NULL) {
- COMPILE_ERROR(iseq, line, "should not call builtins here.");
- return COMPILE_NG;
- }
- else {
-# define BUILTIN_INLINE_PREFIX "_bi"
- char inline_func[DECIMAL_SIZE_OF_BITS(sizeof(int) * CHAR_BIT) + sizeof(BUILTIN_INLINE_PREFIX)];
- bool cconst = false;
- retry:;
- const struct rb_builtin_function *bf = iseq_builtin_function_lookup(iseq, builtin_func);
-
- if (bf == NULL) {
- if (strcmp("cstmt!", builtin_func) == 0 ||
- strcmp("cexpr!", builtin_func) == 0) {
- // ok
- }
- else if (strcmp("cconst!", builtin_func) == 0) {
- cconst = true;
- }
- else if (strcmp("cinit!", builtin_func) == 0) {
- // ignore
- GET_VM()->builtin_inline_index++;
- return COMPILE_OK;
- }
- else if (strcmp("attr!", builtin_func) == 0) {
- // There's only "inline" attribute for now
- iseq->body->builtin_inline_p = true;
- return COMPILE_OK;
- }
- else if (1) {
- rb_bug("can't find builtin function:%s", builtin_func);
- }
- else {
- COMPILE_ERROR(ERROR_ARGS "can't find builtin function:%s", builtin_func);
- return COMPILE_NG;
- }
-
- if (GET_VM()->builtin_inline_index == INT_MAX) {
- rb_bug("builtin inline function index overflow:%s", builtin_func);
- }
- int inline_index = GET_VM()->builtin_inline_index++;
- snprintf(inline_func, sizeof(inline_func), BUILTIN_INLINE_PREFIX "%d", inline_index);
- builtin_func = inline_func;
- args_node = NULL;
- goto retry;
- }
-
- if (cconst) {
- typedef VALUE(*builtin_func0)(void *, VALUE);
- VALUE const_val = (*(builtin_func0)bf->func_ptr)(NULL, Qnil);
- ADD_INSN1(ret, line, putobject, const_val);
- return COMPILE_OK;
- }
-
- // fprintf(stderr, "func_name:%s -> %p\n", builtin_func, bf->func_ptr);
-
- unsigned int flag = 0;
- struct rb_callinfo_kwarg *keywords = NULL;
- VALUE argc = setup_args(iseq, args, args_node, &flag, &keywords);
-
- if (FIX2INT(argc) != bf->argc) {
- COMPILE_ERROR(ERROR_ARGS "argc is not match for builtin function:%s (expect %d but %d)",
- builtin_func, bf->argc, FIX2INT(argc));
- return COMPILE_NG;
- }
-
- unsigned int start_index;
- if (delegate_call_p(iseq, FIX2INT(argc), args, &start_index)) {
- ADD_INSN2(ret, line, opt_invokebuiltin_delegate, bf, INT2FIX(start_index));
- }
- else {
- ADD_SEQ(ret, args);
- ADD_INSN1(ret,line, invokebuiltin, bf);
- }
-
- if (popped) ADD_INSN(ret, line, pop);
- return COMPILE_OK;
- }
-}
-
-static int
-compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, const enum node_type type, int line, int popped)
+compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int type, int line, int popped)
{
/* call: obj.method(...)
* fcall: func(...)
@@ -7361,7 +6867,7 @@ compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, co
ID mid = node->nd_mid;
VALUE argc;
unsigned int flag = 0;
- struct rb_callinfo_kwarg *keywords = NULL;
+ struct rb_call_info_kw_arg *keywords = NULL;
const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)->current_block;
LABEL *else_label = NULL;
VALUE branches = Qfalse;
@@ -7434,13 +6940,83 @@ compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, co
}
}
#endif
-
const char *builtin_func;
+ NODE *args_node = node->nd_args;
+
if (UNLIKELY(iseq_has_builtin_function_table(iseq)) &&
- (builtin_func = iseq_builtin_function_name(type, node->nd_recv, mid)) != NULL) {
- return compile_builtin_function_call(iseq, ret, node, line, popped, parent_block, args, builtin_func);
+ (builtin_func = iseq_builtin_function_name(mid)) != NULL) {
+
+ if (parent_block != NULL) {
+ COMPILE_ERROR(iseq, line, "should not call builtins here.");
+ return COMPILE_NG;
+ }
+ else {
+ char inline_func[0x20];
+ bool cconst = false;
+ retry:;
+ const struct rb_builtin_function *bf = iseq_builtin_function_lookup(iseq, builtin_func);
+
+ if (bf == NULL) {
+ if (strcmp("cstmt!", builtin_func) == 0 ||
+ strcmp("cexpr!", builtin_func) == 0) {
+ inlinec:;
+ int inline_index = GET_VM()->builtin_inline_index++;
+ snprintf(inline_func, 0x20, "_bi%d", inline_index);
+ builtin_func = inline_func;
+ args_node = NULL;
+ goto retry;
+ }
+ else if (strcmp("cconst!", builtin_func) == 0) {
+ cconst = true;
+ goto inlinec;
+ }
+ else if (strcmp("cinit!", builtin_func) == 0) {
+ // ignore
+ GET_VM()->builtin_inline_index++;
+ return COMPILE_OK;
+ }
+
+ if (1) {
+ rb_bug("can't find builtin function:%s", builtin_func);
+ }
+ else {
+ COMPILE_ERROR(ERROR_ARGS "can't find builtin function:%s", builtin_func);
+ }
+ return COMPILE_NG;
+ }
+
+ if (cconst) {
+ typedef VALUE(*builtin_func0)(void *, VALUE);
+ VALUE const_val = (*(builtin_func0)bf->func_ptr)(NULL, Qnil);
+ ADD_INSN1(ret, line, putobject, const_val);
+ return COMPILE_OK;
+ }
+
+ // fprintf(stderr, "func_name:%s -> %p\n", builtin_func, bf->func_ptr);
+
+ argc = setup_args(iseq, args, args_node, &flag, &keywords);
+
+ if (FIX2INT(argc) != bf->argc) {
+ COMPILE_ERROR(ERROR_ARGS "argc is not match for builtin function:%s (expect %d but %d)",
+ builtin_func, bf->argc, FIX2INT(argc));
+ return COMPILE_NG;
+ }
+
+ unsigned int start_index;
+ if (delegate_call_p(iseq, FIX2INT(argc), args, &start_index)) {
+ ADD_INSN2(ret, line, opt_invokebuiltin_delegate, bf, INT2FIX(start_index));
+ }
+ else {
+ ADD_SEQ(ret, args);
+ ADD_INSN1(ret,line, invokebuiltin, bf);
+ }
+
+ if (popped) ADD_INSN(ret, line, pop);
+ return COMPILE_OK;
+ }
}
+
/* receiver */
if (type == NODE_CALL || type == NODE_OPCALL || type == NODE_QCALL) {
int idx, level;
@@ -7523,13 +7099,20 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, const NODE *node, int poppe
}
static int
-check_yield_place(const rb_iseq_t *iseq)
+check_yield_place(const rb_iseq_t *iseq, int line)
{
+ VALUE file;
switch (iseq->body->local_iseq->body->type) {
case ISEQ_TYPE_TOP:
case ISEQ_TYPE_MAIN:
- case ISEQ_TYPE_CLASS:
return FALSE;
+ case ISEQ_TYPE_CLASS:
+ file = rb_iseq_path(iseq);
+ if (rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) {
+ rb_compile_warn(RSTRING_PTR(file), line,
+ "`yield' in class syntax will not be supported from Ruby 3.0. [Feature #15575]");
+ }
+ return TRUE;
default:
return TRUE;
}
@@ -7688,7 +7271,8 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
if (!popped) {
ADD_INSN(ret, line, dup);
}
- ADD_INSN1(ret, line, setglobal, ID2SYM(node->nd_entry));
+ ADD_INSN1(ret, line, setglobal,
+ ((VALUE)node->nd_entry | 1));
break;
}
case NODE_IASGN:{
@@ -8040,7 +7624,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
LABEL *lfin = NEW_LABEL(line);
LABEL *lassign;
- if (nd_type(node) == NODE_OP_ASGN_OR && nd_type(node->nd_head) != NODE_IVAR) {
+ if (nd_type(node) == NODE_OP_ASGN_OR) {
LABEL *lfinish[2];
lfinish[0] = lfin;
lfinish[1] = 0;
@@ -8093,7 +7677,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
DECL_ANCHOR(args);
int argc;
unsigned int flag = 0;
- struct rb_callinfo_kwarg *keywords = NULL;
+ struct rb_call_info_kw_arg *keywords = NULL;
const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)->current_block;
INIT_ANCHOR(args);
@@ -8173,10 +7757,10 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
if (local_body->param.flags.has_kwrest) {
int idx = local_body->local_table_size - local_kwd->rest_start;
ADD_GETLOCAL(args, line, idx, lvar_level);
+ ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));
}
else {
ADD_INSN1(args, line, newhash, INT2FIX(0));
- flag |= VM_CALL_KW_SPLAT_MUT;
}
for (i = 0; i < local_kwd->num; ++i) {
ID id = local_kwd->table[i];
@@ -8196,6 +7780,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
int idx = local_body->local_table_size - local_kwd->rest_start;
ADD_GETLOCAL(args, line, idx, lvar_level);
+ ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));
if (local_body->param.flags.has_rest) {
ADD_INSN1(args, line, newarray, INT2FIX(1));
ADD_INSN (args, line, concatarray);
@@ -8241,7 +7826,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
break;
}
case NODE_HASH:
- CHECK(compile_hash(iseq, ret, node, FALSE, popped) >= 0);
+ CHECK(compile_hash(iseq, ret, node, popped) >= 0);
break;
case NODE_RETURN:
CHECK(compile_return(iseq, ret, node, popped));
@@ -8250,11 +7835,11 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
DECL_ANCHOR(args);
VALUE argc;
unsigned int flag = 0;
- struct rb_callinfo_kwarg *keywords = NULL;
+ struct rb_call_info_kw_arg *keywords = NULL;
INIT_ANCHOR(args);
- if (check_yield_place(iseq) == FALSE) {
+ if (check_yield_place(iseq, line) == FALSE) {
COMPILE_ERROR(ERROR_ARGS "Invalid yield");
goto ng;
}
@@ -8273,13 +7858,6 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
if (popped) {
ADD_INSN(ret, line, pop);
}
-
- int level = 0;
- const rb_iseq_t *tmp_iseq = iseq;
- for (; tmp_iseq != iseq->body->local_iseq; level++ ) {
- tmp_iseq = tmp_iseq->body->parent_iseq;
- }
- if (level > 0) access_outer_variables(iseq, level, rb_intern("yield"), true);
break;
}
case NODE_LVAR:{
@@ -8307,7 +7885,8 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
break;
}
case NODE_GVAR:{
- ADD_INSN1(ret, line, getglobal, ID2SYM(node->nd_entry));
+ ADD_INSN1(ret, line, getglobal,
+ ((VALUE)node->nd_entry | 1));
if (popped) {
ADD_INSN(ret, line, pop);
}
@@ -8412,7 +7991,6 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
debugp_param("lit", node->nd_lit);
if (!popped) {
ADD_INSN1(ret, line, putobject, node->nd_lit);
- RB_OBJ_WRITTEN(iseq, Qundef, node->nd_lit);
}
break;
}
@@ -8447,6 +8025,18 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
if (popped) {
ADD_INSN(ret, line, pop);
}
+ else {
+ if (ISEQ_COMPILE_DATA(iseq)->option->frozen_string_literal) {
+ VALUE debug_info = Qnil;
+ if (ISEQ_COMPILE_DATA(iseq)->option->debug_frozen_string_literal || RTEST(ruby_debug)) {
+ debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));
+ }
+ ADD_INSN1(ret, line, freezestring, debug_info);
+ if (!NIL_P(debug_info)) {
+ RB_OBJ_WRITTEN(iseq, Qundef, rb_obj_freeze(debug_info));
+ }
+ }
+ }
break;
}
case NODE_XSTR:{
@@ -8727,13 +8317,10 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in
VALUE flag = INT2FIX(excl);
const NODE *b = node->nd_beg;
const NODE *e = node->nd_end;
-
- if (optimizable_range_item_p(b) && optimizable_range_item_p(e)) {
+ if (number_literal_p(b) && number_literal_p(e)) {
if (!popped) {
- VALUE bv = nd_type(b) == NODE_LIT ? b->nd_lit : Qnil;
- VALUE ev = nd_type(e) == NODE_LIT ? e->nd_lit : Qnil;
- VALUE val = rb_range_new(bv, ev, excl);
- ADD_INSN1(ret, line, putobject, val);
+ VALUE val = rb_range_new(b->nd_lit, e->nd_lit, excl);
+ ADD_INSN1(ret, line, putobject, val);
RB_OBJ_WRITTEN(iseq, Qundef, val);
}
}
@@ -9006,16 +8593,15 @@ calc_sp_depth(int depth, INSN *insn)
static VALUE
opobj_inspect(VALUE obj)
{
- if (!SPECIAL_CONST_P(obj) && !RBASIC_CLASS(obj)) {
- switch (BUILTIN_TYPE(obj)) {
+ struct RBasic *r = (struct RBasic *) obj;
+ if (!SPECIAL_CONST_P(r) && r->klass == 0) {
+ switch (BUILTIN_TYPE(r)) {
case T_STRING:
obj = rb_str_new_cstr(RSTRING_PTR(obj));
break;
case T_ARRAY:
obj = rb_ary_dup(obj);
break;
- default:
- break;
}
}
return rb_inspect(obj);
@@ -9058,16 +8644,19 @@ insn_data_to_s_detail(INSN *iobj)
case TS_VALUE: /* VALUE */
{
VALUE v = OPERAND_AT(iobj, j);
- if (!CLASS_OF(v))
- rb_str_cat2(str, "<hidden>");
- else {
- rb_str_concat(str, opobj_inspect(v));
- }
+ rb_str_concat(str, opobj_inspect(v));
break;
}
case TS_ID: /* ID */
rb_str_concat(str, opobj_inspect(OPERAND_AT(iobj, j)));
break;
+ case TS_GENTRY:
+ {
+ struct rb_global_entry *entry = (struct rb_global_entry *)
+ (OPERAND_AT(iobj, j) & (~1));
+ rb_str_append(str, rb_id2str(entry->id));
+ break;
+ }
case TS_IC: /* inline cache */
case TS_IVC: /* inline ivar cache */
case TS_ISE: /* inline storage entry */
@@ -9075,10 +8664,10 @@ insn_data_to_s_detail(INSN *iobj)
break;
case TS_CALLDATA: /* we store these as call infos at compile time */
{
- const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, j);
+ const struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, j);
rb_str_cat2(str, "<calldata:");
- if (vm_ci_mid(ci)) rb_str_catf(str, "%"PRIsVALUE, rb_id2str(vm_ci_mid(ci)));
- rb_str_catf(str, ", %d>", vm_ci_argc(ci));
+ if (ci->mid) rb_str_catf(str, "%"PRIsVALUE, rb_id2str(ci->mid));
+ rb_str_catf(str, ", %d>", ci->orig_argc);
break;
}
case TS_CDHASH: /* case/when condition cache */
@@ -9098,7 +8687,7 @@ insn_data_to_s_detail(INSN *iobj)
}
break;
case TS_BUILTIN:
- rb_str_cat2(str, "<TS_BUILTIN>");
+ rb_bug("unsupported: TS_BUILTIN");
break;
default:{
rb_raise(rb_eSyntaxError, "unknown operand type: %c", type);
@@ -9135,7 +8724,7 @@ dump_disasm_list_with_cursor(const LINK_ELEMENT *link, const LINK_ELEMENT *curr,
{
iobj = (INSN *)link;
str = insn_data_to_s_detail(iobj);
- printf(" %04d %-65s(%4u)\n", pos, StringValueCStr(str), iobj->insn_info.line_no);
+ printf("%04d %-65s(%4u)\n", pos, StringValueCStr(str), iobj->insn_info.line_no);
pos += insn_data_length(iobj);
break;
}
@@ -9149,13 +8738,13 @@ dump_disasm_list_with_cursor(const LINK_ELEMENT *link, const LINK_ELEMENT *curr,
case ISEQ_ELEMENT_TRACE:
{
TRACE *trace = (TRACE *)link;
- printf(" trace: %0x\n", trace->event);
+ printf("trace: %0x\n", trace->event);
break;
}
case ISEQ_ELEMENT_ADJUST:
{
ADJUST *adjust = (ADJUST *)link;
- printf(" adjust: [label: %d]\n", adjust->label ? adjust->label->label_no : -1);
+ printf("adjust: [label: %d]\n", adjust->label ? adjust->label->label_no : -1);
break;
}
default:
@@ -9206,16 +8795,18 @@ register_label(rb_iseq_t *iseq, struct st_table *labels_table, VALUE obj)
static VALUE
get_exception_sym2type(VALUE sym)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
static VALUE symRescue, symEnsure, symRetry;
static VALUE symBreak, symRedo, symNext;
if (symRescue == 0) {
- symRescue = ID2SYM(rb_intern_const("rescue"));
- symEnsure = ID2SYM(rb_intern_const("ensure"));
- symRetry = ID2SYM(rb_intern_const("retry"));
- symBreak = ID2SYM(rb_intern_const("break"));
- symRedo = ID2SYM(rb_intern_const("redo"));
- symNext = ID2SYM(rb_intern_const("next"));
+ symRescue = ID2SYM(rb_intern("rescue"));
+ symEnsure = ID2SYM(rb_intern("ensure"));
+ symRetry = ID2SYM(rb_intern("retry"));
+ symBreak = ID2SYM(rb_intern("break"));
+ symRedo = ID2SYM(rb_intern("redo"));
+ symNext = ID2SYM(rb_intern("next"));
}
if (sym == symRescue) return CATCH_TYPE_RESCUE;
@@ -9281,7 +8872,7 @@ insn_make_insn_table(void)
table = st_init_numtable_with_size(VM_INSTRUCTION_SIZE);
for (i=0; i<VM_INSTRUCTION_SIZE; i++) {
- st_insert(table, ID2SYM(rb_intern_const(insn_name(i))), i);
+ st_insert(table, ID2SYM(rb_intern(insn_name(i))), i);
}
return table;
@@ -9313,13 +8904,13 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)
ID mid = 0;
int orig_argc = 0;
unsigned int flag = 0;
- struct rb_callinfo_kwarg *kw_arg = 0;
+ struct rb_call_info_kw_arg *kw_arg = 0;
if (!NIL_P(op)) {
- VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern_const("mid")));
- VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern_const("flag")));
- VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern_const("orig_argc")));
- VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern_const("kw_arg")));
+ VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern("mid")));
+ VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern("flag")));
+ VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern("orig_argc")));
+ VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern("kw_arg")));
if (!NIL_P(vmid)) mid = SYM2ID(vmid);
if (!NIL_P(vflag)) flag = NUM2UINT(vflag);
@@ -9328,7 +8919,7 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)
if (!NIL_P(vkw_arg)) {
int i;
int len = RARRAY_LENINT(vkw_arg);
- size_t n = rb_callinfo_kwarg_bytes(len);
+ size_t n = rb_call_info_kw_arg_bytes(len);
kw_arg = xmalloc(n);
kw_arg->keyword_len = len;
@@ -9340,15 +8931,13 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)
}
}
- const struct rb_callinfo *ci = new_callinfo(iseq, mid, orig_argc, flag, kw_arg, (flag & VM_CALL_ARGS_SIMPLE) == 0);
- RB_OBJ_WRITTEN(iseq, Qundef, ci);
- return (VALUE)ci;
+ return (VALUE)new_callinfo(iseq, mid, orig_argc, flag, kw_arg, (flag & VM_CALL_ARGS_SIMPLE) == 0);
}
static rb_event_flag_t
event_name_to_flag(VALUE sym)
{
-#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern_const(#ev))) return ev;
+#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern(#ev))) return ev;
CHECK_EVENT(RUBY_EVENT_LINE);
CHECK_EVENT(RUBY_EVENT_CLASS);
CHECK_EVENT(RUBY_EVENT_END);
@@ -9419,13 +9008,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,
}
if (argc > 0) {
- argv = compile_data_calloc2(iseq, sizeof(VALUE), argc);
-
- // add element before operand setup to make GC root
- ADD_ELEM(anchor,
- (LINK_ELEMENT*)new_insn_core(iseq, line_no,
- (enum ruby_vminsn_type)insn_id, argc, argv));
-
+ argv = compile_data_alloc2(iseq, sizeof(VALUE), argc);
for (j=0; j<argc; j++) {
VALUE op = rb_ary_entry(obj, j+1);
switch (insn_op_type((VALUE)insn_id, j)) {
@@ -9455,14 +9038,19 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,
}
}
break;
+ case TS_GENTRY:
+ op = rb_to_symbol_type(op);
+ argv[j] = (VALUE)rb_global_entry(SYM2ID(op));
+ break;
case TS_ISE:
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
+ /* fall through */
case TS_IC:
case TS_IVC: /* inline ivar cache */
argv[j] = op;
if (NUM2UINT(op) >= iseq->body->is_size) {
iseq->body->is_size = NUM2INT(op) + 1;
}
- FL_SET((VALUE)iseq, ISEQ_MARKABLE_ISEQ);
break;
case TS_CALLDATA:
argv[j] = iseq_build_callinfo_from_hash(iseq, op);
@@ -9504,11 +9092,9 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,
}
}
}
- else {
- ADD_ELEM(anchor,
- (LINK_ELEMENT*)new_insn_core(iseq, line_no,
- (enum ruby_vminsn_type)insn_id, argc, NULL));
- }
+ ADD_ELEM(anchor,
+ (LINK_ELEMENT*)new_insn_core(iseq, line_no,
+ (enum ruby_vminsn_type)insn_id, argc, argv));
}
else {
rb_raise(rb_eTypeError, "unexpected object for instruction");
@@ -9552,7 +9138,7 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)
iseq->body->param.flags.has_kw = TRUE;
keyword->num = len;
-#define SYM(s) ID2SYM(rb_intern_const(#s))
+#define SYM(s) ID2SYM(rb_intern(#s))
(void)int_param(&keyword->bits_start, params, SYM(kwbits));
i = keyword->bits_start - keyword->num;
ids = (ID *)&iseq->body->local_table[i];
@@ -9642,15 +9228,13 @@ rb_iseq_mark_insn_storage(struct iseq_compile_data_storage *storage)
case TS_CDHASH:
case TS_ISEQ:
case TS_VALUE:
- case TS_CALLDATA: // ci is stored.
{
VALUE op = OPERAND_AT(iobj, j);
-
if (!SPECIAL_CONST_P(op)) {
rb_gc_mark(op);
}
+ break;
}
- break;
default:
break;
}
@@ -9665,7 +9249,7 @@ void
rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,
VALUE exception, VALUE body)
{
-#define SYM(s) ID2SYM(rb_intern_const(#s))
+#define SYM(s) ID2SYM(rb_intern(#s))
int i, len;
unsigned int arg_size, local_size, stack_max;
ID *tbl;
@@ -9673,7 +9257,7 @@ rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,
VALUE labels_wrapper = Data_Wrap_Struct(0, rb_mark_set, st_free_table, labels_table);
VALUE arg_opt_labels = rb_hash_aref(params, SYM(opt));
VALUE keywords = rb_hash_aref(params, SYM(keyword));
- VALUE sym_arg_rest = ID2SYM(rb_intern_const("#arg_rest"));
+ VALUE sym_arg_rest = ID2SYM(rb_intern("#arg_rest"));
DECL_ANCHOR(anchor);
INIT_ANCHOR(anchor);
@@ -9831,19 +9415,19 @@ caller_location(VALUE *path, VALUE *realpath)
typedef struct {
VALUE arg;
- VALUE func;
+ rb_insn_func_t func;
int line;
} accessor_args;
static const rb_iseq_t *
-method_for_self(VALUE name, VALUE arg, const struct rb_builtin_function *func,
+method_for_self(VALUE name, VALUE arg, rb_insn_func_t func,
void (*build)(rb_iseq_t *, LINK_ANCHOR *, const void *))
{
VALUE path, realpath;
accessor_args acc;
acc.arg = arg;
- acc.func = (VALUE)func;
+ acc.func = func;
acc.line = caller_location(&path, &realpath);
struct rb_iseq_new_with_callback_callback_func *ifunc =
rb_iseq_new_with_callback_new_callback(build, &acc);
@@ -9864,7 +9448,7 @@ for_self_aref(rb_iseq_t *iseq, LINK_ANCHOR *ret, const void *a)
body->param.size = 0;
ADD_INSN1(ret, line, putobject, args->arg);
- ADD_INSN1(ret, line, invokebuiltin, args->func);
+ ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args->func);
}
static void
@@ -9881,23 +9465,24 @@ for_self_aset(rb_iseq_t *iseq, LINK_ANCHOR *ret, const void *a)
ADD_GETLOCAL(ret, line, numberof(vars)-1, 0);
ADD_INSN1(ret, line, putobject, args->arg);
- ADD_INSN1(ret, line, invokebuiltin, args->func);
+ ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args->func);
+ ADD_INSN(ret, line, pop);
}
/*
* func (index) -> (value)
*/
const rb_iseq_t *
-rb_method_for_self_aref(VALUE name, VALUE arg, const struct rb_builtin_function *func)
+rb_method_for_self_aref(VALUE name, VALUE arg, rb_insn_func_t func)
{
return method_for_self(name, arg, func, for_self_aref);
}
/*
- * func (index, value) -> (value)
+ * func (index, value) -> (index, value)
*/
const rb_iseq_t *
-rb_method_for_self_aset(VALUE name, VALUE arg, const struct rb_builtin_function *func)
+rb_method_for_self_aset(VALUE name, VALUE arg, rb_insn_func_t func)
{
return method_for_self(name, arg, func, for_self_aset);
}
@@ -9938,10 +9523,11 @@ struct ibf_header {
struct ibf_dump_buffer {
VALUE str;
- st_table *obj_table; /* obj -> obj number */
+ VALUE obj_list; /* [objs] */
};
struct ibf_dump {
+ VALUE iseq_list; /* [iseqs] */
st_table *iseq_table; /* iseq -> iseq number */
struct ibf_dump_buffer global_buffer;
struct ibf_dump_buffer *current_buffer;
@@ -9968,85 +9554,6 @@ struct ibf_load {
struct ibf_load_buffer *current_buffer;
};
-struct pinned_list {
- long size;
- VALUE * buffer;
-};
-
-static void
-pinned_list_mark(void *ptr)
-{
- long i;
- struct pinned_list *list = (struct pinned_list *)ptr;
- for (i = 0; i < list->size; i++) {
- if (list->buffer[i]) {
- rb_gc_mark(list->buffer[i]);
- }
- }
-}
-
-static void
-pinned_list_free(void *ptr)
-{
- struct pinned_list *list = (struct pinned_list *)ptr;
- xfree(list->buffer);
- xfree(ptr);
-}
-
-static size_t
-pinned_list_memsize(const void *ptr)
-{
- struct pinned_list *list = (struct pinned_list *)ptr;
- return sizeof(struct pinned_list) + (list->size * sizeof(VALUE *));
-}
-
-static const rb_data_type_t pinned_list_type = {
- "pinned_list",
- {pinned_list_mark, pinned_list_free, pinned_list_memsize,},
- 0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY
-};
-
-static VALUE
-pinned_list_fetch(VALUE list, long offset)
-{
- struct pinned_list * ptr;
-
- TypedData_Get_Struct(list, struct pinned_list, &pinned_list_type, ptr);
-
- if (offset >= ptr->size) {
- rb_raise(rb_eIndexError, "object index out of range: %ld", offset);
- }
-
- return ptr->buffer[offset];
-}
-
-static void
-pinned_list_store(VALUE list, long offset, VALUE object)
-{
- struct pinned_list * ptr;
-
- TypedData_Get_Struct(list, struct pinned_list, &pinned_list_type, ptr);
-
- if (offset >= ptr->size) {
- rb_raise(rb_eIndexError, "object index out of range: %ld", offset);
- }
-
- RB_OBJ_WRITE(list, &ptr->buffer[offset], object);
-}
-
-static VALUE
-pinned_list_new(long size)
-{
- struct pinned_list * ptr;
- VALUE obj_list =
- TypedData_Make_Struct(0, struct pinned_list, &pinned_list_type, ptr);
-
- ptr->buffer = xcalloc(size, sizeof(VALUE));
- ptr->size = size;
-
- return obj_list;
-}
-
static ibf_offset_t
ibf_dump_pos(struct ibf_dump *dump)
{
@@ -10142,7 +9649,7 @@ ibf_table_lookup(struct st_table *table, st_data_t key)
}
static int
-ibf_table_find_or_insert(struct st_table *table, st_data_t key)
+ibf_table_index(struct st_table *table, st_data_t key)
{
int index = ibf_table_lookup(table, key);
@@ -10161,19 +9668,26 @@ static void ibf_dump_object_list(struct ibf_dump *dump, ibf_offset_t *obj_list_o
static VALUE ibf_load_object(const struct ibf_load *load, VALUE object_index);
static rb_iseq_t *ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq);
-static st_table *
-ibf_dump_object_table_new(void)
+static VALUE
+ibf_dump_object_list_new(void)
{
- st_table *obj_table = st_init_numtable(); /* need free */
- st_insert(obj_table, (st_data_t)Qnil, (st_data_t)0); /* 0th is nil */
+ VALUE obj_list = rb_ary_tmp_new(1);
+ rb_ary_push(obj_list, Qnil); /* 0th is nil */
- return obj_table;
+ return obj_list;
}
static VALUE
ibf_dump_object(struct ibf_dump *dump, VALUE obj)
{
- return ibf_table_find_or_insert(dump->current_buffer->obj_table, (st_data_t)obj);
+ VALUE obj_list = dump->current_buffer->obj_list;
+ long index = RARRAY_LEN(obj_list);
+ long i;
+ for (i=0; i<index; i++) {
+ if (RARRAY_AREF(obj_list, i) == obj) return (VALUE)i; /* dedup */
+ }
+ rb_ary_push(obj_list, obj);
+ return (VALUE)index;
}
static VALUE
@@ -10197,6 +9711,12 @@ ibf_load_id(const struct ibf_load *load, const ID id_index)
/* dump/load: code */
+static VALUE
+ibf_dump_calldata(struct ibf_dump *dump, const struct rb_call_data *cd)
+{
+ return (cd->ci.flag & VM_CALL_KWARG) ? Qtrue : Qfalse;
+}
+
static ibf_offset_t ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq);
static int
@@ -10206,10 +9726,28 @@ ibf_dump_iseq(struct ibf_dump *dump, const rb_iseq_t *iseq)
return -1;
}
else {
- return ibf_table_find_or_insert(dump->iseq_table, (st_data_t)iseq);
+ int iseq_index = ibf_table_lookup(dump->iseq_table, (st_data_t)iseq);
+ if (iseq_index < 0) {
+ iseq_index = ibf_table_index(dump->iseq_table, (st_data_t)iseq);
+ rb_ary_push(dump->iseq_list, (VALUE)iseq);
+ }
+ return iseq_index;
}
}
+static VALUE
+ibf_dump_gentry(struct ibf_dump *dump, const struct rb_global_entry *entry)
+{
+ return (VALUE)ibf_dump_id(dump, entry->id);
+}
+
+static VALUE
+ibf_load_gentry(const struct ibf_load *load, const struct rb_global_entry *entry)
+{
+ ID gid = ibf_load_id(load, (ID)(VALUE)entry);
+ return (VALUE)rb_global_entry(gid);
+}
+
static unsigned char
ibf_load_byte(const struct ibf_load *load, ibf_offset_t *offset)
{
@@ -10232,7 +9770,6 @@ ibf_dump_write_small_value(struct ibf_dump *dump, VALUE x)
{
if (sizeof(VALUE) > 8 || CHAR_BIT != 8) {
ibf_dump_write(dump, &x, sizeof(VALUE));
- return;
}
enum { max_byte_length = sizeof(VALUE) + 1 };
@@ -10311,13 +9848,14 @@ ibf_load_builtin(const struct ibf_load *load, ibf_offset_t *offset)
const char *name = (char *)ibf_load_ptr(load, offset, len);
if (0) {
- fprintf(stderr, "%.*s!!\n", len, name);
+ for (int i=0; i<len; i++) fprintf(stderr, "%c", name[i]);
+ fprintf(stderr, "!!\n");
}
const struct rb_builtin_function *table = GET_VM()->builtin_function_table;
- if (table == NULL) rb_raise(rb_eArgError, "builtin function table is not provided");
+ if (table == NULL) rb_bug("%s: table is not provided.", RUBY_FUNCTION_NAME_STRING);
if (strncmp(table[i].name, name, len) != 0) {
- rb_raise(rb_eArgError, "builtin function index (%d) mismatch (expect %s but %s)", i, name, table[i].name);
+ rb_bug("%s: index (%d) mismatch (expect %s but %s).", RUBY_FUNCTION_NAME_STRING, i, name, table[i].name);
}
// fprintf(stderr, "load-builtin: name:%s(%d)\n", table[i].name, table[i].argc);
@@ -10371,11 +9909,17 @@ ibf_dump_code(struct ibf_dump *dump, const rb_iseq_t *iseq)
break;
case TS_CALLDATA:
{
+ /* ibf_dump_calldata() always returns either Qtrue or Qfalse */
+ char c = ibf_dump_calldata(dump, (const struct rb_call_data *)op) == Qtrue; // 1 or 0
+ ibf_dump_write_byte(dump, c);
goto skip_wv;
}
case TS_ID:
wv = ibf_dump_id(dump, (ID)op);
break;
+ case TS_GENTRY:
+ wv = ibf_dump_gentry(dump, (const struct rb_global_entry *)op);
+ break;
case TS_FUNCPTR:
rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");
goto skip_wv;
@@ -10396,15 +9940,15 @@ ibf_dump_code(struct ibf_dump *dump, const rb_iseq_t *iseq)
}
static VALUE *
-ibf_load_code(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t bytecode_offset, ibf_offset_t bytecode_size, unsigned int iseq_size)
+ibf_load_code(const struct ibf_load *load, const rb_iseq_t *iseq, ibf_offset_t bytecode_offset, ibf_offset_t bytecode_size, unsigned int iseq_size)
{
- VALUE iseqv = (VALUE)iseq;
unsigned int code_index;
ibf_offset_t reading_pos = bytecode_offset;
VALUE *code = ALLOC_N(VALUE, iseq_size);
struct rb_iseq_constant_body *load_body = iseq->body;
struct rb_call_data *cd_entries = load_body->call_data;
+ struct rb_kwarg_call_data *cd_kw_entries = (struct rb_kwarg_call_data *)&load_body->call_data[load_body->ci_size];
union iseq_inline_storage_entry *is_entries = load_body->is_entries;
for (code_index=0; code_index<iseq_size;) {
@@ -10423,8 +9967,8 @@ ibf_load_code(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t bytecod
VALUE v = ibf_load_object(load, op);
code[code_index] = v;
if (!SPECIAL_CONST_P(v)) {
- RB_OBJ_WRITTEN(iseqv, Qundef, v);
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
+ RB_OBJ_WRITTEN(iseq, Qundef, v);
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
}
break;
}
@@ -10434,23 +9978,25 @@ ibf_load_code(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t bytecod
VALUE v = (VALUE)ibf_load_iseq(load, (const rb_iseq_t *)op);
code[code_index] = v;
if (!SPECIAL_CONST_P(v)) {
- RB_OBJ_WRITTEN(iseqv, Qundef, v);
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
+ RB_OBJ_WRITTEN(iseq, Qundef, v);
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
}
break;
}
case TS_ISE:
+ FL_SET(iseq, ISEQ_MARKABLE_ISEQ);
+ /* fall through */
case TS_IC:
case TS_IVC:
{
VALUE op = ibf_load_small_value(load, &reading_pos);
code[code_index] = (VALUE)&is_entries[op];
}
- FL_SET(iseqv, ISEQ_MARKABLE_ISEQ);
break;
case TS_CALLDATA:
{
- code[code_index] = (VALUE)cd_entries++;
+ unsigned char op = ibf_load_byte(load, &reading_pos);
+ code[code_index] = op ? (VALUE)cd_kw_entries++ : (VALUE)cd_entries++; /* op is 1 (kw) or 0 (!kw) */
}
break;
case TS_ID:
@@ -10459,6 +10005,12 @@ ibf_load_code(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t bytecod
code[code_index] = ibf_load_id(load, (ID)(VALUE)op);
}
break;
+ case TS_GENTRY:
+ {
+ VALUE op = ibf_load_small_value(load, &reading_pos);
+ code[code_index] = ibf_load_gentry(load, (const struct rb_global_entry *)(VALUE)op);
+ }
+ break;
case TS_FUNCPTR:
rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");
break;
@@ -10716,35 +10268,38 @@ ibf_dump_ci_entries(struct ibf_dump *dump, const rb_iseq_t *iseq)
{
const struct rb_iseq_constant_body *const body = iseq->body;
const unsigned int ci_size = body->ci_size;
- const struct rb_call_data *cds = body->call_data;
+ const unsigned int ci_kw_size = body->ci_kw_size;
+ const struct rb_call_data *calls = body->call_data;
+ const struct rb_kwarg_call_data *kw_calls = (const struct rb_kwarg_call_data *)&body->call_data[ci_size];
ibf_offset_t offset = ibf_dump_pos(dump);
unsigned int i;
for (i = 0; i < ci_size; i++) {
- const struct rb_callinfo *ci = cds[i].ci;
- if (ci != NULL) {
- ibf_dump_write_small_value(dump, ibf_dump_id(dump, vm_ci_mid(ci)));
- ibf_dump_write_small_value(dump, vm_ci_flag(ci));
- ibf_dump_write_small_value(dump, vm_ci_argc(ci));
-
- const struct rb_callinfo_kwarg *kwarg = vm_ci_kwarg(ci);
- if (kwarg) {
- int len = kwarg->keyword_len;
- ibf_dump_write_small_value(dump, len);
- for (int j=0; j<len; j++) {
- VALUE keyword = ibf_dump_object(dump, kwarg->keywords[j]);
- ibf_dump_write_small_value(dump, keyword);
- }
- }
- else {
- ibf_dump_write_small_value(dump, 0);
- }
- }
- else {
- // TODO: truncate NULL ci from call_data.
- ibf_dump_write_small_value(dump, (VALUE)-1);
+ VALUE mid = ibf_dump_id(dump, calls[i].ci.mid);
+
+ ibf_dump_write_small_value(dump, mid);
+ ibf_dump_write_small_value(dump, calls[i].ci.flag);
+ ibf_dump_write_small_value(dump, calls[i].ci.orig_argc);
+ }
+
+ for (i = 0; i < ci_kw_size; i++) {
+ const struct rb_call_info_kw_arg *kw_arg = kw_calls[i].ci_kw.kw_arg;
+
+ VALUE mid = ibf_dump_id(dump, kw_calls[i].ci_kw.ci.mid);
+
+ ibf_dump_write_small_value(dump, mid);
+ ibf_dump_write_small_value(dump, kw_calls[i].ci_kw.ci.flag);
+ ibf_dump_write_small_value(dump, kw_calls[i].ci_kw.ci.orig_argc);
+
+ ibf_dump_write_small_value(dump, kw_arg->keyword_len);
+
+ int j;
+ for (j = 0; j < kw_calls[i].ci_kw.kw_arg->keyword_len; j++) {
+ VALUE keyword = ibf_dump_object(dump, kw_arg->keywords[j]); /* kw_arg->keywords[n] is Symbol */
+
+ ibf_dump_write_small_value(dump, keyword);
}
}
@@ -10752,47 +10307,53 @@ ibf_dump_ci_entries(struct ibf_dump *dump, const rb_iseq_t *iseq)
}
/* note that we dump out rb_call_info but load back rb_call_data */
-static void
+static struct rb_call_data *
ibf_load_ci_entries(const struct ibf_load *load,
ibf_offset_t ci_entries_offset,
unsigned int ci_size,
- struct rb_call_data **cd_ptr)
+ unsigned int ci_kw_size)
{
ibf_offset_t reading_pos = ci_entries_offset;
unsigned int i;
- struct rb_call_data *cds = ZALLOC_N(struct rb_call_data, ci_size);
- *cd_ptr = cds;
+ struct rb_call_data *calls =
+ rb_xcalloc_mul_add_mul(
+ sizeof(struct rb_call_data), ci_size,
+ sizeof(struct rb_kwarg_call_data), ci_kw_size);
+ struct rb_kwarg_call_data *kw_calls = (struct rb_kwarg_call_data *)&calls[ci_size];
for (i = 0; i < ci_size; i++) {
VALUE mid_index = ibf_load_small_value(load, &reading_pos);
- if (mid_index != (VALUE)-1) {
- ID mid = ibf_load_id(load, mid_index);
- unsigned int flag = (unsigned int)ibf_load_small_value(load, &reading_pos);
- unsigned int argc = (unsigned int)ibf_load_small_value(load, &reading_pos);
-
- struct rb_callinfo_kwarg *kwarg = NULL;
- int kwlen = (int)ibf_load_small_value(load, &reading_pos);
- if (kwlen > 0) {
- kwarg = rb_xmalloc_mul_add(kwlen, sizeof(VALUE), sizeof(struct rb_callinfo_kwarg));
- kwarg->keyword_len = kwlen;
- for (int j=0; j<kwlen; j++) {
- VALUE keyword = ibf_load_small_value(load, &reading_pos);
- kwarg->keywords[j] = ibf_load_object(load, keyword);
- }
- }
- cds[i].ci = vm_ci_new(mid, flag, argc, kwarg);
- RB_OBJ_WRITTEN(load->iseq, Qundef, cds[i].ci);
- cds[i].cc = vm_cc_empty();
- }
- else {
- // NULL ci
- cds[i].ci = NULL;
- cds[i].cc = NULL;
+ calls[i].ci.mid = ibf_load_id(load, mid_index);
+ calls[i].ci.flag = (unsigned int)ibf_load_small_value(load, &reading_pos);
+ calls[i].ci.orig_argc = (int)ibf_load_small_value(load, &reading_pos);
+ }
+
+ for (i = 0; i < ci_kw_size; i++) {
+ VALUE mid_index = ibf_load_small_value(load, &reading_pos);
+
+ kw_calls[i].ci_kw.ci.mid = ibf_load_id(load, mid_index);
+ kw_calls[i].ci_kw.ci.flag = (unsigned int)ibf_load_small_value(load, &reading_pos);
+ kw_calls[i].ci_kw.ci.orig_argc = (int)ibf_load_small_value(load, &reading_pos);
+
+ int keyword_len = (int)ibf_load_small_value(load, &reading_pos);
+
+ kw_calls[i].ci_kw.kw_arg =
+ rb_xmalloc_mul_add(keyword_len - 1, sizeof(VALUE), sizeof(struct rb_call_info_kw_arg));
+
+ kw_calls[i].ci_kw.kw_arg->keyword_len = keyword_len;
+
+ int j;
+ for (j = 0; j < kw_calls[i].ci_kw.kw_arg->keyword_len; j++) {
+ VALUE keyword = ibf_load_small_value(load, &reading_pos);
+
+ kw_calls[i].ci_kw.kw_arg->keywords[j] = ibf_load_object(load, keyword);
}
}
+
+ return calls;
}
static ibf_offset_t
@@ -10814,7 +10375,7 @@ ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)
struct ibf_dump_buffer *saved_buffer = dump->current_buffer;
struct ibf_dump_buffer buffer;
buffer.str = rb_str_new(0, 0);
- buffer.obj_table = ibf_dump_object_table_new();
+ buffer.obj_list = ibf_dump_object_list_new();
dump->current_buffer = &buffer;
#endif
@@ -10899,9 +10460,9 @@ ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)
ibf_dump_write_small_value(dump, body->local_table_size);
ibf_dump_write_small_value(dump, body->is_size);
ibf_dump_write_small_value(dump, body->ci_size);
+ ibf_dump_write_small_value(dump, body->ci_kw_size);
ibf_dump_write_small_value(dump, body->stack_max);
ibf_dump_write_small_value(dump, body->catch_except_p);
- ibf_dump_write_small_value(dump, body->builtin_inline_p);
#undef IBF_BODY_OFFSET
@@ -10919,8 +10480,6 @@ ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)
ibf_dump_write_small_value(dump, local_obj_list_offset);
ibf_dump_write_small_value(dump, local_obj_list_size);
- st_free_table(buffer.obj_table); // TODO: this leaks in case of exception
-
return offset;
#else
return body_offset;
@@ -10948,16 +10507,17 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
struct ibf_load_buffer *saved_buffer = load->current_buffer;
load->current_buffer = &load->global_buffer;
- const ibf_offset_t iseq_start = (ibf_offset_t)ibf_load_small_value(load, &reading_pos);
- const ibf_offset_t iseq_length_bytes = (ibf_offset_t)ibf_load_small_value(load, &reading_pos);
- const ibf_offset_t body_offset = (ibf_offset_t)ibf_load_small_value(load, &reading_pos);
+ const ibf_offset_t iseq_start = ibf_load_small_value(load, &reading_pos);
+ const ibf_offset_t iseq_length_bytes = ibf_load_small_value(load, &reading_pos);
+ const ibf_offset_t body_offset = ibf_load_small_value(load, &reading_pos);
struct ibf_load_buffer buffer;
buffer.buff = load->global_buffer.buff + iseq_start;
buffer.size = iseq_length_bytes;
- buffer.obj_list_offset = (ibf_offset_t)ibf_load_small_value(load, &reading_pos);
- buffer.obj_list_size = (ibf_offset_t)ibf_load_small_value(load, &reading_pos);
- buffer.obj_list = pinned_list_new(buffer.obj_list_size);
+ buffer.obj_list_offset = ibf_load_small_value(load, &reading_pos);
+ buffer.obj_list_size = ibf_load_small_value(load, &reading_pos);
+ buffer.obj_list = rb_ary_tmp_new(buffer.obj_list_size);
+ rb_ary_resize(buffer.obj_list, buffer.obj_list_size);
load->current_buffer = &buffer;
reading_pos = body_offset;
@@ -11005,9 +10565,9 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
const unsigned int local_table_size = (unsigned int)ibf_load_small_value(load, &reading_pos);
const unsigned int is_size = (unsigned int)ibf_load_small_value(load, &reading_pos);
const unsigned int ci_size = (unsigned int)ibf_load_small_value(load, &reading_pos);
+ const unsigned int ci_kw_size = (unsigned int)ibf_load_small_value(load, &reading_pos);
const unsigned int stack_max = (unsigned int)ibf_load_small_value(load, &reading_pos);
const char catch_except_p = (char)ibf_load_small_value(load, &reading_pos);
- const bool builtin_inline_p = (bool)ibf_load_small_value(load, &reading_pos);
#undef IBF_BODY_OFFSET
@@ -11033,6 +10593,7 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
load_body->local_table_size = local_table_size;
load_body->is_size = is_size;
load_body->ci_size = ci_size;
+ load_body->ci_kw_size = ci_kw_size;
load_body->insns_info.size = insns_info_size;
ISEQ_COVERAGE_SET(iseq, Qnil);
@@ -11046,10 +10607,9 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
load_body->location.code_location.end_pos.lineno = location_code_location_end_pos_lineno;
load_body->location.code_location.end_pos.column = location_code_location_end_pos_column;
load_body->catch_except_p = catch_except_p;
- load_body->builtin_inline_p = builtin_inline_p;
load_body->is_entries = ZALLOC_N(union iseq_inline_storage_entry, is_size);
- ibf_load_ci_entries(load, ci_entries_offset, ci_size, &load_body->call_data);
+ load_body->call_data = ibf_load_ci_entries(load, ci_entries_offset, ci_size, ci_kw_size);
load_body->param.opt_table = ibf_load_param_opt_table(load, param_opt_table_offset, param_opt_num);
load_body->param.keyword = ibf_load_param_keyword(load, param_keyword_offset);
load_body->param.flags.has_kw = (param_flags >> 4) & 1;
@@ -11107,41 +10667,22 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
verify_call_cache(iseq);
}
-struct ibf_dump_iseq_list_arg
-{
- struct ibf_dump *dump;
- VALUE offset_list;
-};
-
-static int
-ibf_dump_iseq_list_i(st_data_t key, st_data_t val, st_data_t ptr)
-{
- const rb_iseq_t *iseq = (const rb_iseq_t *)key;
- struct ibf_dump_iseq_list_arg *args = (struct ibf_dump_iseq_list_arg *)ptr;
-
- ibf_offset_t offset = ibf_dump_iseq_each(args->dump, iseq);
- rb_ary_push(args->offset_list, UINT2NUM(offset));
-
- return ST_CONTINUE;
-}
-
static void
ibf_dump_iseq_list(struct ibf_dump *dump, struct ibf_header *header)
{
- VALUE offset_list = rb_ary_tmp_new(dump->iseq_table->num_entries);
-
- struct ibf_dump_iseq_list_arg args;
- args.dump = dump;
- args.offset_list = offset_list;
+ VALUE list = rb_ary_tmp_new(RARRAY_LEN(dump->iseq_list));
+ long i;
- st_foreach(dump->iseq_table, ibf_dump_iseq_list_i, (st_data_t)&args);
+ for (i = 0; i < RARRAY_LEN(dump->iseq_list); i++) {
+ ibf_offset_t offset = ibf_dump_iseq_each(dump, (rb_iseq_t *)RARRAY_AREF(dump->iseq_list, i));
+ rb_ary_push(list, UINT2NUM(offset));
+ }
- st_index_t i;
- st_index_t size = dump->iseq_table->num_entries;
+ long size = RARRAY_LEN(dump->iseq_list);
ibf_offset_t *offsets = ALLOCA_N(ibf_offset_t, size);
for (i = 0; i < size; i++) {
- offsets[i] = NUM2UINT(RARRAY_AREF(offset_list, i));
+ offsets[i] = NUM2UINT(RARRAY_AREF(list, i));
}
ibf_dump_align(dump, sizeof(ibf_offset_t));
@@ -11231,13 +10772,11 @@ ibf_dump_object_unsupported(struct ibf_dump *dump, VALUE obj)
rb_raise(rb_eNotImpError, "ibf_dump_object_unsupported: %s", buff);
}
-NORETURN(static VALUE ibf_load_object_unsupported(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset));
-
static VALUE
ibf_load_object_unsupported(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)
{
rb_raise(rb_eArgError, "unsupported");
- UNREACHABLE_RETURN(Qnil);
+ return Qnil;
}
static void
@@ -11650,7 +11189,7 @@ ibf_load_object_object_header(const struct ibf_load *load, ibf_offset_t *offset)
}
static ibf_offset_t
-ibf_dump_object_object(struct ibf_dump *dump, VALUE obj)
+ibf_dump_object_object(struct ibf_dump *dump, VALUE obj_list, VALUE obj)
{
struct ibf_object_header obj_header;
ibf_offset_t current_offset;
@@ -11660,9 +11199,12 @@ ibf_dump_object_object(struct ibf_dump *dump, VALUE obj)
IBF_W_ALIGN(ibf_offset_t);
current_offset = ibf_dump_pos(dump);
- if (SPECIAL_CONST_P(obj) &&
- ! (RB_TYPE_P(obj, T_SYMBOL) ||
- RB_TYPE_P(obj, T_FLOAT))) {
+ if (SPECIAL_CONST_P(obj)) {
+ if (RB_TYPE_P(obj, T_SYMBOL) ||
+ RB_TYPE_P(obj, T_FLOAT)) {
+ obj_header.internal = FALSE;
+ goto dump_object;
+ }
obj_header.special_const = TRUE;
obj_header.frozen = TRUE;
obj_header.internal = TRUE;
@@ -11670,7 +11212,8 @@ ibf_dump_object_object(struct ibf_dump *dump, VALUE obj)
ibf_dump_write_small_value(dump, obj);
}
else {
- obj_header.internal = SPECIAL_CONST_P(obj) ? FALSE : (RBASIC_CLASS(obj) == 0) ? TRUE : FALSE;
+ obj_header.internal = (RBASIC_CLASS(obj) == 0) ? TRUE : FALSE;
+ dump_object:
obj_header.special_const = FALSE;
obj_header.frozen = FL_TEST(obj, FL_FREEZE) ? TRUE : FALSE;
ibf_dump_object_object_header(dump, obj_header);
@@ -11722,9 +11265,12 @@ ibf_load_object(const struct ibf_load *load, VALUE object_index)
if (object_index == 0) {
return Qnil;
}
+ else if (object_index >= (VALUE)RARRAY_LEN(load->current_buffer->obj_list)) {
+ rb_raise(rb_eIndexError, "object index out of range: %"PRIdVALUE, object_index);
+ }
else {
- VALUE obj = pinned_list_fetch(load->current_buffer->obj_list, (long)object_index);
- if (!obj) {
+ VALUE obj = rb_ary_entry(load->current_buffer->obj_list, (long)object_index);
+ if (obj == Qnil) { /* TODO: avoid multiple Qnil load */
ibf_offset_t *offsets = (ibf_offset_t *)(load->current_buffer->obj_list_offset + load->current_buffer->buff);
ibf_offset_t offset = offsets[object_index];
const struct ibf_object_header header = ibf_load_object_object_header(load, &offset);
@@ -11748,7 +11294,7 @@ ibf_load_object(const struct ibf_load *load, VALUE object_index)
obj = (*load_object_functions[header.type])(load, &header, offset);
}
- pinned_list_store(load->current_buffer->obj_list, (long)object_index, obj);
+ rb_ary_store(load->current_buffer->obj_list, (long)object_index, obj);
}
#if IBF_ISEQ_DEBUG
fprintf(stderr, "ibf_load_object: index=%#"PRIxVALUE" obj=%#"PRIxVALUE"\n",
@@ -11758,48 +11304,28 @@ ibf_load_object(const struct ibf_load *load, VALUE object_index)
}
}
-struct ibf_dump_object_list_arg
-{
- struct ibf_dump *dump;
- VALUE offset_list;
-};
-
-static int
-ibf_dump_object_list_i(st_data_t key, st_data_t val, st_data_t ptr)
-{
- VALUE obj = (VALUE)key;
- struct ibf_dump_object_list_arg *args = (struct ibf_dump_object_list_arg *)ptr;
-
- ibf_offset_t offset = ibf_dump_object_object(args->dump, obj);
- rb_ary_push(args->offset_list, UINT2NUM(offset));
-
- return ST_CONTINUE;
-}
-
static void
ibf_dump_object_list(struct ibf_dump *dump, ibf_offset_t *obj_list_offset, unsigned int *obj_list_size)
{
- st_table *obj_table = dump->current_buffer->obj_table;
- VALUE offset_list = rb_ary_tmp_new(obj_table->num_entries);
-
- struct ibf_dump_object_list_arg args;
- args.dump = dump;
- args.offset_list = offset_list;
-
- st_foreach(obj_table, ibf_dump_object_list_i, (st_data_t)&args);
+ VALUE obj_list = dump->current_buffer->obj_list;
+ VALUE list = rb_ary_tmp_new(RARRAY_LEN(obj_list));
+ int i, size;
+ for (i=0; i<RARRAY_LEN(obj_list); i++) {
+ VALUE obj = RARRAY_AREF(obj_list, i);
+ ibf_offset_t offset = ibf_dump_object_object(dump, obj_list, obj);
+ rb_ary_push(list, UINT2NUM(offset));
+ }
+ size = i;
IBF_W_ALIGN(ibf_offset_t);
*obj_list_offset = ibf_dump_pos(dump);
- st_index_t size = obj_table->num_entries;
- st_index_t i;
-
for (i=0; i<size; i++) {
- ibf_offset_t offset = NUM2UINT(RARRAY_AREF(offset_list, i));
+ ibf_offset_t offset = NUM2UINT(RARRAY_AREF(list, i));
IBF_WV(offset);
}
- *obj_list_size = (unsigned int)size;
+ *obj_list_size = size;
}
static void
@@ -11807,19 +11333,14 @@ ibf_dump_mark(void *ptr)
{
struct ibf_dump *dump = (struct ibf_dump *)ptr;
rb_gc_mark(dump->global_buffer.str);
-
- rb_mark_set(dump->global_buffer.obj_table);
- rb_mark_set(dump->iseq_table);
+ rb_gc_mark(dump->global_buffer.obj_list);
+ rb_gc_mark(dump->iseq_list);
}
static void
ibf_dump_free(void *ptr)
{
struct ibf_dump *dump = (struct ibf_dump *)ptr;
- if (dump->global_buffer.obj_table) {
- st_free_table(dump->global_buffer.obj_table);
- dump->global_buffer.obj_table = 0;
- }
if (dump->iseq_table) {
st_free_table(dump->iseq_table);
dump->iseq_table = 0;
@@ -11833,7 +11354,6 @@ ibf_dump_memsize(const void *ptr)
struct ibf_dump *dump = (struct ibf_dump *)ptr;
size_t size = sizeof(*dump);
if (dump->iseq_table) size += st_memsize(dump->iseq_table);
- if (dump->global_buffer.obj_table) size += st_memsize(dump->global_buffer.obj_table);
return size;
}
@@ -11846,11 +11366,9 @@ static const rb_data_type_t ibf_dump_type = {
static void
ibf_dump_setup(struct ibf_dump *dump, VALUE dumper_obj)
{
- dump->global_buffer.obj_table = NULL; // GC may run before a value is assigned
- dump->iseq_table = NULL;
-
+ RB_OBJ_WRITE(dumper_obj, &dump->iseq_list, rb_ary_tmp_new(0));
+ RB_OBJ_WRITE(dumper_obj, &dump->global_buffer.obj_list, ibf_dump_object_list_new());
RB_OBJ_WRITE(dumper_obj, &dump->global_buffer.str, rb_str_new(0, 0));
- dump->global_buffer.obj_table = ibf_dump_object_table_new();
dump->iseq_table = st_init_numtable(); /* need free */
dump->current_buffer = &dump->global_buffer;
@@ -11928,7 +11446,7 @@ rb_ibf_load_iseq_complete(rb_iseq_t *iseq)
#endif
ibf_load_iseq_each(load, iseq, offset);
ISEQ_COMPILE_DATA_CLEAR(iseq);
- FL_UNSET((VALUE)iseq, ISEQ_NOT_LOADED_YET);
+ FL_UNSET(iseq, ISEQ_NOT_LOADED_YET);
rb_iseq_init_trace(iseq);
load->iseq = prev_src_iseq;
}
@@ -11955,12 +11473,12 @@ ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq)
return NULL;
}
else {
- VALUE iseqv = pinned_list_fetch(load->iseq_list, iseq_index);
+ VALUE iseqv = rb_ary_entry(load->iseq_list, iseq_index);
#if IBF_ISEQ_DEBUG
fprintf(stderr, "ibf_load_iseq: iseqv=%p\n", (void *)iseqv);
#endif
- if (iseqv) {
+ if (iseqv != Qnil) {
return (rb_iseq_t *)iseqv;
}
else {
@@ -11968,14 +11486,14 @@ ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq)
#if IBF_ISEQ_DEBUG
fprintf(stderr, "ibf_load_iseq: new iseq=%p\n", (void *)iseq);
#endif
- FL_SET((VALUE)iseq, ISEQ_NOT_LOADED_YET);
+ FL_SET(iseq, ISEQ_NOT_LOADED_YET);
iseq->aux.loader.obj = load->loader_obj;
iseq->aux.loader.index = iseq_index;
#if IBF_ISEQ_DEBUG
fprintf(stderr, "ibf_load_iseq: iseq=%p loader_obj=%p index=%d\n",
(void *)iseq, (void *)load->loader_obj, iseq_index);
#endif
- pinned_list_store(load->iseq_list, iseq_index, (VALUE)iseq);
+ rb_ary_store(load->iseq_list, iseq_index, (VALUE)iseq);
#if !USE_LAZY_LOAD
#if IBF_ISEQ_DEBUG
@@ -12006,8 +11524,9 @@ ibf_load_setup_bytes(struct ibf_load *load, VALUE loader_obj, const char *bytes,
load->global_buffer.size = load->header->size;
load->global_buffer.obj_list_offset = load->header->global_object_list_offset;
load->global_buffer.obj_list_size = load->header->global_object_list_size;
- RB_OBJ_WRITE(loader_obj, &load->iseq_list, pinned_list_new(load->header->iseq_list_size));
- RB_OBJ_WRITE(loader_obj, &load->global_buffer.obj_list, pinned_list_new(load->global_buffer.obj_list_size));
+ RB_OBJ_WRITE(loader_obj, &load->iseq_list, rb_ary_tmp_new(0));
+ RB_OBJ_WRITE(loader_obj, &load->global_buffer.obj_list, rb_ary_tmp_new(load->global_buffer.obj_list_size));
+ rb_ary_resize(load->global_buffer.obj_list, load->global_buffer.obj_list_size);
load->iseq = NULL;
load->current_buffer = &load->global_buffer;
diff --git a/complex.c b/complex.c
index 27c1f131e3..cdd5edc50a 100644
--- a/complex.c
+++ b/complex.c
@@ -5,27 +5,16 @@
which is written in ruby.
*/
-#include "ruby/internal/config.h"
-
+#include "ruby/config.h"
#if defined _MSC_VER
/* Microsoft Visual C does not define M_PI and others by default */
# define _USE_MATH_DEFINES 1
#endif
-
-#include <ctype.h>
#include <math.h>
+#include "internal.h"
+#include "id.h"
-#undef NDEBUG
#define NDEBUG
-#include "id.h"
-#include "internal.h"
-#include "internal/array.h"
-#include "internal/class.h"
-#include "internal/complex.h"
-#include "internal/math.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/rational.h"
#include "ruby_assert.h"
#define ZERO INT2FIX(0)
@@ -403,7 +392,7 @@ nucomp_s_new_internal(VALUE klass, VALUE real, VALUE imag)
RCOMPLEX_SET_REAL(obj, real);
RCOMPLEX_SET_IMAG(obj, imag);
- OBJ_FREEZE_RAW((VALUE)obj);
+ OBJ_FREEZE_RAW(obj);
return (VALUE)obj;
}
@@ -429,6 +418,18 @@ f_complex_new_bang2(VALUE klass, VALUE x, VALUE y)
return nucomp_s_new_internal(klass, x, y);
}
+#ifdef CANONICALIZATION_FOR_MATHN
+static int canonicalization = 0;
+
+RUBY_FUNC_EXPORTED void
+nucomp_canonicalization(int f)
+{
+ canonicalization = f;
+}
+#else
+#define canonicalization 0
+#endif
+
inline static void
nucomp_real_check(VALUE num)
{
@@ -444,6 +445,10 @@ inline static VALUE
nucomp_s_canonicalize_internal(VALUE klass, VALUE real, VALUE imag)
{
int complex_r, complex_i;
+#ifdef CANONICALIZATION_FOR_MATHN
+ if (k_exact_zero_p(imag) && canonicalization)
+ return real;
+#endif
complex_r = RB_TYPE_P(real, T_COMPLEX);
complex_i = RB_TYPE_P(imag, T_COMPLEX);
if (!complex_r && !complex_i) {
@@ -620,12 +625,14 @@ f_complex_polar(VALUE klass, VALUE x, VALUE y)
assert(!RB_TYPE_P(x, T_COMPLEX));
assert(!RB_TYPE_P(y, T_COMPLEX));
if (f_zero_p(x) || f_zero_p(y)) {
+ if (canonicalization) return x;
return nucomp_s_new_internal(klass, x, RFLOAT_0);
}
if (RB_FLOAT_TYPE_P(y)) {
const double arg = RFLOAT_VALUE(y);
if (arg == M_PI) {
x = f_negate(x);
+ if (canonicalization) return x;
y = RFLOAT_0;
}
else if (arg == M_PI_2) {
@@ -640,12 +647,13 @@ f_complex_polar(VALUE klass, VALUE x, VALUE y)
const double abs = RFLOAT_VALUE(x);
const double real = abs * cos(arg), imag = abs * sin(arg);
x = DBL2NUM(real);
+ if (canonicalization && imag == 0.0) return x;
y = DBL2NUM(imag);
}
else {
- const double ax = sin(arg), ay = cos(arg);
- y = f_mul(x, DBL2NUM(ax));
- x = f_mul(x, DBL2NUM(ay));
+ y = f_mul(x, DBL2NUM(sin(arg)));
+ x = f_mul(x, DBL2NUM(cos(arg)));
+ if (canonicalization && f_zero_p(y)) return x;
}
return nucomp_s_new_internal(klass, x, y);
}
@@ -654,16 +662,6 @@ f_complex_polar(VALUE klass, VALUE x, VALUE y)
f_mul(x, m_sin(y)));
}
-#ifdef HAVE___COSPI
-# define cospi(x) __cospi(x)
-#else
-# define cospi(x) cos((x) * M_PI)
-#endif
-#ifdef HAVE___SINPI
-# define sinpi(x) __sinpi(x)
-#else
-# define sinpi(x) sin((x) * M_PI)
-#endif
/* returns a Complex or Float of ang*PI-rotated abs */
VALUE
rb_dbl_complex_new_polar_pi(double abs, double ang)
@@ -681,8 +679,8 @@ rb_dbl_complex_new_polar_pi(double abs, double ang)
return DBL2NUM(abs);
}
else {
- const double real = abs * cospi(ang), imag = abs * sinpi(ang);
- return rb_complex_new(DBL2NUM(real), DBL2NUM(imag));
+ ang *= M_PI;
+ return rb_complex_new(DBL2NUM(abs * cos(ang)), DBL2NUM(abs * sin(ang)));
}
}
@@ -705,20 +703,13 @@ nucomp_s_polar(int argc, VALUE *argv, VALUE klass)
switch (rb_scan_args(argc, argv, "11", &abs, &arg)) {
case 1:
nucomp_real_check(abs);
+ if (canonicalization) return abs;
return nucomp_s_new_internal(klass, abs, ZERO);
default:
nucomp_real_check(abs);
nucomp_real_check(arg);
break;
}
- if (RB_TYPE_P(abs, T_COMPLEX)) {
- get_dat1(abs);
- abs = dat->real;
- }
- if (RB_TYPE_P(arg, T_COMPLEX)) {
- get_dat1(arg);
- arg = dat->real;
- }
return f_complex_polar(klass, abs, arg);
}
@@ -1328,8 +1319,8 @@ nucomp_numerator(VALUE self)
}
/* :nodoc: */
-st_index_t
-rb_complex_hash(VALUE self)
+static VALUE
+nucomp_hash(VALUE self)
{
st_index_t v, h[2];
VALUE n;
@@ -1340,13 +1331,7 @@ rb_complex_hash(VALUE self)
n = rb_hash(dat->imag);
h[1] = NUM2LONG(n);
v = rb_memhash(h, sizeof(h));
- return v;
-}
-
-static VALUE
-nucomp_hash(VALUE self)
-{
- return ST2FIX(rb_complex_hash(self));
+ return ST2FIX(v);
}
/* :nodoc: */
@@ -1715,6 +1700,8 @@ numeric_to_c(VALUE self)
return rb_complex_new1(self);
}
+#include <ctype.h>
+
inline static int
issign(int c)
{
@@ -2322,17 +2309,20 @@ void
Init_Complex(void)
{
VALUE compat;
- id_abs = rb_intern_const("abs");
- id_arg = rb_intern_const("arg");
- id_denominator = rb_intern_const("denominator");
- id_numerator = rb_intern_const("numerator");
- id_real_p = rb_intern_const("real?");
- id_i_real = rb_intern_const("@real");
- id_i_imag = rb_intern_const("@image"); /* @image, not @imag */
- id_finite_p = rb_intern_const("finite?");
- id_infinite_p = rb_intern_const("infinite?");
- id_rationalize = rb_intern_const("rationalize");
- id_PI = rb_intern_const("PI");
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
+
+ id_abs = rb_intern("abs");
+ id_arg = rb_intern("arg");
+ id_denominator = rb_intern("denominator");
+ id_numerator = rb_intern("numerator");
+ id_real_p = rb_intern("real?");
+ id_i_real = rb_intern("@real");
+ id_i_imag = rb_intern("@image"); /* @image, not @imag */
+ id_finite_p = rb_intern("finite?");
+ id_infinite_p = rb_intern("infinite?");
+ id_rationalize = rb_intern("rationalize");
+ id_PI = rb_intern("PI");
rb_cComplex = rb_define_class("Complex", rb_cNumeric);
@@ -2347,7 +2337,7 @@ Init_Complex(void)
rb_define_global_function("Complex", nucomp_f_complex, -1);
- rb_undef_methods_from(rb_cComplex, RCLASS_ORIGIN(rb_mComparable));
+ rb_undef_methods_from(rb_cComplex, rb_mComparable);
rb_undef_method(rb_cComplex, "%");
rb_undef_method(rb_cComplex, "div");
rb_undef_method(rb_cComplex, "divmod");
diff --git a/configure.ac b/configure.ac
index 2dcebdde9f..f1ed36bb96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,48 +1,20 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT
+AC_INIT()
{
AC_CONFIG_AUX_DIR(tool)
+AC_CONFIG_MACRO_DIRS(tool/m4)
AC_PREREQ(2.67)
-tooldir="$srcdir/tool"
+dnl override AC_CHECKING
+dnl placed here due to aclocal(1)'s
+dnl ignoring this definition in separate files
+AC_DEFUN([AC_CHECKING],[dnl
+AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl
+AS_MESSAGE([checking ${msg_checking}$1${msg_reset}...])])dnl
AC_DISABLE_OPTION_CHECKING
-m4_include([tool/m4/_colorize_result_prepare.m4])
-m4_include([tool/m4/ac_msg_result.m4])
-m4_include([tool/m4/colorize_result.m4])
-m4_include([tool/m4/ruby_append_option.m4])
-m4_include([tool/m4/ruby_append_options.m4])
-m4_include([tool/m4/ruby_check_builtin_func.m4])
-m4_include([tool/m4/ruby_check_builtin_setjmp.m4])
-m4_include([tool/m4/ruby_check_printf_prefix.m4])
-m4_include([tool/m4/ruby_check_setjmp.m4])
-m4_include([tool/m4/ruby_check_signedness.m4])
-m4_include([tool/m4/ruby_check_sizeof.m4])
-m4_include([tool/m4/ruby_check_sysconf.m4])
-m4_include([tool/m4/ruby_cppoutfile.m4])
-m4_include([tool/m4/ruby_decl_attribute.m4])
-m4_include([tool/m4/ruby_default_arch.m4])
-m4_include([tool/m4/ruby_define_if.m4])
-m4_include([tool/m4/ruby_defint.m4])
-m4_include([tool/m4/ruby_dtrace_available.m4])
-m4_include([tool/m4/ruby_dtrace_postprocess.m4])
-m4_include([tool/m4/ruby_func_attribute.m4])
-m4_include([tool/m4/ruby_mingw32.m4])
-m4_include([tool/m4/ruby_prepend_option.m4])
-m4_include([tool/m4/ruby_prog_gnu_ld.m4])
-m4_include([tool/m4/ruby_replace_funcs.m4])
-m4_include([tool/m4/ruby_replace_type.m4])
-m4_include([tool/m4/ruby_rm_recursive.m4])
-m4_include([tool/m4/ruby_setjmp_type.m4])
-m4_include([tool/m4/ruby_stack_grow_direction.m4])
-m4_include([tool/m4/ruby_try_cflags.m4])
-m4_include([tool/m4/ruby_try_cxxflags.m4])
-m4_include([tool/m4/ruby_try_ldflags.m4])
-m4_include([tool/m4/ruby_universal_arch.m4])
-m4_include([tool/m4/ruby_werror_flag.m4])
-
AC_ARG_VAR([cflags], [additional CFLAGS (ignored when CFLAGS is given)])
AC_ARG_VAR([cppflags], [additional CPPFLAGS (ignored when CPPFLAGS is given)])
AC_ARG_VAR([cxxflags], [additional CXXFLAGS (ignored when CXXFLAGS is given)])
@@ -60,9 +32,11 @@ AC_ARG_WITH(baseruby,
[
AC_PATH_PROG([BASERUBY], [ruby], [false])
])
-AS_IF([test "$HAVE_BASERUBY" != no -a "`RUBYOPT=- $BASERUBY --disable=gems -e 'print 42 if RUBY_VERSION > "2.2"' 2>/dev/null`" = 42], [
- BASERUBY="$BASERUBY --disable=gems"
- BASERUBY_VERSION=`$BASERUBY -v`
+AS_IF([test "$HAVE_BASERUBY" = yes -a "`RUBYOPT=- $BASERUBY -e 'print 42' 2>/dev/null`" = 42], [
+ AS_IF([test "`RUBYOPT=- $BASERUBY --disable=gems -e 'print 42' 2>/dev/null`" = 42], [
+ BASERUBY="$BASERUBY --disable=gems"
+ BASERUBY_VERSION=`$BASERUBY -v`
+ ])
$BASERUBY -C "$srcdir" tool/downloader.rb -d tool -e gnu config.guess config.sub >&AS_MESSAGE_FD
], [
BASERUBY="echo executable host ruby is required. use --with-baseruby option.; false"
@@ -97,23 +71,8 @@ AC_SUBST(TEENY)
AC_SUBST(RUBY_API_VERSION, '$(MAJOR).$(MINOR)')
AC_SUBST(RUBY_PROGRAM_VERSION, '$(MAJOR).$(MINOR).$(TEENY)')
-AS_IF([test "$program_prefix" = NONE], [
- program_prefix=
-])
-AS_IF([test "$prefix" -ef .], [
- AC_MSG_ERROR(--prefix cannot be the current working directory.)
-])
-RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
-RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
-AC_SUBST(RUBY_BASE_NAME)
-AC_SUBST(RUBYW_BASE_NAME)
-AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')
-
dnl checks for alternative programs
AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-AC_CANONICAL_TARGET
-AC_ARG_PROGRAM
RUBY_RM_RECURSIVE
AC_ARG_WITH(gcc,
AS_HELP_STRING([--without-gcc], [never use gcc]),
@@ -127,105 +86,21 @@ AS_IF([test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"], [
AC_MSG_ERROR(cached CC is different -- throw away $cache_file
(it is also a good idea to do 'make clean' before compiling))
])
-AS_CASE(["${build_os}"], [linux*|cygwin*], [
- AC_CHECK_TOOLS([CC], [gcc clang cc])
-], [
- # OpenBSD wants to prefer cc over gcc.
- # See https://github.com/ruby/ruby/pull/2443
- AC_CHECK_TOOLS([CC], [cl.exe clang cc gcc c99 /usr/ucb/cc])
-])
-
-AC_ARG_VAR([AR], [Archiver command])
-AC_ARG_VAR([AS], [Assembler command])
-AC_ARG_VAR([CC], [C compiler command])
-AC_ARG_VAR([CXX], [C++ compiler command])
-AC_ARG_VAR([LD], [Linker command])
-AC_ARG_VAR([NM], [Symbol list command])
-AC_ARG_VAR([OBJCOPY], [Objcopy command])
-AC_ARG_VAR([OBJDUMP], [Objdump command])
-AC_ARG_VAR([RANLIB], [Ranlib command])
-AC_ARG_VAR([STRIP], [Strip command])
-
-# We don't want to bother things like `ccache gcc`, `clang -shared-libgcc`, ...
-set rb_dummy ${CC}
-rb_CC=$2
-AS_CASE(["/${rb_CC} "],
-[*@<:@\ /@:>@"cc "*], [
- # Don't try g++/clang++ when CC=cc
- AC_CHECK_TOOLS([CXX], [cl.exe CC c++])
-],
-[*icc*], [
- # Intel C++ has interprocedural optimizations. It tends to come with its
- # own linker etc.
- AC_CHECK_TOOL([AR], [`echo "${rb_CC}" | sed s/icc/xiar/`])
- AC_CHECK_TOOL([CXX], [`echo "${rb_CC}" | sed s/icc/icpc/`])
- AC_CHECK_TOOL([LD], [`echo "${rb_CC}" | sed s/icc/xild/`])
-],
-[*gcc*], [
- # Dito for GCC.
- AC_CHECK_TOOL([LD], [`echo "${rb_CC}" | sed s/gcc/ld/`])
- AC_CHECK_TOOL([AR], [`echo "${rb_CC}" | sed s/gcc/gcc-ar/`])
- AC_CHECK_TOOL([CXX], [`echo "${rb_CC}" | sed s/gcc/g++/`])
- AC_CHECK_TOOL([NM], [`echo "${rb_CC}" | sed s/gcc/gcc-nm/`])
- AC_CHECK_TOOL([RANLIB], [`echo "${rb_CC}" | sed s/gcc/gcc-ranlib/`])
-],
-[*clang*], [
- # Dito for LLVM. Note however that llvm-as is a LLVM-IR to LLVM bitcode
- # assembler that does not target your machine native binary.
- : ${LD:="${CC}"} # ... try -fuse-ld=lld ?
- AC_CHECK_TOOL([AR], [`echo "${rb_CC}" | sed s/clang/llvm-ar/`])
-# AC_CHECK_TOOL([AS], [`echo "${rb_CC}" | sed s/clang/llvm-as/`])
- AC_CHECK_TOOL([CXX], [`echo "${rb_CC}" | sed s/clang/clang++/`])
- AC_CHECK_TOOL([NM], [`echo "${rb_CC}" | sed s/clang/llvm-nm/`])
- AC_CHECK_TOOL([OBJCOPY], [`echo "${rb_CC}" | sed s/clang/llvm-objcopy/`])
- AC_CHECK_TOOL([OBJDUMP], [`echo "${rb_CC}" | sed s/clang/llvm-objdump/`])
- AC_CHECK_TOOL([RANLIB], [`echo "${rb_CC}" | sed s/clang/llvm-ranlib/`])
- AC_CHECK_TOOL([STRIP], [`echo "${rb_CC}" | sed s/clang/llvm-strip/`])
-])
-AS_UNSET(rb_CC)
-AS_UNSET(rb_dummy)
-
-AS_CASE(["${build_os}"],
-[solaris*], [
- AC_PATH_TOOL([LD], [ld], [/usr/ccs/bin/ld], [/usr/ccs/bin:$PATH])
-],
-[aix*], [
- AC_PATH_TOOL([NM], [nm], [/usr/ccs/bin/nm], [/usr/ccs/bin:$PATH])
-])
-AS_CASE(["${target_os}"],
-[cygwin*|mingw*], [
- ac_cv_prog_ac_ct_OBJCOPY=":"
-])
-
-rb_test_CFLAGS=${CFLAGS+yes}
-rb_test_CXXFLAGS=${CXXFLAGS+yes}
-
-# BSD's ports and MacPorts prefix GNU binutils with 'g'
+test -z "$CC" || ac_cv_prog_CC="$CC"
-dnl Seems necessarily in order to add -std=gnu99 option for gcc 4.9.
-m4_version_prereq([2.70], [], [AC_PROG_CC_C99])
-
-AC_PROG_CXX
-AC_PROG_CPP
-AC_PROG_RANLIB
-AC_CHECK_TOOLS([AR], [gar ar])
-AC_CHECK_TOOLS([AS], [gas as])
-AC_CHECK_TOOLS([LD], [gld ld]) # ... try gold ?
-AC_CHECK_TOOLS([NM], [gnm nm])
-AC_CHECK_TOOLS([OBJCOPY], [gobjcopy objcopy])
-AC_CHECK_TOOLS([OBJDUMP], [gobjdump objdump])
-AC_CHECK_TOOLS([STRIP], [gstrip strip], [:])
-
-AS_IF([test ! $rb_test_CFLAGS], [AS_UNSET(CFLAGS)]); AS_UNSET(rb_test_CFLAGS)
-AS_IF([test ! $rb_test_CXXFLAGS], [AS_UNSET(CXXFLAGS)]); AS_UNSET(rb_save_CXXFLAGS)
-
-AS_IF([test "${CXX}" = "g++" -a -z "${GXX}"], [
- # AC_PROG_CXX sets $CXX to "g++" when it purposefully finds that there is
- # _no_ g++. This brain-damaged design must be worked around. Thankfully,
- # similar thing doesn't happen for AC_PROG_CC.
- rb_there_is_in_fact_no_gplusplus_but_autoconf_is_cheating_us=true
+AS_IF([test "$program_prefix" = NONE], [
+ program_prefix=
])
+AS_IF([test "$prefix" -ef .], [
+ AC_MSG_ERROR(--prefix cannot be the current working directory.)
+])
+RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
+RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
+AC_SUBST(RUBY_BASE_NAME)
+AC_SUBST(RUBYW_BASE_NAME)
+AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')
+AC_CANONICAL_TARGET
test x"$target_alias" = x &&
target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`
ac_install_sh='' # unusable for extension libraries.
@@ -273,8 +148,7 @@ AC_ARG_ENABLE(load-relative,
AS_HELP_STRING([--enable-load-relative], [resolve load paths at run time]),
[load_relative=$enableval])
-# checks for UNIX variants that set C preprocessor variables
-AC_USE_SYSTEM_EXTENSIONS
+AC_ARG_PROGRAM
dnl Checks for programs.
@@ -298,37 +172,76 @@ dnl ])
AS_CASE(["$host_os:$build_os"],
[darwin*:darwin*], [
+ AC_CHECK_TOOLS(CC, [clang gcc cc])
# Following Apple deployed clang are broken
# clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
# Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
# Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
- AC_PREPROC_IFELSE(
- [AC_LANG_PROGRAM([
- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
- @%:@error premature clang
- @%:@endif
- ])],
- [],
- [AC_MSG_ERROR([clang version 3.0 or later is required])])
-])
+ AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
+ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+ @%:@error premature clang
+ @%:@endif
+SRC
+ AC_MSG_ERROR([clang version 3.0 or later is required])
+ ])],
+[openbsd*:openbsd*], [
+ AC_CHECK_TOOLS(CC, [cc])
+])
+AS_IF([test x"${build}" != x"${host}"], [
+ AC_CHECK_TOOL(CC, gcc)
+])
+
+AC_PROG_CC_C99
+AS_CASE([$CC],
+[gcc-*], [
+ gcc_prefix=gcc- gcc_suffix=`echo "$CC" | sed 's/^gcc//'`
+ AC_PROG_CXX(g++${gcc_suffix})],
+[clang-*|clang], [
+ gcc_prefix=clang- gcc_suffix=`echo "$CC" | sed 's/^clang//'`
+ AC_PROG_CXX(clang++${gcc_suffix})],
+[gcc_prefix= gcc_suffix=])
+
+dnl Select the appropriate C++ compiler in OS X
+AS_CASE(["$build_os:${CXX}"],
+ [darwin1*.*:], [
+ AC_MSG_CHECKING([CXX for $CC])
+ AS_CASE(["/$CC "],
+ [*@<:@\ /@:>@"gcc-4.2 "*], [pat='gcc-4\.2' CXX=g++-4.2],
+ [*@<:@\ /@:>@"gcc "*], [pat=gcc CXX=g++],
+ [*@<:@\ /@:>@"cc "*], [pat=cc CXX=c++],
+ [*@<:@\ /@:>@"icc "*], [pat=icc CXX=icpc],
+ [*@<:@\ /@:>@"clang "*], [pat=clang CXX=clang++])
+ AS_IF([test "${CXX}"], [
+ CXX=`echo "/$CC " | sed ["s:\([ /]\)${pat}:\1$CXX:; s:^/::; s: *$::"]`
+ ])
+ AC_MSG_RESULT([$CXX])],
+ [openbsd*:*], [
+ AC_CHECK_TOOLS(CXX, [c++])
+ ])
+test -z "$CXX" || ac_cv_prog_CXX="$CXX"
AS_CASE(["$target_os"],
[darwin*], [
AC_MSG_CHECKING(if minimum required OS X version is supported)
- AC_PREPROC_IFELSE([AC_LANG_SOURCE([[@%:@include <AvailabilityMacros.h>
+ AC_TRY_CPP([@%:@include <AvailabilityMacros.h>
@%:@if MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5
@%:@error pre OS X 10.5
[!<===== pre OS X 10.5 =====>]
@%:@endif
- ]])],
+ ],
[macosx_min_required=yes],
[AC_MSG_RESULT(no)
AC_MSG_ERROR([Unsupported OS X version is required])])
AC_MSG_RESULT(${macosx_min_required})
])
+AC_PROG_CXX
RUBY_MINGW32
+AC_PROG_GCC_TRADITIONAL
AC_SUBST(GCC)
+AS_CASE(["$target_os"],
+[solaris*], [AC_PATH_TOOL([LD], [ld], [/usr/ccs/bin/ld], [/usr/ccs/bin:$PATH])],
+[AC_CHECK_TOOL([LD], [ld], [ld])])
AC_SUBST(LD)
AS_IF([test "$GCC" = yes], [
linker_flag=-Wl,
@@ -361,12 +274,6 @@ AC_SUBST(CSRCFLAG)
: ${MJIT_CC=$CC}
AS_IF([test "x$cross_compiling" = xno], [
AC_PATH_PROG([MJIT_CC], ${MJIT_CC})
-
- # if $CC is in /usr/lib/ccache/$CC, search original $CC (disable ccache)
- AS_IF([echo $RUBY_DEBUG | grep ci > /dev/null &&
- echo $MJIT_CC | grep ^/usr/lib/ccache > /dev/null], [
- PATH=`echo $PATH | sed "s/\/usr\/lib\/ccache://"` MJIT_CC=`which $CC`])
-
AS_CASE([$target_os],
[*mingw*], [command -v cygpath > /dev/null && MJIT_CC=`cygpath -ma $MJIT_CC`])
shift 2
@@ -381,7 +288,7 @@ AS_CASE(["$build_os"],
echo 'int main(void) {return 0;}' > conftest.c
AS_IF([$CC -framework Foundation -o conftest conftest.c 2>&1 |
grep '^ld: warning: text-based stub file' >/dev/null], [
- CC_WRAPPER=`cd -P "${tooldir}" && pwd`/darwin-cc
+ CC_WRAPPER=`cd -P "$srcdir/tool" && pwd`/darwin-cc
CC="$CC_WRAPPER $CC"
])
rm -fr conftest*
@@ -402,22 +309,38 @@ AC_SUBST(CC_VERSION_MESSAGE, $cc_version_message)
: ${DLDFLAGS="$LDFLAGS"}
RUBY_UNIVERSAL_ARCH
-AS_IF([test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "${universal_binary:-no}" = no], [
+AS_IF([test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "$universal_binary" = no], [
RUBY_DEFAULT_ARCH("$target_cpu")
])
-host_os=$target_os
-host_vendor=$target_vendor
-host_cpu=$target_cpu
-host=$target
-host_alias=$target_alias
+AS_CASE(["$target_os"], [darwin*], [
+if libtool 2>&1 | grep no_warning_for_no_symbols > /dev/null; then
+ ac_cv_prog_ac_ct_RANLIB=:
+ ac_cv_prog_ac_ct_AR='libtool -static'
+ rb_cv_arflags='-no_warning_for_no_symbols -o'
+fi
+])
+AC_CHECK_TOOLS(RANLIB, [${gcc_prefix}ranlib${gcc_suffix} ranlib], :)
+AC_CHECK_TOOLS(AR, [${gcc_prefix}ar${gcc_suffix} ar])
+AS_IF([test -z "$AR"], [
+ AC_CHECK_PROGS(AR, aal, ar)
+])
AC_CACHE_CHECK([for $AR flags], [rb_cv_arflags], [
AS_IF([$AR rcD conftest.a > /dev/null 2>&1 && rm conftest.a],
[rb_cv_arflags=rcD], [rb_cv_arflags=rcu])
])
AC_SUBST(ARFLAGS, ["$rb_cv_arflags "])
+
+AC_CHECK_TOOL(AS, as)
+ASFLAGS=$ASFLAGS
AC_SUBST(ASFLAGS)
+AS_CASE(["$target_os"],[cygwin*|mingw*], [ac_cv_prog_ac_ct_OBJCOPY=":"])
+
+# BSD's ports and MacPorts prefix GNU binutils with 'g'
+AC_CHECK_TOOLS(OBJDUMP, [objdump gobjdump])
+AC_CHECK_TOOLS(OBJCOPY, [objcopy gobjcopy])
+
AS_CASE(["$target_os"],
[cygwin*|mingw*], [
AC_CHECK_TOOL(WINDRES, windres)
@@ -431,8 +354,8 @@ AS_CASE(["$target_os"],
[mingw*], [
test "$rb_cv_msvcrt" = "" && unset rb_cv_msvcrt
AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <stdio.h>]],
- [[FILE* volatile f = stdin; return 0;]])],
+ AC_TRY_LINK([@%:@include <stdio.h>],
+ [FILE* volatile f = stdin; return 0;],
[rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |
tr A-Z a-z |
sed -n '/^[[ ]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],
@@ -445,7 +368,9 @@ AS_CASE(["$target_os"],
])
: ${enable_shared=yes}
],
+[aix*], [AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)],
[hiuxmpp*], [AC_DEFINE(__HIUX_MPP__)]) # by TOYODA Eizi <toyoda@npd.kishou.go.jp>
+AC_CHECK_TOOLS(NM, [${gcc_prefix}nm${gcc_suffix} nm])
AC_PROG_LN_S
AC_PROG_MAKE_SET
@@ -470,28 +395,11 @@ AS_IF([test "$cross_compiling:$ac_cv_prog_DTRACE" = no: -a -n "$ac_tool_prefix"]
AC_CHECK_PROGS(DOT, dot)
AC_CHECK_PROGS(DOXYGEN, doxygen)
-for prog in ${ac_tool_prefix:+${ac_tool_prefix}pkg-config} pkg-config; do
- AC_CHECK_PROG(PKG_CONFIG, $prog, [$prog], [], [],
- [`"$as_dir/$ac_word$ac_exec_ext" --print-errors --version > /dev/null 2>&1 || echo "$as_dir/$ac_word$ac_exec_ext"`])
- test -z "${PKG_CONFIG}" || break
-done
+AC_CHECK_PROG(PKG_CONFIG, pkg-config, [pkg-config], [], [],
+ [`"$as_dir/$ac_word$ac_exec_ext" --print-errors --version > /dev/null 2>&1 || echo "$as_dir/$ac_word$ac_exec_ext"`])
-AC_MSG_CHECKING([whether it is Android])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- @%:@ifdef __ANDROID__
- @%:@error android
- @%:@endif
-]], [[]])],
-[AC_MSG_RESULT(no)],
-[
- AC_MSG_RESULT(yes)
- target_os=${target_os}-android
- AC_MSG_CHECKING([for Android API version])
- # hacky workaround: https://github.com/termux/termux-packages/issues/6176
- rb_android_api=`getprop ro.build.version.sdk`
- AC_MSG_RESULT($rb_android_api)
- RUBY_APPEND_OPTIONS(CPPFLAGS, -D__ANDROID_API__=$rb_android_api -Wno-macro-redefined)
-])
+# checks for UNIX variants that set C preprocessor variables
+AC_USE_SYSTEM_EXTENSIONS
AC_SUBST(RM, ['rm -f'])
AC_SUBST(CP, ['cp'])
@@ -528,7 +436,7 @@ AC_SUBST(CHDIR)
: "compiler section" && {
RUBY_WERROR_FLAG([
AC_MSG_CHECKING([whether CFLAGS is valid])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ AC_TRY_COMPILE([], [],
[AC_MSG_RESULT(yes)],
[
AC_MSG_RESULT(no)
@@ -544,7 +452,7 @@ RUBY_WERROR_FLAG([
echo '<?xml?><plist><dict><key>CFBundleIdentifier</key><string></string></dict></plist>' > Info.plist &&
:
} || AC_MSG_ERROR([failed to make temporary directory])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ AC_TRY_LINK([], [],
[AC_MSG_RESULT(yes)],
[
cd .. && rm -fr tmp.$$.try_link
@@ -573,12 +481,6 @@ AS_IF([test x"${RPATHFLAG}" = x], [
rpathflag=`echo "$RPATHFLAG" | sed 's/%.*//'`
])
-RUBY_TRY_CFLAGS(-fdeclspec, [
- RUBY_APPEND_OPTIONS(CC, -fdeclspec)
- RUBY_APPEND_OPTIONS(MJIT_CC, -fdeclspec)
-])
-RUBY_TRY_CXXFLAGS(-fdeclspec, [RUBY_APPEND_OPTIONS(CXX, -fdeclspec)])
-
AS_CASE([$RUBY_PATCHLEVEL], [-*],
[RUBY_DEVEL=yes], [RUBY_DEVEL=no])
particular_werror_flags=$RUBY_DEVEL
@@ -628,7 +530,7 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],
-Wsuggest-attribute=format \
-Wsuggest-attribute=noreturn \
-Wunused-variable \
- -diag-disable=175,188,1684,2259,2312 \
+ -diag-disable=175,188,2259 \
$extra_warnflags \
; do
AS_IF([test "$particular_werror_flags" != yes], [
@@ -655,22 +557,6 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],
warnflags=
])
RUBY_TRY_CFLAGS(-Qunused-arguments, [RUBY_APPEND_OPTIONS(rb_cv_wsuppress_flags, -Qunused-arguments)])
-AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([
-@%:@if !(defined(__SUNPRO_C)||defined(__SUNPRO_CC))
-@%:@error not sunpro
-@%:@endif],[])], [
- for e in \
- E_STATEMENT_NOT_REACHED \
- E_INIT_SIGN_EXTEND \
- E_INIT_DOES_NOT_FIT \
- E_INITIALIZATION_TYPE_MISMATCH
- do
- RUBY_TRY_CFLAGS([-erroff=${e}], [
- RUBY_APPEND_OPTIONS(rb_cv_warnflags, [-erroff=${e}])
- ])
- done
-])
AC_ARG_WITH(compress-debug-sections,
AS_HELP_STRING([--with-compress-debug-sections=type],
@@ -694,15 +580,14 @@ AS_IF([test "$GCC" = yes], [
[disable -D_FORTIFY_SOURCE=2 option, which causes link error on mingw]),
[fortify_source=$enableval])
AS_IF([test "x$fortify_source" != xno], [
- RUBY_TRY_CFLAGS([$optflags -D_FORTIFY_SOURCE=2], [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)], [],
- [@%:@include <stdio.h>])
+ RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=2, [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)])
])
: ${MJIT_HEADER_FLAGS='-P -dD'}
# -fstack-protector
AS_CASE(["$target_os"],
- [mingw*|haiku*], [
+ [mingw*], [
stack_protector=no
])
AS_IF([test -z "${stack_protector+set}"], [
@@ -749,13 +634,13 @@ AS_IF([test "$GCC" = yes], [
], [
CFLAGS="$CFLAGS -Werror -Wuninitialized"
])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>
+ AC_TRY_COMPILE([@%:@include <math.h>
int foo(double x)
{
int exp;
frexp(x, &exp);
return exp;
- }]], [[if (foo(0.0)) return 1;]])],
+ }], [if (foo(0.0)) return 1;],
[rb_cv_mingw64_broken_frexp_modf=no],
[rb_cv_mingw64_broken_frexp_modf=yes])
CFLAGS="$save_CFLAGS"
@@ -845,13 +730,13 @@ AS_IF([test "$GCC" = yes], [
AS_CASE(["$target_cpu"], [[i[3-6]86*]], [
AC_CACHE_CHECK([for __sync_val_compare_and_swap], [rb_cv_gcc_compiler_cas], [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned long atomic_var;]],
- [[__sync_val_compare_and_swap(&atomic_var, 0, 1);]])],
+ AC_TRY_LINK([unsigned long atomic_var;],
+ [__sync_val_compare_and_swap(&atomic_var, 0, 1);],
[rb_cv_gcc_compiler_cas=yes],
[
save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -march=i486"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned long atomic_var;]],
- [[__sync_val_compare_and_swap(&atomic_var, 0, 1);]])],
+ AC_TRY_LINK([unsigned long atomic_var;],
+ [__sync_val_compare_and_swap(&atomic_var, 0, 1);],
[rb_cv_gcc_compiler_cas=i486],
[rb_cv_gcc_compiler_cas=no])
CFLAGS="$save_CFLAGS"
@@ -878,7 +763,7 @@ test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" && eval CXXFLAGS="\"$cx
AC_CACHE_CHECK([whether compiler has statement and declarations in expressions],
rb_cv_have_stmt_and_decl_in_expr,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[ __extension__ ({ int a = 0; a; }); ]])],
+ [AC_TRY_COMPILE([],[ __extension__ ({ int a = 0; a; }); ],
[rb_cv_have_stmt_and_decl_in_expr=yes],
[rb_cv_have_stmt_and_decl_in_expr=no])])
AS_IF([test "$rb_cv_have_stmt_and_decl_in_expr" = yes], [
@@ -899,12 +784,12 @@ AS_CASE(["$target_os"],
[freebsd*], [
AC_CACHE_CHECK([whether pthread should be enabled by default],
rb_cv_enable_pthread_default,
- [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_CPP([
#include <osreldate.h>
#if __FreeBSD_version < 502102
#error pthread should be disabled on this platform
#endif
- ]])],
+ ],
rb_cv_enable_pthread_default=yes,
rb_cv_enable_pthread_default=no)])
enable_pthread=$rb_cv_enable_pthread_default
@@ -932,8 +817,8 @@ AS_CASE(["$target_os"],
RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT)
AC_CACHE_CHECK([whether syscall(2) is deprecated], rb_cv_syscall_deprecated,
[RUBY_WERROR_FLAG([
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <unistd.h>]],
- [[if (syscall(0)) return 1;]])],
+ AC_TRY_COMPILE([@%:@include <unistd.h>],
+ [if (syscall(0)) return 1;],
[rb_cv_syscall_deprecated=no],
[rb_cv_syscall_deprecated=yes])])])
AS_IF([test $rb_cv_syscall_deprecated = yes], [
@@ -960,7 +845,7 @@ AS_CASE(["$target_os"],
])
with_setjmp_type=sigsetjmp # to hijack SIGCHLD handler
AC_CACHE_CHECK(for broken crypt with 8bit chars, rb_cv_broken_crypt,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <stdio.h>
#include <unistd.h>
#include <string.h>
@@ -997,7 +882,7 @@ main()
}
return 0;
}
-]])],
+],
rb_cv_broken_crypt=no,
rb_cv_broken_crypt=yes,
rb_cv_broken_crypt=yes)])
@@ -1026,11 +911,11 @@ main()
[solaris*], [ LIBS="-lm $LIBS"
ac_cv_func_vfork=no
AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given)
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>
+ AC_TRY_COMPILE([#include <unistd.h>
#ifndef _XOPEN_SOURCE
#error _XOPEN_SOURCE is not defined
#endif
- ]], [[]])],
+ ], [],
[given_xopen_source=yes], [given_xopen_source=no])
AC_MSG_RESULT($given_xopen_source)
AS_IF([test $given_xopen_source = no], [
@@ -1040,13 +925,13 @@ main()
AS_IF([test x"$define_xopen_source" != x], [
break
])
- RUBY_WERROR_FLAG([AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ RUBY_WERROR_FLAG([AC_TRY_COMPILE([
#define _XOPEN_SOURCE ${tmp_xpg}00
#include <unistd.h>
#ifndef _XPG${tmp_xpg}
#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00
#endif
- ]], [[]])],
+ ], [],
[define_xopen_source=${tmp_xpg}00], [])
])
done
@@ -1056,8 +941,6 @@ main()
AC_MSG_RESULT($define_xopen_source)
AS_IF([test x"$define_xopen_source" != xno], [
RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source)
- # _XOPEN_SOURCE should not be defined for C++ on Solaris.
- RUBY_APPEND_OPTIONS(CXXFLAGS, -U_XOPEN_SOURCE)
])
])
],
@@ -1157,24 +1040,6 @@ main()
[ LIBS="-lm $LIBS"])
: ${ORIG_LIBS=$LIBS}
-AS_IF([test -n "${rb_there_is_in_fact_no_gplusplus_but_autoconf_is_cheating_us}"], [
- AC_MSG_NOTICE([Test skipped due to lack of a C++ compiler.])
-],
-[test -n "${CXX}"], [
- RUBY_WERROR_FLAG([
- AC_MSG_CHECKING([whether CXXFLAGS is valid])
- AC_LANG_PUSH(C++)
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <cstdio>]], [[]])],
- [AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- # The message mentions CXXFLAGS, but CPPFLAGS might also affects.
- AC_MSG_WARN([something wrong with CXXFLAGS="$CXXFLAGS"])
- CXX=false
- ])
- AC_LANG_POP(C++)
- ])
-])
-
AC_CHECK_LIB(crypt, crypt) # glibc (GNU/Linux, GNU/Hurd, GNU/kFreeBSD)
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
@@ -1231,9 +1096,6 @@ AC_CHECK_HEADERS(syscall.h)
AC_CHECK_HEADERS(time.h)
AC_CHECK_HEADERS(ucontext.h)
AC_CHECK_HEADERS(utime.h)
-AS_CASE("$target_cpu", [x64|x86_64|i[3-6]86*], [
- AC_CHECK_HEADERS(x86intrin.h)
-])
AC_ARG_WITH([gmp],
[AS_HELP_STRING([--without-gmp],
@@ -1363,8 +1225,8 @@ AC_CACHE_CHECK(packed struct attribute, rb_cv_packed_struct,
"__pragma(pack(push, 1)) x __pragma(pack(pop))" \
"x __attribute__((packed))" \
; do
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@define PACKED_STRUCT(x) $mac
- PACKED_STRUCT(struct { int a; });]], [[]])],
+ AC_TRY_COMPILE([@%:@define PACKED_STRUCT(x) $mac
+ PACKED_STRUCT(struct { int a; });], [],
[rb_cv_packed_struct=$mac; break])
done])
AS_IF([test "$rb_cv_packed_struct" != no], [
@@ -1403,58 +1265,132 @@ RUBY_REPLACE_TYPE(clockid_t, [], CLOCKID, [@%:@ifdef HAVE_TIME_H
@%:@ include <sys/time.h>
@%:@endif])
-# __VA_ARGS__ is also tested in AC_PROG_CC_C99 since autoconf 2.60a (around
-# 2006). The check below is redundant and should always success. Remain not
-# deleted for backward compat.
+AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,
+ [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
+ rb_cv_have_prototypes=yes,
+ rb_cv_have_prototypes=no)])
+AS_IF([test "$rb_cv_have_prototypes" = yes], [
+ AC_DEFINE(HAVE_PROTOTYPES)
+])
+
+AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste,
+ [AC_TRY_COMPILE([@%:@define paste(a,b) a@%:@@%:@b],
+ [int xy = 1; return paste(x,y);],
+ rb_cv_tokenpaste=ansi,
+ rb_cv_tokenpaste=knr)])
+AS_IF([test "$rb_cv_tokenpaste" = ansi], [
+ AC_DEFINE(TOKEN_PASTE(x,y),[x@%:@@%:@y])
+], [
+ AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])
+])
+
+AC_CACHE_CHECK(stringization, rb_cv_stringization, [
+ rb_cv_stringization=no
+ for string in "#expr" '"expr"'; do
+ AC_COMPILE_IFELSE([
+ AC_LANG_BOOL_COMPILE_TRY([
+#define STRINGIZE0(expr) $string
+#define STRINGIZE(expr) STRINGIZE0(expr)
+#undef real_test_for_stringization
+#define test_for_stringization -.real_test_for_stringization.-
+const char stringized[[]] = STRINGIZE(test_for_stringization);
+], [sizeof(stringized) == 32])],
+ [rb_cv_stringization="$string"; break],
+ [rb_cv_stringization=no])
+ done]
+)
+AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))
+AS_IF([test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"], [
+ AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)
+ AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)
+])
+
+AC_CACHE_CHECK([string literal concatenation],
+ rb_cv_string_literal_concatenation, [
+ AC_COMPILE_IFELSE([
+ AC_LANG_BOOL_COMPILE_TRY([
+const char concatenated_literal[[]] = "literals" "to"
+ "be" "concatenated.";
+], [sizeof(concatenated_literal) == 26])],
+ [rb_cv_string_literal_concatenation=yes],
+ [rb_cv_string_literal_concatenation=no])]
+)
+AS_IF([test "$rb_cv_string_literal_concatenation" = no], [
+ AC_MSG_ERROR([No string literal concatenation])
+])
+
+AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,
+ [AC_TRY_COMPILE([
+#include <stdarg.h>
+int foo(int x, ...) {
+ va_list va;
+ va_start(va, x);
+ va_arg(va, int);
+ va_arg(va, char *);
+ va_arg(va, double);
+ return 0;
+}
+], [return foo(10, "", 3.14);],
+ rb_cv_stdarg=yes,
+ rb_cv_stdarg=no)])
+AS_IF([test "$rb_cv_stdarg" = yes], [
+ AC_DEFINE(HAVE_STDARG_PROTOTYPES)
+])
+
AC_CACHE_CHECK(for variable length macro, rb_cv_va_args_macro,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-int foo(const char*);
-@%:@define FOO(...) foo(@%:@__VA_ARGS__)
-]], [[FOO(1);FOO(1,2);FOO(1,2,3);]])],
+ [AC_TRY_COMPILE([
+int foo(int x, ...);
+@%:@define FOO(a, ...) foo(a, @%:@@%:@__VA_ARGS__)
+], [FOO(1);FOO(1,2);FOO(1,2,3);],
rb_cv_va_args_macro=yes,
rb_cv_va_args_macro=no)])
AS_IF([test "$rb_cv_va_args_macro" = yes], [
AC_DEFINE(HAVE_VA_ARGS_MACRO)
])
-# We want C11's `_Alignof`. GCC (and alike) have `__alignof__`, which behave
-# slightly differently than the C11's. We cannot use `__alignof__` for our
-# purpose. The problem is, however, that old gcc and old clang had both
-# implemented `_Alignof` as a synonym of `__alignof__`. They are not what we
-# want. We have to check sanity.
-#
-# See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023
-# See also: https://bugs.llvm.org/show_bug.cgi?id=26547
-AC_CACHE_CHECK([if _Alignof() works], rb_cv_have__alignof,[
- rb_cv_have__alignof=no
- RUBY_WERROR_FLAG([
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- @%:@ifdef HAVE_STDALIGN_H
- @%:@include <stdalign.h>
- @%:@endif
- @%:@ifdef STDC_HEADERS
- @%:@include <stddef.h>
- @%:@endif
- @%:@ifndef __GNUC__
- @%:@define __extension__
- @%:@endif
- ]], [[
- typedef struct conftest_tag {
- char _;
- double d;
- } T;
- static int conftest_ary@<:@
- offsetof(T, d) == __extension__ _Alignof(double)
- ? 1 : -1
- @:>@;
- return conftest_ary@<:@0@:>@;
- ]])],[
- rb_cv_have__alignof=yes
- ],[])
- ])
+AC_CACHE_CHECK([for alignas() syntax], rb_cv_have_alignas, [
+rb_cv_have_alignas=no
+RUBY_WERROR_FLAG([
+for attr in \
+ "_Alignas(x)" \
+ "alignas(x)" \
+ "@<:@@<:@alignas(x)@:>@@:>@" \
+ "__declspec(aligned(x))" \
+ "__attribute__((__aligned__(x)))" \
+;
+do
+ # C11 _Alignas and GCC __attribute__((__aligned__)) behave
+ # slightly differently. What we want is GCC's. Check that
+ # here by something C11 does not allow (`struct ALIGNAS ...`)
+ AC_TRY_COMPILE(
+ [@%:@define ALIGNAS(x) $attr
+ struct ALIGNAS(128) conftest_tag { int foo; } foo; ], [],
+ [rb_cv_have_alignas="$attr"; break], [])
+done
+])])
+AS_IF([test "$rb_cv_have_alignas" != no], [
+ AC_DEFINE_UNQUOTED([RUBY_ALIGNAS(x)], $rb_cv_have_alignas)
])
-AS_IF([test "$rb_cv_have__alignof" != no], [
- AC_DEFINE(HAVE__ALIGNOF)
+
+AC_CACHE_CHECK([for alignof() syntax], rb_cv_have_alignof,[
+rb_cv_have_alignof=no
+RUBY_WERROR_FLAG([
+for expr in \
+ "alignof" \
+ "_Alignof" \
+ "__alignof" \
+ "__alignof__" \
+;
+do
+ AC_TRY_COMPILE([
+ @%:@ifdef HAVE_STDALIGN_H
+ @%:@include <stdalign.h>
+ @%:@endif],[return (int)$expr(int);],
+ [rb_cv_have_alignof="$expr"; break], [])
+done
+])])
+AS_IF([test "$rb_cv_have_alignof" != no], [
+ AC_DEFINE_UNQUOTED(RUBY_ALIGNOF, $rb_cv_have_alignof)
])
RUBY_FUNC_ATTRIBUTE(__const__, CONSTFUNC)
@@ -1462,6 +1398,7 @@ RUBY_FUNC_ATTRIBUTE(__pure__, PUREFUNC)
RUBY_FUNC_ATTRIBUTE(__noreturn__, NORETURN)
RUBY_FUNC_ATTRIBUTE(__deprecated__, DEPRECATED)
RUBY_FUNC_ATTRIBUTE(__deprecated__("by "@%:@n), DEPRECATED_BY(n,x), rb_cv_func_deprecated_by)
+RUBY_TYPE_ATTRIBUTE(__deprecated__ mesg, DEPRECATED_TYPE(mesg,x), rb_cv_type_deprecated)
RUBY_FUNC_ATTRIBUTE(__noinline__, NOINLINE)
RUBY_FUNC_ATTRIBUTE(__always_inline__, ALWAYS_INLINE)
RUBY_FUNC_ATTRIBUTE(__no_sanitize__(san), NO_SANITIZE(san, x), rb_cv_func_no_sanitize)
@@ -1491,17 +1428,6 @@ AS_IF([test "$rb_cv_CentOS6_CXX_workaround" != no],[
AC_DEFINE([RUBY_CXX_DEPRECATED(msg)],
[__attribute__((__deprecated__(msg)))])])
-AC_CACHE_CHECK([for std::nullptr_t], rb_cv_CXX_nullptr, [
- AC_LANG_PUSH([C++])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [@%:@include <cstddef>],
- [static std::nullptr_t const *const conftest = nullptr;])],
- [rb_cv_CXX_nullptr=yes],
- [rb_cv_CXX_nullptr=no])
- AC_LANG_POP()])
-AS_IF([test "$rb_cv_CXX_nullptr" != no],[AC_DEFINE(HAVE_NULLPTR)])
-
if_i386=${universal_binary+[defined __i386__]}
RUBY_FUNC_ATTRIBUTE(__stdcall__, FUNC_STDCALL, rb_cv_func_stdcall, ${if_i386})
RUBY_FUNC_ATTRIBUTE(__cdecl__, FUNC_CDECL, rb_cv_func_cdecl, ${if_i386})
@@ -1513,8 +1439,8 @@ AS_IF([test "$GCC" = yes], [
AC_CACHE_CHECK([for function alias], [rb_cv_gcc_function_alias],
[rb_cv_gcc_function_alias=no
for a in alias weak,alias; do
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[void foo(void) {}
- void bar(void) __attribute__(($a("foo")));]], [[bar()]])],
+ AC_TRY_LINK([void foo(void) {}
+ void bar(void) __attribute__(($a("foo")));], [bar()],
[rb_cv_gcc_function_alias=$a; break])
done])
AS_IF([test "$rb_cv_gcc_function_alias" != no], [
@@ -1526,14 +1452,14 @@ AS_IF([test "$GCC" = yes], [
])
AC_CACHE_CHECK([for __atomic builtins], [rb_cv_gcc_atomic_builtins], [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned int atomic_var;]],
- [[
+ AC_TRY_LINK([unsigned char atomic_var;],
+ [
__atomic_exchange_n(&atomic_var, 0, __ATOMIC_SEQ_CST);
__atomic_exchange_n(&atomic_var, 1, __ATOMIC_SEQ_CST);
__atomic_fetch_add(&atomic_var, 1, __ATOMIC_SEQ_CST);
__atomic_fetch_sub(&atomic_var, 1, __ATOMIC_SEQ_CST);
__atomic_or_fetch(&atomic_var, 1, __ATOMIC_SEQ_CST);
- ]])],
+ ],
[rb_cv_gcc_atomic_builtins=yes],
[rb_cv_gcc_atomic_builtins=no])])
AS_IF([test "$rb_cv_gcc_atomic_builtins" = yes], [
@@ -1541,26 +1467,25 @@ AS_IF([test "$GCC" = yes], [
])
AC_CACHE_CHECK([for __sync builtins], [rb_cv_gcc_sync_builtins], [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned int atomic_var;]],
- [[
+ AC_TRY_LINK([unsigned char atomic_var;],
+ [
__sync_lock_test_and_set(&atomic_var, 0);
__sync_lock_test_and_set(&atomic_var, 1);
__sync_fetch_and_add(&atomic_var, 1);
__sync_fetch_and_sub(&atomic_var, 1);
__sync_or_and_fetch(&atomic_var, 1);
__sync_val_compare_and_swap(&atomic_var, 0, 1);
- ]])],
+ ],
[rb_cv_gcc_sync_builtins=yes],
[rb_cv_gcc_sync_builtins=no])])
AS_IF([test "$rb_cv_gcc_sync_builtins" = yes], [
AC_DEFINE(HAVE_GCC_SYNC_BUILTINS)
])
-])
AC_CACHE_CHECK(for __builtin_unreachable, rb_cv_func___builtin_unreachable,
[RUBY_WERROR_FLAG(
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[volatile int zero;]],
- [[if (zero) __builtin_unreachable();]])],
+ [AC_TRY_LINK([volatile int zero;],
+ [if (zero) __builtin_unreachable();],
[rb_cv_func___builtin_unreachable=yes],
[rb_cv_func___builtin_unreachable=no])
])
@@ -1568,13 +1493,14 @@ AS_IF([test "$GCC" = yes], [
AS_IF([test "$rb_cv_func___builtin_unreachable" = yes], [
AC_DEFINE_UNQUOTED(UNREACHABLE, [__builtin_unreachable()])
])
+])
AC_CACHE_CHECK(for exported function attribute, rb_cv_func_exported, [
rb_cv_func_exported=no
RUBY_WERROR_FLAG([
for mac in '__attribute__ ((__visibility__("default")))' '__declspec(dllexport)'; do
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@define RUBY_FUNC_EXPORTED $mac extern
- RUBY_FUNC_EXPORTED void conftest_attribute_check(void);]], [[]])],
+ AC_TRY_COMPILE([@%:@define RUBY_FUNC_EXPORTED $mac extern
+ RUBY_FUNC_EXPORTED void conftest_attribute_check(void);], [],
[rb_cv_func_exported="$mac"; break])
done
])])
@@ -1590,23 +1516,22 @@ RUBY_DECL_ATTRIBUTE([__nonnull__(n)], [RUBY_FUNC_NONNULL(n,x)], [rb_cv_func_nonn
RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_EXPORT)
AC_ARG_ENABLE(mathn,
- AS_HELP_STRING([--enable-mathn], [enable canonicalization for mathn]),
- [AC_MSG_ERROR([mathn support has been dropped])])
+ AS_HELP_STRING([--disable-mathn], [disable canonicalization for mathn]),
+ [mathn=$enableval], [mathn=yes])
+test "x$mathn" = xyes || mathn=
+AC_SUBST(MATHN, $mathn)
AC_CACHE_CHECK(for function name string predefined identifier,
rb_cv_function_name_string,
- [AS_CASE(["$target_os"],[openbsd*],[
- rb_cv_function_name_string=__func__
- ],[
- rb_cv_function_name_string=no
- RUBY_WERROR_FLAG([
- for func in __func__ __FUNCTION__; do
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <stdio.h>]],
- [[puts($func);]])],
- [rb_cv_function_name_string=$func
- break])
- done
- ])])]
+ [rb_cv_function_name_string=no
+ RUBY_WERROR_FLAG([
+ for func in __func__ __FUNCTION__; do
+ AC_TRY_LINK([@%:@include <stdio.h>],
+ [puts($func);],
+ [rb_cv_function_name_string=$func
+ break])
+ done
+ ])]
)
AS_IF([test "$rb_cv_function_name_string" != no], [
AC_DEFINE_UNQUOTED(RUBY_FUNCTION_NAME_STRING, [$rb_cv_function_name_string])
@@ -1668,9 +1593,9 @@ RUBY_CHECK_SIZEOF(size_t, [int long void*], [], [@%:@include <sys/types.h>])
RUBY_CHECK_SIZEOF(ptrdiff_t, size_t, [], [@%:@include <stddef.h>])
RUBY_CHECK_PRINTF_PREFIX(size_t, z)
RUBY_CHECK_PRINTF_PREFIX(ptrdiff_t, t)
-AC_CHECK_MEMBERS([struct stat.st_blksize])
-AC_CHECK_MEMBERS([struct stat.st_blocks])
-AC_CHECK_MEMBERS([struct stat.st_rdev])
+AC_STRUCT_ST_BLKSIZE
+AC_STRUCT_ST_BLOCKS
+AC_STRUCT_ST_RDEV
RUBY_CHECK_SIZEOF([struct stat.st_size], [off_t int long "long long"], [], [@%:@include <sys/stat.h>])
AS_IF([test "$ac_cv_member_struct_stat_st_blocks" = yes], [
RUBY_CHECK_SIZEOF([struct stat.st_blocks], [off_t int long "long long"], [], [@%:@include <sys/stat.h>])
@@ -1759,9 +1684,9 @@ AS_IF([test "x$rb_cv_type_int64_t" != xno], [
AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,
[rb_cv_stack_end_address=no
- AC_LINK_IFELSE([AC_LANG_PROGRAM(
- [[extern void *__libc_stack_end;]],
- [[if (!__libc_stack_end) return 1;]])],
+ AC_TRY_LINK(
+ [extern void *__libc_stack_end;],
+ [if (!__libc_stack_end) return 1;],
[rb_cv_stack_end_address="__libc_stack_end"])
])
AS_IF([test $rb_cv_stack_end_address != no], [
@@ -1770,6 +1695,7 @@ AS_IF([test $rb_cv_stack_end_address != no], [
dnl Checks for library functions.
AC_TYPE_GETGROUPS
+AC_TYPE_SIGNAL
AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],
[powerpc-darwin*], [
AC_LIBSOURCES(alloca.c)
@@ -1789,14 +1715,14 @@ AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],
AS_IF([test "x$ALLOCA" = "x"], [
AC_CACHE_CHECK([for dynamic size alloca], rb_cv_dynamic_alloca, [
for chk in ok __chkstk; do
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ AC_TRY_LINK([
@%:@ifdef HAVE_ALLOCA_H
@%:@include <alloca.h>
@%:@endif
void $chk() {}
int dynamic_alloca_test;
- int dynamic_alloca_result;]],
- [[dynamic_alloca_result = alloca(dynamic_alloca_test) != 0;]])],
+ int dynamic_alloca_result;],
+ [dynamic_alloca_result = alloca(dynamic_alloca_test) != 0;],
[rb_cv_dynamic_alloca=$chk; break])
done])
AS_IF([test "x$rb_cv_dynamic_alloca" = "x__chkstk"], [
@@ -1848,9 +1774,9 @@ AC_CHECK_HEADERS(sys/pstat.h)
AC_CACHE_CHECK(for signbit, rb_cv_have_signbit,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_LINK([
#include <math.h>
-]], [[int v = signbit(-0.0);]])],
+], [int v = signbit(-0.0);],
rb_cv_have_signbit=yes,
rb_cv_have_signbit=no)])
AS_IF([test "$rb_cv_have_signbit" = yes], [
@@ -1902,15 +1828,10 @@ AC_CHECK_FUNCS(getgidx)
AC_CHECK_FUNCS(getgrnam)
AC_CHECK_FUNCS(getgrnam_r)
AC_CHECK_FUNCS(getgroups)
-AC_CHECK_FUNCS(getlogin)
-AC_CHECK_FUNCS(getlogin_r)
AC_CHECK_FUNCS(getpgid)
AC_CHECK_FUNCS(getpgrp)
AC_CHECK_FUNCS(getpriority)
-AC_CHECK_FUNCS(getpwnam)
AC_CHECK_FUNCS(getpwnam_r)
-AC_CHECK_FUNCS(getpwuid)
-AC_CHECK_FUNCS(getpwuid_r)
AC_CHECK_FUNCS(getrandom)
AC_CHECK_FUNCS(getresgid)
AC_CHECK_FUNCS(getresuid)
@@ -1997,8 +1918,6 @@ AC_CHECK_FUNCS(utimensat)
AC_CHECK_FUNCS(utimes)
AC_CHECK_FUNCS(wait4)
AC_CHECK_FUNCS(waitpid)
-AC_CHECK_FUNCS(__cospi)
-AC_CHECK_FUNCS(__sinpi)
AS_IF([test "x$ac_cv_member_struct_statx_stx_btime" = xyes],
[AC_CHECK_FUNCS(statx)])
@@ -2008,7 +1927,7 @@ AS_CASE(["$ac_cv_func_memset_s:$ac_cv_func_qsort_s"], [*yes*],
AS_IF([test "$ac_cv_func_getcwd" = yes], [
AC_CACHE_CHECK(if getcwd allocates buffer if NULL is given, [rb_cv_getcwd_malloc],
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
@%:@include <stddef.h>
@%:@include <stdio.h>
@%:@ifdef HAVE_UNISTD_H
@@ -2027,7 +1946,7 @@ main(int argc, char **argv)
if (!getcwd(NULL, 0)) return EXIT_FAILURE;
return EXIT_SUCCESS;
}
-]])],
+],
rb_cv_getcwd_malloc=yes,
rb_cv_getcwd_malloc=no,
AS_CASE($target_os,
@@ -2075,21 +1994,21 @@ RUBY_CHECK_BUILTIN_FUNC(__builtin_trap, [__builtin_trap()])
AS_IF([test "$ac_cv_func_qsort_r" != no], [
AC_CACHE_CHECK(whether qsort_r is GNU version, rb_cv_gnu_qsort_r,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
@%:@include <stdlib.h>
void (qsort_r)(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *, void *),
void *arg);
-]], [[ ]])],
+],[ ],
[rb_cv_gnu_qsort_r=yes],
[rb_cv_gnu_qsort_r=no])
])
AC_CACHE_CHECK(whether qsort_r is BSD version, rb_cv_bsd_qsort_r,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
@%:@include <stdlib.h>
void (qsort_r)(void *base, size_t nmemb, size_t size,
void *arg, int (*compar)(void *, const void *, const void *));
-]], [[ ]])],
+],[ ],
[rb_cv_bsd_qsort_r=yes],
[rb_cv_bsd_qsort_r=no])
])
@@ -2104,7 +2023,7 @@ void (qsort_r)(void *base, size_t nmemb, size_t size,
AC_CACHE_CHECK(whether atan2 handles Inf as C99, rb_cv_atan2_inf_c99, [
AS_IF([test $ac_cv_func_atan2f:$ac_cv_func_atan2l = yes:yes], [
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ AC_TRY_RUN([
@%:@include <math.h>
@%:@ifdef HAVE_UNISTD_H
@%:@include <unistd.h>
@@ -2122,7 +2041,7 @@ main(int argc, char **argv)
if (fabs(atan2(INFINITY, INFINITY) - M_PI_4) <= 0.01) return EXIT_SUCCESS;
return EXIT_FAILURE;
}
-]])],
+],
[rb_cv_atan2_inf_c99=yes],
[rb_cv_atan2_inf_c99=no],
[AS_CASE($target_os, [mingw*|mswin*], [rb_cv_atan2_inf_c99=no], [rb_cv_atan2_inf_c99=yes])]
@@ -2151,9 +2070,9 @@ AS_IF([test x"$ac_cv_lib_rt_timer_settime" = xyes], [
])
AC_CACHE_CHECK(for unsetenv returns a value, rb_cv_unsetenv_return_value,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
#include <stdlib.h>
-]], [[int v = unsetenv("foo");]])],
+], [int v = unsetenv("foo");],
rb_cv_unsetenv_return_value=yes,
rb_cv_unsetenv_return_value=no)])
AS_IF([test "$rb_cv_unsetenv_return_value" = no], [
@@ -2171,21 +2090,21 @@ AS_IF([test "$use_setreuid" = yes], [
])
AC_STRUCT_TIMEZONE
AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
@%:@define _BSD_SOURCE
@%:@define _DEFAULT_SOURCE
@%:@include <time.h>
- ]],
- [[struct tm t; t.tm_gmtoff = 3600;]])],
+ ],
+ [struct tm t; t.tm_gmtoff = 3600;],
[rb_cv_member_struct_tm_tm_gmtoff=yes],
[rb_cv_member_struct_tm_tm_gmtoff=no])])
AS_IF([test "$rb_cv_member_struct_tm_tm_gmtoff" = yes], [
AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)
])
AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
- int i;]],
- [[i = daylight;]])],
+ [AC_TRY_LINK([#include <time.h>
+ int i;],
+ [i = daylight;],
rb_cv_have_daylight=yes,
rb_cv_have_daylight=no)])
AS_IF([test "$rb_cv_have_daylight" = yes], [
@@ -2193,7 +2112,7 @@ AS_IF([test "$rb_cv_have_daylight" = yes], [
])
AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <stdlib.h>
#include <time.h>
@@ -2223,7 +2142,7 @@ main()
check(gmtime(&t), 1, 12, 13, 20, 52);
return 0;
}
-]])],
+],
rb_cv_negative_time_t=yes,
rb_cv_negative_time_t=no,
rb_cv_negative_time_t=yes)])
@@ -2234,7 +2153,7 @@ AS_IF([test "$rb_cv_negative_time_t" = yes], [
# [ruby-dev:40910] overflow of time on FreeBSD
# http://www.freebsd.org/cgi/query-pr.cgi?pr=145341
AC_CACHE_CHECK(for localtime(3) overflow correctly, rb_cv_localtime_overflow,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <stdlib.h>
#include <time.h>
@@ -2266,7 +2185,7 @@ main()
check(t);
return 0;
}
-]])],
+],
rb_cv_localtime_overflow=yes,
rb_cv_localtime_overflow=no,
rb_cv_localtime_overflow=no)])
@@ -2279,7 +2198,7 @@ AS_IF([test "$ac_cv_func_sigprocmask" = yes && test "$ac_cv_func_sigaction" = ye
], [
AC_CHECK_FUNCS(sigsetmask)
AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <stdio.h>
#include <signal.h>
@@ -2297,7 +2216,7 @@ main()
kill(getpid(), SIGINT);
return 0;
}
-]])],
+],
rb_cv_bsd_signal=yes,
rb_cv_bsd_signal=no,
rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])
@@ -2340,45 +2259,6 @@ AS_IF([test "$rb_cv_rshift_sign" = yes], [
AC_DEFINE(RSHIFT(x,y), (((x)<0) ? ~((~(x))>>(int)(y)) : (x)>>(int)(y)))
])
-AS_IF([test "$ac_cv_func_copy_file_range" = no], [
- AC_CACHE_CHECK([for copy_file_range],
- rb_cv_use_copy_file_range,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/syscall.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#ifndef O_TMPFILE
- #define O_TMPFILE __O_TMPFILE
-#endif
-
-int
-main()
-{
-#ifdef __NR_copy_file_range
- int ret, fd_in, fd_out;
- fd_in = open("/tmp", O_TMPFILE|O_RDWR, S_IRUSR);
- fd_out = open("/tmp", O_TMPFILE|O_WRONLY, S_IWUSR);
- ret = syscall(__NR_copy_file_range, fd_in, NULL, fd_out, NULL, 0, 0);
- close(fd_in);
- close(fd_out);
- if (ret == -1) { return 1; }
- return 0;
-#else
- return 1;
-#endif
-}
- ]])],
- [rb_cv_use_copy_file_range=yes],
- [rb_cv_use_copy_file_range=no],
- [rb_cv_use_copy_file_range=no])])
-])
-AS_CASE(["$ac_cv_func_copy_file_range:$rb_cv_use_copy_file_range"], [*yes*], [
- AC_DEFINE(USE_COPY_FILE_RANGE)
-])
-
AS_CASE(["$ac_cv_func_gettimeofday:$ac_cv_func_clock_gettime"],
[*yes*], [],
[
@@ -2425,19 +2305,15 @@ AC_ARG_WITH(coroutine,
[rb_cv_coroutine=$withval])
AS_CASE([$rb_cv_coroutine], [yes|''], [
AC_MSG_CHECKING(native coroutine implementation for ${target_cpu}-${target_os})
- rb_cv_coroutine=
AS_CASE(["$target_cpu-$target_os"],
[x*64-darwin*], [
rb_cv_coroutine=amd64
],
- [arm64-darwin*], [
- rb_cv_coroutine=arm64
- ],
[x*64-linux*], [
AS_CASE(["$ac_cv_sizeof_voidp"],
[8], [ rb_cv_coroutine=amd64 ],
[4], [ rb_cv_coroutine=x86 ],
- dnl unknown pointer size, bail out as no Context.h soon.
+ [*], [ rb_cv_coroutine= ]
)
],
[*86-linux*], [
@@ -2449,8 +2325,8 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
[*86-mingw32], [
rb_cv_coroutine=win32
],
- [arm*-linux*], [
- rb_cv_coroutine=arm32
+ [armv7*-linux*], [
+ rb_cv_coroutine=ucontext
],
[aarch64-linux*], [
rb_cv_coroutine=arm64
@@ -2467,25 +2343,20 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
[*-openbsd*], [
rb_cv_coroutine=copy
],
- [*-haiku*], [
- rb_cv_coroutine=copy
- ],
- [
+ [*], [
rb_cv_coroutine=ucontext
]
)
AC_MSG_RESULT(${rb_cv_coroutine})
])
COROUTINE_H=coroutine/$rb_cv_coroutine/Context.h
-AS_IF([test ! -f "$srcdir/$COROUTINE_H"],
- [AC_MSG_ERROR('$rb_cv_coroutine' is not supported as coroutine)])
AS_CASE([$rb_cv_coroutine],
[copy|ucontext], [
COROUTINE_SRC=coroutine/$rb_cv_coroutine/Context.c
],
- [
+ [*], [
COROUTINE_SRC=coroutine/$rb_cv_coroutine/Context.'$(ASMEXT)'
- ]
+ ],
)
AC_DEFINE_UNQUOTED(COROUTINE_H, ["$COROUTINE_H"])
AC_SUBST(X_COROUTINE_H, [$COROUTINE_H])
@@ -2511,13 +2382,13 @@ AS_IF([test x"$enable_pthread" = xyes], [
AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")
])
AC_CACHE_CHECK([whether pthread_t is scalar type], [rb_cv_scalar_pthread_t], [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ AC_TRY_COMPILE([
@%:@include <pthread.h>
- ]], [[
+ ], [
pthread_t thread_id;
thread_id = 0;
if (!thread_id) return 0;
- ]])],[rb_cv_scalar_pthread_t=yes],[rb_cv_scalar_pthread_t=no])
+ ], [rb_cv_scalar_pthread_t=yes], [rb_cv_scalar_pthread_t=no])
])
AS_IF([test x"$rb_cv_scalar_pthread_t" = xyes], [
: # RUBY_CHECK_SIZEOF(pthread_t, [void* int long], [], [@%:@include <pthread.h>])
@@ -2536,21 +2407,21 @@ AS_IF([test x"$enable_pthread" = xyes], [
AC_CACHE_CHECK([arguments of pthread_setname_np], [rb_cv_func_pthread_setname_np_arguments],
[rb_cv_func_pthread_setname_np_arguments=
# Linux,AIX, (pthread_self(), name)
- # NetBSD (pthread_self(), \"%s\", name)
+ # NetBSD (pthread_self(), name, \"%s\")
# Darwin (name)
for mac in \
"(pthread_self(), name)" \
- "(pthread_self(), \"%s\", name)" \
+ "(pthread_self(), name, \"%s\")" \
"(name)" \
; do
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ AC_TRY_COMPILE([
@%:@include <pthread.h>
@%:@ifdef HAVE_PTHREAD_NP_H
@%:@include <pthread_np.h>
@%:@endif
@%:@define SET_THREAD_NAME(name) pthread_setname_np${mac}
- ]],
- [[if (SET_THREAD_NAME("conftest")) return 1;]])],
+ ],
+ [if (SET_THREAD_NAME("conftest")) return 1;],
[rb_cv_func_pthread_setname_np_arguments="${mac}"
break])
done
@@ -2574,8 +2445,8 @@ AS_IF([test x"$enable_pthread" = xyes], [
AS_IF([test x"$ac_cv_header_ucontext_h" = xno], [
AC_CACHE_CHECK([if signal.h defines ucontext_t], [rb_cv_ucontext_in_signal_h],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <signal.h>]],
- [[size_t size = sizeof(ucontext_t);]])],
+ [AC_TRY_COMPILE([@%:@include <signal.h>],
+ [size_t size = sizeof(ucontext_t);],
[rb_cv_ucontext_in_signal_h=yes], [rb_cv_ucontext_in_signal_h=no])])
AS_IF([test x"$rb_cv_ucontext_in_signal_h" = xyes], [
AC_DEFINE_UNQUOTED(UCONTEXT_IN_SIGNAL_H, 1)
@@ -2583,14 +2454,14 @@ AS_IF([test x"$ac_cv_header_ucontext_h" = xno], [
])
AS_IF([test x"$ac_cv_header_ucontext_h" = xyes -o x"$rb_cv_ucontext_in_signal_h" = xyes], [
AC_CACHE_CHECK([if mcontext_t is a pointer], [rb_cv_mcontext_t_ptr],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
@%:@include <signal.h>
@%:@ifdef HAVE_UCONTEXT_H
@%:@include <ucontext.h>
@%:@endif
mcontext_t test(mcontext_t mc) {return mc+1;}
- ]],
- [[test(0);]])],
+ ],
+ [test(0);],
[rb_cv_mcontext_t_ptr=yes], [rb_cv_mcontext_t_ptr=no])])
AS_IF([test x"$rb_cv_mcontext_t_ptr" = xyes], [
AC_DEFINE_UNQUOTED(DEFINE_MCONTEXT_PTR(mc, uc), mcontext_t mc = (uc)->uc_mcontext)
@@ -2604,7 +2475,7 @@ AS_IF([test x"$ac_cv_header_ucontext_h" = xyes -o x"$rb_cv_ucontext_in_signal_h"
AS_IF([test "$ac_cv_func_fork_works" = "yes" -a "$rb_with_pthread" = "yes"], [
AC_CACHE_CHECK([if fork works with pthread], rb_cv_fork_with_pthread,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
@@ -2660,7 +2531,7 @@ main(int argc, char *argv[])
}
return EXIT_SUCCESS;
-}]])],
+}],
rb_cv_fork_with_pthread=yes,
rb_cv_fork_with_pthread=no,
rb_cv_fork_with_pthread=yes)])
@@ -2683,7 +2554,7 @@ AC_ARG_WITH(dln-a-out,
with_dln_a_out=no])], [with_dln_a_out=no])
AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[
+[AC_TRY_LINK([],[], [
AS_CASE(["`head -1 conftest$EXEEXT | tr -dc '\177ELF' | tr '\177' .`"],
[.ELF*], [rb_cv_binary_elf=yes], [rb_cv_binary_elf=no])],
rb_cv_binary_elf=no)])
@@ -2696,7 +2567,9 @@ AS_IF([test "$rb_cv_binary_elf" = yes], [
AC_CHECK_HEADERS([elf.h elf_abi.h])
AS_IF([test $ac_cv_header_elf_h = yes -o $ac_cv_header_elf_abi_h = yes], [
AC_LIBOBJ([addr2line])
- AC_CHECK_LIB([z], [uncompress])
+ AS_IF([test "x$compress_debug_sections" = xzlib], [
+ AC_CHECK_LIB([z], [uncompress])
+ ])
])
])
@@ -2714,10 +2587,6 @@ AS_CASE(["$target_os"],
])])
LIBEXT=a
-AC_ARG_WITH(mjit-tabs,
- AS_HELP_STRING([--without-mjit-tabs], [expand tabs in mjit header]),
- [AS_IF([test $withval = no], [MJIT_TABS=false])])
-AC_SUBST(MJIT_TABS)dnl
AC_SUBST(DLDFLAGS)dnl
AC_SUBST(ARCH_FLAG)dnl
AC_SUBST(MJIT_HEADER_FLAGS)dnl
@@ -2960,7 +2829,7 @@ AC_CHECK_FUNCS(backtrace)
AS_IF([test "x$ac_cv_func_backtrace" = xyes], [
AC_CACHE_CHECK(for broken backtrace, rb_cv_broken_backtrace,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [AC_TRY_RUN([
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
@@ -2969,7 +2838,6 @@ AS_IF([test "x$ac_cv_func_backtrace" = xyes], [
#include <signal.h>
#include <execinfo.h>
-]`grep '^@%:@ *define *RUBY_SIGALTSTACK_SIZE' ${srcdir}/signal.c`[
#define TRACE_SIZE 256
void sigsegv(int signum, siginfo_t *info, void *ctx){
@@ -2989,12 +2857,12 @@ main(void)
stack_t ss;
struct sigaction sa;
- ss.ss_sp = malloc(RUBY_SIGALTSTACK_SIZE);
+ ss.ss_sp = malloc(SIGSTKSZ);
if (ss.ss_sp == NULL) {
fprintf(stderr, "cannot allocate memory for sigaltstack\n");
return EXIT_FAILURE;
}
- ss.ss_size = RUBY_SIGALTSTACK_SIZE;
+ ss.ss_size = SIGSTKSZ;
ss.ss_flags = 0;
if (sigaltstack(&ss, NULL) == -1) {
fprintf(stderr, "sigaltstack failed\n");
@@ -3009,7 +2877,7 @@ main(void)
a[0] = 1;
return EXIT_SUCCESS;
}
-]])],
+],
rb_cv_broken_backtrace=no,
rb_cv_broken_backtrace=yes,
rb_cv_broken_backtrace=no)])
@@ -3029,10 +2897,11 @@ AS_IF([test "$ac_cv_header_a_out_h" = yes], [
AS_IF([test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown], [
cat confdefs.h > config.h
AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ [AC_TRY_COMPILE([
#define USE_DLN_A_OUT
#include "dln.c"
-]], [[]])],
+],
+ [],
rb_cv_dln_a_out=yes,
rb_cv_dln_a_out=no)])
AS_IF([test "$rb_cv_dln_a_out" = yes], [
@@ -3088,27 +2957,20 @@ AC_SUBST(DLEXT)
AS_IF([test "$with_dln_a_out" = yes], [
STRIP=true
], [
- AC_MSG_CHECKING([for $STRIP flags])
- AC_LINK_IFELSE([AC_LANG_PROGRAM], [AS_IF(
- ["${STRIP}" -A -n conftest$ac_exeext 2>/dev/null], [
- AC_MSG_RESULT([-A -n])
- STRIP="${STRIP} -A -n"
- ],
- ["${STRIP}" -S -x conftest$ac_exeext 2>/dev/null], [
- AC_MSG_RESULT([-S -x])
- STRIP="${STRIP} -S -x"
- ], [
- AC_MSG_RESULT([none needed])
- ])
- ])
+ AC_CHECK_TOOL(STRIP, strip, :)dnl
])
+AS_CASE(["$target_os"],
+ [linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu], [
+ STRIP="$STRIP -S -x"],
+ [darwin*], [
+ STRIP="$STRIP -A -n"])
AC_ARG_WITH(ext,
- AS_HELP_STRING([--with-ext=EXTS],
+ AC_HELP_STRING([--with-ext=EXTS],
[pass to --with-ext option of extmk.rb]))
AC_ARG_WITH(out-ext,
- AS_HELP_STRING([--with-out-ext=EXTS],
+ AC_HELP_STRING([--with-out-ext=EXTS],
[pass to --without-ext option of extmk.rb]))
EXTSTATIC=
AC_SUBST(EXTSTATIC)dnl
@@ -3196,7 +3058,7 @@ AS_IF([test x"$cross_compiling" = xyes], [
MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib -I.'
MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common'
PREP='miniruby$(EXEEXT)'
- RUNRUBY_COMMAND='$(MINIRUBY) $(tooldir)/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'
+ RUNRUBY_COMMAND='$(MINIRUBY) $(srcdir)/tool/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'
RUNRUBY='$(RUNRUBY_COMMAND) --'
XRUBY='$(RUNRUBY)'
AS_CASE(["$HAVE_BASERUBY:$build_os"], [no:*|*:mingw*], [BOOTSTRAPRUBY='$(MINIRUBY)'])
@@ -3451,9 +3313,6 @@ AS_CASE(["${enable_dtrace}"],
], [
rb_cv_dtrace_available=no
])
-AS_CASE(["$target_os"],[freebsd*],[
- rb_cv_dtrace_available=no
- ])
AS_IF([test "${enable_dtrace}" = yes], [dnl
AS_IF([test -z "$DTRACE"], [dnl
AC_MSG_ERROR([dtrace(1) is missing])
@@ -3570,7 +3429,7 @@ AS_IF([test "$rb_with_pthread" = "yes"], [
THREAD_MODEL=pthread
])
AC_CACHE_CHECK([for prefix of external symbols], rb_cv_symbol_prefix, [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[extern void conftest_external(void) {}]], [[]])],[
+ AC_TRY_COMPILE([extern void conftest_external(void) {}], [], [
rb_cv_symbol_prefix=`$NM conftest.$ac_objext |
sed -n ['/.*T[ ]\([^ ]*\)conftest_external.*/!d;s//\1/p;q']`
],
@@ -3581,7 +3440,7 @@ SYMBOL_PREFIX="$rb_cv_symbol_prefix"
test "x$SYMBOL_PREFIX" = xNONE && SYMBOL_PREFIX=''
DLNOBJ=dln.o
AC_ARG_ENABLE(dln,
- AS_HELP_STRING([--disable-dln], [disable dynamic link feature]),
+ AC_HELP_STRING([--disable-dln], [disable dynamic link feature]),
[test "$enableval" = yes || DLNOBJ=dmydln.o])
AC_SUBST(DLNOBJ)
MINIDLNOBJ=dmydln.o
@@ -3713,12 +3572,13 @@ AS_IF([test "${universal_binary-no}" = yes ], [
AC_CACHE_CHECK([for architecture macros], rb_cv_architecture_macros, [
mv confdefs.h confdefs1.h
: > confdefs.h
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@if defined __`echo ${universal_archnames} |
+ AC_TRY_COMPILE([@%:@if defined __`echo ${universal_archnames} |
sed 's/=[^ ]*//g;s/ /__ || defined __/g'`__
@%:@else
@%:@error
>>>>>><<<<<<
-@%:@endif]], [[]])],[
+@%:@endif], [],
+[
rb_cv_architecture_macros=yes
mv -f confdefs1.h confdefs.h
], [
@@ -3731,17 +3591,16 @@ AS_IF([test "${universal_binary-no}" = yes ], [
CFLAGS="$new_cflags -arch $archs"
archs="__${archs}__"
AC_MSG_CHECKING([for macro ${archs} on ${cpu}])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@ifndef ${archs}
+ AC_TRY_COMPILE([@%:@ifndef ${archs}
@%:@error
-@%:@endif]], [[]])],
- [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
+@%:@endif], [], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
done
mv -f confdefs1.h confdefs.h
AC_MSG_ERROR([failed])
])])
AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <stdio.h>
- const char arch[[]] = __ARCHITECTURE__;]], [[puts(arch);]])],
+ AC_TRY_COMPILE([@%:@include <stdio.h>
+ const char arch[[]] = __ARCHITECTURE__;], [puts(arch);],
[rb_cv_architecture_available=yes], [rb_cv_architecture_available=no]))
])
@@ -4058,7 +3917,7 @@ guard=INCLUDE_RUBY_CONFIG_H
} | tr -d '\015' |
(
AS_IF([test "x$CONFIGURE_TTY" = xyes], [color=--color], [color=])
- exec ${tooldir}/ifchange $color "${config_h}" -
+ exec ${srcdir}/tool/ifchange $color "${config_h}" -
) >&AS_MESSAGE_FD || AC_MSG_ERROR([failed to create ${config_h}])
tr -d '\015' < largefile.h > confdefs.h
rm largefile.h
@@ -4111,7 +3970,7 @@ AC_CONFIG_FILES(Makefile:template/Makefile.in, [
VCS='echo cannot'
])
AS_CASE("$VCS",
- ['$(GIT)'|git], [VCSUP='$(VCS) pull --rebase $(GITPULLOPTIONS)'],
+ ['$(GIT)'|git], [VCSUP='$(VCS) pull $(GITPULLOPTIONS)'],
[VCSUP='$(VCS)'])
sed -n \
-e '[/^@%:@define \(RUBY_RELEASE_[A-Z]*\) \([0-9][0-9]*\)/]{' \
@@ -4141,10 +4000,10 @@ AC_CONFIG_FILES(Makefile:template/Makefile.in, [
echo 'ruby: $(PROGRAM);' >> $tmpmk
test "$tmpmk" = "$tmpgmk" || rm -f "$tmpgmk"
]) && mv -f $tmpmk Makefile],
-[EXEEXT='$EXEEXT' MAKE='${MAKE-make}' gnumake='$gnumake' GIT='$GIT'])
+[EXEEXT='$EXEEXT' gnumake='$gnumake' GIT='$GIT'])
AC_ARG_WITH([ruby-pc],
- AS_HELP_STRING([--with-ruby-pc=FILENAME], [pc file basename]),
+ AC_HELP_STRING([--with-ruby-pc=FILENAME], [pc file basename]),
[ruby_pc="$withval"],
[ruby_pc="${RUBY_BASE_NAME}-${MAJOR}.${MINOR}.pc"])
AC_SUBST(ruby_pc)
diff --git a/constant.h b/constant.h
index e0d36909e1..3f1418df17 100644
--- a/constant.h
+++ b/constant.h
@@ -1,5 +1,3 @@
-#ifndef CONSTANT_H
-#define CONSTANT_H
/**********************************************************************
constant.h -
@@ -10,8 +8,8 @@
Copyright (C) 2009 Yusuke Endoh
**********************************************************************/
-#include "ruby/ruby.h"
-#include "id_table.h"
+#ifndef CONSTANT_H
+#define CONSTANT_H
typedef enum {
CONST_DEPRECATED = 0x100,
@@ -41,15 +39,12 @@ VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
void rb_free_const_table(struct rb_id_table *tbl);
-VALUE rb_const_source_location(VALUE, ID);
-
-MJIT_SYMBOL_EXPORT_BEGIN
-int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
-rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
VALUE rb_public_const_get_at(VALUE klass, ID id);
VALUE rb_public_const_get_from(VALUE klass, ID id);
int rb_public_const_defined_from(VALUE klass, ID id);
+rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
+int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
+VALUE rb_const_source_location(VALUE, ID);
VALUE rb_const_source_location_at(VALUE, ID);
-MJIT_SYMBOL_EXPORT_END
#endif /* CONSTANT_H */
diff --git a/cont.c b/cont.c
index a8250c3273..793bce018b 100644
--- a/cont.c
+++ b/cont.c
@@ -9,27 +9,19 @@
**********************************************************************/
-#include "ruby/internal/config.h"
+#include "internal.h"
+#include "vm_core.h"
+#include "gc.h"
+#include "eval_intern.h"
+#include "mjit.h"
+
+#include COROUTINE_H
#ifndef _WIN32
#include <unistd.h>
#include <sys/mman.h>
#endif
-#include COROUTINE_H
-
-#include "eval_intern.h"
-#include "gc.h"
-#include "internal.h"
-#include "internal/cont.h"
-#include "internal/proc.h"
-#include "internal/warnings.h"
-#include "internal/scheduler.h"
-#include "mjit.h"
-#include "vm_core.h"
-#include "id_table.h"
-#include "ractor_core.h"
-
static const int DEBUG = 0;
#define RB_PAGE_SIZE (pagesize)
@@ -235,12 +227,12 @@ struct rb_fiber_struct {
rb_context_t cont;
VALUE first_proc;
struct rb_fiber_struct *prev;
- VALUE resuming_fiber;
-
BITFIELD(enum fiber_status, status, 2);
- /* Whether the fiber is allowed to implicitly yield. */
- unsigned int yielding : 1;
- unsigned int blocking : 1;
+ /* If a fiber invokes by "transfer",
+ * then this fiber can't be invoked by "resume" any more after that.
+ * You shouldn't mix "transfer" and "resume".
+ */
+ unsigned int transferred : 1;
struct coroutine_context context;
struct fiber_pool_stack stack;
@@ -248,8 +240,6 @@ struct rb_fiber_struct {
static struct fiber_pool shared_fiber_pool = {NULL, NULL, 0, 0, 0, 0};
-static ID fiber_initialize_keywords[2] = {0};
-
/*
* FreeBSD require a first (i.e. addr) argument of mmap(2) is not NULL
* if MAP_STACK is passed.
@@ -334,7 +324,6 @@ fiber_pool_vacancy_push(struct fiber_pool_vacancy * vacancy, struct fiber_pool_v
#ifdef FIBER_POOL_ALLOCATION_FREE
if (head) {
head->previous = vacancy;
- vacancy->previous = NULL;
}
#endif
@@ -806,15 +795,14 @@ static inline void
ec_switch(rb_thread_t *th, rb_fiber_t *fiber)
{
rb_execution_context_t *ec = &fiber->cont.saved_ec;
- rb_ractor_set_current_ec(th->ractor, th->ec = ec);
- // ruby_current_execution_context_ptr = th->ec = ec;
+
+ ruby_current_execution_context_ptr = th->ec = ec;
/*
* timer-thread may set trap interrupt on previous th->ec at any time;
* ensure we do not delay (or lose) the trap interrupt handling.
*/
- if (th->vm->ractor.main_thread == th &&
- rb_signal_buff_size() > 0) {
+ if (th->vm->main_thread == th && rb_signal_buff_size() > 0) {
RUBY_VM_SET_TRAP_INTERRUPT(ec);
}
@@ -848,12 +836,6 @@ NOINLINE(static VALUE cont_capture(volatile int *volatile stat));
if (!(th)->ec->tag) rb_raise(rb_eThreadError, "not running thread"); \
} while (0)
-rb_thread_t*
-rb_fiber_threadptr(const rb_fiber_t *fiber)
-{
- return fiber->cont.saved_ec.thread_ptr;
-}
-
static VALUE
cont_thread_value(const rb_context_t *cont)
{
@@ -916,13 +898,11 @@ cont_mark(void *ptr)
RUBY_MARK_LEAVE("cont");
}
-#if 0
static int
fiber_is_root_p(const rb_fiber_t *fiber)
{
return fiber == fiber->cont.saved_ec.thread_ptr->root_fiber;
}
-#endif
static void
cont_free(void *ptr)
@@ -939,13 +919,14 @@ cont_free(void *ptr)
else {
rb_fiber_t *fiber = (rb_fiber_t*)cont;
coroutine_destroy(&fiber->context);
- fiber_stack_release(fiber);
+ if (!fiber_is_root_p(fiber)) {
+ fiber_stack_release(fiber);
+ }
}
RUBY_FREE_UNLESS_NULL(cont->saved_vm_stack.ptr);
- if (mjit_enabled) {
- VM_ASSERT(cont->mjit_cont != NULL);
+ if (mjit_enabled && cont->mjit_cont != NULL) {
mjit_cont_free(cont->mjit_cont);
}
/* free rb_cont_t or rb_fiber_t */
@@ -1031,7 +1012,7 @@ fiber_free(void *ptr)
//if (DEBUG) fprintf(stderr, "fiber_free: %p[%p]\n", fiber, fiber->stack.base);
if (fiber->cont.saved_ec.local_storage) {
- rb_id_table_free(fiber->cont.saved_ec.local_storage);
+ st_free_table(fiber->cont.saved_ec.local_storage);
}
cont_free(&fiber->cont);
@@ -1050,7 +1031,7 @@ fiber_memsize(const void *ptr)
* vm.c::thread_memsize already counts th->ec->local_storage
*/
if (saved_ec->local_storage && fiber != th->root_fiber) {
- size += rb_id_table_memsize(saved_ec->local_storage);
+ size += st_memsize(saved_ec->local_storage);
}
size += cont_memsize(&fiber->cont);
return size;
@@ -1116,15 +1097,6 @@ cont_save_thread(rb_context_t *cont, rb_thread_t *th)
}
static void
-cont_init_mjit_cont(rb_context_t *cont)
-{
- VM_ASSERT(cont->mjit_cont == NULL);
- if (mjit_enabled) {
- cont->mjit_cont = mjit_cont_new(&(cont->saved_ec));
- }
-}
-
-static void
cont_init(rb_context_t *cont, rb_thread_t *th)
{
/* save thread context */
@@ -1133,7 +1105,9 @@ cont_init(rb_context_t *cont, rb_thread_t *th)
cont->saved_ec.local_storage = NULL;
cont->saved_ec.local_storage_recursive_hash = Qnil;
cont->saved_ec.local_storage_recursive_hash_for_trace = Qnil;
- cont_init_mjit_cont(cont);
+ if (mjit_enabled) {
+ cont->mjit_cont = mjit_cont_new(&cont->saved_ec);
+ }
}
static rb_context_t *
@@ -1150,18 +1124,6 @@ cont_new(VALUE klass)
return cont;
}
-VALUE rb_fiberptr_self(struct rb_fiber_struct *fiber)
-{
- return fiber->cont.self;
-}
-
-// This is used for root_fiber because other fibers call cont_init_mjit_cont through cont_new.
-void
-rb_fiber_init_mjit_cont(struct rb_fiber_struct *fiber)
-{
- cont_init_mjit_cont(&fiber->cont);
-}
-
#if 0
void
show_vm_stack(const rb_execution_context_t *ec)
@@ -1626,8 +1588,6 @@ rollback_ensure_stack(VALUE self,rb_ensure_list_t *current,rb_ensure_entry_t *ta
}
}
-NORETURN(static VALUE rb_cont_call(int argc, VALUE *argv, VALUE contval));
-
/*
* call-seq:
* cont.call(args, ...)
@@ -1666,7 +1626,7 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)
cont->value = make_passing_arg(argc, argv);
cont_restore_0(cont, &contval);
- UNREACHABLE_RETURN(Qnil);
+ return Qnil; /* unreachable */
}
/*********/
@@ -1734,28 +1694,6 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)
* 1000000
* FiberError: dead fiber called
*
- * == Non-blocking Fibers
- *
- * Since Ruby 3.0, the concept of <em>non-blocking fiber</em> was introduced.
- * Non-blocking fiber, when reaching any potentially blocking operation (like
- * sleep, wait for another process, wait for I/O data to be ready), instead
- * of just freezing itself and all execution in the thread, yields control
- * to other fibers, and allows the <em>scheduler</em> to handle waiting and waking
- * (resuming) the fiber when it can proceed.
- *
- * For Fiber to behave as non-blocking, it should be created in Fiber.new with
- * <tt>blocking: false</tt> (which is the default now), and Fiber.scheduler
- * should be set with Fiber.set_scheduler. If Fiber.scheduler is not set in
- * the current thread, blocking and non-blocking fiber's behavior is identical.
- *
- * Ruby doesn't provide a scheduler class: it is expected to be implemented by
- * the user and correspond to Fiber::SchedulerInterface.
- *
- * There is also Fiber.schedule method, which is expected to immediately perform
- * passed block in a non-blocking manner (but its actual implementation is up to
- * the scheduler).
- *
- *
*/
static const rb_data_type_t fiber_data_type = {
@@ -1771,7 +1709,7 @@ fiber_alloc(VALUE klass)
}
static rb_fiber_t*
-fiber_t_alloc(VALUE fiber_value, unsigned int blocking)
+fiber_t_alloc(VALUE fiber_value)
{
rb_fiber_t *fiber;
rb_thread_t *th = GET_THREAD();
@@ -1784,7 +1722,6 @@ fiber_t_alloc(VALUE fiber_value, unsigned int blocking)
fiber = ZALLOC(rb_fiber_t);
fiber->cont.self = fiber_value;
fiber->cont.type = FIBER_CONTEXT;
- fiber->blocking = blocking;
cont_init(&fiber->cont, th);
fiber->cont.saved_ec.fiber_ptr = fiber;
@@ -1802,9 +1739,9 @@ fiber_t_alloc(VALUE fiber_value, unsigned int blocking)
}
static VALUE
-fiber_initialize(VALUE self, VALUE proc, struct fiber_pool * fiber_pool, unsigned int blocking)
+fiber_initialize(VALUE self, VALUE proc, struct fiber_pool * fiber_pool)
{
- rb_fiber_t *fiber = fiber_t_alloc(self, blocking);
+ rb_fiber_t *fiber = fiber_t_alloc(self);
fiber->first_proc = proc;
fiber->stack.base = NULL;
@@ -1832,179 +1769,23 @@ fiber_prepare_stack(rb_fiber_t *fiber)
sec->local_storage_recursive_hash_for_trace = Qnil;
}
-static struct fiber_pool *
-rb_fiber_pool_default(VALUE pool)
-{
- return &shared_fiber_pool;
-}
-
/* :nodoc: */
static VALUE
-rb_fiber_initialize_kw(int argc, VALUE* argv, VALUE self, int kw_splat)
-{
- VALUE pool = Qnil;
- VALUE blocking = Qfalse;
-
- if (kw_splat != RB_NO_KEYWORDS) {
- VALUE options = Qnil;
- VALUE arguments[2] = {Qundef};
-
- argc = rb_scan_args_kw(kw_splat, argc, argv, ":", &options);
- rb_get_kwargs(options, fiber_initialize_keywords, 0, 2, arguments);
-
- if (arguments[0] != Qundef) {
- blocking = arguments[0];
- }
-
- if (arguments[1] != Qundef) {
- pool = arguments[1];
- }
- }
-
- return fiber_initialize(self, rb_block_proc(), rb_fiber_pool_default(pool), RTEST(blocking));
-}
-
-/*
- * call-seq:
- * Fiber.new(blocking: false) { |*args| ... } -> fiber
- *
- * Creates new Fiber. Initially, fiber is not running, but can be resumed with
- * #resume. Arguments to the first #resume call would be passed to the block:
- *
- * f = Fiber.new do |initial|
- * current = initial
- * loop do
- * puts "current: #{current.inspect}"
- * current = Fiber.yield
- * end
- * end
- * f.resume(100) # prints: current: 100
- * f.resume(1, 2, 3) # prints: current: [1, 2, 3]
- * f.resume # prints: current: nil
- * # ... and so on ...
- *
- * if <tt>blocking: false</tt> is passed to the <tt>Fiber.new</tt>, _and_ current thread
- * has Fiber.scheduler defined, the Fiber becomes non-blocking (see "Non-blocking
- * fibers" section in class docs).
- */
-static VALUE
rb_fiber_initialize(int argc, VALUE* argv, VALUE self)
{
- return rb_fiber_initialize_kw(argc, argv, self, rb_keyword_given_p());
+ return fiber_initialize(self, rb_block_proc(), &shared_fiber_pool);
}
VALUE
rb_fiber_new(rb_block_call_func_t func, VALUE obj)
{
- return fiber_initialize(fiber_alloc(rb_cFiber), rb_proc_new(func, obj), rb_fiber_pool_default(Qnil), 1);
-}
-
-static VALUE
-rb_f_fiber_kw(int argc, VALUE* argv, int kw_splat)
-{
- rb_thread_t * th = GET_THREAD();
- VALUE scheduler = th->scheduler;
- VALUE fiber = Qnil;
-
- if (scheduler != Qnil) {
- fiber = rb_funcall_passing_block_kw(scheduler, rb_intern("fiber"), argc, argv, kw_splat);
- } else {
- rb_raise(rb_eRuntimeError, "No scheduler is available!");
- }
-
- return fiber;
-}
-
-/*
- * call-seq:
- * Fiber.schedule { |*args| ... } -> fiber
- *
- * The method is <em>expected</em> to immediately run the provided block of code in a
- * separate non-blocking fiber.
- *
- * puts "Go to sleep!"
- *
- * Fiber.set_scheduler(MyScheduler.new)
- *
- * Fiber.schedule do
- * puts "Going to sleep"
- * sleep(1)
- * puts "I slept well"
- * end
- *
- * puts "Wakey-wakey, sleepyhead"
- *
- * Assuming MyScheduler is properly implemented, this program will produce:
- *
- * Go to sleep!
- * Going to sleep
- * Wakey-wakey, sleepyhead
- * ...1 sec pause here...
- * I slept well
- *
- * ...e.g. on the first blocking operation inside the Fiber (<tt>sleep(1)</tt>),
- * the control is yielded at the outside code (main fiber), and <em>at the end
- * of the execution</em>, the scheduler takes care of properly resuming all the
- * blocked fibers.
- *
- * Note that the behavior described above is how the method is <em>expected</em>
- * to behave, actual behavior is up to the current scheduler's implementation of
- * Fiber::SchedulerInterface#fiber method. Ruby doesn't enforce this method to
- * behave in any particular way.
- *
- * If the scheduler is not set, the method raises
- * <tt>RuntimeError (No scheduler is available!)</tt>.
- *
- */
-static VALUE
-rb_f_fiber(int argc, VALUE *argv, VALUE obj)
-{
- return rb_f_fiber_kw(argc, argv, rb_keyword_given_p());
-}
-
-/*
- * call-seq:
- * Fiber.scheduler -> obj or nil
- *
- * Fiber scheduler, set in the current thread with Fiber.set_scheduler. If the scheduler
- * is +nil+ (which is the default), non-blocking fibers behavior is the same as blocking.
- * (see "Non-blocking fibers" section in class docs for details about the scheduler concept).
- *
- */
-static VALUE
-rb_fiber_scheduler(VALUE klass)
-{
- return rb_scheduler_get();
-}
-
-/*
- * call-seq:
- * Fiber.set_scheduler(scheduler) -> scheduler
- *
- * Sets Fiber scheduler for the current thread. If the scheduler is set, non-blocking
- * fibers (created by Fiber.new with <tt>blocking: false</tt>, or by Fiber.schedule)
- * call that scheduler's hook methods on potentially blocking operations, and the current
- * thread will call scheduler's +close+ method on finalization (allowing the scheduler to
- * properly manage all non-finished fibers).
- *
- * +scheduler+ can be an object of any class corresponding to Fiber::SchedulerInterface. Its
- * implementation is up to the user.
- *
- * See also the "Non-blocking fibers" section in class docs.
- *
- */
-static VALUE
-rb_fiber_set_scheduler(VALUE klass, VALUE scheduler)
-{
- // if (rb_scheduler_get() != Qnil) {
- // rb_raise(rb_eFiberError, "Scheduler is already defined!");
- // }
-
- return rb_scheduler_set(scheduler);
+ return fiber_initialize(fiber_alloc(rb_cFiber), rb_proc_new(func, obj), &shared_fiber_pool);
}
static void rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt);
+#define PASS_KW_SPLAT (rb_empty_keyword_given_p() ? RB_PASS_EMPTY_KEYWORDS : rb_keyword_given_p())
+
void
rb_fiber_start(void)
{
@@ -2014,18 +1795,15 @@ rb_fiber_start(void)
enum ruby_tag_type state;
int need_interrupt = TRUE;
- VM_ASSERT(th->ec == GET_EC());
+ VM_ASSERT(th->ec == ruby_current_execution_context_ptr);
VM_ASSERT(FIBER_RESUMED_P(fiber));
- if (fiber->blocking) {
- th->blocking += 1;
- }
-
EC_PUSH_TAG(th->ec);
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
rb_context_t *cont = &VAR_FROM_MEMORY(fiber)->cont;
int argc;
const VALUE *argv, args = cont->value;
+ int kw_splat = cont->kw_splat;
GetProcPtr(fiber->first_proc, proc);
argv = (argc = cont->argc) > 1 ? RARRAY_CONST_PTR(args) : &args;
cont->value = Qnil;
@@ -2034,7 +1812,8 @@ rb_fiber_start(void)
th->ec->root_svar = Qfalse;
EXEC_EVENT_HOOK(th->ec, RUBY_EVENT_FIBER_SWITCH, th->self, 0, 0, 0, Qnil);
- cont->value = rb_vm_invoke_proc(th->ec, proc, argc, argv, cont->kw_splat, VM_BLOCK_HANDLER_NONE);
+ rb_adjust_argv_kw_splat(&argc, &argv, &kw_splat);
+ cont->value = rb_vm_invoke_proc(th->ec, proc, argc, argv, kw_splat, VM_BLOCK_HANDLER_NONE);
}
EC_POP_TAG();
@@ -2093,12 +1872,8 @@ rb_threadptr_root_fiber_setup(rb_thread_t *th)
fiber->cont.type = FIBER_CONTEXT;
fiber->cont.saved_ec.fiber_ptr = fiber;
fiber->cont.saved_ec.thread_ptr = th;
- fiber->blocking = 1;
fiber_status_set(fiber, FIBER_RESUMED); /* skip CREATED */
th->ec = &fiber->cont.saved_ec;
- // This skips mjit_cont_new for the initial thread because mjit_enabled is always false
- // at this point. mjit_init calls rb_fiber_init_mjit_cont again for this root_fiber.
- rb_fiber_init_mjit_cont(fiber);
}
void
@@ -2108,15 +1883,13 @@ rb_threadptr_root_fiber_release(rb_thread_t *th)
/* ignore. A root fiber object will free th->ec */
}
else {
- rb_execution_context_t *ec = GET_EC();
-
VM_ASSERT(th->ec->fiber_ptr->cont.type == FIBER_CONTEXT);
VM_ASSERT(th->ec->fiber_ptr->cont.self == 0);
+ fiber_free(th->ec->fiber_ptr);
- if (th->ec == ec) {
- rb_ractor_set_current_ec(th->ractor, NULL);
+ if (th->ec == ruby_current_execution_context_ptr) {
+ ruby_current_execution_context_ptr = NULL;
}
- fiber_free(th->ec->fiber_ptr);
th->ec = NULL;
}
}
@@ -2143,33 +1916,25 @@ fiber_current(void)
}
static inline rb_fiber_t*
-return_fiber(bool terminate)
+return_fiber(void)
{
rb_fiber_t *fiber = fiber_current();
rb_fiber_t *prev = fiber->prev;
- if (prev) {
- fiber->prev = NULL;
- prev->resuming_fiber = Qnil;
- return prev;
- }
- else {
- if (!terminate) {
- rb_raise(rb_eFiberError, "attempt to yield on a not resumed fiber");
- }
-
+ if (!prev) {
rb_thread_t *th = GET_THREAD();
rb_fiber_t *root_fiber = th->root_fiber;
VM_ASSERT(root_fiber != NULL);
- // search resuming fiber
- for (fiber = root_fiber;
- RTEST(fiber->resuming_fiber);
- fiber = fiber_ptr(fiber->resuming_fiber)) {
+ if (root_fiber == fiber) {
+ rb_raise(rb_eFiberError, "can't yield from root fiber");
}
-
- return fiber;
+ return root_fiber;
+ }
+ else {
+ fiber->prev = NULL;
+ return prev;
}
}
@@ -2214,7 +1979,7 @@ fiber_store(rb_fiber_t *next_fiber, rb_thread_t *th)
}
static inline VALUE
-fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat, VALUE resuming_fiber, bool yielding)
+fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int is_resume, int kw_splat)
{
VALUE value;
rb_context_t *cont = &fiber->cont;
@@ -2259,25 +2024,11 @@ fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat, VALUE
}
}
- VM_ASSERT(FIBER_RUNNABLE_P(fiber));
-
- rb_fiber_t *current_fiber = fiber_current();
-
- VM_ASSERT(!RTEST(current_fiber->resuming_fiber));
- if (RTEST(resuming_fiber)) {
- current_fiber->resuming_fiber = resuming_fiber;
+ if (is_resume) {
fiber->prev = fiber_current();
- fiber->yielding = 0;
}
- VM_ASSERT(!current_fiber->yielding);
- if (yielding) {
- current_fiber->yielding = 1;
- }
-
- if (current_fiber->blocking) {
- th->blocking -= 1;
- }
+ VM_ASSERT(FIBER_RUNNABLE_P(fiber));
cont->argc = argc;
cont->kw_splat = kw_splat;
@@ -2285,14 +2036,10 @@ fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat, VALUE
value = fiber_store(fiber, th);
- if (RTEST(resuming_fiber) && FIBER_TERMINATED_P(fiber)) {
+ if (is_resume && FIBER_TERMINATED_P(fiber)) {
fiber_stack_release(fiber);
}
- if (fiber_current()->blocking) {
- th->blocking += 1;
- }
-
RUBY_VM_CHECK_INTS(th->ec);
EXEC_EVENT_HOOK(th->ec, RUBY_EVENT_FIBER_SWITCH, th->self, 0, 0, 0, Qnil);
@@ -2303,57 +2050,7 @@ fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat, VALUE
VALUE
rb_fiber_transfer(VALUE fiber_value, int argc, const VALUE *argv)
{
- return fiber_switch(fiber_ptr(fiber_value), argc, argv, RB_NO_KEYWORDS, Qfalse, false);
-}
-
-/*
- * call-seq:
- * fiber.blocking? -> true or false
- *
- * Returns +true+ if +fiber+ is blocking and +false+ otherwise.
- * Fiber is non-blocking if it was created via passing <tt>blocking: false</tt>
- * to Fiber.new, or via Fiber.schedule.
- *
- * Note, that even if the method returns +false+, Fiber behaves differently
- * only if Fiber.scheduler is set in the current thread.
- *
- * See the "Non-blocking fibers" section in class docs for details.
- *
- */
-VALUE
-rb_fiber_blocking_p(VALUE fiber)
-{
- return (fiber_ptr(fiber)->blocking == 0) ? Qfalse : Qtrue;
-}
-
-/*
- * call-seq:
- * Fiber.blocking? -> false or number
- *
- * Returns +false+ if the current fiber is non-blocking.
- * Fiber is non-blocking if it was created via passing <tt>blocking: false</tt>
- * to Fiber.new, or via Fiber.schedule.
- *
- * If the current Fiber is blocking, the method, unlike usual
- * predicate methods, returns a *number* of blocking fibers currently
- * running (TBD: always 1?).
- *
- * Note, that even if the method returns +false+, Fiber behaves differently
- * only if Fiber.scheduler is set in the current thread.
- *
- * See the "Non-blocking fibers" section in class docs for details.
- *
- */
-static VALUE
-rb_f_fiber_blocking_p(VALUE klass)
-{
- rb_thread_t *thread = GET_THREAD();
- unsigned blocking = thread->blocking;
-
- if (blocking == 0)
- return Qfalse;
-
- return INT2NUM(blocking);
+ return fiber_switch(fiber_ptr(fiber_value), argc, argv, 0, RB_NO_KEYWORDS);
}
void
@@ -2376,38 +2073,29 @@ rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt)
fiber->cont.machine.stack = NULL;
fiber->cont.machine.stack_size = 0;
- next_fiber = return_fiber(true);
+ next_fiber = return_fiber();
if (need_interrupt) RUBY_VM_SET_INTERRUPT(&next_fiber->cont.saved_ec);
- fiber_switch(next_fiber, 1, &value, RB_NO_KEYWORDS, Qfalse, false);
+ fiber_switch(next_fiber, 1, &value, 0, RB_NO_KEYWORDS);
}
VALUE
rb_fiber_resume_kw(VALUE fiber_value, int argc, const VALUE *argv, int kw_splat)
{
rb_fiber_t *fiber = fiber_ptr(fiber_value);
- rb_fiber_t *current_fiber = fiber_current();
if (argc == -1 && FIBER_CREATED_P(fiber)) {
rb_raise(rb_eFiberError, "cannot raise exception on unborn fiber");
}
- else if (FIBER_TERMINATED_P(fiber)) {
- rb_raise(rb_eFiberError, "attempt to resume a terminated fiber");
- }
- else if (fiber == current_fiber) {
- rb_raise(rb_eFiberError, "attempt to resume the current fiber");
- }
- else if (fiber->prev != NULL) {
- rb_raise(rb_eFiberError, "attempt to resume a resumed fiber (double resume)");
- }
- else if (RTEST(fiber->resuming_fiber)) {
- rb_raise(rb_eFiberError, "attempt to resume a resuming fiber");
+
+ if (fiber->prev != 0 || fiber_is_root_p(fiber)) {
+ rb_raise(rb_eFiberError, "double resume");
}
- else if (fiber->prev == NULL &&
- (!fiber->yielding && fiber->status != FIBER_CREATED)) {
- rb_raise(rb_eFiberError, "attempt to resume a transferring fiber");
+
+ if (fiber->transferred != 0) {
+ rb_raise(rb_eFiberError, "cannot resume transferred Fiber");
}
- return fiber_switch(fiber, argc, argv, kw_splat, fiber_value, false);
+ return fiber_switch(fiber, argc, argv, 1, kw_splat);
}
VALUE
@@ -2419,13 +2107,13 @@ rb_fiber_resume(VALUE fiber_value, int argc, const VALUE *argv)
VALUE
rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat)
{
- return fiber_switch(return_fiber(false), argc, argv, kw_splat, Qfalse, true);
+ return fiber_switch(return_fiber(), argc, argv, 0, kw_splat);
}
VALUE
rb_fiber_yield(int argc, const VALUE *argv)
{
- return fiber_switch(return_fiber(false), argc, argv, RB_NO_KEYWORDS, Qfalse, true);
+ return fiber_switch(return_fiber(), argc, argv, 0, RB_NO_KEYWORDS);
}
void
@@ -2469,11 +2157,9 @@ rb_fiber_alive_p(VALUE fiber_value)
static VALUE
rb_fiber_m_resume(int argc, VALUE *argv, VALUE fiber)
{
- return rb_fiber_resume_kw(fiber, argc, argv, rb_keyword_given_p());
+ return rb_fiber_resume_kw(fiber, argc, argv, PASS_KW_SPLAT);
}
-static VALUE rb_fiber_transfer_kw(VALUE fiber_value, int argc, VALUE *argv, int kw_splat);
-
/*
* call-seq:
* fiber.raise -> obj
@@ -2481,10 +2167,8 @@ static VALUE rb_fiber_transfer_kw(VALUE fiber_value, int argc, VALUE *argv, int
* fiber.raise(exception [, string [, array]]) -> obj
*
* Raises an exception in the fiber at the point at which the last
- * +Fiber.yield+ was called. If the fiber has not been started or has
- * already run to completion, raises +FiberError+. If the fiber is
- * yielding, it is resumed. If it is transferring, it is transferred into.
- * But if it is resuming, raises +FiberError+.
+ * Fiber.yield was called, or at the start if neither +resume+
+ * nor +raise+ were called before.
*
* With no arguments, raises a +RuntimeError+. With a single +String+
* argument, raises a +RuntimeError+ with the string as a message. Otherwise,
@@ -2496,96 +2180,10 @@ static VALUE rb_fiber_transfer_kw(VALUE fiber_value, int argc, VALUE *argv, int
* blocks.
*/
static VALUE
-rb_fiber_raise(int argc, VALUE *argv, VALUE fiber_value)
+rb_fiber_raise(int argc, VALUE *argv, VALUE fiber)
{
- rb_fiber_t *fiber = fiber_ptr(fiber_value);
VALUE exc = rb_make_exception(argc, argv);
- if (RTEST(fiber->resuming_fiber)) {
- rb_raise(rb_eFiberError, "attempt to raise a resuming fiber");
- }
- else if (FIBER_SUSPENDED_P(fiber) && !fiber->yielding) {
- return rb_fiber_transfer_kw(fiber_value, -1, &exc, RB_NO_KEYWORDS);
- }
- else {
- return rb_fiber_resume_kw(fiber_value, -1, &exc, RB_NO_KEYWORDS);
- }
-}
-
-/*
- * call-seq:
- * fiber.backtrace -> array
- * fiber.backtrace(start) -> array
- * fiber.backtrace(start, count) -> array
- * fiber.backtrace(start..end) -> array
- *
- * Returns the current execution stack of the fiber. +start+, +count+ and +end+ allow
- * to select only parts of the backtrace.
- *
- * def level3
- * Fiber.yield
- * end
- *
- * def level2
- * level3
- * end
- *
- * def level1
- * level2
- * end
- *
- * f = Fiber.new { level1 }
- *
- * # It is empty before the fiber started
- * f.backtrace
- * #=> []
- *
- * f.resume
- *
- * f.backtrace
- * #=> ["test.rb:2:in `yield'", "test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in <main>'"]
- * p f.backtrace(1) # start from the item 1
- * #=> ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in <main>'"]
- * p f.backtrace(2, 2) # start from item 2, take 2
- * #=> ["test.rb:6:in `level2'", "test.rb:10:in `level1'"]
- * p f.backtrace(1..3) # take items from 1 to 3
- * #=> ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'"]
- *
- * f.resume
- *
- * # It is nil after the fiber is finished
- * f.backtrace
- * #=> nil
- *
- */
-static VALUE
-rb_fiber_backtrace(int argc, VALUE *argv, VALUE fiber)
-{
- return rb_vm_backtrace(argc, argv, &fiber_ptr(fiber)->cont.saved_ec);
-}
-
-/*
- * call-seq:
- * fiber.backtrace_locations -> array
- * fiber.backtrace_locations(start) -> array
- * fiber.backtrace_locations(start, count) -> array
- * fiber.backtrace_locations(start..end) -> array
- *
- * Like #backtrace, but returns each line of the execution stack as a
- * Thread::Backtrace::Location. Accepts the same arguments as #backtrace.
- *
- * f = Fiber.new { Fiber.yield }
- * f.resume
- * loc = f.backtrace_locations.first
- * loc.label #=> "yield"
- * loc.path #=> "test.rb"
- * loc.lineno #=> 1
- *
- *
- */
-static VALUE
-rb_fiber_backtrace_locations(int argc, VALUE *argv, VALUE fiber)
-{
- return rb_vm_backtrace_locations(argc, argv, &fiber_ptr(fiber)->cont.saved_ec);
+ return rb_fiber_resume_kw(fiber, -1, &exc, RB_NO_KEYWORDS);
}
/*
@@ -2602,94 +2200,50 @@ rb_fiber_backtrace_locations(int argc, VALUE *argv, VALUE fiber)
* a resume call. Arguments passed to transfer are treated like those
* passed to resume.
*
- * The two style of control passing to and from fiber (one is #resume and
- * Fiber::yield, another is #transfer to and from fiber) can't be freely
- * mixed.
- *
- * * If the Fiber's lifecycle had started with transfer, it will never
- * be able to yield or be resumed control passing, only
- * finish or transfer back. (It still can resume other fibers that
- * are allowed to be resumed.)
- * * If the Fiber's lifecycle had started with resume, it can yield
- * or transfer to another Fiber, but can receive control back only
- * the way compatible with the way it was given away: if it had
- * transferred, it only can be transferred back, and if it had
- * yielded, it only can be resumed back. After that, it again can
- * transfer or yield.
- *
- * If those rules are broken FiberError is raised.
- *
- * For an individual Fiber design, yield/resume is more easy to use
- * style (the Fiber just gives away control, it doesn't need to think
- * about who the control is given to), while transfer is more flexible
- * for complex cases, allowing to build arbitrary graphs of Fibers
- * dependent on each other.
- *
+ * You cannot call +resume+ on a fiber that has been transferred to.
+ * If you call +transfer+ on a fiber, and later call +resume+ on the
+ * the fiber, a +FiberError+ will be raised. Once you call +transfer+ on
+ * a fiber, the only way to resume processing the fiber is to
+ * call +transfer+ on it again.
*
* Example:
*
- * require 'fiber'
- *
- * manager = nil # For local var to be visible inside worker block
+ * fiber1 = Fiber.new do
+ * puts "In Fiber 1"
+ * Fiber.yield
+ * puts "In Fiber 1 again"
+ * end
*
- * # This fiber would be started with transfer
- * # It can't yield, and can't be resumed
- * worker = Fiber.new { |work|
- * puts "Worker: starts"
- * puts "Worker: Performed #{work.inspect}, transferring back"
- * # Fiber.yield # this would raise FiberError: attempt to yield on a not resumed fiber
- * # manager.resume # this would raise FiberError: attempt to resume a resumed fiber (double resume)
- * manager.transfer(work.capitalize)
- * }
+ * fiber2 = Fiber.new do
+ * puts "In Fiber 2"
+ * fiber1.transfer
+ * puts "Never see this message"
+ * end
*
- * # This fiber would be started with resume
- * # It can yield or transfer, and can be transferred
- * # back or resumed
- * manager = Fiber.new {
- * puts "Manager: starts"
- * puts "Manager: transferring 'something' to worker"
- * result = worker.transfer('something')
- * puts "Manager: worker returned #{result.inspect}"
- * # worker.resume # this would raise FiberError: attempt to resume a transferring fiber
- * Fiber.yield # this is OK, the fiber transferred from and to, now it can yield
- * puts "Manager: finished"
- * }
+ * fiber3 = Fiber.new do
+ * puts "In Fiber 3"
+ * end
*
- * puts "Starting the manager"
- * manager.resume
- * puts "Resuming the manager"
- * # manager.transfer # this would raise FiberError: attempt to transfer to a yielding fiber
- * manager.resume
+ * fiber2.resume
+ * fiber3.resume
+ * fiber1.resume rescue (p $!)
+ * fiber1.transfer
*
* <em>produces</em>
*
- * Starting the manager
- * Manager: starts
- * Manager: transferring 'something' to worker
- * Worker: starts
- * Worker: Performed "something", transferring back
- * Manager: worker returned "Something"
- * Resuming the manager
- * Manager: finished
+ * In Fiber 2
+ * In Fiber 1
+ * In Fiber 3
+ * #<FiberError: cannot resume transferred Fiber>
+ * In Fiber 1 again
*
*/
static VALUE
rb_fiber_m_transfer(int argc, VALUE *argv, VALUE fiber_value)
{
- return rb_fiber_transfer_kw(fiber_value, argc, argv, rb_keyword_given_p());
-}
-
-static VALUE
-rb_fiber_transfer_kw(VALUE fiber_value, int argc, VALUE *argv, int kw_splat)
-{
rb_fiber_t *fiber = fiber_ptr(fiber_value);
- if (RTEST(fiber->resuming_fiber)) {
- rb_raise(rb_eFiberError, "attempt to transfer to a resuming fiber");
- }
- if (fiber->yielding) {
- rb_raise(rb_eFiberError, "attempt to transfer to a yielding fiber");
- }
- return fiber_switch(fiber, argc, argv, kw_splat, Qfalse, false);
+ fiber->transferred = 1;
+ return fiber_switch(fiber, argc, argv, 0, PASS_KW_SPLAT);
}
/*
@@ -2705,7 +2259,7 @@ rb_fiber_transfer_kw(VALUE fiber_value, int argc, VALUE *argv, int kw_splat)
static VALUE
rb_fiber_s_yield(int argc, VALUE *argv, VALUE klass)
{
- return rb_fiber_yield_kw(argc, argv, rb_keyword_given_p());
+ return rb_fiber_yield_kw(argc, argv, PASS_KW_SPLAT);
}
/*
@@ -2737,8 +2291,8 @@ fiber_to_s(VALUE fiber_value)
const rb_proc_t *proc;
char status_info[0x20];
- if (RTEST(fiber->resuming_fiber)) {
- snprintf(status_info, 0x20, " (%s by resuming)", fiber_status_name(fiber->status));
+ if (fiber->transferred) {
+ snprintf(status_info, 0x20, " (%s, transferred)", fiber_status_name(fiber->status));
}
else {
snprintf(status_info, 0x20, " (%s)", fiber_status_name(fiber->status));
@@ -2849,191 +2403,6 @@ rb_fiber_pool_initialize(int argc, VALUE* argv, VALUE self)
* fiber.resume #=> FiberError: dead fiber called
*/
-/*
- * Document-class: Fiber::SchedulerInterface
- *
- * This is not an existing class, but documentation of the interface that Scheduler
- * object should comply in order to be used as Fiber.scheduler and handle non-blocking
- * fibers. See also the "Non-blocking fibers" section in Fiber class docs for explanations
- * of some concepts.
- *
- * Scheduler's behavior and usage are expected to be as follows:
- *
- * * When the execution in the non-blocking Fiber reaches some blocking operation (like
- * sleep, wait for a process, or a non-ready I/O), it calls some of the scheduler's
- * hook methods, listed below.
- * * Scheduler somehow registers what the current fiber is waited for, and yields control
- * to other fibers with Fiber.yield (so the fiber would be suspended while expecting its
- * wait to end, and other fibers in the same thread can perform)
- * * At the end of the current thread execution, the scheduler's method #close is called
- * * The scheduler runs into a wait loop, checking all the blocked fibers (which it has
- * registered on hook calls) and resuming them when the awaited resource is ready (I/O
- * ready, sleep time passed).
- *
- * A typical implementation would probably rely for this closing loop on a gem like
- * EventMachine[https://github.com/eventmachine/eventmachine] or
- * Async[https://github.com/socketry/async].
- *
- * This way concurrent execution will be achieved in a way that is transparent for every
- * individual Fiber's code.
- *
- * Hook methods are:
- *
- * * #io_wait
- * * #process_wait
- * * #kernel_sleep
- * * #block and #unblock
- * * (the list is expanded as Ruby developers make more methods having non-blocking calls)
- *
- * When not specified otherwise, the hook implementations are mandatory: if they are not
- * implemented, the methods trying to call hook will fail. To provide backward compatibility,
- * in the future hooks will be optional (if they are not implemented, due to the scheduler
- * being created for the older Ruby version, the code which needs this hook will not fail,
- * and will just behave in a blocking fashion).
- *
- * It is also strongly suggested that the scheduler implement the #fiber method, which is
- * delegated to by Fiber.schedule.
- *
- * Sample _toy_ implementation of the scheduler can be found in Ruby's code, in
- * <tt>test/fiber/scheduler.rb</tt>
- *
- */
-
-#if 0 /* for RDoc */
-/*
- *
- * Document-method: Fiber::SchedulerInterface#close
- *
- * Called when the current thread exits. The scheduler is expected to implement this
- * method in order to allow all waiting fibers to finalize their execution.
- *
- * The suggested pattern is to implement the main event loop in the #close method.
- *
- */
-static VALUE
-rb_fiber_scheduler_interface_close(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#process_wait
- * call-seq: process_wait(pid, flags)
- *
- * Invoked by Process::Status.wait in order to wait for a specified process.
- * See that method description for arguments description.
- *
- * Suggested minimal implementation:
- *
- * Thread.new do
- * Process::Status.wait(pid, flags)
- * end.value
- *
- * This hook is optional: if it is not present in the current scheduler,
- * Process::Status.wait will behave as a blocking method.
- *
- * Expected to returns a Process::Status instance.
- */
-static VALUE
-rb_fiber_scheduler_interface_process_wait(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#io_wait
- * call-seq: io_wait(io, events, timeout)
- *
- * Invoked by IO#wait, IO#wait_readable, IO#wait_writable to ask whether the
- * specified descriptor is ready for specified events within
- * the specified +timeout+.
- *
- * +events+ is a bit mask of <tt>IO::READABLE</tt>, <tt>IO::WRITABLE</tt>, and
- * <tt>IO::PRIORITY</tt>.
- *
- * Suggested implementation should register which Fiber is waiting for which
- * resources and immediately calling Fiber.yield to pass control to other
- * fibers. Then, in the #close method, the scheduler might dispatch all the
- * I/O resources to fibers waiting for it.
- *
- * Expected to return the subset of events that are ready immediately.
- *
- */
-static VALUE
-rb_fiber_scheduler_interface_io_wait(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#kernel_sleep
- * call-seq: kernel_sleep(duration = nil)
- *
- * Invoked by Kernel#sleep and Mutex#sleep and is expected to provide
- * an implementation of sleeping in a non-blocking way. Implementation might
- * register the current fiber in some list of "what fiber waits till what
- * moment", call Fiber.yield to pass control, and then in #close resume
- * the fibers whose wait period have ended.
- *
- */
-static VALUE
-rb_fiber_scheduler_interface_kernel_sleep(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#block
- * call-seq: block(blocker, timeout = nil)
- *
- * Invoked by methods like Thread.join, and by Mutex, to signify that current
- * Fiber is blocked till further notice (e.g. #unblock) or till +timeout+ will
- * pass.
- *
- * +blocker+ is what we are waiting on, informational only (for debugging and
- * logging). There are no guarantees about its value.
- *
- * Expected to return boolean, specifying whether the blocking operation was
- * successful or not.
- */
-static VALUE
-rb_fiber_scheduler_interface_block(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#unblock
- * call-seq: unblock(blocker, fiber)
- *
- * Invoked to wake up Fiber previously blocked with #block (for example, Mutex#lock
- * calls #block and Mutex#unlock calls #unblock). The scheduler should use
- * the +fiber+ parameter to understand which fiber is unblocked.
- *
- * +blocker+ is what was awaited for, but it is informational only (for debugging
- * and logging), and it is not guaranteed to be the same value as the +blocker+ for
- * #block.
- *
- */
-static VALUE
-rb_fiber_scheduler_interface_unblock(VALUE self)
-{
-}
-
-/*
- * Document-method: SchedulerInterface#fiber
- * call-seq: fiber(&block)
- *
- * Implementation of the Fiber.schedule. The method is <em>expected</em> to immediately
- * run passed block of code in a separate non-blocking fiber, and to return that Fiber.
- *
- * Minimal suggested implementation is:
- *
- * def fiber(&block)
- * Fiber.new(blocking: false, &block).tap(&:resume)
- * end
- */
-static VALUE
-rb_fiber_scheduler_interface_fiber(VALUE self)
-{
-}
-#endif
-
void
Init_Cont(void)
{
@@ -3053,9 +2422,6 @@ Init_Cont(void)
fiber_pool_initialize(&shared_fiber_pool, stack_size, FIBER_POOL_INITIAL_SIZE, vm_stack_size);
- fiber_initialize_keywords[0] = rb_intern_const("blocking");
- fiber_initialize_keywords[1] = rb_intern_const("pool");
-
char * fiber_shared_fiber_pool_free_stacks = getenv("RUBY_SHARED_FIBER_POOL_FREE_STACKS");
if (fiber_shared_fiber_pool_free_stacks) {
shared_fiber_pool.free_stacks = atoi(fiber_shared_fiber_pool_free_stacks);
@@ -3066,32 +2432,11 @@ Init_Cont(void)
rb_eFiberError = rb_define_class("FiberError", rb_eStandardError);
rb_define_singleton_method(rb_cFiber, "yield", rb_fiber_s_yield, -1);
rb_define_method(rb_cFiber, "initialize", rb_fiber_initialize, -1);
- rb_define_method(rb_cFiber, "blocking?", rb_fiber_blocking_p, 0);
rb_define_method(rb_cFiber, "resume", rb_fiber_m_resume, -1);
rb_define_method(rb_cFiber, "raise", rb_fiber_raise, -1);
- rb_define_method(rb_cFiber, "backtrace", rb_fiber_backtrace, -1);
- rb_define_method(rb_cFiber, "backtrace_locations", rb_fiber_backtrace_locations, -1);
rb_define_method(rb_cFiber, "to_s", fiber_to_s, 0);
rb_define_alias(rb_cFiber, "inspect", "to_s");
- rb_define_singleton_method(rb_cFiber, "blocking?", rb_f_fiber_blocking_p, 0);
- rb_define_singleton_method(rb_cFiber, "scheduler", rb_fiber_scheduler, 0);
- rb_define_singleton_method(rb_cFiber, "set_scheduler", rb_fiber_set_scheduler, 1);
-
- rb_define_singleton_method(rb_cFiber, "schedule", rb_f_fiber, -1);
- //rb_define_global_function("Fiber", rb_f_fiber, -1);
-
-#if 0 /* for RDoc */
- rb_cFiberScheduler = rb_define_class_under(rb_cFiber, "SchedulerInterface", rb_cObject);
- rb_define_method(rb_cFiberScheduler, "close", rb_fiber_scheduler_interface_close, 0);
- rb_define_method(rb_cFiberScheduler, "process_wait", rb_fiber_scheduler_interface_process_wait, 0);
- rb_define_method(rb_cFiberScheduler, "io_wait", rb_fiber_scheduler_interface_io_wait, 0);
- rb_define_method(rb_cFiberScheduler, "kernel_sleep", rb_fiber_scheduler_interface_kernel_sleep, 0);
- rb_define_method(rb_cFiberScheduler, "block", rb_fiber_scheduler_interface_block, 0);
- rb_define_method(rb_cFiberScheduler, "unblock", rb_fiber_scheduler_interface_unblock, 0);
- rb_define_method(rb_cFiberScheduler, "fiber", rb_fiber_scheduler_interface_fiber, 0);
-#endif
-
#ifdef RB_EXPERIMENTAL_FIBER_POOL
rb_cFiberPool = rb_define_class("Pool", rb_cFiber);
rb_define_alloc_func(rb_cFiberPool, fiber_pool_alloc);
@@ -3115,9 +2460,6 @@ ruby_Init_Continuation_body(void)
void
ruby_Init_Fiber_as_Coroutine(void)
{
-#ifdef HAVE_RB_EXT_RACTOR_SAFE
- rb_ext_ractor_safe(true);
-#endif
rb_define_method(rb_cFiber, "transfer", rb_fiber_m_transfer, -1);
rb_define_method(rb_cFiber, "alive?", rb_fiber_alive_p, 0);
rb_define_singleton_method(rb_cFiber, "current", rb_fiber_s_current, 0);
diff --git a/coroutine/Stack.h b/coroutine/Stack.h
deleted file mode 100644
index f0fc703622..0000000000
--- a/coroutine/Stack.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * This file is part of the "Coroutine" project and released under the MIT License.
- *
- * Created by Samuel Williams on 10/11/2020.
- * Copyright, 2020, by Samuel Williams.
-*/
-
-#include COROUTINE_H
-
-#ifdef COROUTINE_PRIVATE_STACK
-#define COROUTINE_STACK_LOCAL(type, name) type *name = ruby_xmalloc(sizeof(type))
-#define COROUTINE_STACK_FREE(name) ruby_xfree(name)
-#else
-#define COROUTINE_STACK_LOCAL(type, name) type name##_local; type * name = &name##_local
-#define COROUTINE_STACK_FREE(name)
-#endif
diff --git a/coroutine/amd64/Context.S b/coroutine/amd64/Context.S
index 051db1c5e8..ac986b2aa5 100644
--- a/coroutine/amd64/Context.S
+++ b/coroutine/amd64/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams.
+## Copyright, 2018, by Samuel Williams. All rights reserved.
##
#define TOKEN_PASTE(x,y) x##y
diff --git a/coroutine/amd64/Context.h b/coroutine/amd64/Context.h
index 581525b67e..8fe323c1a1 100644
--- a/coroutine/amd64/Context.h
+++ b/coroutine/amd64/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __attribute__((noreturn)) void
diff --git a/coroutine/arm32/Context.S b/coroutine/arm32/Context.S
index 1850c4c408..4308e1d1d2 100644
--- a/coroutine/arm32/Context.S
+++ b/coroutine/arm32/Context.S
@@ -2,32 +2,21 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams.
+## Copyright, 2018, by Samuel Williams. All rights reserved.
##
-#define TOKEN_PASTE(x,y) x##y
-#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
-
-.file "Context.S"
.text
-.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
-.align 2
-.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function
-.syntax unified
-PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
+.globl coroutine_transfer
+coroutine_transfer:
# Save caller state (8 registers + return address)
push {r4-r11,lr}
-
+
# Save caller stack pointer
str sp, [r0]
-
+
# Restore callee stack pointer
ldr sp, [r1]
-
+
# Restore callee state (8 registers program counter)
pop {r4-r11,pc}
-
-#if defined(__linux__) && defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h
index e69f4b2eeb..e29fe1bb63 100644
--- a/coroutine/arm32/Context.h
+++ b/coroutine/arm32/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __attribute__((noreturn)) void
diff --git a/coroutine/arm64/Context.S b/coroutine/arm64/Context.S
index 04e3f6d1ef..f6e5f0a6bc 100644
--- a/coroutine/arm64/Context.S
+++ b/coroutine/arm64/Context.S
@@ -2,21 +2,18 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams.
+## Copyright, 2018, by Samuel Williams. All rights reserved.
##
-#define TOKEN_PASTE(x,y) x##y
-#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
-
.text
.align 2
-.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
-PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
+.global coroutine_transfer
+coroutine_transfer:
# Make space on the stack for caller registers
sub sp, sp, 0xb0
-
+
# Save caller registers
stp d8, d9, [sp, 0x00]
stp d10, d11, [sp, 0x10]
diff --git a/coroutine/arm64/Context.h b/coroutine/arm64/Context.h
index 34be995a4f..a1ae921144 100644
--- a/coroutine/arm64/Context.h
+++ b/coroutine/arm64/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __attribute__((noreturn)) void
diff --git a/coroutine/copy/Context.c b/coroutine/copy/Context.c
index aa8bb2ff05..a1b8a71200 100644
--- a/coroutine/copy/Context.c
+++ b/coroutine/copy/Context.c
@@ -2,13 +2,11 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 24/6/2019.
- * Copyright, 2019, by Samuel Williams.
+ * Copyright, 2019, by Samuel Williams. All rights reserved.
*/
#include "Context.h"
-#include <stdint.h>
-
// http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
#ifndef __GNUC__
#define __asm__ asm
@@ -17,7 +15,7 @@
#if defined(__sparc)
__attribute__((noinline))
// https://marc.info/?l=linux-sparc&m=131914569320660&w=2
-static void coroutine_flush_register_windows(void) {
+static void coroutine_flush_register_windows() {
__asm__
#ifdef __GNUC__
__volatile__
@@ -34,25 +32,16 @@ static void coroutine_flush_register_windows(void) {
;
}
#else
-static void coroutine_flush_register_windows(void) {}
+static void coroutine_flush_register_windows() {}
#endif
-__attribute__((noinline))
-void *coroutine_stack_pointer(void) {
- return (void*)(
- (char*)__builtin_frame_address(0)
- );
-}
+int coroutine_save_stack(struct coroutine_context * context) {
+ void *stack_pointer = &stack_pointer;
-// Save the current stack to a private area. It is likely that when restoring the stack, this stack frame will be incomplete. But that is acceptable since the previous stack frame which called `setjmp` should be correctly restored.
-__attribute__((noinline))
-int coroutine_save_stack_1(struct coroutine_context * context) {
assert(context->stack);
assert(context->base);
- void *stack_pointer = coroutine_stack_pointer();
-
- // At this point, you may need to ensure on architectures that use register windows, that all registers are flushed to the stack, otherwise the copy of the stack will not contain the valid registers:
+ // At this point, you may need to ensure on architectures that use register windows, that all registers are flushed to the stack.
coroutine_flush_register_windows();
// Save stack to private area:
@@ -70,30 +59,16 @@ int coroutine_save_stack_1(struct coroutine_context * context) {
context->used = size;
}
- // Initialized:
- return 0;
-}
-
-// Copy the current stack to a private memory buffer.
-int coroutine_save_stack(struct coroutine_context * context) {
- if (_setjmp(context->state)) {
- // Restored.
- return 1;
- }
-
- // We need to invoke the memory copy from one stack frame deeper than the one that calls setjmp. That is because if you don't do this, the setjmp might be restored into an invalid stack frame (truncated, etc):
- return coroutine_save_stack_1(context);
+ // Save registers / restore point:
+ return _setjmp(context->state);
}
__attribute__((noreturn, noinline))
-void coroutine_restore_stack_padded(struct coroutine_context *context, void * buffer) {
- void *stack_pointer = coroutine_stack_pointer();
+static void coroutine_restore_stack_padded(struct coroutine_context *context, void * buffer) {
+ void *stack_pointer = &stack_pointer;
assert(context->base);
- // At this point, you may need to ensure on architectures that use register windows, that all registers are flushed to the stack, otherwise when we copy in the new stack, the registers would not be updated:
- coroutine_flush_register_windows();
-
// Restore stack from private area:
if (stack_pointer < context->base) {
void * bottom = (char*)context->base - context->used;
@@ -107,24 +82,28 @@ void coroutine_restore_stack_padded(struct coroutine_context *context, void * bu
memcpy(context->base, context->stack, context->used);
}
- // Restore registers. The `buffer` is to force the compiler NOT to elide he buffer and `alloca`:
- _longjmp(context->state, (int)(1 | (intptr_t)buffer));
+ // Restore registers:
+ // The `| (int)buffer` is to force the compiler NOT to elide he buffer and `alloca`.
+ _longjmp(context->state, 1 | (int)buffer);
}
+static const size_t GAP = 128;
+
// In order to swap between coroutines, we need to swap the stack and registers.
// `setjmp` and `longjmp` are able to swap registers, but what about swapping stacks? You can use `memcpy` to copy the current stack to a private area and `memcpy` to copy the private stack of the next coroutine to the main stack.
// But if the stack yop are copying in to the main stack is bigger than the currently executing stack, the `memcpy` will clobber the current stack frame (including the context argument). So we use `alloca` to push the current stack frame *beyond* the stack we are about to copy in. This ensures the current stack frame in `coroutine_restore_stack_padded` remains valid for calling `longjmp`.
__attribute__((noreturn))
void coroutine_restore_stack(struct coroutine_context *context) {
- void *stack_pointer = coroutine_stack_pointer();
+ void *stack_pointer = &stack_pointer;
void *buffer = NULL;
+ ssize_t offset = 0;
// We must ensure that the next stack frame is BEYOND the stack we are restoring:
if (stack_pointer < context->base) {
- intptr_t offset = (intptr_t)stack_pointer - ((intptr_t)context->base - context->used);
+ offset = (char*)stack_pointer - ((char*)context->base - context->used) + GAP;
if (offset > 0) buffer = alloca(offset);
} else {
- intptr_t offset = ((intptr_t)context->base + context->used) - (intptr_t)stack_pointer;
+ offset = ((char*)context->base + context->used) - (char*)stack_pointer + GAP;
if (offset > 0) buffer = alloca(offset);
}
@@ -149,9 +128,9 @@ struct coroutine_context *coroutine_transfer(struct coroutine_context *current,
// It's possible to come here, even thought the current fiber has been terminated. We are never going to return so we don't bother saving the stack.
if (current->stack) {
- if (coroutine_save_stack(current) == 0) {
- coroutine_restore_stack(target);
- }
+ if (coroutine_save_stack(current) == 0) {
+ coroutine_restore_stack(target);
+ }
} else {
coroutine_restore_stack(target);
}
diff --git a/coroutine/copy/Context.h b/coroutine/copy/Context.h
index 6038f00cf6..1319f55d16 100644
--- a/coroutine/copy/Context.h
+++ b/coroutine/copy/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 27/6/2019.
- * Copyright, 2019, by Samuel Williams.
+ * Copyright, 2019, by Samuel Williams. All rights reserved.
*/
#pragma once
@@ -12,11 +12,7 @@
#include <setjmp.h>
#include <string.h>
#include <stdlib.h>
-
-/* OpenBSD supports alloca, but does not include alloca.h */
-#ifndef __OpenBSD__
#include <alloca.h>
-#endif
#define COROUTINE __attribute__((noreturn)) void
diff --git a/coroutine/ppc64le/Context.S b/coroutine/ppc64le/Context.S
index 61be9efcf0..1b39086f8f 100644
--- a/coroutine/ppc64le/Context.S
+++ b/coroutine/ppc64le/Context.S
@@ -1,12 +1,9 @@
-#define TOKEN_PASTE(x,y) x##y
-#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
-
.text
.align 2
-.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
-.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function
-PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
+.globl coroutine_transfer
+.type coroutine_transfer, @function
+coroutine_transfer:
# Make space on the stack for caller registers
addi 1,1,-152
diff --git a/coroutine/ppc64le/Context.h b/coroutine/ppc64le/Context.h
index e36f9c3583..adf21b4fd9 100644
--- a/coroutine/ppc64le/Context.h
+++ b/coroutine/ppc64le/Context.h
@@ -1,8 +1,6 @@
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __attribute__((noreturn)) void
diff --git a/coroutine/ucontext/Context.c b/coroutine/ucontext/Context.c
index 9ba76ee628..eec4ef3956 100644
--- a/coroutine/ucontext/Context.c
+++ b/coroutine/ucontext/Context.c
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 24/6/2019.
- * Copyright, 2019, by Samuel Williams.
+ * Copyright, 2019, by Samuel Williams. All rights reserved.
*/
/* According to Solaris' ucontext.h, makecontext, etc. are removed in SUSv4.
@@ -15,7 +15,7 @@
void coroutine_trampoline(void * _start, void * _context)
{
- coroutine_start start = (coroutine_start)_start;
+ coroutine_start start = _start;
struct coroutine_context * context = _context;
start(context->from, context);
diff --git a/coroutine/ucontext/Context.h b/coroutine/ucontext/Context.h
index 2b2a593793..6cf16c8604 100644
--- a/coroutine/ucontext/Context.h
+++ b/coroutine/ucontext/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 24/6/2019.
- * Copyright, 2019, by Samuel Williams.
+ * Copyright, 2019, by Samuel Williams. All rights reserved.
*/
#pragma once
diff --git a/coroutine/win32/Context.asm b/coroutine/win32/Context.asm
index f8f431239b..2647ea4bc4 100644
--- a/coroutine/win32/Context.asm
+++ b/coroutine/win32/Context.asm
@@ -2,7 +2,7 @@
;; This file is part of the "Coroutine" project and released under the MIT License.
;;
;; Created by Samuel Williams on 10/5/2018.
-;; Copyright, 2018, by Samuel Williams.
+;; Copyright, 2018, by Samuel Williams. All rights reserved.
;;
.386
diff --git a/coroutine/win32/Context.h b/coroutine/win32/Context.h
index e20342a98d..299515ed92 100644
--- a/coroutine/win32/Context.h
+++ b/coroutine/win32/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __declspec(noreturn) void __fastcall
diff --git a/coroutine/win64/Context.S b/coroutine/win64/Context.S
index e0ee38e006..4b16e0ce8c 100644
--- a/coroutine/win64/Context.S
+++ b/coroutine/win64/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 4/11/2018.
-## Copyright, 2018, by Samuel Williams.
+## Copyright, 2018, by Samuel Williams. All rights reserved.
##
.text
diff --git a/coroutine/win64/Context.asm b/coroutine/win64/Context.asm
index 8c4dea1c93..59673ffa3e 100644
--- a/coroutine/win64/Context.asm
+++ b/coroutine/win64/Context.asm
@@ -2,7 +2,7 @@
;; This file is part of the "Coroutine" project and released under the MIT License.
;;
;; Created by Samuel Williams on 10/5/2018.
-;; Copyright, 2018, by Samuel Williams.
+;; Copyright, 2018, by Samuel Williams. All rights reserved.
;;
.code
diff --git a/coroutine/win64/Context.h b/coroutine/win64/Context.h
index e28e6a6ff0..6bf2dc5b35 100644
--- a/coroutine/win64/Context.h
+++ b/coroutine/win64/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __declspec(noreturn) void
diff --git a/coroutine/x86/Context.S b/coroutine/x86/Context.S
index 6983f21c3b..001b699a30 100644
--- a/coroutine/x86/Context.S
+++ b/coroutine/x86/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 3/11/2018.
-## Copyright, 2018, by Samuel Williams.
+## Copyright, 2018, by Samuel Williams. All rights reserved.
##
#define TOKEN_PASTE(x,y) x##y
diff --git a/coroutine/x86/Context.h b/coroutine/x86/Context.h
index dfdde24f5d..6d3a56eaa6 100644
--- a/coroutine/x86/Context.h
+++ b/coroutine/x86/Context.h
@@ -2,14 +2,12 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 3/11/2018.
- * Copyright, 2018, by Samuel Williams.
+ * Copyright, 2018, by Samuel Williams. All rights reserved.
*/
#pragma once
#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
#include <string.h>
#define COROUTINE __attribute__((noreturn, fastcall)) void
diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in
index 86098814a1..192cf43b37 100644
--- a/cygwin/GNUmakefile.in
+++ b/cygwin/GNUmakefile.in
@@ -1,13 +1,8 @@
-gnumake = yes
-
include Makefile
ENABLE_SHARED=@ENABLE_SHARED@
DLLWRAP = @DLLWRAP@ --target=@target_os@ --driver-name="$(CC)"
-windres-cpp := $(CPP) -xc
-windres-cpp := --preprocessor=$(firstword $(windres-cpp)) \
- $(addprefix --preprocessor-arg=,$(wordlist 2,$(words $(windres-cpp)),$(windres-cpp)))
-WINDRES = @WINDRES@ $(windres-cpp) -DRC_INVOKED
+WINDRES = @WINDRES@ --preprocessor="$(CPP) -xc" -DRC_INVOKED
STRIP = @STRIP@
ifeq (@target_os@,cygwin)
@@ -99,5 +94,13 @@ $(RUBYDEF): $(LIBRUBY_A) $(PREP) $(RBCONFIG)
clean-local::
@$(RM) $(RUBYDEF)
+
+ifeq (@target_os@,cygwin)
+cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)0.dll: $(LIBRUBY_A) $(RUBYDEF)
+ $(ECHO) generating $@
+ $(Q) @DLLWRAP@ -s --def=$(RUBYDEF) -o $@
+endif
+
+clean-local::
@$(RM) $(RUBY_EXP) $(RCFILES:.rc=.res.@OBJEXT@)
@$(RM) $(RCFILES)
diff --git a/debug.c b/debug.c
index 75d4cc6569..a54be27152 100644
--- a/debug.c
+++ b/debug.c
@@ -9,33 +9,15 @@
**********************************************************************/
-#include "ruby/internal/config.h"
-
-#include <stdio.h>
-
-#include "eval_intern.h"
-#include "id.h"
-#include "internal/signal.h"
-#include "internal/util.h"
+#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "ruby/io.h"
-#include "ruby/ruby.h"
#include "ruby/util.h"
-#include "symbol.h"
-#include "vm_core.h"
#include "vm_debug.h"
-#include "vm_callinfo.h"
-#include "ruby/thread_native.h"
-#include "ractor_core.h"
-
-/* This is the only place struct RIMemo is actually used */
-struct RIMemo {
- VALUE flags;
- VALUE v0;
- VALUE v1;
- VALUE v2;
- VALUE v3;
-};
+#include "eval_intern.h"
+#include "vm_core.h"
+#include "symbol.h"
+#include "id.h"
/* for gdb */
const union {
@@ -46,18 +28,13 @@ const union {
enum ruby_method_ids method_ids;
enum ruby_id_types id_types;
enum ruby_fl_type fl_types;
- enum ruby_fl_ushift fl_ushift;
enum ruby_encoding_consts encoding_consts;
enum ruby_coderange_type enc_coderange_types;
enum ruby_econv_flag_type econv_flag_types;
- rb_econv_result_t econv_result;
enum ruby_robject_flags robject_flags;
- enum ruby_robject_consts robject_consts;
enum ruby_rmodule_flags rmodule_flags;
enum ruby_rstring_flags rstring_flags;
- enum ruby_rstring_consts rstring_consts;
enum ruby_rarray_flags rarray_flags;
- enum ruby_rarray_consts rarray_consts;
enum {
RUBY_FMODE_READABLE = FMODE_READABLE,
RUBY_FMODE_WRITABLE = FMODE_WRITABLE,
@@ -245,267 +222,8 @@ set_debug_option(const char *str, int len, void *arg)
}
}
-#ifdef USE_RUBY_DEBUG_LOG
-STATIC_ASSERT(USE_RUBY_DEBUG_LOG, USE_RUBY_DEBUG_LOG ? RUBY_DEVEL : 1);
-#endif
-
-#if RUBY_DEVEL
-static void setup_debug_log(void);
-#else
-#define setup_debug_log()
-#endif
-
void
ruby_set_debug_option(const char *str)
{
ruby_each_words(str, set_debug_option, 0);
- setup_debug_log();
-}
-
-#if RUBY_DEVEL
-
-// RUBY_DEBUG_LOG features
-// See vm_debug.h comments for details.
-
-#define MAX_DEBUG_LOG 0x1000
-#define MAX_DEBUG_LOG_MESSAGE_LEN 0x0200
-#define MAX_DEBUG_LOG_FILTER 0x0010
-
-enum ruby_debug_log_mode ruby_debug_log_mode;
-
-static struct {
- char *mem;
- unsigned int cnt;
- char filters[MAX_DEBUG_LOG_FILTER][MAX_DEBUG_LOG_FILTER];
- unsigned int filters_num;
- rb_nativethread_lock_t lock;
- FILE *output;
-} debug_log;
-
-static char *
-RUBY_DEBUG_LOG_MEM_ENTRY(unsigned int index)
-{
- return &debug_log.mem[MAX_DEBUG_LOG_MESSAGE_LEN * index];
-}
-
-static void
-setup_debug_log(void)
-{
- // check RUBY_DEBUG_LOG
- const char *log_config = getenv("RUBY_DEBUG_LOG");
- if (log_config) {
- fprintf(stderr, "RUBY_DEBUG_LOG=%s\n", log_config);
-
- if (strcmp(log_config, "mem") == 0) {
- debug_log.mem = (char *)malloc(MAX_DEBUG_LOG * MAX_DEBUG_LOG_MESSAGE_LEN);
- if (debug_log.mem == NULL) {
- fprintf(stderr, "setup_debug_log failed (can't allocate memory)\n");
- exit(1);
- }
- ruby_debug_log_mode |= ruby_debug_log_memory;
- }
- else if (strcmp(log_config, "stderr") == 0) {
- ruby_debug_log_mode |= ruby_debug_log_stderr;
- }
- else {
- ruby_debug_log_mode |= ruby_debug_log_file;
- if ((debug_log.output = fopen(log_config, "w")) == NULL) {
- fprintf(stderr, "can not open %s for RUBY_DEBUG_LOG\n", log_config);
- exit(1);
- }
- setvbuf(debug_log.output, NULL, _IONBF, 0);
- }
-
- rb_nativethread_lock_initialize(&debug_log.lock);
- }
-
- // check RUBY_DEBUG_LOG_FILTER
- const char *filter_config = getenv("RUBY_DEBUG_LOG_FILTER");
- if (filter_config && strlen(filter_config) > 0) {
- unsigned int i;
- for (i=0; i<MAX_DEBUG_LOG_FILTER; i++) {
- const char *p;
- if ((p = strchr(filter_config, ',')) == NULL) {
- if (strlen(filter_config) >= MAX_DEBUG_LOG_FILTER) {
- fprintf(stderr, "too long: %s (max:%d)\n", filter_config, MAX_DEBUG_LOG_FILTER);
- exit(1);
- }
- strncpy(debug_log.filters[i], filter_config, MAX_DEBUG_LOG_FILTER - 1);
- i++;
- break;
- }
- else {
- size_t n = p - filter_config;
- if (n >= MAX_DEBUG_LOG_FILTER) {
- fprintf(stderr, "too long: %s (max:%d)\n", filter_config, MAX_DEBUG_LOG_FILTER);
- exit(1);
- }
- strncpy(debug_log.filters[i], filter_config, n);
- filter_config = p+1;
- }
- }
- debug_log.filters_num = i;
- for (i=0; i<debug_log.filters_num; i++) {
- fprintf(stderr, "RUBY_DEBUG_LOG_FILTER[%d]=%s\n", i, debug_log.filters[i]);
- }
- }
-}
-
-bool
-ruby_debug_log_filter(const char *func_name)
-{
- if (debug_log.filters_num > 0) {
- for (unsigned int i = 0; i<debug_log.filters_num; i++) {
- if (strstr(func_name, debug_log.filters[i]) != NULL) {
- return true;
- }
- }
- return false;
- }
- else {
- return true;
- }
-}
-
-static const char *
-pretty_filename(const char *path)
-{
- // basename is one idea.
- const char *s;
- while ((s = strchr(path, '/')) != NULL) {
- path = s+1;
- }
- return path;
-}
-
-void
-ruby_debug_log(const char *file, int line, const char *func_name, const char *fmt, ...)
-{
- char buff[MAX_DEBUG_LOG_MESSAGE_LEN] = {0};
- int len = 0;
- int r = 0;
-
- // message title
- if (func_name && len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN, "%s\t", func_name);
- if (r < 0) rb_bug("ruby_debug_log returns %d\n", r);
- len += r;
- }
-
- // message
- if (fmt && len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- va_list args;
- va_start(args, fmt);
- r = vsnprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, fmt, args);
- va_end(args);
- if (r < 0) rb_bug("ruby_debug_log vsnprintf() returns %d", r);
- len += r;
- }
-
- // optional information
-
- // C location
- if (file && len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN, "\t%s:%d", pretty_filename(file), line);
- if (r < 0) rb_bug("ruby_debug_log returns %d\n", r);
- len += r;
- }
-
- // Ruby location
- int ruby_line;
- const char *ruby_file = rb_source_location_cstr(&ruby_line);
- if (len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- if (ruby_file) {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\t%s:%d", pretty_filename(ruby_file), ruby_line);
- }
- else {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\t");
- }
- if (r < 0) rb_bug("ruby_debug_log returns %d\n", r);
- len += r;
- }
-
- // ractor information
- if (ruby_single_main_ractor == NULL) {
- rb_ractor_t *cr = GET_RACTOR();
- if (r && len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\tr:#%u/%u",
- (unsigned int)rb_ractor_id(cr), GET_VM()->ractor.cnt);
- if (r < 0) rb_bug("ruby_debug_log returns %d\n", r);
- len += r;
- }
- }
-
- // thread information
- if (!rb_thread_alone()) {
- const rb_thread_t *th = GET_THREAD();
- if (r && len < MAX_DEBUG_LOG_MESSAGE_LEN) {
- r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\tth:%p", (void *)th);
- if (r < 0) rb_bug("ruby_debug_log returns %d\n", r);
- len += r;
- }
- }
-
- rb_nativethread_lock_lock(&debug_log.lock);
- {
- unsigned int cnt = debug_log.cnt++;
-
- if (ruby_debug_log_mode & ruby_debug_log_memory) {
- unsigned int index = cnt % MAX_DEBUG_LOG;
- char *dst = RUBY_DEBUG_LOG_MEM_ENTRY(index);
- strncpy(dst, buff, MAX_DEBUG_LOG_MESSAGE_LEN);
- }
- if (ruby_debug_log_mode & ruby_debug_log_stderr) {
- fprintf(stderr, "%4u: %s\n", cnt, buff);
- }
- if (ruby_debug_log_mode & ruby_debug_log_file) {
- fprintf(debug_log.output, "%u\t%s\n", cnt, buff);
- }
- }
- rb_nativethread_lock_unlock(&debug_log.lock);
-}
-
-// for debugger
-static void
-debug_log_dump(FILE *out, unsigned int n)
-{
- if (ruby_debug_log_mode & ruby_debug_log_memory) {
- unsigned int size = debug_log.cnt > MAX_DEBUG_LOG ? MAX_DEBUG_LOG : debug_log.cnt;
- unsigned int current_index = debug_log.cnt % MAX_DEBUG_LOG;
- if (n == 0) n = size;
- if (n > size) n = size;
-
- for (unsigned int i=0; i<n; i++) {
- int index = current_index - size + i;
- if (index < 0) index += MAX_DEBUG_LOG;
- VM_ASSERT(index <= MAX_DEBUG_LOG);
- const char *mesg = RUBY_DEBUG_LOG_MEM_ENTRY(index);;
- fprintf(out, "%4u: %s\n", debug_log.cnt - size + i, mesg);
- }
- }
- else {
- fprintf(stderr, "RUBY_DEBUG_LOG=mem is not specified.");
- }
-}
-
-// for debuggers
-
-void
-ruby_debug_log_print(unsigned int n)
-{
- debug_log_dump(stderr, n);
-}
-
-void
-ruby_debug_log_dump(const char *fname, unsigned int n)
-{
- FILE *fp = fopen(fname, "w");
- if (fp == NULL) {
- fprintf(stderr, "can't open %s. give up.\n", fname);
- }
- else {
- debug_log_dump(fp, n);
- fclose(fp);
- }
}
-#endif // #if RUBY_DEVEL
diff --git a/debug_counter.c b/debug_counter.c
index e7b0bb0acd..11ec57a961 100644
--- a/debug_counter.c
+++ b/debug_counter.c
@@ -8,14 +8,12 @@
**********************************************************************/
-#include "debug_counter.h"
#include "internal.h"
+#include "debug_counter.h"
#include <stdio.h>
#include <locale.h>
-#include "ruby/thread_native.h"
#if USE_DEBUG_COUNTER
-
static const char *const debug_counter_names[] = {
""
#define RB_DEBUG_COUNTER(name) #name,
@@ -25,28 +23,8 @@ static const char *const debug_counter_names[] = {
MJIT_SYMBOL_EXPORT_BEGIN
size_t rb_debug_counter[numberof(debug_counter_names)];
-void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);
MJIT_SYMBOL_EXPORT_END
-rb_nativethread_lock_t debug_counter_lock;
-
-__attribute__((constructor))
-static void
-debug_counter_setup(void)
-{
- rb_nativethread_lock_initialize(&debug_counter_lock);
-}
-
-void
-rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add)
-{
- rb_nativethread_lock_lock(&debug_counter_lock);
- {
- rb_debug_counter[(int)type] += add;
- }
- rb_nativethread_lock_unlock(&debug_counter_lock);
-}
-
int debug_counter_disable_show_at_exit = 0;
// note that this operation is not atomic.
@@ -114,8 +92,7 @@ rb_debug_counter_show_results(const char *msg)
VALUE
rb_debug_counter_show(RB_UNUSED_VAR(VALUE klass))
{
- rb_debug_counter_show_results("show_debug_counters");
- ruby_debug_counter_show_at_exit(FALSE);
+ rb_debug_counter_show_results("method call");
return Qnil;
}
@@ -134,9 +111,7 @@ debug_counter_show_results_at_exit(void)
rb_debug_counter_show_results("normal exit.");
}
}
-
#else
-
void
rb_debug_counter_show_results(const char *msg)
{
diff --git a/debug_counter.h b/debug_counter.h
index 3c20821db6..066533d1d1 100644
--- a/debug_counter.h
+++ b/debug_counter.h
@@ -14,61 +14,40 @@
#ifdef RB_DEBUG_COUNTER
-// method cache (IMC: inline method cache)
-RB_DEBUG_COUNTER(mc_inline_hit) // IMC hit
-RB_DEBUG_COUNTER(mc_inline_miss_klass) // IMC miss by different class
-RB_DEBUG_COUNTER(mc_inline_miss_invalidated) // IMC miss by invalidated ME
-RB_DEBUG_COUNTER(mc_inline_miss_empty) // IMC miss because prev is empty slot
-RB_DEBUG_COUNTER(mc_inline_miss_same_cc) // IMC miss, but same CC
-RB_DEBUG_COUNTER(mc_inline_miss_same_cme) // IMC miss, but same CME
-RB_DEBUG_COUNTER(mc_inline_miss_same_def) // IMC miss, but same definition
-RB_DEBUG_COUNTER(mc_inline_miss_diff) // IMC miss, different methods
-
-RB_DEBUG_COUNTER(mc_cme_complement) // number of acquiring complement CME
-RB_DEBUG_COUNTER(mc_cme_complement_hit) // number of cache hit for complemented CME
-
-RB_DEBUG_COUNTER(mc_search) // count for method lookup in class tree
-RB_DEBUG_COUNTER(mc_search_notfound) // method lookup, but not found
-RB_DEBUG_COUNTER(mc_search_super) // total traversed classes
-
-// callinfo
-RB_DEBUG_COUNTER(ci_packed) // number of packed CI
-RB_DEBUG_COUNTER(ci_kw) // non-packed CI w/ keywords
-RB_DEBUG_COUNTER(ci_nokw) // non-packed CI w/o keywords
-RB_DEBUG_COUNTER(ci_runtime) // creating temporary CI
-
-// callcache
-RB_DEBUG_COUNTER(cc_new) // number of CC
-RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
-RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
-RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
-
-RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
-RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
-
-RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-sublcasses
-RB_DEBUG_COUNTER(cc_invalidate_leaf_ccs) // corresponding CCS
-RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) // complimented cache (no-subclasses)
-RB_DEBUG_COUNTER(cc_invalidate_tree) // count for invalidating klass if klass has sublcasses
-RB_DEBUG_COUNTER(cc_invalidate_tree_cme) // cme if cme is found in this class or superclasses
-RB_DEBUG_COUNTER(cc_invalidate_tree_callable) // complimented cache (subclasses)
-RB_DEBUG_COUNTER(cc_invalidate_negative) // count for invalidating negative cache
-
-RB_DEBUG_COUNTER(ccs_free) // count for free'ing ccs
-RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs
-RB_DEBUG_COUNTER(ccs_found) // count for finding corresponding ccs on method lookup
-RB_DEBUG_COUNTER(ccs_not_found) // count for not found corresponding ccs on method lookup
-
-// vm_eval.c
-RB_DEBUG_COUNTER(call0_public)
-RB_DEBUG_COUNTER(call0_other)
-RB_DEBUG_COUNTER(gccct_hit)
-RB_DEBUG_COUNTER(gccct_miss)
-RB_DEBUG_COUNTER(gccct_null)
-
-// iseq
-RB_DEBUG_COUNTER(iseq_num) // number of total created iseq
-RB_DEBUG_COUNTER(iseq_cd_num) // number of total created cd (call_data)
+/*
+ * method cache (mc) counts.
+ *
+ * * mc_inline_hit/miss: inline mc hit/miss counts (VM send insn)
+ * * mc_global_hit/miss: global method cache hit/miss counts
+ * two types: (1) inline cache miss (VM send insn)
+ * (2) called from C (rb_funcall).
+ * * mc_global_state_miss: inline mc miss by global_state miss.
+ * * mc_class_serial_miss: ... by mc_class_serial_miss
+ * * mc_cme_complement: callable_method_entry complement counts.
+ * * mc_cme_complement_hit: callable_method_entry cache hit counts.
+ * * mc_search_super: search_method() call counts.
+ * * mc_miss_by_nome: inline mc miss by no ment.
+ * * mc_miss_by_distinct: ... by distinct ment.
+ * * mc_miss_by_refine: ... by ment being refined.
+ * * mc_miss_by_visi: ... by visibility change.
+ * * mc_miss_spurious: spurious inline mc misshit.
+ * * mc_miss_reuse_call: count of reuse of cc->call.
+ */
+RB_DEBUG_COUNTER(mc_inline_hit)
+RB_DEBUG_COUNTER(mc_inline_miss)
+RB_DEBUG_COUNTER(mc_global_hit)
+RB_DEBUG_COUNTER(mc_global_miss)
+RB_DEBUG_COUNTER(mc_global_state_miss)
+RB_DEBUG_COUNTER(mc_class_serial_miss)
+RB_DEBUG_COUNTER(mc_cme_complement)
+RB_DEBUG_COUNTER(mc_cme_complement_hit)
+RB_DEBUG_COUNTER(mc_search_super)
+RB_DEBUG_COUNTER(mc_miss_by_nome)
+RB_DEBUG_COUNTER(mc_miss_by_distinct)
+RB_DEBUG_COUNTER(mc_miss_by_refine)
+RB_DEBUG_COUNTER(mc_miss_by_visi)
+RB_DEBUG_COUNTER(mc_miss_spurious)
+RB_DEBUG_COUNTER(mc_miss_reuse_call)
/*
* call cache fastpath usage
@@ -82,7 +61,6 @@ RB_DEBUG_COUNTER(ccf_iseq_opt) /* has_opt == TRUE (has optional parameters), but
RB_DEBUG_COUNTER(ccf_iseq_kw1) /* vm_call_iseq_setup_kwparm_kwarg() */
RB_DEBUG_COUNTER(ccf_iseq_kw2) /* vm_call_iseq_setup_kwparm_nokwarg() */
RB_DEBUG_COUNTER(ccf_cfunc)
-RB_DEBUG_COUNTER(ccf_cfunc_with_frame)
RB_DEBUG_COUNTER(ccf_ivar) /* attr_reader */
RB_DEBUG_COUNTER(ccf_attrset) /* attr_writer */
RB_DEBUG_COUNTER(ccf_method_missing)
@@ -139,7 +117,7 @@ RB_DEBUG_COUNTER(ivar_set_ic_hit)
RB_DEBUG_COUNTER(ivar_set_ic_miss)
RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
-RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)
+RB_DEBUG_COUNTER(ivar_set_ic_miss_oorange)
RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
RB_DEBUG_COUNTER(ivar_get_base)
RB_DEBUG_COUNTER(ivar_set_base)
@@ -177,12 +155,6 @@ RB_DEBUG_COUNTER(gc_major_shady)
RB_DEBUG_COUNTER(gc_major_force)
RB_DEBUG_COUNTER(gc_major_oldmalloc)
-RB_DEBUG_COUNTER(gc_enter_start)
-RB_DEBUG_COUNTER(gc_enter_mark_continue)
-RB_DEBUG_COUNTER(gc_enter_sweep_continue)
-RB_DEBUG_COUNTER(gc_enter_rest)
-RB_DEBUG_COUNTER(gc_enter_finalizer)
-
RB_DEBUG_COUNTER(gc_isptr_trial)
RB_DEBUG_COUNTER(gc_isptr_range)
RB_DEBUG_COUNTER(gc_isptr_align)
@@ -192,7 +164,7 @@ RB_DEBUG_COUNTER(gc_isptr_maybe)
*
* * obj_newobj: newobj counts
* * obj_newobj_slowpath: newobj with slowpath counts
- * * obj_newobj_wb_unprotected: newobj for wb_unprotected.
+ * * obj_newobj_wb_unprotected: newobj for wb_unprotecte.
* * obj_free: obj_free() counts
* * obj_promote: promoted counts (oldgen)
* * obj_wb_unprotect: wb unprotect counts
@@ -310,9 +282,6 @@ RB_DEBUG_COUNTER(obj_imemo_throw_data)
RB_DEBUG_COUNTER(obj_imemo_ifunc)
RB_DEBUG_COUNTER(obj_imemo_memo)
RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
-RB_DEBUG_COUNTER(obj_imemo_callinfo)
-RB_DEBUG_COUNTER(obj_imemo_callcache)
-RB_DEBUG_COUNTER(obj_imemo_constcache)
/* ar_table */
RB_DEBUG_COUNTER(artable_hint_hit)
@@ -332,24 +301,14 @@ RB_DEBUG_COUNTER(theap_alloc)
RB_DEBUG_COUNTER(theap_alloc_fail)
RB_DEBUG_COUNTER(theap_evacuate)
-// VM sync
-RB_DEBUG_COUNTER(vm_sync_lock)
-RB_DEBUG_COUNTER(vm_sync_lock_enter)
-RB_DEBUG_COUNTER(vm_sync_lock_enter_nb)
-RB_DEBUG_COUNTER(vm_sync_lock_enter_cr)
-RB_DEBUG_COUNTER(vm_sync_barrier)
-
/* mjit_exec() counts */
RB_DEBUG_COUNTER(mjit_exec)
RB_DEBUG_COUNTER(mjit_exec_not_added)
+RB_DEBUG_COUNTER(mjit_exec_not_added_add_iseq)
RB_DEBUG_COUNTER(mjit_exec_not_ready)
RB_DEBUG_COUNTER(mjit_exec_not_compiled)
RB_DEBUG_COUNTER(mjit_exec_call_func)
-/* MJIT enqueue / unload */
-RB_DEBUG_COUNTER(mjit_add_iseq_to_process)
-RB_DEBUG_COUNTER(mjit_unload_units)
-
/* MJIT <-> VM frame push counts */
RB_DEBUG_COUNTER(mjit_frame_VM2VM)
RB_DEBUG_COUNTER(mjit_frame_VM2JT)
@@ -359,11 +318,9 @@ RB_DEBUG_COUNTER(mjit_frame_JT2VM)
/* MJIT cancel counters */
RB_DEBUG_COUNTER(mjit_cancel)
RB_DEBUG_COUNTER(mjit_cancel_ivar_inline)
-RB_DEBUG_COUNTER(mjit_cancel_exivar_inline)
RB_DEBUG_COUNTER(mjit_cancel_send_inline)
RB_DEBUG_COUNTER(mjit_cancel_opt_insn) /* CALL_SIMPLE_METHOD */
RB_DEBUG_COUNTER(mjit_cancel_invalidate_all)
-RB_DEBUG_COUNTER(mjit_cancel_leave)
/* rb_mjit_unit_list length */
RB_DEBUG_COUNTER(mjit_length_unit_queue)
@@ -384,10 +341,6 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)
#ifndef RUBY_DEBUG_COUNTER_H
#define RUBY_DEBUG_COUNTER_H 1
-#include "ruby/internal/config.h"
-#include <stddef.h> /* for size_t */
-#include "ruby/ruby.h" /* for VALUE */
-
#if !defined(__GNUC__) && USE_DEBUG_COUNTER
#error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"
#endif
@@ -401,51 +354,27 @@ enum rb_debug_counter_type {
#if USE_DEBUG_COUNTER
extern size_t rb_debug_counter[];
-RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor;
-RUBY_EXTERN void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);
inline static int
rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
{
if (cond) {
- if (ruby_single_main_ractor != NULL) {
- rb_debug_counter[(int)type] += add;
- }
- else {
- rb_debug_counter_add_atomic(type, add);
- }
+ rb_debug_counter[(int)type] += add;
}
return cond;
}
-inline static int
-rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)
-{
- // TODO: sync
- if (rb_debug_counter[(int)type] < num) {
- rb_debug_counter[(int)type] = num;
- return 1;
- }
- else {
- return 0;
- }
-}
-
VALUE rb_debug_counter_reset(VALUE klass);
VALUE rb_debug_counter_show(VALUE klass);
#define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
-#define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !!(cond))
-#define RB_DEBUG_COUNTER_ADD(type, num) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, (num), 1)
-#define RB_DEBUG_COUNTER_SETMAX(type, num) rb_debug_counter_max(RB_DEBUG_COUNTER_##type, (unsigned int)(num))
+#define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))
#else
#define RB_DEBUG_COUNTER_INC(type) ((void)0)
-#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!!(cond))
-#define RB_DEBUG_COUNTER_INC_IF(type, cond) (!!(cond))
-#define RB_DEBUG_COUNTER_ADD(type, num) ((void)0)
-#define RB_DEBUG_COUNTER_SETMAX(type, num) 0
+#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)
+#define RB_DEBUG_COUNTER_INC_IF(type, cond) (cond)
#endif
void rb_debug_counter_show_results(const char *msg);
diff --git a/defs/gmake.mk b/defs/gmake.mk
index f093fd4e26..226e1066a5 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -1,10 +1,9 @@
# -*- mode: makefile-gmake; indent-tabs-mode: t -*-
-reconfig config.status: export MAKE:=$(MAKE)
+gnumake = yes
override gnumake_recursive := $(if $(findstring n,$(firstword $(MFLAGS))),,+)
override mflags := $(filter-out -j%,$(MFLAGS))
MSPECOPT += $(if $(filter -j%,$(MFLAGS)),-j)
-nproc = $(subst -j,,$(filter -j%,$(MFLAGS)))
CHECK_TARGETS := great exam love check test check% test% btest%
# expand test targets, and those dependents
@@ -68,7 +67,7 @@ endif
ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \
btest-ruby test-knownbug test-basic \
test-testframework test-tool test-ruby test-all \
- test-spec test-bundler-prepare test-bundler test-bundler-parallel \
+ test-spec test-bundler-prepare test-bundler \
)
prev_test := $(if $(filter test-spec,$(ORDERED_TEST_TARGETS)),test-spec-precheck)
$(foreach test,$(ORDERED_TEST_TARGETS), \
@@ -91,8 +90,6 @@ sudo-precheck: test yes-test-testframework no-test-testframework
install-prereq: sudo-precheck
yes-test-all no-test-all: install
endif
-yes-test-bundler-parallel: PARALLELRSPECOPTS += $(if $(nproc),-n$(shell expr $(nproc) + $(nproc) / 2))
-
# Cross reference needs to parse all files at once
love install reinstall: RDOCFLAGS = --force-update
@@ -110,8 +107,6 @@ else
$(Q) $(RMALL) make_des_table*
endif
-config.status: $(wildcard config.cache)
-
STUBPROGRAM = rubystub$(EXEEXT)
IGNOREDPATTERNS = %~ .% %.orig %.rej \#%\#
SCRIPTBINDIR := $(if $(EXEEXT),,exec/)
@@ -246,43 +241,16 @@ HELP_EXTRA_TASKS = \
" update-github: merge master branch and push it to Pull Request [PR=1234]" \
""
-extract-gems: $(HAVE_BASERUBY:yes=update-gems)
-
-bundled-gems := $(shell sed '/^[ ]*\#/d;/^[ ]*$$/d;s/[ ][ ]*/-/;s/[ ].*//' $(srcdir)/gems/bundled_gems)
-
-update-gems: | $(patsubst %,gems/%.gem,$(bundled-gems))
-
-test-bundler-precheck: | $(srcdir)/.bundle/cache
-
-$(srcdir)/.bundle/cache:
- $(MAKEDIRS) $(@D) $(CACHE_DIR)
- $(LN_S) ../.downloaded-cache $@
-
-gems/%.gem:
- $(ECHO) Downloading bundled gem $*...
- $(Q) $(BASERUBY) -C "$(srcdir)" \
- -I./tool -rdownloader \
- -e 'gem = "$(@F)"' \
- -e 'old = Dir.glob("gems/"+gem.sub(/-[^-]*$$/, "-*.gem"))' \
- -e 'Downloader::RubyGems.download(gem, "gems", nil) and' \
- -e '(old.delete("gems/#{gem}"); !old.empty?) and' \
- -e 'File.unlink(*old) and' \
- -e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})'
-
-extract-gems: | $(patsubst %,.bundle/gems/%,$(bundled-gems))
-
-.bundle/gems/%: gems/%.gem | .bundle/gems
- $(ECHO) Extracting bundle gem $*...
- $(Q) $(BASERUBY) -C "$(srcdir)" \
- -Itool -rgem-unpack \
- -e 'Gem.unpack("gems/$(@F).gem", ".bundle/gems")'
-
-$(srcdir)/.bundle/gems:
- $(MAKEDIRS) $@
-
-ifneq ($(filter update-bundled_gems refresh-gems,$(MAKECMDGOALS)),)
+ifneq ($(filter refresh-gems,$(MAKECMDGOALS)),)
+extract-gems: update-gems
update-gems: update-bundled_gems
endif
+ifneq ($(filter extract-gems,$(MAKECMDGOALS)),)
+extract-gems: $(filter update-gems update-bundled_gems,$(MAKECMDGOALS))
+endif
+ifneq ($(filter update-gems,$(MAKECMDGOALS)),)
+update-gems: $(filter update-bundled_gems,$(MAKECMDGOALS))
+endif
ifeq ($(filter 0 1,$(words $(arch_flags))),)
$(foreach x,$(patsubst -arch=%,%,$(arch_flags)), \
@@ -338,22 +306,19 @@ rdoc\:%: PHONY
$(Q)$(RUNRUBY) $(srcdir)/libexec/ri --no-standard-docs --doc-dir=$(RDOCOUT) $(patsubst rdoc:%,%,$@)
test_%.rb test/%: programs PHONY
- $(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) -- $(patsubst test/%,%,$@)
+ +$(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) -- $(patsubst test/%,%,$@)
spec/bundler/%: PHONY
- $(Q)$(exec) $(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec --require spec_helper $(RSPECOPTS) $@
-
-spec/bundler: test-bundler-parallel
- $(Q)$(NULLCMD)
+ +$(Q)$(exec) $(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec --require spec_helper $(RSPECOPTS) $@
spec/%: programs exts PHONY
- $(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)
+ +$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)
benchmark/%: miniruby$(EXEEXT) update-benchmark-driver PHONY
$(Q)$(BASERUBY) -rrubygems -I$(srcdir)/benchmark/lib $(srcdir)/benchmark/benchmark-driver/exe/benchmark-driver \
--executables="compare-ruby::$(COMPARE_RUBY) -I$(EXTOUT)/common --disable-gem" \
--executables="built-ruby::$(BENCH_RUBY) --disable-gem" \
- $(srcdir)/$@ $(BENCH_OPTS) $(OPTS)
+ $(srcdir)/$@ $(OPTS)
clean-srcs-ext::
$(Q)$(RM) $(patsubst $(srcdir)/%,%,$(EXT_SRCS))
@@ -363,7 +328,7 @@ clean-srcs-extra::
ifneq ($(filter $(VCS),git),)
update-src::
- @$(BASERUBY) $(tooldir)/lib/colorize.rb pass "Latest commit hash = $(shell $(filter-out svn,$(VCS)) -C $(srcdir) rev-parse --short=10 HEAD)"
+ @$(BASERUBY) $(srcdir)/tool/lib/colorize.rb pass "Latest commit hash = $(shell $(filter-out svn,$(VCS)) -C $(srcdir) rev-parse --short=10 HEAD)"
endif
# Update dependencies and commit the updates to the current branch.
@@ -372,7 +337,7 @@ update-deps:
$(eval deps_dir := $(shell mktemp -d)/$(update_deps))
$(eval GIT_DIR := $(shell git -C $(srcdir) rev-parse --absolute-git-dir))
git --git-dir=$(GIT_DIR) worktree add $(deps_dir)
- cp $(tooldir)/config.guess $(tooldir)/config.sub $(deps_dir)/tool
+ cp $(srcdir)/tool/config.guess $(srcdir)/tool/config.sub $(deps_dir)/tool
[ -f config.status ] && cp config.status $(deps_dir)
cd $(deps_dir) && autoconf && \
exec ./configure -q -C --enable-load-relative --disable-install-doc --disable-rubygems 'optflags=-O0' 'debugflags=-save-temps=obj -g'
@@ -383,14 +348,3 @@ update-deps:
$(RMDIR) $(dir $(deps_dir))
git --git-dir=$(GIT_DIR) merge --no-edit --ff-only $(update_deps)
git --git-dir=$(GIT_DIR) branch --delete $(update_deps)
-
-# order-only-prerequisites doesn't work for $(RUBYSPEC_CAPIEXT)
-# because the same named directory exists in the source tree.
-$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(srcdir)/$(RUBYSPEC_CAPIEXT)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY_SO)
- $(ECHO) building $@
- $(Q) $(MAKEDIRS) $(@D)
- $(Q) $(DLDSHARED) $(XDLDFLAGS) $(XLDFLAGS) $(ARCH_FLAG) $(ARCH_FLAG) $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ $< $(LIBRUBY_SO)
- $(Q) $(RMALL) $@.*
-
-rubyspec-capiext: $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $(wildcard $(srcdir)/$(RUBYSPEC_CAPIEXT)/*.c)))
- @ $(NULLCMD)
diff --git a/dir.c b/dir.c
index c19ef637a1..6a926f438c 100644
--- a/dir.c
+++ b/dir.c
@@ -11,10 +11,12 @@
**********************************************************************/
-#include "ruby/internal/config.h"
+#include "ruby/encoding.h"
+#include "ruby/thread.h"
+#include "internal.h"
+#include "id.h"
+#include "encindex.h"
-#include <ctype.h>
-#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -34,10 +36,12 @@
# define USE_OPENDIR_AT 0
# endif
#endif
-
#if USE_OPENDIR_AT
# include <fcntl.h>
#endif
+#ifndef AT_FDCWD
+# define AT_FDCWD -1
+#endif
#undef HAVE_DIRENT_NAMLEN
#if defined HAVE_DIRENT_H && !defined _WIN32
@@ -64,6 +68,8 @@
# endif
#endif
+#include <errno.h>
+
#ifndef HAVE_STDLIB_H
char *getenv();
#endif
@@ -72,6 +78,28 @@ char *getenv();
char *strchr(char*,char);
#endif
+#include <ctype.h>
+
+#include "ruby/util.h"
+
+#define vm_initialized rb_cThread
+
+/* define system APIs */
+#ifdef _WIN32
+#undef chdir
+#define chdir(p) rb_w32_uchdir(p)
+#undef mkdir
+#define mkdir(p, m) rb_w32_umkdir((p), (m))
+#undef rmdir
+#define rmdir(p) rb_w32_urmdir(p)
+#undef opendir
+#define opendir(p) rb_w32_uopendir(p)
+#define ruby_getcwd() rb_w32_ugetcwd(NULL, 0)
+#define IS_WIN32 1
+#else
+#define IS_WIN32 0
+#endif
+
#ifdef HAVE_SYS_ATTR_H
#include <sys/attr.h>
#endif
@@ -95,53 +123,15 @@ char *strchr(char*,char);
#ifdef __APPLE__
# define NORMALIZE_UTF8PATH 1
-# include <sys/param.h>
-# include <sys/mount.h>
-# include <sys/vnode.h>
#else
# define NORMALIZE_UTF8PATH 0
#endif
-#include "encindex.h"
-#include "id.h"
-#include "internal.h"
-#include "internal/array.h"
-#include "internal/dir.h"
-#include "internal/encoding.h"
-#include "internal/error.h"
-#include "internal/file.h"
-#include "internal/gc.h"
-#include "internal/io.h"
-#include "internal/vm.h"
-#include "ruby/encoding.h"
-#include "ruby/ruby.h"
-#include "ruby/thread.h"
-#include "ruby/util.h"
-#include "builtin.h"
-
-#ifndef AT_FDCWD
-# define AT_FDCWD -1
-#endif
-
-#define vm_initialized rb_cThread
-
-/* define system APIs */
-#ifdef _WIN32
-# undef chdir
-# define chdir(p) rb_w32_uchdir(p)
-# undef mkdir
-# define mkdir(p, m) rb_w32_umkdir((p), (m))
-# undef rmdir
-# define rmdir(p) rb_w32_urmdir(p)
-# undef opendir
-# define opendir(p) rb_w32_uopendir(p)
-# define ruby_getcwd() rb_w32_ugetcwd(NULL, 0)
-# define IS_WIN32 1
-#else
-# define IS_WIN32 0
-#endif
-
#if NORMALIZE_UTF8PATH
+#include <sys/param.h>
+#include <sys/mount.h>
+#include <sys/vnode.h>
+
# if defined HAVE_FGETATTRLIST || !defined HAVE_GETATTRLIST
# define need_normalization(dirp, path) need_normalization(dirp)
# else
@@ -221,7 +211,6 @@ typedef enum {
#else
#define FNM_SHORTNAME 0
#endif
-#define FNM_GLOB_NOSORT 0x40
#define FNM_NOMATCH 1
#define FNM_ERROR 2
@@ -522,13 +511,40 @@ opendir_without_gvl(const char *path)
return opendir(path);
}
+/*
+ * call-seq:
+ * Dir.new( string ) -> aDir
+ * Dir.new( string, encoding: enc ) -> aDir
+ *
+ * Returns a new directory object for the named directory.
+ *
+ * The optional <i>encoding</i> keyword argument specifies the encoding of the directory.
+ * If not specified, the filesystem encoding is used.
+ */
static VALUE
-dir_initialize(rb_execution_context_t *ec, VALUE dir, VALUE dirname, VALUE enc)
+dir_initialize(int argc, VALUE *argv, VALUE dir)
{
struct dir_data *dp;
- VALUE orig;
+ rb_encoding *fsenc;
+ VALUE dirname, opt, orig;
+ static ID keyword_ids[1];
const char *path;
- rb_encoding *fsenc = NIL_P(enc) ? rb_filesystem_encoding() : rb_to_encoding(enc);
+
+ if (!keyword_ids[0]) {
+ keyword_ids[0] = rb_id_encoding();
+ }
+
+ fsenc = rb_filesystem_encoding();
+
+ rb_scan_args(argc, argv, "1:", &dirname, &opt);
+
+ if (!NIL_P(opt)) {
+ VALUE enc;
+ rb_get_kwargs(opt, keyword_ids, 0, 1, &enc);
+ if (enc != Qundef && !NIL_P(enc)) {
+ fsenc = rb_to_encoding(enc);
+ }
+ }
FilePathValue(dirname);
orig = rb_str_dup_frozen(dirname);
@@ -566,23 +582,35 @@ dir_initialize(rb_execution_context_t *ec, VALUE dir, VALUE dirname, VALUE enc)
return dir;
}
+/*
+ * call-seq:
+ * Dir.open( string ) -> aDir
+ * Dir.open( string, encoding: enc ) -> aDir
+ * Dir.open( string ) {| aDir | block } -> anObject
+ * Dir.open( string, encoding: enc ) {| aDir | block } -> anObject
+ *
+ * The optional <i>encoding</i> keyword argument specifies the encoding of the directory.
+ * If not specified, the filesystem encoding is used.
+ *
+ * With no block, <code>open</code> is a synonym for Dir::new. If a
+ * block is present, it is passed <i>aDir</i> as a parameter. The
+ * directory is closed at the end of the block, and Dir::open returns
+ * the value of the block.
+ */
static VALUE
-dir_s_open(rb_execution_context_t *ec, VALUE klass, VALUE dirname, VALUE enc)
+dir_s_open(int argc, VALUE *argv, VALUE klass)
{
struct dir_data *dp;
VALUE dir = TypedData_Make_Struct(klass, struct dir_data, &dir_data_type, dp);
- dir_initialize(ec, dir, dirname, enc);
+ dir_initialize(argc, argv, dir);
+ if (rb_block_given_p()) {
+ return rb_ensure(rb_yield, dir, dir_close, dir);
+ }
return dir;
}
-static VALUE
-dir_s_close(rb_execution_context_t *ec, VALUE klass, VALUE dir)
-{
- return dir_close(dir);
-}
-
NORETURN(static void dir_closed(void));
static void
@@ -1024,8 +1052,7 @@ chdir_restore(VALUE v)
* block. <code>chdir</code> blocks can be nested, but in a
* multi-threaded program an error will be raised if a thread attempts
* to open a <code>chdir</code> block while another thread has one
- * open or a call to <code>chdir</code> without a block occurs inside
- * a block passed to <code>chdir</code> (even in the same thread).
+ * open.
*
* Dir.chdir("/var/spool/mail")
* puts Dir.pwd
@@ -1064,10 +1091,8 @@ dir_s_chdir(int argc, VALUE *argv, VALUE obj)
}
if (chdir_blocking > 0) {
- if (rb_thread_current() != chdir_thread)
- rb_raise(rb_eRuntimeError, "conflicting chdir during another chdir block");
- if (!rb_block_given_p())
- rb_warn("conflicting chdir during another chdir block");
+ if (!rb_block_given_p() || rb_thread_current() != chdir_thread)
+ rb_warn("conflicting chdir during another chdir block");
}
if (rb_block_given_p()) {
@@ -1317,34 +1342,21 @@ sys_enc_warning_in(const char *func, const char *mesg, rb_encoding *enc)
#define sys_warning(val, enc) \
((flags & GLOB_VERBOSE) ? sys_enc_warning_in(RUBY_FUNCTION_NAME_STRING, (val), (enc)) :(void)0)
-static inline size_t
-glob_alloc_size(size_t x, size_t y)
+static inline void *
+glob_alloc_n(size_t x, size_t y)
{
size_t z;
if (rb_mul_size_overflow(x, y, SSIZE_MAX, &z)) {
rb_memerror(); /* or...? */
}
else {
- return z;
+ return malloc(z);
}
}
-static inline void *
-glob_alloc_n(size_t x, size_t y)
-{
- return malloc(glob_alloc_size(x, y));
-}
-
-static inline void *
-glob_realloc_n(void *p, size_t x, size_t y)
-{
- return realloc(p, glob_alloc_size(x, y));
-}
-
#define GLOB_ALLOC(type) ((type *)malloc(sizeof(type)))
#define GLOB_ALLOC_N(type, n) ((type *)glob_alloc_n(sizeof(type), n))
#define GLOB_REALLOC(ptr, size) realloc((ptr), (size))
-#define GLOB_REALLOC_N(ptr, n) glob_realloc_n(ptr, sizeof(*(ptr)), n)
#define GLOB_FREE(ptr) free(ptr)
#define GLOB_JUMP_TAG(status) (((status) == -1) ? rb_memerror() : rb_jump_tag(status))
@@ -1709,7 +1721,10 @@ glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)
tmp = GLOB_ALLOC(struct glob_pattern);
if (!tmp) {
- goto error;
+ error:
+ *tail = 0;
+ glob_free_pattern(list);
+ return 0;
}
tmp->type = dirsep ? MATCH_DIR : MATCH_ALL;
tmp->str = 0;
@@ -1717,11 +1732,6 @@ glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)
tmp->next = 0;
return list;
-
- error:
- *tail = 0;
- glob_free_pattern(list);
- return 0;
}
static void
@@ -1972,15 +1982,13 @@ rb_glob_warning(const char *path, VALUE a, const void *enc, int error)
}
#endif
-NORETURN(static VALUE glob_func_error(VALUE val));
-
static VALUE
glob_func_error(VALUE val)
{
struct glob_error_args *arg = (struct glob_error_args *)val;
VALUE path = rb_enc_str_new_cstr(arg->path, arg->enc);
rb_syserr_fail_str(arg->error, path);
- UNREACHABLE_RETURN(Qnil);
+ return Qnil;
}
static int
@@ -2000,17 +2008,8 @@ rb_glob_error(const char *path, VALUE a, const void *enc, int error)
return status;
}
-typedef struct rb_dirent {
- long d_namlen;
- const char *d_name;
-#ifdef _WIN32
- const char *d_altname;
-#endif
- uint8_t d_type;
-} rb_dirent_t;
-
static inline int
-dirent_match(const char *pat, rb_encoding *enc, const char *name, const rb_dirent_t *dp, int flags)
+dirent_match(const char *pat, rb_encoding *enc, const char *name, const struct dirent *dp, int flags)
{
if (fnmatch(pat, enc, name, flags) == 0) return 1;
#ifdef _WIN32
@@ -2035,7 +2034,7 @@ struct push_glob_args {
struct dirent_brace_args {
const char *name;
- const rb_dirent_t *dp;
+ const struct dirent *dp;
int flags;
};
@@ -2098,159 +2097,6 @@ static int push_caller(const char *path, VALUE val, void *enc);
static int ruby_brace_expand(const char *str, int flags, ruby_glob_func *func, VALUE arg,
rb_encoding *enc, VALUE var);
-static const size_t rb_dirent_name_offset =
- offsetof(rb_dirent_t, d_type) + sizeof(uint8_t);
-
-static rb_dirent_t *
-dirent_copy(const struct dirent *dp, rb_dirent_t *rdp)
-{
- if (!dp) return NULL;
- size_t namlen = NAMLEN(dp);
- const size_t altlen =
-#ifdef _WIN32
- dp->d_altlen ? dp->d_altlen + 1 :
-#endif
- 0;
- rb_dirent_t *newrdp = rdp;
- if (!rdp && !(newrdp = malloc(rb_dirent_name_offset + namlen + 1 + altlen)))
- return NULL;
- newrdp->d_namlen = namlen;
- if (!rdp) {
- char *name = (char *)newrdp + rb_dirent_name_offset;
- memcpy(name, dp->d_name, namlen);
- name[namlen] = '\0';
-#ifdef _WIN32
- newrdp->d_altname = NULL;
- if (altlen) {
- char *const altname = name + namlen + 1;
- memcpy(altname, dp->d_altname, altlen - 1);
- altname[altlen - 1] = '\0';
- newrdp->d_altname = altname;
- }
-#endif
- newrdp->d_name = name;
- }
- else {
- newrdp->d_name = dp->d_name;
-#ifdef _WIN32
- newrdp->d_altname = dp->d_altname;
-#endif
- }
-#ifdef DT_UNKNOWN
- newrdp->d_type = dp->d_type;
-#else
- newrdp->d_type = 0;
-#endif
- return newrdp;
-}
-
-typedef union {
- struct {
- DIR *dirp;
- rb_dirent_t ent;
- } nosort;
- struct {
- size_t count, idx;
- rb_dirent_t **entries;
- } sort;
-} ruby_glob_entries_t;
-
-static int
-glob_sort_cmp(const void *a, const void *b, void *e)
-{
- const rb_dirent_t *ent1 = *(void **)a;
- const rb_dirent_t *ent2 = *(void **)b;
- return strcmp(ent1->d_name, ent2->d_name);
-}
-
-static void
-glob_dir_finish(ruby_glob_entries_t *ent, int flags)
-{
- if (flags & FNM_GLOB_NOSORT) {
- closedir(ent->nosort.dirp);
- ent->nosort.dirp = NULL;
- }
- else if (ent->sort.entries) {
- for (size_t i = 0, count = ent->sort.count; i < count;) {
- GLOB_FREE(ent->sort.entries[i++]);
- }
- GLOB_FREE(ent->sort.entries);
- ent->sort.entries = NULL;
- ent->sort.count = ent->sort.idx = 0;
- }
-}
-
-static ruby_glob_entries_t *
-glob_opendir(ruby_glob_entries_t *ent, DIR *dirp, int flags, rb_encoding *enc)
-{
- MEMZERO(ent, ruby_glob_entries_t, 1);
- if (flags & FNM_GLOB_NOSORT) {
- ent->nosort.dirp = dirp;
- return ent;
- }
- else {
- void *newp;
- struct dirent *dp;
- size_t count = 0, capacity = 0;
- ent->sort.count = 0;
- ent->sort.idx = 0;
- ent->sort.entries = 0;
-#ifdef _WIN32
- if ((capacity = dirp->nfiles) > 0) {
- if (!(newp = GLOB_ALLOC_N(rb_dirent_t, capacity))) {
- closedir(dirp);
- return NULL;
- }
- ent->sort.entries = newp;
- }
-#endif
- while ((dp = READDIR(dirp, enc)) != NULL) {
- rb_dirent_t *rdp = dirent_copy(dp, NULL);
- if (!rdp) {
- goto nomem;
- }
- if (count >= capacity) {
- capacity += 256;
- if (!(newp = GLOB_REALLOC_N(ent->sort.entries, capacity)))
- goto nomem;
- ent->sort.entries = newp;
- }
- ent->sort.entries[count++] = rdp;
- ent->sort.count = count;
- }
- closedir(dirp);
- if (count < capacity) {
- if (!(newp = GLOB_REALLOC_N(ent->sort.entries, count))) {
- glob_dir_finish(ent, 0);
- return NULL;
- }
- ent->sort.entries = newp;
- }
- ruby_qsort(ent->sort.entries, ent->sort.count, sizeof(ent->sort.entries[0]),
- glob_sort_cmp, NULL);
- return ent;
- }
-
- nomem:
- glob_dir_finish(ent, 0);
- closedir(dirp);
- return NULL;
-}
-
-static rb_dirent_t *
-glob_getent(ruby_glob_entries_t *ent, int flags, rb_encoding *enc)
-{
- if (flags & FNM_GLOB_NOSORT) {
- return dirent_copy(READDIR(ent->nosort.dirp, enc), &ent->nosort.ent);
- }
- else if (ent->sort.idx < ent->sort.count) {
- return ent->sort.entries[ent->sort.idx++];
- }
- else {
- return NULL;
- }
-}
-
static int
glob_helper(
int fd,
@@ -2273,8 +2119,6 @@ glob_helper(
int escape = !(flags & FNM_NOESCAPE);
size_t pathlen = baselen + namelen;
- rb_check_stack_overflow();
-
for (cur = beg; cur < end; ++cur) {
struct glob_pattern *p = *cur;
if (p->type == RECURSIVE) {
@@ -2365,7 +2209,7 @@ glob_helper(
if (pathtype == path_noent) return 0;
if (magical || recursive) {
- rb_dirent_t *dp;
+ struct dirent *dp;
DIR *dirp;
# if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH
char *plainname = 0;
@@ -2404,18 +2248,7 @@ glob_helper(
if (is_case_sensitive(dirp, path) == 0)
flags |= FNM_CASEFOLD;
# endif
- ruby_glob_entries_t globent;
- if (!glob_opendir(&globent, dirp, flags, enc)) {
- status = 0;
- if (funcs->error) {
- status = (*funcs->error)(path, arg, enc, ENOMEM);
- }
- else {
- sys_warning(path, enc);
- }
- return status;
- }
- while ((dp = glob_getent(&globent, flags, enc)) != NULL) {
+ while ((dp = READDIR(dirp, enc)) != NULL) {
char *buf;
rb_pathtype_t new_pathtype = path_unknown;
const char *name;
@@ -2424,7 +2257,7 @@ glob_helper(
IF_NORMALIZE_UTF8PATH(VALUE utf8str = Qnil);
name = dp->d_name;
- namlen = dp->d_namlen;
+ namlen = NAMLEN(dp);
if (recursive && name[0] == '.') {
++dotfile;
if (namlen == 1) {
@@ -2519,7 +2352,7 @@ glob_helper(
if (status) break;
}
- glob_dir_finish(&globent, flags);
+ closedir(dirp);
}
else if (plain) {
struct glob_pattern **copy_beg, **copy_end, **cur2;
@@ -2689,7 +2522,7 @@ ruby_glob(const char *path, int flags, ruby_glob_func *func, VALUE arg)
{
ruby_glob_funcs_t funcs;
funcs.match = func;
- funcs.error = 0;
+ funcs.error = NULL;
return ruby_glob0(path, AT_FDCWD, 0, flags & ~GLOB_VERBOSE,
&funcs, arg, rb_ascii8bit_encoding());
}
@@ -2818,7 +2651,7 @@ ruby_brace_glob_with_enc(const char *str, int flags, ruby_glob_func *func, VALUE
flags &= ~GLOB_VERBOSE;
args.funcs.match = func;
- args.funcs.error = 0;
+ args.funcs.error = NULL;
args.value = arg;
args.flags = flags;
return ruby_brace_expand(str, flags, glob_brace, (VALUE)&args, enc, Qfalse);
@@ -2895,67 +2728,177 @@ rb_push_glob(VALUE str, VALUE base, int flags) /* '\0' is delimiter */
}
static VALUE
-dir_globs(VALUE args, VALUE base, int flags)
+dir_globs(long argc, const VALUE *argv, VALUE base, int flags)
{
VALUE ary = rb_ary_new();
long i;
- for (i = 0; i < RARRAY_LEN(args); ++i) {
+ for (i = 0; i < argc; ++i) {
int status;
- VALUE str = RARRAY_AREF(args, i);
+ VALUE str = argv[i];
FilePathValue(str);
status = push_glob(ary, str, base, flags);
if (status) GLOB_JUMP_TAG(status);
}
- RB_GC_GUARD(args);
return ary;
}
-static VALUE
-dir_glob_option_base(VALUE base)
+static void
+dir_glob_options(VALUE opt, VALUE *base, int *flags)
{
- if (base == Qundef || NIL_P(base)) {
- return Qnil;
+ ID kw[2];
+ VALUE args[2];
+ kw[0] = rb_intern("base");
+ if (flags) kw[1] = rb_intern("flags");
+ rb_get_kwargs(opt, kw, 0, flags ? 2 : 1, args);
+ if (args[0] == Qundef || NIL_P(args[0])) {
+ *base = Qnil;
}
#if USE_OPENDIR_AT
- if (rb_typeddata_is_kind_of(base, &dir_data_type)) {
- return base;
+ else if (rb_typeddata_is_kind_of(args[0], &dir_data_type)) {
+ *base = args[0];
}
#endif
- FilePathValue(base);
- if (!RSTRING_LEN(base)) return Qnil;
- return base;
-}
-
-static int
-dir_glob_option_sort(VALUE sort)
-{
- return (sort ? 0 : FNM_GLOB_NOSORT);
+ else {
+ FilePathValue(args[0]);
+ if (!RSTRING_LEN(args[0])) args[0] = Qnil;
+ *base = args[0];
+ }
+ if (flags && args[1] != Qundef) {
+ *flags = NUM2INT(args[1]);
+ }
}
+/*
+ * call-seq:
+ * Dir[ string [, string ...] [, base: path] ] -> array
+ *
+ * Equivalent to calling
+ * <code>Dir.glob([</code><i>string,...</i><code>], 0)</code>.
+ *
+ */
static VALUE
-dir_s_aref(rb_execution_context_t *ec, VALUE obj, VALUE args, VALUE base, VALUE sort)
+dir_s_aref(int argc, VALUE *argv, VALUE obj)
{
- const int flags = dir_glob_option_sort(sort);
- base = dir_glob_option_base(base);
- if (RARRAY_LEN(args) == 1) {
- return rb_push_glob(RARRAY_AREF(args, 0), base, flags);
+ VALUE opts, base;
+ argc = rb_scan_args(argc, argv, "*:", NULL, &opts);
+ dir_glob_options(opts, &base, NULL);
+ if (argc == 1) {
+ return rb_push_glob(argv[0], base, 0);
}
- return dir_globs(args, base, flags);
+ return dir_globs(argc, argv, base, 0);
}
+/*
+ * call-seq:
+ * Dir.glob( pattern, [flags], [base: path] ) -> array
+ * Dir.glob( pattern, [flags], [base: path] ) { |filename| block } -> nil
+ *
+ * Expands +pattern+, which is a pattern string or an Array of pattern
+ * strings, and returns an array containing the matching filenames.
+ * If a block is given, calls the block once for each matching filename,
+ * passing the filename as a parameter to the block.
+ *
+ * The optional +base+ keyword argument specifies the base directory for
+ * interpreting relative pathnames instead of the current working directory.
+ * As the results are not prefixed with the base directory name in this
+ * case, you will need to prepend the base directory name if you want real
+ * paths.
+ *
+ * Note that the pattern is not a regexp, it's closer to a shell glob.
+ * See File::fnmatch for the meaning of the +flags+ parameter.
+ * Case sensitivity depends on your system (File::FNM_CASEFOLD is ignored),
+ * as does the order in which the results are returned.
+ *
+ * <code>*</code>::
+ * Matches any file. Can be restricted by other values in the glob.
+ * Equivalent to <code>/ .* /mx</code> in regexp.
+ *
+ * <code>*</code>:: Matches all files
+ * <code>c*</code>:: Matches all files beginning with <code>c</code>
+ * <code>*c</code>:: Matches all files ending with <code>c</code>
+ * <code>\*c\*</code>:: Match all files that have <code>c</code> in them
+ * (including at the beginning or end).
+ *
+ * Note, this will not match Unix-like hidden files (dotfiles). In order
+ * to include those in the match results, you must use the
+ * File::FNM_DOTMATCH flag or something like <code>"{*,.*}"</code>.
+ *
+ * <code>**</code>::
+ * Matches directories recursively.
+ *
+ * <code>?</code>::
+ * Matches any one character. Equivalent to <code>/.{1}/</code> in regexp.
+ *
+ * <code>[set]</code>::
+ * Matches any one character in +set+. Behaves exactly like character sets
+ * in Regexp, including set negation (<code>[^a-z]</code>).
+ *
+ * <code>{p,q}</code>::
+ * Matches either literal <code>p</code> or literal <code>q</code>.
+ * Equivalent to pattern alternation in regexp.
+ *
+ * Matching literals may be more than one character in length. More than
+ * two literals may be specified.
+ *
+ * <code> \\ </code>::
+ * Escapes the next metacharacter.
+ *
+ * Note that this means you cannot use backslash on windows as part of a
+ * glob, i.e. <code>Dir["c:\\foo*"]</code> will not work, use
+ * <code>Dir["c:/foo*"]</code> instead.
+ *
+ * Examples:
+ *
+ * Dir["config.?"] #=> ["config.h"]
+ * Dir.glob("config.?") #=> ["config.h"]
+ * Dir.glob("*.[a-z][a-z]") #=> ["main.rb"]
+ * Dir.glob("*.[^r]*") #=> ["config.h"]
+ * Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"]
+ * Dir.glob("*") #=> ["config.h", "main.rb"]
+ * Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"]
+ * Dir.glob(["*.rb", "*.h"]) #=> ["main.rb", "config.h"]
+ *
+ * rbfiles = File.join("**", "*.rb")
+ * Dir.glob(rbfiles) #=> ["main.rb",
+ * # "lib/song.rb",
+ * # "lib/song/karaoke.rb"]
+ *
+ * Dir.glob(rbfiles, base: "lib") #=> ["song.rb",
+ * # "song/karaoke.rb"]
+ *
+ * libdirs = File.join("**", "lib")
+ * Dir.glob(libdirs) #=> ["lib"]
+ *
+ * librbfiles = File.join("**", "lib", "**", "*.rb")
+ * Dir.glob(librbfiles) #=> ["lib/song.rb",
+ * # "lib/song/karaoke.rb"]
+ *
+ * librbfiles = File.join("**", "lib", "*.rb")
+ * Dir.glob(librbfiles) #=> ["lib/song.rb"]
+ */
static VALUE
-dir_s_glob(rb_execution_context_t *ec, VALUE obj, VALUE str, VALUE rflags, VALUE base, VALUE sort)
+dir_s_glob(int argc, VALUE *argv, VALUE obj)
{
- VALUE ary = rb_check_array_type(str);
- const int flags = NUM2INT(rflags) | dir_glob_option_sort(sort);
- base = dir_glob_option_base(base);
+ VALUE str, rflags, ary, opts, base;
+ int flags;
+
+ argc = rb_scan_args(argc, argv, "11:", &str, &rflags, &opts);
+ if (argc == 2)
+ flags = NUM2INT(rflags);
+ else
+ flags = 0;
+ dir_glob_options(opts, &base, &flags);
+
+ ary = rb_check_array_type(str);
if (NIL_P(ary)) {
ary = rb_push_glob(str, base, flags);
}
else {
- ary = dir_globs(ary, base, flags);
+ VALUE v = ary;
+ ary = dir_globs(RARRAY_LEN(v), RARRAY_CONST_PTR(v), base, flags);
+ RB_GC_GUARD(v);
}
if (rb_block_given_p()) {
@@ -3080,7 +3023,7 @@ dir_s_each_child(int argc, VALUE *argv, VALUE io)
/*
* call-seq:
- * dir.each_child {| filename | block } -> dir
+ * dir.each_child {| filename | block } -> nil
* dir.each_child -> an_enumerator
*
* Calls the block once for each entry except for "." and ".." in
@@ -3346,11 +3289,16 @@ rb_file_directory_p(void)
}
#endif
-/* :nodoc: */
+/*
+ * call-seq:
+ * Dir.exists?(file_name) -> true or false
+ *
+ * Deprecated method. Don't use.
+ */
static VALUE
rb_dir_exists_p(VALUE obj, VALUE fname)
{
- rb_warn_deprecated("Dir.exists?", "Dir.exist?");
+ rb_warning("Dir.exists? is a deprecated name, use Dir.exist? instead");
return rb_file_directory_p(obj, fname);
}
@@ -3451,11 +3399,13 @@ Init_Dir(void)
rb_include_module(rb_cDir, rb_mEnumerable);
rb_define_alloc_func(rb_cDir, dir_s_alloc);
+ rb_define_singleton_method(rb_cDir, "open", dir_s_open, -1);
rb_define_singleton_method(rb_cDir, "foreach", dir_foreach, -1);
rb_define_singleton_method(rb_cDir, "entries", dir_entries, -1);
rb_define_singleton_method(rb_cDir, "each_child", dir_s_each_child, -1);
rb_define_singleton_method(rb_cDir, "children", dir_s_children, -1);
+ rb_define_method(rb_cDir,"initialize", dir_initialize, -1);
rb_define_method(rb_cDir,"fileno", dir_fileno, 0);
rb_define_method(rb_cDir,"path", dir_path, 0);
rb_define_method(rb_cDir,"to_path", dir_path, 0);
@@ -3481,6 +3431,8 @@ Init_Dir(void)
rb_define_singleton_method(rb_cDir,"unlink", dir_s_rmdir, 1);
rb_define_singleton_method(rb_cDir,"home", dir_s_home, -1);
+ rb_define_singleton_method(rb_cDir,"glob", dir_s_glob, -1);
+ rb_define_singleton_method(rb_cDir,"[]", dir_s_aref, -1);
rb_define_singleton_method(rb_cDir,"exist?", rb_file_directory_p, 1);
rb_define_singleton_method(rb_cDir,"exists?", rb_dir_exists_p, 1);
rb_define_singleton_method(rb_cDir,"empty?", rb_dir_s_empty_p, 1);
@@ -3535,5 +3487,3 @@ Init_Dir(void)
*/
rb_file_const("FNM_SHORTNAME", INT2FIX(FNM_SHORTNAME));
}
-
-#include "dir.rbinc"
diff --git a/dir.rb b/dir.rb
deleted file mode 100644
index eb46305013..0000000000
--- a/dir.rb
+++ /dev/null
@@ -1,136 +0,0 @@
-class Dir
- # Dir.open( string ) -> aDir
- # Dir.open( string, encoding: enc ) -> aDir
- # Dir.open( string ) {| aDir | block } -> anObject
- # Dir.open( string, encoding: enc ) {| aDir | block } -> anObject
- #
- # The optional <i>encoding</i> keyword argument specifies the encoding of the directory.
- # If not specified, the filesystem encoding is used.
- #
- # With no block, <code>open</code> is a synonym for Dir::new. If a
- # block is present, it is passed <i>aDir</i> as a parameter. The
- # directory is closed at the end of the block, and Dir::open returns
- # the value of the block.
- def self.open(name, encoding: nil, &block)
- dir = Primitive.dir_s_open(name, encoding)
- if block
- begin
- yield dir
- ensure
- Primitive.dir_s_close(dir)
- end
- else
- dir
- end
- end
-
- # Dir.new( string ) -> aDir
- # Dir.new( string, encoding: enc ) -> aDir
- #
- # Returns a new directory object for the named directory.
- #
- # The optional <i>encoding</i> keyword argument specifies the encoding of the directory.
- # If not specified, the filesystem encoding is used.
- def initialize(name, encoding: nil)
- Primitive.dir_initialize(name, encoding)
- end
-
- # Dir[ string [, string ...] [, base: path] [, sort: true] ] -> array
- #
- # Equivalent to calling
- # <code>Dir.glob([</code><i>string,...</i><code>], 0)</code>.
- def self.[](*args, base: nil, sort: true)
- Primitive.dir_s_aref(args, base, sort)
- end
-
- # Dir.glob( pattern, [flags], [base: path] [, sort: true] ) -> array
- # Dir.glob( pattern, [flags], [base: path] [, sort: true] ) { |filename| block } -> nil
- #
- # Expands +pattern+, which is a pattern string or an Array of pattern
- # strings, and returns an array containing the matching filenames.
- # If a block is given, calls the block once for each matching filename,
- # passing the filename as a parameter to the block.
- #
- # The optional +base+ keyword argument specifies the base directory for
- # interpreting relative pathnames instead of the current working directory.
- # As the results are not prefixed with the base directory name in this
- # case, you will need to prepend the base directory name if you want real
- # paths.
- #
- # The results which matched single wildcard or character set are sorted in
- # binary ascending order, unless false is given as the optional +sort+
- # keyword argument. The order of an Array of pattern strings and braces
- # are preserved.
- #
- # Note that the pattern is not a regexp, it's closer to a shell glob.
- # See File::fnmatch for the meaning of the +flags+ parameter.
- # Case sensitivity depends on your system (File::FNM_CASEFOLD is ignored).
- #
- # <code>*</code>::
- # Matches any file. Can be restricted by other values in the glob.
- # Equivalent to <code>/ .* /mx</code> in regexp.
- #
- # <code>*</code>:: Matches all files
- # <code>c*</code>:: Matches all files beginning with <code>c</code>
- # <code>*c</code>:: Matches all files ending with <code>c</code>
- # <code>\*c\*</code>:: Match all files that have <code>c</code> in them
- # (including at the beginning or end).
- #
- # Note, this will not match Unix-like hidden files (dotfiles). In order
- # to include those in the match results, you must use the
- # File::FNM_DOTMATCH flag or something like <code>"{*,.*}"</code>.
- #
- # <code>**</code>::
- # Matches directories recursively if followed by <code>/</code>. If
- # this path segment contains any other characters, it is the same as the
- # usual <code>*</code>.
- #
- # <code>?</code>::
- # Matches any one character. Equivalent to <code>/.{1}/</code> in regexp.
- #
- # <code>[set]</code>::
- # Matches any one character in +set+. Behaves exactly like character sets
- # in Regexp, including set negation (<code>[^a-z]</code>).
- #
- # <code>{p,q}</code>::
- # Matches either literal <code>p</code> or literal <code>q</code>.
- # Equivalent to pattern alternation in regexp.
- #
- # Matching literals may be more than one character in length. More than
- # two literals may be specified.
- #
- # <code> \\ </code>::
- # Escapes the next metacharacter.
- #
- # Note that this means you cannot use backslash on windows as part of a
- # glob, i.e. <code>Dir["c:\\foo*"]</code> will not work, use
- # <code>Dir["c:/foo*"]</code> instead.
- #
- # Examples:
- #
- # Dir["config.?"] #=> ["config.h"]
- # Dir.glob("config.?") #=> ["config.h"]
- # Dir.glob("*.[a-z][a-z]") #=> ["main.rb"]
- # Dir.glob("*.[^r]*") #=> ["config.h"]
- # Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"]
- # Dir.glob("*") #=> ["config.h", "main.rb"]
- # Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"]
- # Dir.glob(["*.rb", "*.h"]) #=> ["main.rb", "config.h"]
- #
- # Dir.glob("**/*.rb") #=> ["main.rb",
- # # "lib/song.rb",
- # # "lib/song/karaoke.rb"]
- #
- # Dir.glob("**/*.rb", base: "lib") #=> ["song.rb",
- # # "song/karaoke.rb"]
- #
- # Dir.glob("**/lib") #=> ["lib"]
- #
- # Dir.glob("**/lib/**/*.rb") #=> ["lib/song.rb",
- # # "lib/song/karaoke.rb"]
- #
- # Dir.glob("**/lib/*.rb") #=> ["lib/song.rb"]
- def self.glob(pattern, _flags = 0, flags: _flags, base: nil, sort: true)
- Primitive.dir_s_glob(pattern, flags, base, sort)
- end
-end
diff --git a/dln.c b/dln.c
index caaa685a6e..c40cbfc6ac 100644
--- a/dln.c
+++ b/dln.c
@@ -1244,8 +1244,6 @@ rb_w32_check_imported(HMODULE ext, HMODULE mine)
#endif
#ifdef USE_DLN_DLOPEN
-# include "ruby/internal/stdbool.h"
-# include "internal/warnings.h"
COMPILER_WARNING_PUSH
#if defined(__clang__) || GCC_VERSION_SINCE(4, 2, 0)
COMPILER_WARNING_IGNORED(-Wpedantic)
@@ -1254,8 +1252,7 @@ static bool
dln_incompatible_library_p(void *handle)
{
void *ex = dlsym(handle, EXTERNAL_PREFIX"ruby_xmalloc");
- void *const fp = (void *)ruby_xmalloc;
- return ex && ex != fp;
+ return ex && ex != ruby_xmalloc;
}
COMPILER_WARNING_POP
#endif
diff --git a/dln.h b/dln.h
index 99106fd22b..d98b2607e2 100644
--- a/dln.h
+++ b/dln.h
@@ -1,5 +1,3 @@
-#ifndef DLN_H
-#define DLN_H
/**********************************************************************
dln.h -
@@ -11,7 +9,24 @@
**********************************************************************/
-#include "ruby/defines.h" /* for RUBY_SYMBOL_EXPORT_BEGIN */
+#ifndef DLN_H
+#define DLN_H
+
+#ifdef __cplusplus
+# ifndef HAVE_PROTOTYPES
+# define HAVE_PROTOTYPES 1
+# endif
+# ifndef HAVE_STDARG_PROTOTYPES
+# define HAVE_STDARG_PROTOTYPES 1
+# endif
+#endif
+
+#undef _
+#ifdef HAVE_PROTOTYPES
+# define _(args) args
+#else
+# define _(args) ()
+#endif
RUBY_SYMBOL_EXPORT_BEGIN
diff --git a/dln_find.c b/dln_find.c
index ca62441631..b08612764e 100644
--- a/dln_find.c
+++ b/dln_find.c
@@ -248,14 +248,26 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,
/* now append the file name */
i = fnlen;
if (fspace < i) {
- goto toolong;
+ toolong:
+ PATHNAME_TOO_LONG();
+ goto next;
}
fspace -= i;
memcpy(bp, fname, i + 1);
#if defined(DOSISH)
if (exe_flag && !ext) {
- goto needs_extension;
+ needs_extension:
+ for (j = 0; j < sizeof(extension) / sizeof(extension[0]); j++) {
+ if (fspace < strlen(extension[j])) {
+ PATHNAME_TOO_LONG();
+ continue;
+ }
+ strlcpy(bp + i, extension[j], fspace);
+ if (stat(fbuf, &st) == 0)
+ return fbuf;
+ }
+ goto next;
}
#endif
@@ -272,25 +284,7 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,
if (*ep == '\0') {
return NULL;
}
- continue;
-
- toolong:
- PATHNAME_TOO_LONG();
- goto next;
-#if defined(DOSISH)
- needs_extension:
- for (j = 0; j < sizeof(extension) / sizeof(extension[0]); j++) {
- if (fspace < strlen(extension[j])) {
- PATHNAME_TOO_LONG();
- continue;
- }
- strlcpy(bp + i, extension[j], fspace);
- if (stat(fbuf, &st) == 0)
- return fbuf;
- }
- goto next;
-#endif
/* otherwise try the next component in the search path */
}
}
diff --git a/doc/.document b/doc/.document
index ad17aada6d..d739c9f6bc 100644
--- a/doc/.document
+++ b/doc/.document
@@ -1,4 +1,3 @@
-*.md
*.rdoc
NEWS-*
syntax
diff --git a/doc/ChangeLog-1.9.3 b/doc/ChangeLog-1.9.3
index d6aaea7f19..eecfc44325 100644
--- a/doc/ChangeLog-1.9.3
+++ b/doc/ChangeLog-1.9.3
@@ -92076,7 +92076,7 @@ Mon Sep 1 16:59:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (rb_thread_start_0): should not error_print() within
terminated thread, because $stderr used by it might be
- overridden now. [ruby-dev:21280]
+ overriden now. [ruby-dev:21280]
Sun Aug 31 22:46:55 2003 WATANABE Hirofumi <eban@ruby-lang.org>
diff --git a/doc/ChangeLog-2.0.0 b/doc/ChangeLog-2.0.0
index b51d742203..a1a79b8dca 100644
--- a/doc/ChangeLog-2.0.0
+++ b/doc/ChangeLog-2.0.0
@@ -9758,7 +9758,7 @@ Thu Aug 23 16:20:04 2012 Koichi Sasada <ko1@atdot.net>
are b10.
If flonum is activated, then USE_FLONUM macro is 1.
I'll write detailed in this technique on
- https://bugs.ruby-lang.org/projects/ruby-master/wiki/Flonum_tech
+ https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/Flonum_tech
* benchmark/bmx_temp.rb: add an benchmark for simple
Float calculation.
@@ -13008,7 +13008,7 @@ Thu Jun 7 15:53:03 2012 Koichi Sasada <ko1@atdot.net>
* .gdbinit: add function `trace_machine_instructions' to trace
in native machine assemble.
- See https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB
for more details.
Wed Jun 6 21:31:21 2012 Tanaka Akira <akr@fsij.org>
@@ -14711,7 +14711,7 @@ Fri Apr 27 01:45:05 2012 NARUSE, Yui <naruse@ruby-lang.org>
(22) main thread waits at gvl_yield:112 (native_cond_wait)
As described above, the main thread can't escape from
rb_threadptr_execute_interrupts_common.
- See extended memo: http://bugs.ruby-lang.org/projects/ruby-master/wiki/R35480_ExtendedMemo
+ See extended memo: http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/R35480_ExtendedMemo
Fri Apr 27 07:15:07 2012 Tanaka Akira <akr@fsij.org>
diff --git a/doc/ChangeLog-2.1.0 b/doc/ChangeLog-2.1.0
index 5b670b31c9..76edfd3ce7 100644
--- a/doc/ChangeLog-2.1.0
+++ b/doc/ChangeLog-2.1.0
@@ -3596,7 +3596,7 @@ Tue Oct 22 19:19:05 2013 Koichi Sasada <ko1@atdot.net>
maintains all pages.
For example, pages are allocated from the heap_pages.
- See https://bugs.ruby-lang.org/projects/ruby-master/wiki/GC_design
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png
for more details.
@@ -8612,7 +8612,7 @@ Wed Jul 17 14:31:13 2013 Koichi Sasada <ko1@atdot.net>
(4) heap::sorted is an array of "slots", sorted by an address of
slot::body.
- See https://bugs.ruby-lang.org/projects/ruby-master/wiki/GC_design
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
for more details (figure).
* gc.c: Avoid "heaps" terminology. It is ambiguous.
diff --git a/doc/NEWS-2.0.0 b/doc/NEWS-2.0.0
index 712d3a693b..414789dcd1 100644
--- a/doc/NEWS-2.0.0
+++ b/doc/NEWS-2.0.0
@@ -116,7 +116,8 @@ with all sufficient information, see the ChangeLog file.
corresponding method in the prepending module.
* added Module.prepended and Module.prepend_features, similar
to included and append_features.
- * added Module#refine, which extends a class or module locally. [experimental]
+ * added Module#refine, which extends a class or module locally.
+ [experimental]
* extended method:
* Module#define_method accepts a UnboundMethod from a Module.
* Module#const_get accepts a qualified constant string, e.g.
diff --git a/doc/NEWS-2.2.0 b/doc/NEWS-2.2.0
index 98e252ec77..5564c606ae 100644
--- a/doc/NEWS-2.2.0
+++ b/doc/NEWS-2.2.0
@@ -90,7 +90,7 @@ with all sufficient information, see the ChangeLog file.
* Method
* New methods:
- * Method#curry([ arity ]) returns a curried Proc.
+ * Method#curry([arity]) returns a curried Proc.
* Method#super_method returns a Method of superclass, which would be called
when super is used.
@@ -250,7 +250,8 @@ with all sufficient information, see the ChangeLog file.
* Logger::Application is extracted to logger-application gem. It's unmaintain code.
* ObjectSpace (after requiring "objspace")
- * ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE). [Bug #8984]
+ * ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE).
+ [Bug #8984]
* Prime
* incompatible changes:
@@ -352,7 +353,8 @@ with all sufficient information, see the ChangeLog file.
* VM
* Use frozen string literals for Hash#[] and Hash#[]=
* Fast keyword arguments passing [Feature #10440]
- * Allow to receive huge splatted array by a rest argument [Feature #10440]
+ * Allow to receive huge splatted array by a rest argument
+ [Feature #10440]
* Process
* Process creation methods, such as spawn(), uses vfork() system call.
diff --git a/doc/NEWS-2.3.0 b/doc/NEWS-2.3.0
index 065515257e..489aba4a89 100644
--- a/doc/NEWS-2.3.0
+++ b/doc/NEWS-2.3.0
@@ -16,19 +16,20 @@ with all sufficient information, see the ChangeLog file or Redmine
* frozen-string-literal pragma:
- * new pragma, frozen-string-literal has been experimentally introduced. [Feature #8976]
+ * new pragma, frozen-string-literal has been experimentally introduced.
+ [Feature #8976]
* besides, --enable/--disable=frozen-string-literal options also have
been introduced. [Feature #8976]
* command line options --debug or --debug=frozen-string-literal enable
additional debugging mode which shows created location with at frozen
- object error (RuntimeError). [Feature #11725]
+ object error (RuntimeError).
+ [Feature #11725]
* safe navigation operator:
* new method call syntax, `object&.foo', method #foo is called on
- `object' if it is not nil. [Feature #11537]
-
- This is similar to `try!' in Active Support, except:
+ `object' if it is not nil.
+ this is similar to `try!' in Active Support, except:
* method name is syntactically required
obj.try! {} # valid
obj&. {} # syntax error
@@ -37,6 +38,7 @@ with all sufficient information, see the ChangeLog file or Redmine
obj&.foo(bar()) # bar() is conditionally evaluated
* attribute assignment is valid
obj&.attr += 1
+ [Feature #11537]
* the did_you_mean gem:
@@ -51,13 +53,15 @@ with all sufficient information, see the ChangeLog file or Redmine
* indented here document:
* new string literal, here document starts with `<<~`.
- refer doc/syntax/literals.rdoc for more details. [Feature #9098]
+ refer doc/syntax/literals.rdoc for more details.
+ [Feature #9098]
=== Core classes updates (outstanding ones only)
* ARGF
- * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock. [Feature #11358]
+ * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock.
+ [Feature #11358]
* Array
@@ -74,7 +78,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Enumerable
- * Enumerable#grep_v is added as inverse version of Enumerable#grep. [Feature #11049]
+ * Enumerable#grep_v is added as inverse version of Enumerable#grep.
+ [Feature #11049]
* Enumerable#chunk_while [Feature #10769]
* Enumerator::Lazy
@@ -100,7 +105,8 @@ with all sufficient information, see the ChangeLog file or Redmine
this affect only files opened as binary. [Feature #11218]
* new option parameter `flags' is added.
- this parameter is bitwise-ORed to oflags generated by normal mode argument. [Feature #11253]
+ this parameter is bitwise-ORed to oflags generated by normal mode argument.
+ [Feature #11253]
* IO#advise no longer raises Errno::ENOSYS in cases where it was
detected at build time but not available at runtime. [Feature #11806]
@@ -119,7 +125,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Numeric
* Numeric#positive? and Numeric#negative? are added, which return
- true when the receiver is positive and negative respectively. [Feature #11151]
+ true when the receiver is positive and negative respectively.
+ [Feature #11151]
* Proc
@@ -145,9 +152,11 @@ with all sufficient information, see the ChangeLog file or Redmine
* String
- * String#+@ and String#-@ are added to get mutable/frozen strings. [Feature #11782]
+ * String#+@ and String#-@ are added to get mutable/frozen strings.
+ [Feature #11782]
- * String.new now accepts new option parameter `encoding'. [Feature #11785]
+ * String.new now accepts new option parameter `encoding'.
+ [Feature #11785]
* Struct
* Struct#dig [Feature #11688]
@@ -224,10 +233,12 @@ with all sufficient information, see the ChangeLog file or Redmine
* OpenSSL
* OpenSSL::SSL::SSLSocket#accept_nonblock and
- OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`. [Feature #10532]
+ OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`.
+ [Feature #10532]
* Pathname
- * Pathname#descend and Pathname#ascend supported blockless form. [Feature #11052]
+ * Pathname#descend and Pathname#ascend supported blockless form.
+ [Feature #11052]
* Socket
* Socket#connect_nonblock, Socket#accept_nonblock,
@@ -235,7 +246,8 @@ with all sufficient information, see the ChangeLog file or Redmine
BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock,
BasicSocket#sendmsg_nonblock all support `exception: false` to return
:wait_readable or :wait_writable symbols instead of raising
- IO::WaitReadable or IO::WaitWritable exceptions [Feature #10532] [Feature #11229]
+ IO::WaitReadable or IO::WaitWritable exceptions
+ [Feature #10532] [Feature #11229]
* BasicSocket#recv and BasicSocket#recv_nonblock allow an output
String buffer argument like IO#read and IO#read_nonblock to reduce
GC overhead [Feature #11242]
@@ -243,7 +255,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* StringIO
* In read-only mode, StringIO#set_encoding no longer sets the encoding
of its buffer string. Setting the encoding of the string directly
- without StringIO#set_encoding may cause unpredictable behavior now. [Bug #11827]
+ without StringIO#set_encoding may cause unpredictable behavior now.
+ [Bug #11827]
* timeout
* Object#timeout is now warned as deprecated when called.
@@ -284,7 +297,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* default value of Net::HTTP#open_timeout is now 60 (was nil).
* Net::Telnet
- * Net::Telnet is extracted to net-telnet gem. It's unmaintain code. [Feature #11083]
+ * Net::Telnet is extracted to net-telnet gem. It's unmaintain code.
+ [Feature #11083]
* Psych
* Updated to Psych 2.0.17
@@ -316,7 +330,8 @@ with all sufficient information, see the ChangeLog file or Redmine
class is already defined but its superclass does not match the given
superclass, as well as definitions in ruby level.
-* rb_timespec_now() is added to fetch current datetime as struct timespec. [Feature #11558]
+* rb_timespec_now() is added to fetch current datetime as struct timespec.
+ [Feature #11558]
* rb_time_timespec_new() is added to create a time object with epoch,
nanosecond, and UTC/localtime/time offset arguments. [Feature #11558]
@@ -339,9 +354,11 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Implementation improvements
-* Optimize Proc#call to eliminate method frame construction. [Feature #11569]
+* Optimize Proc#call to eliminate method frame construction.
+ [Feature #11569]
-* Reconsidering method entry data structure. [Bug #11278]
+* Reconsidering method entry data structure.
+ [Bug #11278]
* Introducing new table data structure for ID keys tables used by
method table and so on. New table structure is simple and fast
@@ -350,11 +367,13 @@ with all sufficient information, see the ChangeLog file or Redmine
* Machine code level tuning for object allocation and method calling
code. r52099, r52254
-* RubyVM::InstructionSequence is extended for future improvement. [Feature #11788]
+* RubyVM::InstructionSequence is extended for future improvement.
+ [Feature #11788]
* Case dispatch is now optimized for all special constant literals
including nil, true, and false. Previously, only literal strings,
- symbols, integers and floats compiled to optimized case dispatch. [Feature #11769]
+ symbols, integers and floats compiled to optimized case dispatch.
+ [Feature #11769]
* Instance variables on non-pure Ruby classes (T_DATA, T_FILE,
etc..) is less expensive to store than before. [Feature #11170]
@@ -363,7 +382,8 @@ with all sufficient information, see the ChangeLog file or Redmine
constant-time. Previously, Struct elements beyond the first 10
elements used a linear scan. [Feature #10585]
-* The Set class got several speed up. [Misc #10754], [r52591]
+* The Set class got several speed up.
+ [Misc #10754], [r52591]
* Socket and I/O-related improvements
@@ -377,8 +397,8 @@ with all sufficient information, see the ChangeLog file or Redmine
addition to reducing expensive exceptions. [Feature #11044]
* (Linux-only) waiting on a single FD anywhere in the stdlib no longer
- uses select(2), making it immune to slowdowns with high-numbered
- FDs. [Feature #11081] [Feature #11377]
+ uses select(2), making it immune to slowdowns with high-numbered FDs.
+ [Feature #11081] [Feature #11377]
* CGI.escapeHTML is optimized with C extension.
https://github.com/ruby/ruby/pull/1164
diff --git a/doc/NEWS-2.4.0 b/doc/NEWS-2.4.0
index 8a02f03809..28e855cde1 100644
--- a/doc/NEWS-2.4.0
+++ b/doc/NEWS-2.4.0
@@ -14,13 +14,16 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Language changes
-* Multiple assignment in conditional expression is now allowed. [Feature #10617]
+* Multiple assignment in conditional expression is now allowed.
+ [Feature #10617]
* Refinements is enabled at method by Symbol#to_proc. [Feature #9451]
-* Refinements is enabled with Kernel#send and BasicObject#__send__. [Feature #11476]
+* Refinements is enabled with Kernel#send and BasicObject#__send__.
+ [Feature #11476]
-* Rescue modifier now applicable to method arguments. [Feature #12686]
+* Rescue modifier now applicable to method arguments.
+ [Feature #12686]
* Toplevel return is now allowed. [Feature #4840]
@@ -29,21 +32,17 @@ with all sufficient information, see the ChangeLog file or Redmine
* Array
* Array#concat [Feature #12333]
-
Now takes multiple arguments.
* Array#max and Array#min. [Feature #12172]
-
This may cause a tiny incompatibility: if you redefine
Enumerable#max and call max to an Array, your redefinition will be
now ignored. You should also redefine Array#max.
* Array#pack [Feature #12754]
-
Now takes optional argument `buffer:' to reuse already allocated buffer.
* Array#sum [Feature #12217]
-
This is different from Enumerable#sum in that Array#sum doesn't depend on
the definition of each method.
@@ -57,7 +56,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Enumerable
- * Enumerable#chunk called without a block now return an Enumerator [Feature #2172]
+ * Enumerable#chunk called without a block now return an Enumerator
+ [Feature #2172]
* Enumerable#sum [Feature #12217]
* Enumerable#uniq [Feature #11090]
@@ -95,7 +95,6 @@ with all sufficient information, see the ChangeLog file or Redmine
* Integer#round now takes an optional keyword argument, half option, and the
default behavior is round-up now. [Bug #12548] [Bug #12958]
-
half option can be one of :even, :up, and :down. [Feature #12953]
* IO
@@ -105,7 +104,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Kernel
- * Kernel#clone now takes an optional keyword argument, freeze flag. [Feature #12300]
+ * Kernel#clone now takes an optional keyword argument, freeze flag.
+ [Feature #12300]
* MatchData
@@ -138,7 +138,6 @@ with all sufficient information, see the ChangeLog file or Redmine
for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.
* Regexp#match? [Feature #8110]
-
This returns bool and doesn't save backref.
* Update to Onigmo 6.0.0.
@@ -154,7 +153,6 @@ with all sufficient information, see the ChangeLog file or Redmine
* String#casecmp? [Feature #12786]
* String#concat, String#prepend [Feature #12333]
-
Now takes multiple arguments.
* String#each_line, String#lines now takes an optional keyword argument,
@@ -191,7 +189,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Thread
- * Thread#report_on_exception and Thread.report_on_exception [Feature #6647]
+ * Thread#report_on_exception and Thread.report_on_exception
+ [Feature #6647]
* TracePoint
@@ -201,7 +200,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* New module named Warning is introduced. By default it has only
one singleton method, named warn. This makes it possible for
- 3rd-party libraries to control the way warnings are handled. [Feature #12299]
+ 3rd-party libraries to control the way warnings are handled.
+ [Feature #12299]
=== Stdlib updates (outstanding ones only)
@@ -215,7 +215,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* IPAddr
- * IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails. [Bug #12799]
+ * IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails.
+ [Bug #12799]
* IRB
@@ -255,7 +256,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Readline
- * Readline.quoting_detection_proc and Readline.quoting_detection_proc= [Feature #12659]
+ * Readline.quoting_detection_proc and Readline.quoting_detection_proc=
+ [Feature #12659]
* REXML
@@ -265,7 +267,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* set
- * New methods: Set#compare_by_identity and Set#compare_by_identity?. [Feature #12210]
+ * New methods: Set#compare_by_identity and Set#compare_by_identity?.
+ [Feature #12210]
* WEBrick
@@ -274,7 +277,6 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Compatibility issues (excluding feature bug fixes)
* Array#sum and Enumerable#sum are implemented. [Feature #12217]
-
Ruby itself has no compatibility problem because Ruby didn't have sum method
for arrays before Ruby 2.4.
However many third party gems, activesupport, facets, simple_stats, etc,
@@ -284,7 +286,6 @@ with all sufficient information, see the ChangeLog file or Redmine
be perfectly compatible with all of them.
* Fixnum and Bignum are unified into Integer [Feature #12005]
-
Fixnum class and Bignum class is removed.
Integer class is changed from abstract class to concrete class.
For example, 0 is an instance of Integer: 0.class returns Integer.
@@ -299,7 +300,6 @@ with all sufficient information, see the ChangeLog file or Redmine
* String/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of
Unicode, not only for ASCII. [Feature #10085]
-
No change is needed if the data is in ASCII anyway or if the limitation
to ASCII was only tolerated while waiting for a more extensive implementation.
A change (using the :ascii option) is needed in cases where Unicode data
@@ -307,7 +307,6 @@ with all sufficient information, see the ChangeLog file or Redmine
A good example of this are internationalized domain names.
* TRUE / FALSE / NIL
-
These constants are now obsoleted. [Feature #12574]
Use true / false / nil resp. instead.
@@ -333,7 +332,8 @@ with all sufficient information, see the ChangeLog file or Redmine
* Shellwords.shellwords (shellsplit) treats the backslash as escape
character only when followed by one of the following characters:
- $ ` " \ <newline> [Bug #10055]
+ $ ` " \ <newline>
+ [Bug #10055]
* Time
@@ -348,13 +348,11 @@ with all sufficient information, see the ChangeLog file or Redmine
* Tk
* Tk is removed from stdlib. [Feature #8539]
-
https://github.com/ruby/tk is the new upstream.
* XMLRPC
* XMLRPC is removed from stdlib, and bundled as gem. [Feature #12160][ruby-core:74239]
-
https://github.com/ruby/xmlrpc is the new upstream.
* Zlib
@@ -392,8 +390,8 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Miscellaneous changes
* ChangeLog is removed from the repository.
-
It is generated from commit messages in Subversion by `make dist`.
Also note that now people should follow Git style commit message.
- The template is written at {Short (50 chars or less) summary of
- changes}[https://git-scm.com/book/ch5-2.html]. [Feature #12283]
+ The template is written at
+ [Short (50 chars or less) summary of changes](https://git-scm.com/book/ch5-2.html).
+ [Feature #12283]
diff --git a/doc/NEWS-2.6.0 b/doc/NEWS-2.6.0
index 6e70696de2..2303a5bd41 100644
--- a/doc/NEWS-2.6.0
+++ b/doc/NEWS-2.6.0
@@ -50,24 +50,24 @@ sufficient information, see the ChangeLog file or Redmine
=== Core classes updates (outstanding ones only)
-[Array]
+Array::
- [New methods]
+ New methods::
* Added Array#union and Array#difference instance methods. [Feature #14097]
- [Modified method]
+ Modified method::
* Array#to_h now accepts a block that maps elements to new key/value pairs. [Feature #15143]
- [Aliased methods]
+ Aliased methods::
* Array#filter is a new alias for Array#select. [Feature #13784]
* Array#filter! is a new alias for Array#select!. [Feature #13784]
-[Binding]
+Binding::
- [New method]
+ New method::
* Added Binding#source_location. [Feature #14230]
@@ -79,97 +79,97 @@ sufficient information, see the ChangeLog file or Redmine
binding's source location [Bug #4352]. So, users should use this
newly-introduced method instead of Kernel#eval.
-[Dir]
+Dir::
- [New methods]
+ New methods::
* Added Dir#each_child and Dir#children instance methods. [Feature #13969]
-[Enumerable]
+Enumerable::
- [New method]
+ New method::
* Enumerable#chain returns an enumerator object that iterates over the
elements of the receiver and then those of each argument
in sequence. [Feature #15144]
- [Modified method]
+ Modified method::
* Enumerable#to_h now accepts a block that maps elements to new key/value pairs. [Feature #15143]
- [Aliased method]
+ Aliased method::
* Enumerable#filter is a new alias for Enumerable#select. [Feature #13784]
-[Enumerator::ArithmeticSequence]
+Enumerator::ArithmeticSequence::
* This is a new class to represent a generator of an arithmetic sequence,
that is a number sequence defined by a common difference. It can be used
for representing what is similar to Python's slice. You can get an
instance of this class from Numeric#step and Range#step.
-[Enumerator::Chain]
+Enumerator::Chain::
* This is a new class to represent a chain of enumerables that works as a
single enumerator, generated by such methods as Enumerable#chain and
Enumerator#+.
-[Enumerator::Lazy]
+Enumerator::Lazy::
- [Aliased method]
+ Aliased method::
* Enumerator::Lazy#filter is a new alias for
Enumerator::Lazy#select. [Feature #13784]
-[Enumerator]
+Enumerator::
- [New methods]
+ New methods::
* Enumerator#+ returns an enumerator object that iterates over the
elements of the receiver and then those of the other operand. [Feature #15144]
-[ENV]
+ENV::
- [Modified method]
+ Modified method::
* ENV.to_h now accepts a block that maps names and values to new keys and values. [Feature #15143]
-[Exception]
+Exception::
- [New options]
+ New options::
* Exception#full_message takes +:highlight+ and +:order+
options. [Bug #14324]
-[Hash]
+Hash::
- [Modified methods]
+ Modified methods::
* Hash#merge, Hash#merge!, and Hash#update now accept multiple
arguments. [Feature #15111]
* Hash#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143]
- [Aliased methods]
+ Aliased methods::
* Hash#filter is a new alias for Hash#select. [Feature #13784]
* Hash#filter! is a new alias for Hash#select!. [Feature #13784]
-[IO]
+IO::
- [New option]
+ New option::
* Added new mode character <code>'x'</code> to open files for exclusive
access. [Feature #11258]
-[Kernel]
+Kernel::
- [Aliased method]
+ Aliased method::
* Kernel#then is a new alias for Kernel#yield_self. [Feature #14594]
- [New options]
+ New options::
* Kernel#Complex, Kernel#Float, Kernel#Integer, and
Kernel#Rational take an +:exception+ option to specify the way of
@@ -178,98 +178,98 @@ sufficient information, see the ChangeLog file or Redmine
* Kernel#system takes an +:exception+ option to raise an exception
on failure. [Feature #14386]
- [Incompatible changes]
+ Incompatible changes::
* Kernel#system and Kernel#exec do not close non-standard file descriptors
(the default of the +:close_others+ option is changed to +false+,
but we still set the +FD_CLOEXEC+ flag on descriptors we
create). [Misc #14907]
-[KeyError]
+KeyError::
- [New options]
+ New options::
* KeyError.new accepts +:receiver+ and +:key+ options to set receiver and
key in Ruby code. [Feature #14313]
-[Method]
+Method::
- [New methods]
+ New methods::
* Added Method#<< and Method#>> for Proc composition. [Feature #6284]
-[Module]
+Module::
- [Modified methods]
+ Modified methods::
* Module#method_defined?, Module#private_method_defined?, and
Module#protected_method_defined? now accept the second
parameter as optional. If it is +true+ (the default value), it checks
ancestor modules/classes, or checks only the class itself. [Feature #14944]
-[NameError]
+NameError::
- [New option]
+ New option::
* NameError.new accepts a +:receiver+ option to set receiver in Ruby
code. [Feature #14313]
-[NilClass]
+NilClass::
- [New method]
+ New method::
* NilClass#=~ is added for compatibility. [Feature #15231]
-[NoMethodError]
+NoMethodError::
- [New option]
+ New option::
* NoMethodError.new accepts a +:receiver+ option to set receiver in Ruby
code. [Feature #14313]
-[Numeric]
+Numeric::
- [Incompatible changes]
+ Incompatible changes::
* Numeric#step now returns an instance of the Enumerator::ArithmeticSequence
class rather than one of the Enumerator class.
-[OpenStruct]
+OpenStruct::
- [Modified method]
+ Modified method::
* OpenStruct#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143]
-[Proc]
+Proc::
- [New methods]
+ New methods::
* Added Proc#<< and Proc#>> for Proc composition. [Feature #6284]
- [Incompatible changes]
+ Incompatible changes::
* Proc#call doesn't change <code>$SAFE</code> any more. [Feature #14250]
-[Random]
+Random::
- [New method]
+ New method::
* Added Random.bytes. [Feature #4938]
-[Range]
+Range::
- [New method]
+ New method::
* Added Range#% instance method. [Feature #14697]
- [Incompatible changes]
+ Incompatible changes::
* Range#=== now uses the +#cover?+ instead of the +#include?+ method. [Feature #14575]
* Range#cover? now accepts a Range object. [Feature #14473]
* Range#step now returns an instance of the Enumerator::ArithmeticSequence
class rather than one of the Enumerator class.
-[Regexp/String]
+Regexp/String::
* Update Unicode version from 10.0.0 to 11.0.0. [Feature #14802]
@@ -278,9 +278,9 @@ sufficient information, see the ChangeLog file or Redmine
* Update Emoji version from 5.0 to 11.0.0 [Feature #14802]
-[RubyVM::AbstractSyntaxTree]
+RubyVM::AbstractSyntaxTree::
- [New methods]
+ New methods::
* RubyVM::AbstractSyntaxTree.parse parses a given string and returns AST
nodes. [experimental]
@@ -291,46 +291,46 @@ sufficient information, see the ChangeLog file or Redmine
* RubyVM::AbstractSyntaxTree.of returns AST nodes of the given proc or
method. [experimental]
-[RubyVM]
+RubyVM::
- [New method]
+ New method::
* RubyVM.resolve_feature_path identifies the file that will be loaded by
"require(feature)". [experimental] [Feature #15230]
-[String]
+String::
* String#crypt is now deprecated. [Feature #14915]
- [New features]
+ New features::
* String#split yields each substring to the block if given. [Feature #4780]
-[Struct]
+Struct::
- [Modified method]
+ Modified method::
* Struct#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143]
- [Aliased method]
+ Aliased method::
* Struct#filter is a new alias for Struct#select. [Feature #13784]
-[Time]
+Time::
- [New features]
+ New features::
* Time.new and Time#getlocal accept a timezone object as well as
a UTC offset string. Time#+, Time#-, and Time#succ also preserve
the timezone. [Feature #14850]
-[TracePoint]
+TracePoint::
- [New features]
+ New features::
* "script_compiled" event is supported. [Feature #15287]
- [New methods]
+ New methods::
* TracePoint#parameters [Feature #14694]
@@ -338,23 +338,23 @@ sufficient information, see the ChangeLog file or Redmine
* TracePoint#eval_script [Feature #15287]
- [Modified method]
+ Modified method::
* TracePoint#enable accepts new keywords "target:" and
"target_line:". [Feature #15289]
=== Stdlib updates (outstanding ones only)
-[BigDecimal]
+BigDecimal::
Update to version 1.4.0. This version includes several compatibility
issues, see Compatibility issues section below for details.
- [Modified method]
+ Modified method::
* BigDecimal() accepts the new keyword "exception:" similar to Float().
- [Note for the differences among recent versions]
+ Note for the differences among recent versions::
You should want to know the differences among recent versions of bigdecimal.
Please select the suitable version of bigdecimal according to the following
@@ -371,13 +371,13 @@ sufficient information, see the ChangeLog file or Redmine
* 2.0.0 will be released soon after releasing Ruby 2.6.0. This version
will not have the BigDecimal.new method.
-[Bundler]
+Bundler::
* Add Bundler to Standard Library. [Feature #12733]
* Use 1.17.2, the latest stable version.
-[Coverage]
+Coverage::
A oneshot_lines mode is added. [Feature #15022]
@@ -386,7 +386,7 @@ sufficient information, see the ChangeLog file or Redmine
A hook for each line is fired at most once, and after it is fired
the hook flag is removed, i.e., it runs with zero overhead.
- [New options]
+ New options::
* Add +:oneshot_lines+ keyword argument to Coverage.start.
@@ -394,20 +394,20 @@ sufficient information, see the ChangeLog file or Redmine
If +clear+ is true, it clears the counters to zero.
If +stop+ is true, it disables coverage measurement.
- [New methods]
+ New methods::
* Coverage.line_stub, which is a simple helper function that
creates the "stub" of line coverage from a given source code.
-[CSV]
+CSV::
* Upgrade to 3.0.2. This includes performance improvements especially
for writing. Writing is about 2 times faster.
See https://github.com/ruby/csv/blob/master/NEWS.md.
-[ERB]
+ERB::
- [New options]
+ New options::
* Add +:trim_mode+ and +:eoutvar+ keyword arguments to ERB.new.
Now non-keyword arguments other than the first one are softly deprecated
@@ -416,15 +416,15 @@ sufficient information, see the ChangeLog file or Redmine
* erb command's <tt>-S</tt> option is deprecated, and will be removed
in the next version.
-[FileUtils]
+FileUtils::
- [New methods]
+ New methods::
* FileUtils#cp_lr. [Feature #4189]
-[Matrix]
+Matrix::
- [New methods]
+ New methods::
* Matrix#antisymmetric?, Matrix#skew_symmetric?
@@ -436,30 +436,30 @@ sufficient information, see the ChangeLog file or Redmine
* Vector#[]=
-[Net]
+Net::
- [New options]
+ New options::
* Add +:write_timeout+ keyword argument to Net::HTTP.new. [Feature #13396]
- [New methods]
+ New methods::
* Add Net::HTTP#write_timeout and Net::HTTP#write_timeout=. [Feature #13396]
- [New constant]
+ New constant::
* Add Net::HTTPClientException to deprecate Net::HTTPServerException,
whose name is misleading. [Bug #14688]
-[NKF]
+NKF::
* Upgrade to nkf v2.1.5
-[Psych]
+Psych::
* Upgrade to Psych 3.1.0
-[RDoc]
+RDoc::
* Become about 2 times faster.
@@ -478,12 +478,12 @@ sufficient information, see the ChangeLog file or Redmine
* Fix many parsing bugs.
-[REXML]
+REXML::
* Upgrade to REXML 3.1.9.
See https://github.com/ruby/rexml/blob/master/NEWS.md.
- [Improved some XPath implementations]
+ Improved some XPath implementations::
* <code>concat()</code> function: Stringify all arguments before concatenating.
@@ -493,7 +493,7 @@ sufficient information, see the ChangeLog file or Redmine
* Support <code>"*:#{ELEMENT_NAME}"</code> syntax in XPath 2.0.
- [Fixed some XPath implementations]
+ Fixed some XPath implementations::
* <code>"//#{ELEMENT_NAME}[#{POSITION}]"</code> case
@@ -517,14 +517,14 @@ sufficient information, see the ChangeLog file or Redmine
* <code>"name(#{NODE_SET})"</code> case
-[RSS]
+RSS::
- [New options]
+ New options::
* RSS::Parser.parse now accepts options as Hash. +:validate+ ,
+:ignore_unknown_element+ , +:parser_class+ options are available.
-[RubyGems]
+RubyGems::
* Upgrade to RubyGems 3.0.1
@@ -532,32 +532,32 @@ sufficient information, see the ChangeLog file or Redmine
* https://blog.rubygems.org/2018/12/23/3.0.1-released.html
-[Set]
+Set::
- [Aliased method]
+ Aliased method::
* Set#filter! is a new alias for Set#select!. [Feature #13784]
-[URI]
+URI::
- [New constant]
+ New constant::
* Add URI::File to handle the file URI scheme. [Feature #14035]
=== Compatibility issues (excluding feature bug fixes)
-[Dir]
+Dir::
* Dir.glob with <code>'\0'</code>-separated pattern list will be deprecated,
and is now warned. [Feature #14643]
-[File]
+File::
* File.read, File.binread, File.write, File.binwrite, File.foreach, and
File.readlines do not invoke external commands even if the path starts
with the pipe character <code>'|'</code>. [Feature #14245]
-[Object]
+Object::
* Object#=~ is deprecated. [Feature #15231]
@@ -580,7 +580,7 @@ sufficient information, see the ChangeLog file or Redmine
* thwait
* tracer
-[BigDecimal]
+BigDecimal::
* The following methods are removed.
@@ -595,7 +595,7 @@ sufficient information, see the ChangeLog file or Redmine
* BigDecimal.new will be removed in version 2.0.
-[Pathname]
+Pathname::
* Pathname#read, Pathname#binread, Pathname#write, Pathname#binwrite,
Pathname#each_line and Pathname#readlines do not invoke external
@@ -650,12 +650,12 @@ sufficient information, see the ChangeLog file or Redmine
in their names. This eliminates the burden of each teeny upgrade on the
platform that users need to rebuild every extension library.
- [Before]
+ Before::
* libruby.2.6.0.dylib
* libruby.2.6.dylib -> libruby.2.6.0.dylib
* libruby.dylib -> libruby.2.6.0.dylib
- [After]
+ After::
* libruby.2.6.dylib
* libruby.dylib -> libruby.2.6.dylib
diff --git a/doc/NEWS-2.7.0 b/doc/NEWS-2.7.0
deleted file mode 100644
index 3e6b98c1fd..0000000000
--- a/doc/NEWS-2.7.0
+++ /dev/null
@@ -1,826 +0,0 @@
-# -*- rdoc -*-
-
-= NEWS for Ruby 2.7.0
-
-This document is a list of user visible feature changes made between
-releases except for bug fixes.
-
-Note that each entry is kept so brief that no reason behind or reference
-information is supplied with. For a full list of changes with all
-sufficient information, see the ChangeLog file or Redmine
-(e.g. <tt>https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER</tt>).
-
-== Changes since the 2.6.0 release
-
-=== Language changes
-
-==== Pattern matching
-
-* Pattern matching is introduced as an experimental feature. [Feature #14912]
-
- case [0, [1, 2, 3]]
- in [a, [b, *c]]
- p a #=> 0
- p b #=> 1
- p c #=> [2, 3]
- end
-
- case {a: 0, b: 1}
- in {a: 0, x: 1}
- :unreachable
- in {a: 0, b: var}
- p var #=> 1
- end
-
- case -1
- in 0 then :unreachable
- in 1 then :unreachable
- end #=> NoMatchingPatternError
-
- json = <<END
- {
- "name": "Alice",
- "age": 30,
- "children": [{ "name": "Bob", "age": 2 }]
- }
- END
-
- JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: name, age: age}]}
-
- p name #=> "Bob"
- p age #=> 2
-
- JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: "Charlie", age: age}]}
- #=> NoMatchingPatternError
-
-* See the following slides for more details:
- * https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7
- * Note that the slides are slightly obsolete.
-
-* The warning against pattern matching can be suppressed with
- {-W:no-experimental option}[#label-Warning+option].
-
-==== The spec of keyword arguments is changed towards 3.0
-
-* Automatic conversion of keyword arguments and positional arguments is
- deprecated, and conversion will be removed in Ruby 3. [Feature #14183]
-
- * When a method call passes a Hash at the last argument, and when it
- passes no keywords, and when the called method accepts keywords,
- a warning is emitted. To continue treating the hash as keywords,
- add a double splat operator to avoid the warning and ensure
- correct behavior in Ruby 3.
-
- def foo(key: 42); end; foo({key: 42}) # warned
- def foo(**kw); end; foo({key: 42}) # warned
- def foo(key: 42); end; foo(**{key: 42}) # OK
- def foo(**kw); end; foo(**{key: 42}) # OK
-
- * When a method call passes keywords to a method that accepts keywords,
- but it does not pass enough required positional arguments, the
- keywords are treated as a final required positional argument, and a
- warning is emitted. Pass the argument as a hash instead of keywords
- to avoid the warning and ensure correct behavior in Ruby 3.
-
- def foo(h, **kw); end; foo(key: 42) # warned
- def foo(h, key: 42); end; foo(key: 42) # warned
- def foo(h, **kw); end; foo({key: 42}) # OK
- def foo(h, key: 42); end; foo({key: 42}) # OK
-
- * When a method accepts specific keywords but not a keyword splat, and
- a hash or keywords splat is passed to the method that includes both
- Symbol and non-Symbol keys, the hash will continue to be split, and
- a warning will be emitted. You will need to update the calling code
- to pass separate hashes to ensure correct behavior in Ruby 3.
-
- def foo(h={}, key: 42); end; foo("key" => 43, key: 42) # warned
- def foo(h={}, key: 42); end; foo({"key" => 43, key: 42}) # warned
- def foo(h={}, key: 42); end; foo({"key" => 43}, key: 42) # OK
-
- * If a method does not accept keywords, and is called with keywords,
- the keywords are still treated as a positional hash, with no warning.
- This behavior will continue to work in Ruby 3.
-
- def foo(opt={}); end; foo( key: 42 ) # OK
-
-* Non-symbols are allowed as keyword argument keys if the method accepts
- arbitrary keywords. [Feature #14183]
-
- * Non-Symbol keys in a keyword arguments hash were prohibited in 2.6.0,
- but are now allowed again. [Bug #15658]
-
- def foo(**kw); p kw; end; foo("str" => 1) #=> {"str"=>1}
-
-* <code>**nil</code> is allowed in method definitions to explicitly mark
- that the method accepts no keywords. Calling such a method with keywords
- will result in an ArgumentError. [Feature #14183]
-
- def foo(h, **nil); end; foo(key: 1) # ArgumentError
- def foo(h, **nil); end; foo(**{key: 1}) # ArgumentError
- def foo(h, **nil); end; foo("str" => 1) # ArgumentError
- def foo(h, **nil); end; foo({key: 1}) # OK
- def foo(h, **nil); end; foo({"str" => 1}) # OK
-
-* Passing an empty keyword splat to a method that does not accept keywords
- no longer passes an empty hash, unless the empty hash is necessary for
- a required parameter, in which case a warning will be emitted. Remove
- the double splat to continue passing a positional hash. [Feature #14183]
-
- h = {}; def foo(*a) a end; foo(**h) # []
- h = {}; def foo(a) a end; foo(**h) # {} and warning
- h = {}; def foo(*a) a end; foo(h) # [{}]
- h = {}; def foo(a) a end; foo(h) # {}
-
-* Above warnings can be suppressed also with {-W:no-deprecated option}[#label-Warning+option].
-
-==== Numbered parameters
-
-* Numbered parameters as default block parameters are introduced. [Feature #4475]
-
- [1, 2, 10].map { _1.to_s(16) } #=> ["1", "2", "a"]
- [[1, 2], [3, 4]].map { _1 + _2 } #=> [3, 7]
-
- You can still define a local variable named +_1+ and so on,
- and that is honored when present, but renders a warning.
-
- _1 = 0 #=> warning: `_1' is reserved for numbered parameter; consider another name
- [1].each { p _1 } # prints 0 instead of 1
-
-==== proc/lambda without block is deprecated
-
-* Proc.new and Kernel#proc with no block in a method called with a block will
- now display a warning.
-
- def foo
- proc
- end
- foo { puts "Hello" } #=> warning: Capturing the given block using Kernel#proc is deprecated; use `&block` instead
-
- This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
-
-* Kernel#lambda with no block in a method called with a block raises an exception.
-
- def bar
- lambda
- end
- bar { puts "Hello" } #=> tried to create Proc object without a block (ArgumentError)
-
-==== Other miscellaneous changes
-
-* A beginless range is experimentally introduced. It might be useful
- in +case+, new call-sequence of the <code>Comparable#clamp</code>,
- constants and DSLs. [Feature #14799]
-
- ary[..3] # identical to ary[0..3]
-
- case RUBY_VERSION
- when ..."2.4" then puts "EOL"
- # ...
- end
-
- age.clamp(..100)
-
- where(sales: ..100)
-
-* Setting <code>$;</code> to a non-nil value will now display a warning. [Feature #14240]
- This includes the usage in String#split.
- This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
-
-* Setting <code>$,</code> to a non-nil value will now display a warning. [Feature #14240]
- This includes the usage in Array#join.
- This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
-
-* Quoted here-document identifiers must end within the same line.
-
- <<"EOS
- " # This had been warned since 2.4; Now it raises a SyntaxError
- EOS
-
-* The flip-flop syntax deprecation is reverted. [Feature #5400]
-
-* Comment lines can be placed between fluent dot now.
-
- foo
- # .bar
- .baz # => foo.baz
-
-* Calling a private method with a literal +self+ as the receiver
- is now allowed. [Feature #11297] [Feature #16123]
-
-* Modifier rescue now operates the same for multiple assignment as single
- assignment. [Bug #8279]
-
- a, b = raise rescue [1, 2]
- # Previously parsed as: (a, b = raise) rescue [1, 2]
- # Now parsed as: a, b = (raise rescue [1, 2])
-
-* +yield+ in singleton class syntax will now display a warning. This behavior
- will soon be deprecated. [Feature #15575].
-
- def foo
- class << Object.new
- yield #=> warning: `yield' in class syntax will not be supported from Ruby 3.0. [Feature #15575]
- end
- end
- foo { p :ok }
-
- This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].
-
-* Argument forwarding by <code>(...)</code> is introduced. [Feature #16253]
-
- def foo(...)
- bar(...)
- end
-
- All arguments to +foo+ are forwarded to +bar+, including keyword and
- block arguments.
- Note that the parentheses are mandatory. <code>bar ...</code> is parsed
- as an endless range.
-
-* Access and setting of <code>$SAFE</code> will now always display a warning.
- <code>$SAFE</code> will become a normal global variable in Ruby 3.0. [Feature #16131]
-
-* <code>Object#{taint,untaint,trust,untrust}</code> and related functions in the C-API
- no longer have an effect (all objects are always considered untainted), and will now
- display a warning in verbose mode. This warning will be disabled even in non-verbose mode in
- Ruby 3.0, and the methods and C functions will be removed in Ruby 3.2. [Feature #16131]
-
-* Refinements take place at Object#method and Module#instance_method. [Feature #15373]
-
-=== Command line options
-
-==== Warning option
-
-The +-W+ option has been extended with a following +:+, to manage categorized
-warnings. [Feature #16345] [Feature #16420]
-
-* To suppress deprecation warnings:
-
- $ ruby -e '$; = ""'
- -e:1: warning: `$;' is deprecated
-
- $ ruby -W:no-deprecated -e '$; = //'
-
-* It works with the +RUBYOPT+ environment variable:
-
- $ RUBYOPT=-W:no-deprecated ruby -e '$; = //'
-
-* To suppress experimental feature warnings:
-
- $ ruby -e '0 in a'
- -e:1: warning: Pattern matching is experimental, and the behavior may change in future versions of Ruby!
-
- $ ruby -W:no-experimental -e '0 in a'
-
-* To suppress both by using +RUBYOPT+, set space separated values:
-
- $ RUBYOPT='-W:no-deprecated -W:no-experimental' ruby -e '($; = "") in a'
-
-See also Warning in {Core classes updates}[#label-Core+classes+updates+-28outstanding+ones+only-29].
-
-=== Core classes updates (outstanding ones only)
-
-[Array]
-
- [New methods]
-
- * Added Array#intersection. [Feature #16155]
-
- * Added Array#minmax, with a faster implementation than Enumerable#minmax. [Bug #15929]
-
-[Comparable]
-
- [Modified method]
-
- * Comparable#clamp now accepts a Range argument. [Feature #14784]
-
- -1.clamp(0..2) #=> 0
- 1.clamp(0..2) #=> 1
- 3.clamp(0..2) #=> 2
- # With beginless and endless ranges:
- -1.clamp(0..) #=> 0
- 3.clamp(..2) #=> 2
-
-
-[Complex]
-
- [New method]
-
- * Added Complex#<=>.
- So <code>0 <=> 0i</code> will not raise NoMethodError. [Bug #15857]
-
-[Dir]
-
- [Modified methods]
-
- * Dir.glob and Dir.[] no longer allow NUL-separated glob pattern.
- Use Array instead. [Feature #14643]
-
-[Encoding]
-
- [New encoding]
-
- * Added new encoding CESU-8. [Feature #15931]
-
-[Enumerable]
-
- [New methods]
-
- * Added Enumerable#filter_map. [Feature #15323]
-
- [1, 2, 3].filter_map {|x| x.odd? ? x.to_s : nil } #=> ["1", "3"]
-
- * Added Enumerable#tally. [Feature #11076]
-
- ["A", "B", "C", "B", "A"].tally #=> {"A"=>2, "B"=>2, "C"=>1}
-
-[Enumerator]
-
- [New methods]
-
- * Added Enumerator.produce to generate an Enumerator from any custom
- data transformation. [Feature #14781]
-
- require "date"
- dates = Enumerator.produce(Date.today, &:succ) #=> infinite sequence of dates
- dates.detect(&:tuesday?) #=> next Tuesday
-
- * Added Enumerator::Lazy#eager that generates a non-lazy enumerator
- from a lazy enumerator. [Feature #15901]
-
- a = %w(foo bar baz)
- e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.eager
- p e.class #=> Enumerator
- p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]
-
- * Added Enumerator::Yielder#to_proc so that a Yielder object
- can be directly passed to another method as a block
- argument. [Feature #15618]
-
-[Fiber]
-
- [New method]
-
- * Added Fiber#raise that behaves like Fiber#resume but raises an
- exception on the resumed fiber. [Feature #10344]
-
-[File]
-
- [Modified method]
-
- * File.extname now returns a dot string for names ending with a dot on
- non-Windows platforms. [Bug #15267]
-
- File.extname("foo.") #=> "."
-
-[FrozenError]
-
- [New method]
-
- * Added FrozenError#receiver to return the frozen object on which
- modification was attempted. To set this object when raising
- FrozenError in Ruby code, FrozenError.new accepts a +:receiver+
- option. [Feature #15751]
-
-[GC]
-
- [New method]
-
- * Added GC.compact method for compacting the heap.
- This function compacts live objects in the heap so that fewer pages may
- be used, and the heap may be more CoW (copy-on-write) friendly. [Feature #15626]
-
- Details on the algorithm and caveats can be found here:
- https://bugs.ruby-lang.org/issues/15626
-
-[IO]
-
- [New method]
-
- * Added IO#set_encoding_by_bom to check the BOM and set the external
- encoding. [Bug #15210]
-
-[Integer]
-
- [Modified method]
-
- * Integer#[] now supports range operations. [Feature #8842]
-
- 0b01001101[2, 4] #=> 0b0011
- 0b01001100[2..5] #=> 0b0011
- 0b01001100[2...6] #=> 0b0011
- # ^^^^
-
-[Method]
-
- [Modified method]
-
- * Method#inspect shows more information. [Feature #14145]
-
-[Module]
-
- [New methods]
-
- * Added Module#const_source_location to retrieve the location where a
- constant is defined. [Feature #10771]
-
- * Added Module#ruby2_keywords for marking a method as passing keyword
- arguments through a regular argument splat, useful when delegating
- all arguments to another method in a way that can be backwards
- compatible with older Ruby versions. [Bug #16154]
-
- [Modified methods]
-
- * Module#autoload? now takes an +inherit+ optional argument, like
- Module#const_defined?. [Feature #15777]
-
- * Module#name now always returns a frozen String. The returned String is
- always the same for a given Module. This change is
- experimental. [Feature #16150]
-
-[NilClass / TrueClass / FalseClass]
-
- [Modified methods]
-
- * NilClass#to_s, TrueClass#to_s, and FalseClass#to_s now always return a
- frozen String. The returned String is always the same for each of these
- values. This change is experimental. [Feature #16150]
-
-[ObjectSpace::WeakMap]
-
- [Modified method]
-
- * ObjectSpace::WeakMap#[]= now accepts special objects as either key or
- values. [Feature #16035]
-
-[Proc]
-
- [New method]
-
- * Added Proc#ruby2_keywords for marking the proc as passing keyword
- arguments through a regular argument splat, useful when delegating
- all arguments to another method or proc in a way that can be backwards
- compatible with older Ruby versions. [Feature #16404]
-
-[Range]
-
- [New method]
-
- * Added Range#minmax, with a faster implementation than Enumerable#minmax.
- It returns a maximum that now corresponds to Range#max. [Bug #15807]
-
- [Modified method]
-
- * Range#=== now uses Range#cover? for String arguments, too (in Ruby 2.6, it was
- changed from Range#include? for all types except strings). [Bug #15449]
-
-
-[RubyVM]
-
- [Removed method]
-
- * +RubyVM.resolve_feature_path+ moved to
- <code>$LOAD_PATH.resolve_feature_path</code>. [Feature #15903] [Feature #15230]
-
-[String]
-
- [Unicode]
-
- * Update Unicode version and Emoji version from 11.0.0 to
- 12.0.0. [Feature #15321]
-
- * Update Unicode version to 12.1.0, adding support for
- U+32FF SQUARE ERA NAME REIWA. [Feature #15195]
-
- * Update Unicode Emoji version to 12.1. [Feature #16272]
-
-[Symbol]
-
- [New methods]
-
- * Added Symbol#start_with? and Symbol#end_with? methods. [Feature #16348]
-
-[Time]
-
- [New methods]
-
- * Added Time#ceil method. [Feature #15772]
-
- * Added Time#floor method. [Feature #15653]
-
- [Modified method]
-
- * Time#inspect is separated from Time#to_s and it shows
- the time's sub second. [Feature #15958]
-
-[UnboundMethod]
-
- [New method]
-
- * Added UnboundMethod#bind_call method. [Feature #15955]
-
- <code>umethod.bind_call(obj, ...)</code> is semantically equivalent
- to <code>umethod.bind(obj).call(...)</code>. This idiom is used in
- some libraries to call a method that is overridden. The added
- method does the same without allocation of an intermediate Method
- object.
-
- class Foo
- def add_1(x)
- x + 1
- end
- end
- class Bar < Foo
- def add_1(x) # override
- x + 2
- end
- end
-
- obj = Bar.new
- p obj.add_1(1) #=> 3
- p Foo.instance_method(:add_1).bind(obj).call(1) #=> 2
- p Foo.instance_method(:add_1).bind_call(obj, 1) #=> 2
-
-[Warning]
-
- [New methods]
-
- * Added Warning.[] and Warning.[]= to manage emitting/suppressing
- some categories of warnings. [Feature #16345] [Feature #16420]
-
-[$LOAD_PATH]
-
- [New method]
-
- * Added <code>$LOAD_PATH.resolve_feature_path</code>. [Feature #15903] [Feature #15230]
-
-=== Stdlib updates (outstanding ones only)
-
-[Bundler]
-
- * Upgrade to Bundler 2.1.2.
- See https://github.com/bundler/bundler/releases/tag/v2.1.2
-
-[CGI]
-
- * CGI.escapeHTML becomes 2~5x faster when there is at least one escaped character.
- See https://github.com/ruby/ruby/pull/2226
-
-[CSV]
-
- * Upgrade to 3.1.2.
- See https://github.com/ruby/csv/blob/master/NEWS.md.
-
-[Date]
-
- * Date.jisx0301, Date#jisx0301, and Date.parse support the new Japanese
- era. [Feature #15742]
-
-[Delegator]
-
- * Object#DelegateClass accepts a block and module_evals it in the context
- of the returned class, similar to Class.new and Struct.new.
-
-[ERB]
-
- * Prohibit marshaling ERB instance.
-
-[IRB]
-
- * Introduce syntax highlighting inspired by the Pry gem to Binding#irb
- source lines, REPL input, and inspect output of some core-class objects.
-
- * Introduce multiline editing mode provided by Reline.
-
- * Show documentation when completion.
-
- * Enable auto indent and save/load history by default.
-
-[JSON]
-
- * Upgrade to 2.3.0.
-
-[Net::FTP]
-
- * Add Net::FTP#features to check available features, and Net::FTP#option to
- enable/disable each of them. [Feature #15964]
-
-[Net::HTTP]
-
- * Add +ipaddr+ optional parameter to Net::HTTP#start to replace the address for
- the TCP/IP connection. [Feature #5180]
-
-[Net::IMAP]
-
- * Add Server Name Indication (SNI) support. [Feature #15594]
-
-[open-uri]
-
- * Warn open-uri's "open" method at Kernel.
- Use URI.open instead. [Misc #15893]
-
- * The default charset of "text/*" media type is UTF-8 instead of
- ISO-8859-1. [Bug #15933]
-
-[OptionParser]
-
- * Now show "Did you mean?" for unknown options. [Feature #16256]
-
- test.rb:
-
- require "optparse"
- OptionParser.new do |opts|
- opts.on("-f", "--foo", "foo") {|v| }
- opts.on("-b", "--bar", "bar") {|v| }
- opts.on("-c", "--baz", "baz") {|v| }
- end.parse!
-
- example:
-
- $ ruby test.rb --baa
- Traceback (most recent call last):
- test.rb:7:in `<main>': invalid option: --baa (OptionParser::InvalidOption)
- Did you mean? baz
- bar
-
-[Pathname]
-
- * Pathname.glob now delegates 3 arguments to Dir.glob
- to accept +base+ keyword. [Feature #14405]
-
-[Racc]
-
- * Merge 1.4.15 from upstream repository and added cli of racc.
-
-[Reline]
-
- * New stdlib that is compatible with the readline stdlib but is
- implemented in pure Ruby. It also provides a multiline editing mode.
-
-[REXML]
-
- * Upgrade to 3.2.3.
- See https://github.com/ruby/rexml/blob/master/NEWS.md.
-
-[RSS]
-
- * Upgrade to RSS 0.2.8.
- See https://github.com/ruby/rss/blob/master/NEWS.md.
-
-[RubyGems]
-
- * Upgrade to RubyGems 3.1.2.
- * https://github.com/rubygems/rubygems/releases/tag/v3.1.0
- * https://github.com/rubygems/rubygems/releases/tag/v3.1.1
- * https://github.com/rubygems/rubygems/releases/tag/v3.1.2
-
-[StringScanner]
-
- * Upgrade to 1.0.3.
- See https://github.com/ruby/strscan/blob/master/NEWS.md.
-
-=== Compatibility issues (excluding feature bug fixes)
-
-* The following libraries are no longer bundled gems.
- Install corresponding gems to use these features.
- * CMath (cmath gem)
- * Scanf (scanf gem)
- * Shell (shell gem)
- * Synchronizer (sync gem)
- * ThreadsWait (thwait gem)
- * E2MM (e2mmap gem)
-
-[Proc]
- * The Proc#to_s format was changed. [Feature #16101]
-
-[Range]
- * Range#minmax used to iterate on the range to determine the maximum.
- It now uses the same algorithm as Range#max. In rare cases (e.g.
- ranges of Floats or Strings), this may yield different results. [Bug #15807]
-
-=== Stdlib compatibility issues (excluding feature bug fixes)
-
-* Promote stdlib to default gems
- * The following default gems were published on rubygems.org
- * benchmark
- * cgi
- * delegate
- * getoptlong
- * net-pop
- * net-smtp
- * open3
- * pstore
- * readline
- * readline-ext
- * singleton
- * The following default gems were only promoted at ruby-core,
- but not yet published on rubygems.org.
- * monitor
- * observer
- * timeout
- * tracer
- * uri
- * yaml
-* The <tt>did_you_mean</tt> gem has been promoted up to a default gem from a bundled gem
-
-[pathname]
-
- * Kernel#Pathname when called with a Pathname argument now returns
- the argument instead of creating a new Pathname. This is more
- similar to other Kernel methods, but can break code that modifies
- the return value and expects the argument not to be modified.
-
-[profile.rb, Profiler__]
-
- * Removed from standard library. It was unmaintained since Ruby 2.0.0.
-
-=== C API updates
-
-* Many <code>*_kw</code> functions have been added for setting whether
- the final argument being passed should be treated as keywords. You
- may need to switch to these functions to avoid keyword argument
- separation warnings, and to ensure correct behavior in Ruby 3.
-
-* The <code>:</code> character in rb_scan_args format string is now
- treated as keyword arguments. Passing a positional hash instead of
- keyword arguments will emit a deprecation warning.
-
-* C API declarations with +ANYARGS+ are changed not to use +ANYARGS+.
- See https://github.com/ruby/ruby/pull/2404
-
-=== Implementation improvements
-
-[Fiber]
-
- * Allow selecting different coroutine implementations by using
- +--with-coroutine=+, e.g.
-
- $ ./configure --with-coroutine=ucontext
- $ ./configure --with-coroutine=copy
-
- * Replace previous stack cache with fiber pool cache. The fiber pool
- allocates many stacks in a single memory region. Stack allocation
- becomes O(log N) and fiber creation is amortized O(1). Around 10x
- performance improvement was measured in micro-benchmarks.
- https://github.com/ruby/ruby/pull/2224
-
-[File]
- * File.realpath now uses realpath(3) on many platforms, which can
- significantly improve performance. [Feature #15797]
-
-[Hash]
- * Change data structure of small Hash objects. [Feature #15602]
-
-[Monitor]
- * Monitor class is written in C-extension. [Feature #16255]
-
-[Thread]
-
- * VM stack memory allocation is now combined with native thread stack,
- improving thread allocation performance and reducing allocation related
- failures. Around 10x performance improvement was measured in micro-benchmarks.
-
-[JIT]
-
- * JIT-ed code is recompiled to less-optimized code when an optimization assumption is invalidated.
-
- * Method inlining is performed when a method is considered as pure.
- This optimization is still experimental and many methods are NOT considered as pure yet.
-
- * The default value of +--jit-max-cache+ is changed from 1,000 to 100.
-
- * The default value of +--jit-min-calls+ is changed from 5 to 10,000.
-
-[RubyVM]
-
- * Per-call-site method cache, which has been there since around 1.9, was
- improved: cache hit rate raised from 89% to 94%.
- See https://github.com/ruby/ruby/pull/2583
-
-[RubyVM::InstructionSequence]
-
- * RubyVM::InstructionSequence#to_binary method generates compiled binary.
- The binary size is reduced. [Feature #16163]
-
-=== Miscellaneous changes
-
-* Support for IA64 architecture has been removed. Hardware for testing was
- difficult to find, native fiber code is difficult to implement, and it added
- non-trivial complexity to the interpreter. [Feature #15894]
-
-* Require compilers to support C99. [Misc #15347]
-
- * Details of our dialect: https://bugs.ruby-lang.org/projects/ruby-master/wiki/C99
-
-* Ruby's upstream repository is changed from Subversion to Git.
-
- * https://git.ruby-lang.org/ruby.git
-
- * RUBY_REVISION class is changed from Integer to String.
-
- * RUBY_DESCRIPTION includes Git revision instead of Subversion's one.
-
-* Support built-in methods in Ruby with the <code>_\_builtin_</code> syntax. [Feature #16254]
-
- Some methods are defined in *.rb (such as trace_point.rb).
- For example, it is easy to define a method which accepts keyword arguments.
diff --git a/doc/contributing.rdoc b/doc/contributing.rdoc
index d7395627ca..68dda66e46 100644
--- a/doc/contributing.rdoc
+++ b/doc/contributing.rdoc
@@ -27,10 +27,10 @@ on your ticket.
stable release. See
{Downloading Ruby}[https://www.ruby-lang.org/en/downloads/].
* Look to see if anyone already reported your issue, try
- {searching on redmine}[https://bugs.ruby-lang.org/projects/ruby-master/issues]
+ {searching on redmine}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues]
for your problem.
* If you can't find a ticket addressing your issue,
- {create a new one}[https://bugs.ruby-lang.org/projects/ruby-master/issues/new].
+ {create a new one}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues/new].
* Choose the target version, usually current. Bugs will be first fixed in the
current release and then {backported}[rdoc-label:label-Backport+Requests].
* Fill in the Ruby version you're using when experiencing this issue
@@ -82,7 +82,7 @@ The current active platform maintainers are as follows:
Kenta Murata (mrkn)
[OpenBSD]
Jeremy Evans (jeremyevans0)
-[cygwin, ...]
+[cygwin, bcc32, djgpp, wince, ...]
none. (Maintainer WANTED)
== Reporting Security Issues
@@ -116,7 +116,7 @@ these? Quite a bit, actually:
When a bug report goes for a while without any feedback, it goes to the bug
graveyard which is unfortunate. If you check the {issues
-list}[https://bugs.ruby-lang.org/projects/ruby-master/issues] you will find lots
+list}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues] you will find lots
of delinquent bugs that require attention.
You can help by verifying the existing tickets, try to reproduce the reported
@@ -156,7 +156,7 @@ If there's a new feature that you want to see added to Ruby, you will need to
write a convincing proposal and patch to implement the feature.
For new features in CRuby, use the {'Feature'
-tracker}[https://bugs.ruby-lang.org/projects/ruby-master/issues?set_filter=1&tracker_id=2]
+tracker}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues?set_filter=1&tracker_id=2]
on ruby-master. For non-CRuby dependent features, features that would apply to
alternate Ruby implementations such as JRuby and Rubinius, use the {CommonRuby
tracker}[https://bugs.ruby-lang.org/projects/common-ruby].
@@ -195,6 +195,25 @@ A good template for a feature proposal should look something like this:
[See also]
Links to the other related resources
+=== Slideshow
+
+At the Ruby Developer Meeting in Japan, committers discuss Feature Proposals together in Tokyo. We will judge proposals and then accept, reject, or give feedback for them.
+If you have a stalled proposal, making a slide to submit is good way to get feedback.
+
+Slides should be:
+
+* One-page slide
+* Include a corresponding ticket number
+* MUST include a figure and/or short example code
+* SHOULD have less sentence in natural language (try to write less than 140 characters)
+* It is RECOMMENDED to itemize: motivation/use case, proposal, pros/cons, corner case
+* PDF or Image (Web browsers can show it)
+
+Please note:
+
+* Even if the proposal is generally acceptable, it won't be accepted without writing corner cases in the ticket
+* Slide's example: DevelopersMeeting20130727Japan
+
== Backport Requests
When a new version of Ruby is released, it starts at patch level 0 (p0), and
@@ -241,8 +260,8 @@ run tests.
* autoconf - 2.67 or later, preferably 2.69.
* bison - 2.0 or later, preferably 3.4.
* gperf - 3.0.3 or later, preferably 3.1.
-* ruby - Ruby itself is prerequisite in order to build Ruby from source.
- You should use [a maintained version of Ruby](https://www.ruby-lang.org/en/downloads/).
+* ruby - Ruby itself is prerequisite in order to build Ruby from source. It
+ can be 1.8.
You should also have access to development headers for the following
libraries, but these are not required:
diff --git a/doc/contributors.rdoc b/doc/contributors.rdoc
new file mode 100644
index 0000000000..7c3722032b
--- /dev/null
+++ b/doc/contributors.rdoc
@@ -0,0 +1,793 @@
+= Contributors to Ruby
+
+The following list might be incomplete. Feel free to add your name if your
+patch was accepted into Ruby.
+
+== A
+
+Ayumu AIZAWA (ayumin)
+* committer
+
+AKIYOSHI, Masamichi (akiyoshi)
+* committer
+* He had maintained the VMS support on 2003-2004.
+
+Muhammad Ali
+* wrote rdoc for Fiber
+
+Minero Aoki (aamine)
+* committer
+* He is the maintainer of:
+ * fileutils
+ * net/http, net/https
+ * net/pop
+ * net/smtp
+ * racc
+ * ripper
+ * strscan
+
+Wakou Aoyama (wakou)
+* committer
+* He was the maintainer of some standard libraries.
+
+Koji Arai
+* committer
+
+arton
+* He is the distributor of ActiveScriptRuby and experimental 1.9.0-x installers for win32.
+* Wrote patches for win32ole, gc.c, tmpdir.rb
+
+Sergey Avseyev
+* Added IO#pread and IO#pwrite.
+
+== B
+
+Daniel Berger
+* a patch for irb
+* documentation
+* He wrote forwardable.rb
+
+David Black (dblack)
+* committer
+* He is the maintainer of scanf
+
+Ken Bloom
+* a patch for REXML.
+
+Oliver M. Bolzer
+* a patch for soap
+
+Alexey Borzenkov
+* a patch for mkmf.rb
+
+Evan Brodie
+* a patch for documentation of Float#round
+
+Richard Brown
+* a patch for configure.in
+
+Dirkjan Bussink
+* a patch for date.rb
+
+Daniel Bovensiepen
+* documentation
+* a patch for irb
+
+== C
+
+Brian Candler
+* a patch for configure.in, net/telnet
+
+keith cascio
+* a patch for optparse.rb
+
+Frederick Cheung
+* a patch for test/ruby/test_symbol.rb
+
+Christoph
+* patches for set.rb
+
+Sean Chittenden
+* patches for net/http, cgi
+
+William D. Clinger
+* ruby_strtod is based on his paper.
+
+== D
+
+Ryan Davis (ryan)
+* committer
+* He wrote and is the maintainer of miniunit
+
+Guy Decoux (ts)
+* committer
+
+Zach Dennis
+
+Martin Duerst (duerst)
+* committer
+* M17N
+
+Paul Duncan
+* patches for rdoc
+
+Alexander Dymo
+* a patch for lib/benchmark.rb
+
+== E
+
+Yusuke Endoh (mame)
+* committer
+* He wrote and is the maintainer of base64 library (1.9)
+* did much upon YARV compiler.
+
+erlercw
+* wrote Integer::gcd2
+
+== F
+
+Frank S.Fejes
+* a patch for net/pop
+
+Fundakowski Feldman
+* a patch for process.c
+
+Mauricio Fernandez
+* patches for parse.y
+
+David Flanagan (davidflanagan)
+* committer
+* M17N
+
+Takeyuki Fujioka (xibbar)
+* committer
+* He is the maintainer of cgi/*
+
+FUKUMOTO, Atsushi
+* a patch for tracer.rb
+
+Shota Fukumori (sorah)
+* committer
+* #4415 parallel unit/test
+
+Tadayoshi Funaba (tadf)
+* committer
+* He wrote and is the maintainer of
+ * date
+ * parsedate (1.8)
+* He ported rational.rb and complex.rb, which 1.8 contains, into rational.c and complex.c of 1.9.
+
+== G
+
+David M. Gay
+* ruby_strtod
+
+Florian Gilcher
+* documentation
+
+GOTOU, Kentaro (gotoken)
+* committer
+* He wrote benchmark.rb
+* He is the maintainer of:
+ * benchmark.rb
+ * open3
+
+GOTOU, Yuuzou (gotoyuzo)
+* committer
+
+James Edward Gray II (jeg2)
+* committer
+* He wrote the faster implementation of CSV and is the maintainer of csv.
+* Wrote documentation for rdoc
+
+== H
+
+Phil Hagelberg
+* patch for ruby-mode.el's documentation.
+
+Kirk Haines (wyhaines)
+* committer
+* the maintainer of ruby_1_8_6 branch
+
+Shinichiro Hamaji
+* fixed memory leaks (marshal.c, string.c)
+
+Shin-ichiro HARA
+* the developer and the sysop of ruby-{dev,list,core,talk} archive.
+* a patch for numeric.c
+
+Chris Heath (traumdeutung)
+* a patch for proc.c
+
+HIROKAWA Hisashi
+* fixed socket/socket.c
+
+Daniel Hob
+* He wrote:
+ * SMTP-TLS support for net/smtp.
+ * POP3S support
+
+Eric Hodel (drbrain)
+* committer
+* He is the maintainer of:
+ * rdoc
+ * ri
+ * rubygems
+
+Erik Hollensbe
+* a patch for delegate.rb
+
+Johan Holmberg
+* a patch for dir.c
+* documentation
+
+Erik Huelsmann
+
+Dae San Hwang
+* built a continuous integration environment on OpenSolaris.
+
+== I
+
+Nobuhiro IMAI
+* a patch for logger.rb
+
+"incorporate"
+* a patch for sprintf.c
+
+Keiju Ishitsuka (keiju)
+* committer
+* He wrote and is the maintainer of:
+ * cmath.rb (1.9)
+ * complex.rb (1.8)
+ * e2mmap.rb
+ * forwardable.rb
+ * irb
+ * mathn
+ * matrix.rb
+ * mutex_m.rb
+ * rational.rb (1.8)
+ * sync.rb
+ * shell/*
+ * thwait.rb
+ * tracer.rb
+
+== J
+
+Curtis Jackson
+* missing/dup2.c
+
+Alan Johnson
+* a patch for net/ftp
+
+Lyle Johnson
+* patches for nkf, bigdecimal, numeric.c
+
+== K
+
+Yoshihiro Kambayashi
+* a patch for enc/trans/single_byte.trans.
+* He wrote supports for some encodings.
+
+Yutaka Kanemoto
+* patches for common.mk, AIX AF_INET6 support
+
+Motoyuki Kasahara
+* He wrote getoptlong.rb
+
+Masahiro Kawato
+* a patch for shellwords.rb
+
+Wataru Kimura
+* a patch for configure.in
+
+Michael Klishin
+* patch for make help.
+
+Noritada Kobayashi
+* a patch for optparse.rb
+
+Shigeo Kobayashi (shigek)
+* committer
+* He is the maintainer of bigdecimal
+
+KONISHI, Hiromasa (H_Konishi)
+* committer
+* He had maintained the bcc32 support in 2004.
+
+Kornelius "murphy" Kalnbach
+* documentation
+
+K.Kosako (kosako)
+* committer
+* He wrote Oniguruma.
+
+Takehiro Kubo
+* patches for dl 64bit support.
+
+== L
+
+Marc-Andre Lafortune (marcandre)
+* committer
+* patches for hash.c, array.c, thread.c, enumc, string.c, range.c and rdoc documentation.
+
+Hongli Lai
+* improved pstore.rb
+* patch for tool/file2lastrev.rb.
+
+raspberry lemon
+* a patch for webrick/httpproxy.rb.
+
+Christian Loew
+* a patch for fileutils.rb
+
+== M
+
+Shugo Maeda (shugo)
+* committer
+* A system administrator of ruby-lang.org servers.
+* He wrote and is the maintainer of:
+ * monitor.rb
+ * net/ftp
+ * net/imap
+
+Stephan Maka (mathew)
+* documentation
+
+Yukihiro Matsumoto (matz)
+* Matz -- the founder, language designer of Ruby.
+* committer
+* Ruby itself, most of Ruby.
+* He is the maintainer of:
+ * singleton
+ * timeout
+ * gdbm
+ * sdbm
+
+Konrad Meyer
+* documentation
+
+Mib Software
+* missing/vsnprintf.c
+
+Todd C. Miller
+* missing/strlcat.c
+* missing/strlcpy.c
+
+MIYASAKA, Masaru
+* a patch for cgi.rb
+
+Stefan Monnier
+* regex.c was fixed with based on his Emacs21 patch.
+
+Marcel Moolenaar
+* patches for eval.c and gc.c.
+
+moonwolf
+* a patch for REXML, xmlrpc
+
+Hiroshi Moriyama
+* a patch for yaml.
+
+Kyosuke Morohashi
+* a patch for gem_prelude.rb
+
+Kenta Murata
+* patches for json, bignum.c
+
+Akinori MUSHA (knu)
+* committer
+* He wrote and is the maintainer of:
+ * abbrev.rb
+ * generator (1.8)
+ * enumerator (1.8)
+ * set
+ * ipaddr.rb
+ * digest/*
+ * syslog
+* He is the branch maintainer of ruby_1_8, the release manager of 1.8 series.
+
+== N
+
+Hidetoshi NAGAI (nagai)
+* committer
+* He is the maintainer of tk/*
+
+Nobuyoshi Nakada (nobu)
+* committer
+* a.k.a. the "patch monster"
+* He wrote and is the maintainer of:
+ * optparse
+ * stringio
+ * io/wait
+ * iconv
+
+Satoshi Nakagawa
+* patches for util.c
+
+Narihiro Nakamura (nari)
+* committer
+* a.k.a. authorNari
+* working at GC
+
+NAKAMURA, Hiroshi (nahi)
+* committer
+* He is the maintainer of:
+ * csv.rb (1.8)
+ * logger.rb
+ * soap/* (1.8)
+ * wsdl/* (1.8)
+ * xsd/* (1.8)
+
+NAKAMURA, Usaku (usa)
+* committer
+* a.k.a. unak
+* He is the maintainer of mswin32 and mswin64 support.
+
+NARUSE, Yui (naruse)
+* committer
+* a.k.a. "nurse"
+* Did much upon m17n.
+* He is the maintainer of:
+ * json
+ * nkf
+
+Christian Neukirchen
+* a patch for webrick/httputils
+
+Michael Neumann (mneumann)
+* committer
+* He is the maintainer of
+ * xmlrpc (1.8)
+ * gserver (1.8)
+
+NISHIO Hirokazu
+* wrote a patch for CVE-2010-0541
+
+Kazuhiro NISHIYAMA (kazu)
+* committer
+* a.k.a. znz
+
+Go Noguchi
+
+Martin Nordholts
+* misc/rdebug.el
+
+nmu
+* a patch for socket
+
+== O
+
+okkez
+* He is a sysop of the Ruby Reference Manual Renewal Project.
+* fixed ipaddr.rb, ext/etc
+
+Haruhiko Okumura
+* some of missing/* is based on his book:
+ * missing/erf.c
+ * missing/lgamma_r.c
+ * missing/tgamma.c
+
+OMAE, jun
+* a patch for debug.rb
+
+Eugene Ossintsev
+* documentation
+
+== P
+
+Heesob Park
+* a patch for win32/win32.c.
+
+pegacorn
+* a patch for instruby.rb
+
+== Q
+
+== R
+
+Gaston Ramos
+* documentation
+
+The Regents of the University of California
+* missing/crypt.c
+* missing/vsnprintf.c
+
+Sam Roberts
+* patch for socket
+* documentation
+
+Michal Rokos (michal)
+* committer
+* He was the maintainer of DJGPP support.
+
+rubikitch
+* a patch for io.c
+
+Marcus Rueckert
+* a patch for mkconfig.rb.
+
+Run Paint Run Run
+* patch for enc/unicode.c
+* documentation
+
+Sean Russell (ser)
+* committer
+* He wrote and is the maintainer of REXML.
+
+== S
+
+Kazuo Saito (ksaito)
+* committer
+* M17N
+
+Tadashi Saito
+* patches for test/ruby/test_math.rb, thread_*.c, bignum.c
+* working upon BigDecimal.
+* did much upon documentation
+
+Masahiro Sakai
+* a patch for io.c
+
+Laurent Sansonetti
+* a patch for tool/ytab.sed
+
+Jeff Saracco
+* documentation
+
+Koichi Sasada (ko1)
+* committer
+* He wrote YARV.
+
+Hugh Sasse
+* a patch for net/http
+* documentation
+
+Charlie Savage
+* a patch for win32/Makefile.sub
+
+Michael Scholz
+* a patch for ruby-mode.el
+
+Arthur Schreiber
+* patch for net/http and rdoc.
+
+Masatoshi SEKI (seki)
+* committer
+* He wrote and is the maintainer of:
+ * drb/*
+ * erb
+ * rinda
+
+Roman Shterenzon
+* a patch for open-uri.
+
+Kent Sibilev
+
+Gavin Sinclair (gsinclair)
+* committer
+
+John W. Small
+* He wrote gserver.rb
+
+Yuki Sonoda (yugui)
+* committer
+* She is the maintainer of man/* manual pages and is the release manager of 1.9 series.
+* She wrote prime.rb.
+* A developer and a sysop of redmine.ruby-lang.org.
+
+SOUMA, Yutaka
+* a patch for pack.c.
+
+Tatsuki Sugiura
+* WebDAV support for net/http
+
+Masaki Suketa (suke)
+* committer
+* He is the maintainer of win32ole
+
+sheepman
+* patches for ruby.c, thread.c, stringio, enum.c, webrick, net/http
+
+Siena. (siena)
+* committer
+
+Kirill A. Shutemov
+* a patch for parse.y
+
+Darren Smith
+* a patch for golf_prelude.rb
+
+Richard M. Stallman
+* missing/alloca.c
+
+Robin Stocker
+* documentation
+
+Joshua Stowers
+* a patch for array.c
+
+Marcus Stollsteimer (stomar)
+* committer
+* a maintainer of www.ruby-lang.org
+* patches for cgi (HTML5 tag maker), numeric.c, bigdecimal, ostruct.rb, prime.rb, and others
+* documentation
+
+Adam Strzelecki
+* a patch for compile.c
+
+Masashi Sumi
+* improved net/pop.rb
+
+Eric Sunshine
+* NeXT OpenStep, Rhapsody support
+
+Kouhei Sutou (kou)
+* committer
+* He wrote and is the maintainer of rss/*
+
+David Symonds
+* documentation
+
+== T
+
+TAKANO Mitsuhiro (takano32)
+* committer
+* He is the maintainer of IA-64 support.
+* BigDecimal
+
+TAKAO, Kouji (kouji)
+* committer
+* He is the maintainer of readline.
+
+Nathaniel Talbott (ntalbott)
+* committer
+* He was the maintainer of test/unit, runit, rubyunit.
+
+TANAKA, Akira (akr)
+* committer
+* Did much upon m17n.
+* And he is the maintainer of:
+ * open-uri
+ * pathname
+ * pp
+ * resolv-replace
+ * resolv
+ * time
+ * tsort
+
+Takaaki Tateishi (ttate)
+* committer
+* He was the maintainer of dl
+
+Technorama Ltd. (technoroma)
+* committer
+* openssl
+
+Andrew Thompson
+* a patch for socket.c IRIX support.
+
+Dave Thomas (dave)
+* committer
+* a.k.a. the Pragmatic Programmer.
+* He wrote rdoc.
+
+Tietew
+* patches for win32 support
+
+Masahiro Tomita
+* a patch for cgi.rb
+
+Jakub Travnik
+* a patch for eval.c
+
+Tom Truscott
+* missing/crypt.c
+
+== U
+
+UEDA, Satoshi
+* a patch for uri
+
+Takaaki Uematsu (uema2)
+* committer
+* He was the maintainer of WinCE support.
+
+UENO, Katsuhiro (katsu)
+* committer
+* He is the maintainer of zlib
+
+Hajimu UMEMOTO
+* He wrote ipaddr.rb
+
+URABE, Shyouhei (shyouhei)
+* committer
+* a.k.a. mput.
+* He is the branch maintainer of ruby_1_8_6 and ruby_1_8_7
+* and is the release manager of 1.8.x-pXXX.
+
+== V
+
+Joel VanderWerf
+* a patch for numeric.c
+
+Peter Vanbroekhoven
+
+Corinna Vinschen
+
+== W
+
+wanabe (wanabe)
+* committer
+* fixed YARV and Oniguruma.
+
+Chun Wang
+* a patch for time.rb
+
+WATANABE, Hirofumi (eban)
+* committer
+* He is the maintainer of
+ * ftools (1.8)
+ * tmpdir
+ * un
+ * Win32API
+
+WATANABE, Tetsuya
+* a patch for ruby.c
+
+William Webber (wew)
+* committer
+
+Jim Weirich (jim)
+* committer
+* He wrote Rake.
+
+Nathan Weizenbaum
+* fixed misc/ruby-mode.el.
+
+why the lukky stiff (why)
+* committer
+* He is the maintainer of syck
+
+Caley Woods
+* documentation
+
+Gary Wright
+* documentation
+
+== X
+
+== Y
+
+Akira Yamada (akira)
+* committer
+* He is the maintainer of ruby related packages at Debian project.
+
+Keita Yamaguchi
+* patches for enum.c, parse.y
+* documentation
+
+Hirokazu Yamamoto (ocean)
+* committer
+
+Hirotaka Yoshioka
+* a patch for improving SEGV handling
+
+== Z
+
+Aristarkh A Zagorodnikov
+* a patch for io.c
+
+Alexander Zavorine
+* committer
+* He is the maintainer for Symbian OS.
+
+Chiyuan Zhang
+* a patch for misc/ruby-mode.el.
+
+Dee Zsombor (zunda)
+* a patch for thread_pthread.c
+
+Dan Zwell
+* a patch for net/pop
+
+
diff --git a/doc/csv/arguments/io.rdoc b/doc/csv/arguments/io.rdoc
deleted file mode 100644
index f5fe1d1975..0000000000
--- a/doc/csv/arguments/io.rdoc
+++ /dev/null
@@ -1,5 +0,0 @@
-* Argument +io+ should be an IO object that is:
- * Open for reading; on return, the IO object will be closed.
- * Positioned at the beginning.
- To position at the end, for appending, use method CSV.generate.
- For any other positioning, pass a preset \StringIO object instead.
diff --git a/doc/csv/options/common/col_sep.rdoc b/doc/csv/options/common/col_sep.rdoc
deleted file mode 100644
index 05769b5773..0000000000
--- a/doc/csv/options/common/col_sep.rdoc
+++ /dev/null
@@ -1,63 +0,0 @@
-====== Option +col_sep+
-
-Specifies the \String field separator to be used
-for both parsing and generating.
-The \String will be transcoded into the data's \Encoding before use.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:col_sep) # => "," (comma)
-
-Using the default (comma):
- str = CSV.generate do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0\nbar,1\nbaz,2\n"
- ary = CSV.parse(str)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using +:+ (colon):
- col_sep = ':'
- str = CSV.generate(col_sep: col_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo:0\nbar:1\nbaz:2\n"
- ary = CSV.parse(str, col_sep: col_sep)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using +::+ (two colons):
- col_sep = '::'
- str = CSV.generate(col_sep: col_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo::0\nbar::1\nbaz::2\n"
- ary = CSV.parse(str, col_sep: col_sep)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using <tt>''</tt> (empty string):
- col_sep = ''
- str = CSV.generate(col_sep: col_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo0\nbar1\nbaz2\n"
-
----
-
-Raises an exception if parsing with the empty \String:
- col_sep = ''
- # Raises ArgumentError (:col_sep must be 1 or more characters: "")
- CSV.parse("foo0\nbar1\nbaz2\n", col_sep: col_sep)
-
-Raises an exception if the given value is not String-convertible:
- col_sep = BasicObject.new
- # Raises NoMethodError (undefined method `to_s' for #<BasicObject:>)
- CSV.generate(line, col_sep: col_sep)
- # Raises NoMethodError (undefined method `to_s' for #<BasicObject:>)
- CSV.parse(str, col_sep: col_sep)
diff --git a/doc/csv/options/common/quote_char.rdoc b/doc/csv/options/common/quote_char.rdoc
deleted file mode 100644
index 67fd3af68b..0000000000
--- a/doc/csv/options/common/quote_char.rdoc
+++ /dev/null
@@ -1,42 +0,0 @@
-====== Option +quote_char+
-
-Specifies the character (\String of length 1) used used to quote fields
-in both parsing and generating.
-This String will be transcoded into the data's \Encoding before use.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:quote_char) # => "\"" (double quote)
-
-This is useful for an application that incorrectly uses <tt>'</tt> (single-quote)
-to quote fields, instead of the correct <tt>"</tt> (double-quote).
-
-Using the default (double quote):
- str = CSV.generate do |csv|
- csv << ['foo', 0]
- csv << ["'bar'", 1]
- csv << ['"baz"', 2]
- end
- str # => "foo,0\n'bar',1\n\"\"\"baz\"\"\",2\n"
- ary = CSV.parse(str)
- ary # => [["foo", "0"], ["'bar'", "1"], ["\"baz\"", "2"]]
-
-Using <tt>'</tt> (single-quote):
- quote_char = "'"
- str = CSV.generate(quote_char: quote_char) do |csv|
- csv << ['foo', 0]
- csv << ["'bar'", 1]
- csv << ['"baz"', 2]
- end
- str # => "foo,0\n'''bar''',1\n\"baz\",2\n"
- ary = CSV.parse(str, quote_char: quote_char)
- ary # => [["foo", "0"], ["'bar'", "1"], ["\"baz\"", "2"]]
-
----
-
-Raises an exception if the \String length is greater than 1:
- # Raises ArgumentError (:quote_char has to be nil or a single character String)
- CSV.new('', quote_char: 'xx')
-
-Raises an exception if the value is not a \String:
- # Raises ArgumentError (:quote_char has to be nil or a single character String)
- CSV.new('', quote_char: :foo)
diff --git a/doc/csv/options/common/row_sep.rdoc b/doc/csv/options/common/row_sep.rdoc
deleted file mode 100644
index 872d9d1f3f..0000000000
--- a/doc/csv/options/common/row_sep.rdoc
+++ /dev/null
@@ -1,100 +0,0 @@
-====== Option +row_sep+
-
-Specifies the row separator, a \String or the \Symbol <tt>:auto</tt> (see below),
-to be used for both parsing and generating.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:row_sep) # => :auto
-
----
-
-When +row_sep+ is a \String, that \String becomes the row separator.
-The String will be transcoded into the data's Encoding before use.
-
-Using <tt>"\n"</tt>:
- row_sep = "\n"
- str = CSV.generate(row_sep: row_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0\nbar,1\nbaz,2\n"
- ary = CSV.parse(str)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using <tt>|</tt> (pipe):
- row_sep = '|'
- str = CSV.generate(row_sep: row_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0|bar,1|baz,2|"
- ary = CSV.parse(str, row_sep: row_sep)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using <tt>--</tt> (two hyphens):
- row_sep = '--'
- str = CSV.generate(row_sep: row_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0--bar,1--baz,2--"
- ary = CSV.parse(str, row_sep: row_sep)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using <tt>''</tt> (empty string):
- row_sep = ''
- str = CSV.generate(row_sep: row_sep) do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0bar,1baz,2"
- ary = CSV.parse(str, row_sep: row_sep)
- ary # => [["foo", "0bar", "1baz", "2"]]
-
----
-
-When +row_sep+ is the \Symbol +:auto+ (the default),
-generating uses <tt>"\n"</tt> as the row separator:
- str = CSV.generate do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0\nbar,1\nbaz,2\n"
-
-Parsing, on the other hand, invokes auto-discovery of the row separator.
-
-Auto-discovery reads ahead in the data looking for the next <tt>\r\n</tt>, +\n+, or +\r+ sequence.
-The sequence will be selected even if it occurs in a quoted field,
-assuming that you would have the same line endings there.
-
-Example:
- str = CSV.generate do |csv|
- csv << [:foo, 0]
- csv << [:bar, 1]
- csv << [:baz, 2]
- end
- str # => "foo,0\nbar,1\nbaz,2\n"
- ary = CSV.parse(str)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-The default <tt>$INPUT_RECORD_SEPARATOR</tt> (<tt>$/</tt>) is used
-if any of the following is true:
-* None of those sequences is found.
-* Data is +ARGF+, +STDIN+, +STDOUT+, or +STDERR+.
-* The stream is only available for output.
-
-Obviously, discovery takes a little time. Set manually if speed is important. Also note that IO objects should be opened in binary mode on Windows if this feature will be used as the line-ending translation can cause problems with resetting the document position to where it was before the read ahead.
-
----
-
-Raises an exception if the given value is not String-convertible:
- row_sep = BasicObject.new
- # Raises NoMethodError (undefined method `to_s' for #<BasicObject:>)
- CSV.generate(ary, row_sep: row_sep)
- # Raises NoMethodError (undefined method `to_s' for #<BasicObject:>)
- CSV.parse(str, row_sep: row_sep)
diff --git a/doc/csv/options/generating/force_quotes.rdoc b/doc/csv/options/generating/force_quotes.rdoc
deleted file mode 100644
index 11afd1a16c..0000000000
--- a/doc/csv/options/generating/force_quotes.rdoc
+++ /dev/null
@@ -1,17 +0,0 @@
-====== Option +force_quotes+
-
-Specifies the boolean that determines whether each output field is to be double-quoted.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:force_quotes) # => false
-
-For examples in this section:
- ary = ['foo', 0, nil]
-
-Using the default, +false+:
- str = CSV.generate_line(ary)
- str # => "foo,0,\n"
-
-Using +true+:
- str = CSV.generate_line(ary, force_quotes: true)
- str # => "\"foo\",\"0\",\"\"\n"
diff --git a/doc/csv/options/generating/quote_empty.rdoc b/doc/csv/options/generating/quote_empty.rdoc
deleted file mode 100644
index 4c5645c662..0000000000
--- a/doc/csv/options/generating/quote_empty.rdoc
+++ /dev/null
@@ -1,12 +0,0 @@
-====== Option +quote_empty+
-
-Specifies the boolean that determines whether an empty value is to be double-quoted.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:quote_empty) # => true
-
-With the default +true+:
- CSV.generate_line(['"', ""]) # => "\"\"\"\",\"\"\n"
-
-With +false+:
- CSV.generate_line(['"', ""], quote_empty: false) # => "\"\"\"\",\n"
diff --git a/doc/csv/options/generating/write_converters.rdoc b/doc/csv/options/generating/write_converters.rdoc
deleted file mode 100644
index 6e5fae5fda..0000000000
--- a/doc/csv/options/generating/write_converters.rdoc
+++ /dev/null
@@ -1,33 +0,0 @@
-====== Option +write_converters+
-
-Specifies converters to be used in generating fields.
-See {Write Converters}[#class-CSV-label-Write+Converters]
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:write_converters) # => nil
-
-With no write converter:
- str = CSV.generate_line(["\na\n", "\tb\t", " c "])
- str # => "\"\na\n\",\tb\t, c \n"
-
-With a write converter:
- strip_converter = proc {|field| field.strip }
- str = CSV.generate_line(["\na\n", "\tb\t", " c "], write_converters: strip_converter)
- str # => "a,b,c\n"
-
-With two write converters (called in order):
- upcase_converter = proc {|field| field.upcase }
- downcase_converter = proc {|field| field.downcase }
- write_converters = [upcase_converter, downcase_converter]
- str = CSV.generate_line(['a', 'b', 'c'], write_converters: write_converters)
- str # => "a,b,c\n"
-
-See also {Write Converters}[#class-CSV-label-Write+Converters]
-
----
-
-Raises an exception if the converter returns a value that is neither +nil+
-nor \String-convertible:
- bad_converter = proc {|field| BasicObject.new }
- # Raises NoMethodError (undefined method `is_a?' for #<BasicObject:>)
- CSV.generate_line(['a', 'b', 'c'], write_converters: bad_converter) \ No newline at end of file
diff --git a/doc/csv/options/generating/write_empty_value.rdoc b/doc/csv/options/generating/write_empty_value.rdoc
deleted file mode 100644
index 67be5662cb..0000000000
--- a/doc/csv/options/generating/write_empty_value.rdoc
+++ /dev/null
@@ -1,15 +0,0 @@
-====== Option +write_empty_value+
-
-Specifies the object that is to be substituted for each field
-that has an empty \String.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:write_empty_value) # => ""
-
-Without the option:
- str = CSV.generate_line(['a', '', 'c', ''])
- str # => "a,\"\",c,\"\"\n"
-
-With the option:
- str = CSV.generate_line(['a', '', 'c', ''], write_empty_value: "x")
- str # => "a,x,c,x\n"
diff --git a/doc/csv/options/generating/write_headers.rdoc b/doc/csv/options/generating/write_headers.rdoc
deleted file mode 100644
index f9faa9d438..0000000000
--- a/doc/csv/options/generating/write_headers.rdoc
+++ /dev/null
@@ -1,29 +0,0 @@
-====== Option +write_headers+
-
-Specifies the boolean that determines whether a header row is included in the output;
-ignored if there are no headers.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:write_headers) # => nil
-
-Without +write_headers+:
- file_path = 't.csv'
- CSV.open(file_path,'w',
- :headers => ['Name','Value']
- ) do |csv|
- csv << ['foo', '0']
- end
- CSV.open(file_path) do |csv|
- csv.shift
- end # => ["foo", "0"]
-
-With +write_headers+":
- CSV.open(file_path,'w',
- :write_headers=> true,
- :headers => ['Name','Value']
- ) do |csv|
- csv << ['foo', '0']
- end
- CSV.open(file_path) do |csv|
- csv.shift
- end # => ["Name", "Value"]
diff --git a/doc/csv/options/generating/write_nil_value.rdoc b/doc/csv/options/generating/write_nil_value.rdoc
deleted file mode 100644
index 65d33ff54e..0000000000
--- a/doc/csv/options/generating/write_nil_value.rdoc
+++ /dev/null
@@ -1,14 +0,0 @@
-====== Option +write_nil_value+
-
-Specifies the object that is to be substituted for each +nil+-valued field.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:write_nil_value) # => nil
-
-Without the option:
- str = CSV.generate_line(['a', nil, 'c', nil])
- str # => "a,,c,\n"
-
-With the option:
- str = CSV.generate_line(['a', nil, 'c', nil], write_nil_value: "x")
- str # => "a,x,c,x\n"
diff --git a/doc/csv/options/parsing/converters.rdoc b/doc/csv/options/parsing/converters.rdoc
deleted file mode 100644
index 211fa48de6..0000000000
--- a/doc/csv/options/parsing/converters.rdoc
+++ /dev/null
@@ -1,46 +0,0 @@
-====== Option +converters+
-
-Specifies converters to be used in parsing fields.
-See {Field Converters}[#class-CSV-label-Field+Converters]
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:converters) # => nil
-
-The value may be a field converter name
-(see {Stored Converters}[#class-CSV-label-Stored+Converters]):
- str = '1,2,3'
- # Without a converter
- array = CSV.parse_line(str)
- array # => ["1", "2", "3"]
- # With built-in converter :integer
- array = CSV.parse_line(str, converters: :integer)
- array # => [1, 2, 3]
-
-The value may be a converter list
-(see {Converter Lists}[#class-CSV-label-Converter+Lists]):
- str = '1,3.14159'
- # Without converters
- array = CSV.parse_line(str)
- array # => ["1", "3.14159"]
- # With built-in converters
- array = CSV.parse_line(str, converters: [:integer, :float])
- array # => [1, 3.14159]
-
-The value may be a \Proc custom converter:
-(see {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]):
- str = ' foo , bar , baz '
- # Without a converter
- array = CSV.parse_line(str)
- array # => [" foo ", " bar ", " baz "]
- # With a custom converter
- array = CSV.parse_line(str, converters: proc {|field| field.strip })
- array # => ["foo", "bar", "baz"]
-
-See also {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]
-
----
-
-Raises an exception if the converter is not a converter name or a \Proc:
- str = 'foo,0'
- # Raises NoMethodError (undefined method `arity' for nil:NilClass)
- CSV.parse(str, converters: :foo)
diff --git a/doc/csv/options/parsing/empty_value.rdoc b/doc/csv/options/parsing/empty_value.rdoc
deleted file mode 100644
index 7d3bcc078c..0000000000
--- a/doc/csv/options/parsing/empty_value.rdoc
+++ /dev/null
@@ -1,13 +0,0 @@
-====== Option +empty_value+
-
-Specifies the object that is to be substituted
-for each field that has an empty \String.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:empty_value) # => "" (empty string)
-
-With the default, <tt>""</tt>:
- CSV.parse_line('a,"",b,"",c') # => ["a", "", "b", "", "c"]
-
-With a different object:
- CSV.parse_line('a,"",b,"",c', empty_value: 'x') # => ["a", "x", "b", "x", "c"]
diff --git a/doc/csv/options/parsing/field_size_limit.rdoc b/doc/csv/options/parsing/field_size_limit.rdoc
deleted file mode 100644
index 797c5776fc..0000000000
--- a/doc/csv/options/parsing/field_size_limit.rdoc
+++ /dev/null
@@ -1,39 +0,0 @@
-====== Option +field_size_limit+
-
-Specifies the \Integer field size limit.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:field_size_limit) # => nil
-
-This is a maximum size CSV will read ahead looking for the closing quote for a field.
-(In truth, it reads to the first line ending beyond this size.)
-If a quote cannot be found within the limit CSV will raise a MalformedCSVError,
-assuming the data is faulty.
-You can use this limit to prevent what are effectively DoS attacks on the parser.
-However, this limit can cause a legitimate parse to fail;
-therefore the default value is +nil+ (no limit).
-
-For the examples in this section:
- str = <<~EOT
- "a","b"
- "
- 2345
- ",""
- EOT
- str # => "\"a\",\"b\"\n\"\n2345\n\",\"\"\n"
-
-Using the default +nil+:
- ary = CSV.parse(str)
- ary # => [["a", "b"], ["\n2345\n", ""]]
-
-Using <tt>50</tt>:
- field_size_limit = 50
- ary = CSV.parse(str, field_size_limit: field_size_limit)
- ary # => [["a", "b"], ["\n2345\n", ""]]
-
----
-
-Raises an exception if a field is too long:
- big_str = "123456789\n" * 1024
- # Raises CSV::MalformedCSVError (Field size exceeded in line 1.)
- CSV.parse('valid,fields,"' + big_str + '"', field_size_limit: 2048)
diff --git a/doc/csv/options/parsing/header_converters.rdoc b/doc/csv/options/parsing/header_converters.rdoc
deleted file mode 100644
index 309180805f..0000000000
--- a/doc/csv/options/parsing/header_converters.rdoc
+++ /dev/null
@@ -1,43 +0,0 @@
-====== Option +header_converters+
-
-Specifies converters to be used in parsing headers.
-See {Header Converters}[#class-CSV-label-Header+Converters]
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:header_converters) # => nil
-
-Identical in functionality to option {converters}[#class-CSV-label-Option+converters]
-except that:
-- The converters apply only to the header row.
-- The built-in header converters are +:downcase+ and +:symbol+.
-
-This section assumes prior execution of:
- str = <<-EOT
- Name,Value
- foo,0
- bar,1
- baz,2
- EOT
- # With no header converter
- table = CSV.parse(str, headers: true)
- table.headers # => ["Name", "Value"]
-
-The value may be a header converter name
-(see {Stored Converters}[#class-CSV-label-Stored+Converters]):
- table = CSV.parse(str, headers: true, header_converters: :downcase)
- table.headers # => ["name", "value"]
-
-The value may be a converter list
-(see {Converter Lists}[#class-CSV-label-Converter+Lists]):
- header_converters = [:downcase, :symbol]
- table = CSV.parse(str, headers: true, header_converters: header_converters)
- table.headers # => [:name, :value]
-
-The value may be a \Proc custom converter
-(see {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]):
- upcase_converter = proc {|field| field.upcase }
- table = CSV.parse(str, headers: true, header_converters: upcase_converter)
- table.headers # => ["NAME", "VALUE"]
-
-See also {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]
-
diff --git a/doc/csv/options/parsing/headers.rdoc b/doc/csv/options/parsing/headers.rdoc
deleted file mode 100644
index 0ea151f24b..0000000000
--- a/doc/csv/options/parsing/headers.rdoc
+++ /dev/null
@@ -1,63 +0,0 @@
-====== Option +headers+
-
-Specifies a boolean, \Symbol, \Array, or \String to be used
-to define column headers.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:headers) # => false
-
----
-
-Without +headers+:
- str = <<-EOT
- Name,Count
- foo,0
- bar,1
- bax,2
- EOT
- csv = CSV.new(str)
- csv # => #<CSV io_type:StringIO encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
- csv.headers # => nil
- csv.shift # => ["Name", "Count"]
-
----
-
-If set to +true+ or the \Symbol +:first_row+,
-the first row of the data is treated as a row of headers:
- str = <<-EOT
- Name,Count
- foo,0
- bar,1
- bax,2
- EOT
- csv = CSV.new(str, headers: true)
- csv # => #<CSV io_type:StringIO encoding:UTF-8 lineno:2 col_sep:"," row_sep:"\n" quote_char:"\"" headers:["Name", "Count"]>
- csv.headers # => ["Name", "Count"]
- csv.shift # => #<CSV::Row "Name":"bar" "Count":"1">
-
----
-
-If set to an \Array, the \Array elements are treated as headers:
- str = <<-EOT
- foo,0
- bar,1
- bax,2
- EOT
- csv = CSV.new(str, headers: ['Name', 'Count'])
- csv
- csv.headers # => ["Name", "Count"]
- csv.shift # => #<CSV::Row "Name":"bar" "Count":"1">
-
----
-
-If set to a \String +str+, method <tt>CSV::parse_line(str, options)</tt> is called
-with the current +options+, and the returned \Array is treated as headers:
- str = <<-EOT
- foo,0
- bar,1
- bax,2
- EOT
- csv = CSV.new(str, headers: 'Name,Count')
- csv
- csv.headers # => ["Name", "Count"]
- csv.shift # => #<CSV::Row "Name":"bar" "Count":"1">
diff --git a/doc/csv/options/parsing/liberal_parsing.rdoc b/doc/csv/options/parsing/liberal_parsing.rdoc
deleted file mode 100644
index b8b9b00c98..0000000000
--- a/doc/csv/options/parsing/liberal_parsing.rdoc
+++ /dev/null
@@ -1,19 +0,0 @@
-====== Option +liberal_parsing+
-
-Specifies the boolean value that determines whether
-CSV will attempt to parse input not conformant with RFC 4180,
-such as double quotes in unquoted fields.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:liberal_parsing) # => false
-
-For examples in this section:
- str = 'is,this "three, or four",fields'
-
-Without +liberal_parsing+:
- # Raises CSV::MalformedCSVError (Illegal quoting in str 1.)
- CSV.parse_line(str)
-
-With +liberal_parsing+:
- ary = CSV.parse_line(str, liberal_parsing: true)
- ary # => ["is", "this \"three", " or four\"", "fields"]
diff --git a/doc/csv/options/parsing/nil_value.rdoc b/doc/csv/options/parsing/nil_value.rdoc
deleted file mode 100644
index 412e8795e8..0000000000
--- a/doc/csv/options/parsing/nil_value.rdoc
+++ /dev/null
@@ -1,12 +0,0 @@
-====== Option +nil_value+
-
-Specifies the object that is to be substituted for each null (no-text) field.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:nil_value) # => nil
-
-With the default, +nil+:
- CSV.parse_line('a,,b,,c') # => ["a", nil, "b", nil, "c"]
-
-With a different object:
- CSV.parse_line('a,,b,,c', nil_value: 0) # => ["a", 0, "b", 0, "c"]
diff --git a/doc/csv/options/parsing/return_headers.rdoc b/doc/csv/options/parsing/return_headers.rdoc
deleted file mode 100644
index 45d2e3f3de..0000000000
--- a/doc/csv/options/parsing/return_headers.rdoc
+++ /dev/null
@@ -1,22 +0,0 @@
-====== Option +return_headers+
-
-Specifies the boolean that determines whether method #shift
-returns or ignores the header row.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:return_headers) # => false
-
-Examples:
- str = <<-EOT
- Name,Count
- foo,0
- bar,1
- bax,2
- EOT
- # Without return_headers first row is str.
- csv = CSV.new(str, headers: true)
- csv.shift # => #<CSV::Row "Name":"foo" "Count":"0">
- # With return_headers first row is headers.
- csv = CSV.new(str, headers: true, return_headers: true)
- csv.shift # => #<CSV::Row "Name":"Name" "Count":"Count">
-
diff --git a/doc/csv/options/parsing/skip_blanks.rdoc b/doc/csv/options/parsing/skip_blanks.rdoc
deleted file mode 100644
index 2c8f7b7bb8..0000000000
--- a/doc/csv/options/parsing/skip_blanks.rdoc
+++ /dev/null
@@ -1,31 +0,0 @@
-====== Option +skip_blanks+
-
-Specifies a boolean that determines whether blank lines in the input will be ignored;
-a line that contains a column separator is not considered to be blank.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:skip_blanks) # => false
-
-See also option {skiplines}[#class-CSV-label-Option+skip_lines].
-
-For examples in this section:
- str = <<-EOT
- foo,0
-
- bar,1
- baz,2
-
- ,
- EOT
-
-Using the default, +false+:
- ary = CSV.parse(str)
- ary # => [["foo", "0"], [], ["bar", "1"], ["baz", "2"], [], [nil, nil]]
-
-Using +true+:
- ary = CSV.parse(str, skip_blanks: true)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]
-
-Using a truthy value:
- ary = CSV.parse(str, skip_blanks: :foo)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]
diff --git a/doc/csv/options/parsing/skip_lines.rdoc b/doc/csv/options/parsing/skip_lines.rdoc
deleted file mode 100644
index 1481c40a5f..0000000000
--- a/doc/csv/options/parsing/skip_lines.rdoc
+++ /dev/null
@@ -1,37 +0,0 @@
-====== Option +skip_lines+
-
-Specifies an object to use in identifying comment lines in the input that are to be ignored:
-* If a \Regexp, ignores lines that match it.
-* If a \String, converts it to a \Regexp, ignores lines that match it.
-* If +nil+, no lines are considered to be comments.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:skip_lines) # => nil
-
-For examples in this section:
- str = <<-EOT
- # Comment
- foo,0
- bar,1
- baz,2
- # Another comment
- EOT
- str # => "# Comment\nfoo,0\nbar,1\nbaz,2\n# Another comment\n"
-
-Using the default, +nil+:
- ary = CSV.parse(str)
- ary # => [["# Comment"], ["foo", "0"], ["bar", "1"], ["baz", "2"], ["# Another comment"]]
-
-Using a \Regexp:
- ary = CSV.parse(str, skip_lines: /^#/)
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Using a \String:
- ary = CSV.parse(str, skip_lines: '#')
- ary # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
----
-
-Raises an exception if given an object that is not a \Regexp, a \String, or +nil+:
- # Raises ArgumentError (:skip_lines has to respond to #match: 0)
- CSV.parse(str, skip_lines: 0)
diff --git a/doc/csv/options/parsing/strip.rdoc b/doc/csv/options/parsing/strip.rdoc
deleted file mode 100644
index 56ae4310c3..0000000000
--- a/doc/csv/options/parsing/strip.rdoc
+++ /dev/null
@@ -1,15 +0,0 @@
-====== Option +strip+
-
-Specifies the boolean value that determines whether
-whitespace is stripped from each input field.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:strip) # => false
-
-With default value +false+:
- ary = CSV.parse_line(' a , b ')
- ary # => [" a ", " b "]
-
-With value +true+:
- ary = CSV.parse_line(' a , b ', strip: true)
- ary # => ["a", "b"]
diff --git a/doc/csv/options/parsing/unconverted_fields.rdoc b/doc/csv/options/parsing/unconverted_fields.rdoc
deleted file mode 100644
index 3e7f839d49..0000000000
--- a/doc/csv/options/parsing/unconverted_fields.rdoc
+++ /dev/null
@@ -1,27 +0,0 @@
-====== Option +unconverted_fields+
-
-Specifies the boolean that determines whether unconverted field values are to be available.
-
-Default value:
- CSV::DEFAULT_OPTIONS.fetch(:unconverted_fields) # => nil
-
-The unconverted field values are those found in the source data,
-prior to any conversions performed via option +converters+.
-
-When option +unconverted_fields+ is +true+,
-each returned row (\Array or \CSV::Row) has an added method,
-+unconverted_fields+, that returns the unconverted field values:
- str = <<-EOT
- foo,0
- bar,1
- baz,2
- EOT
- # Without unconverted_fields
- csv = CSV.parse(str, converters: :integer)
- csv # => [["foo", 0], ["bar", 1], ["baz", 2]]
- csv.first.respond_to?(:unconverted_fields) # => false
- # With unconverted_fields
- csv = CSV.parse(str, converters: :integer, unconverted_fields: true)
- csv # => [["foo", 0], ["bar", 1], ["baz", 2]]
- csv.first.respond_to?(:unconverted_fields) # => true
- csv.first.unconverted_fields # => ["foo", "0"]
diff --git a/doc/csv/recipes/filtering.rdoc b/doc/csv/recipes/filtering.rdoc
deleted file mode 100644
index 470649d09a..0000000000
--- a/doc/csv/recipes/filtering.rdoc
+++ /dev/null
@@ -1,156 +0,0 @@
-== Recipes for Filtering \CSV
-
-For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].
-
-All code snippets on this page assume that the following has been executed:
- require 'csv'
-
-=== Contents
-
-- {Source and Output Formats}[#label-Source+and+Output+Formats]
- - {Filtering String to String}[#label-Filtering+String+to+String]
- - {Recipe: Filter String to String with Headers}[#label-Recipe-3A+Filter+String+to+String+with+Headers]
- - {Recipe: Filter String to String Without Headers}[#label-Recipe-3A+Filter+String+to+String+Without+Headers]
- - {Filtering String to IO Stream}[#label-Filtering+String+to+IO+Stream]
- - {Recipe: Filter String to IO Stream with Headers}[#label-Recipe-3A+Filter+String+to+IO+Stream+with+Headers]
- - {Recipe: Filter String to IO Stream Without Headers}[#label-Recipe-3A+Filter+String+to+IO+Stream+Without+Headers]
- - {Filtering IO Stream to String}[#label-Filtering+IO+Stream+to+String]
- - {Recipe: Filter IO Stream to String with Headers}[#label-Recipe-3A+Filter+IO+Stream+to+String+with+Headers]
- - {Recipe: Filter IO Stream to String Without Headers}[#label-Recipe-3A+Filter+IO+Stream+to+String+Without+Headers]
- - {Filtering IO Stream to IO Stream}[#label-Filtering+IO+Stream+to+IO+Stream]
- - {Recipe: Filter IO Stream to IO Stream with Headers}[#label-Recipe-3A+Filter+IO+Stream+to+IO+Stream+with+Headers]
- - {Recipe: Filter IO Stream to IO Stream Without Headers}[#label-Recipe-3A+Filter+IO+Stream+to+IO+Stream+Without+Headers]
-
-=== Source and Output Formats
-
-You can use a Unix-style "filter" for \CSV data.
-The filter reads source \CSV data and writes output \CSV data as modified by the filter.
-The input and output \CSV data may be any mixture of \Strings and \IO streams.
-
-==== Filtering \String to \String
-
-You can filter one \String to another, with or without headers.
-
-===== Recipe: Filter \String to \String with Headers
-
-Use class method CSV.filter with option +headers+ to filter a \String to another \String:
- in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- out_string = ''
- CSV.filter(in_string, out_string, headers: true) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- out_string # => "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"
-
-===== Recipe: Filter \String to \String Without Headers
-
-Use class method CSV.filter without option +headers+ to filter a \String to another \String:
- in_string = "foo,0\nbar,1\nbaz,2\n"
- out_string = ''
- CSV.filter(in_string, out_string) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- out_string # => "FOO,0000\nBAR,1111\nBAZ,2222\n"
-
-==== Filtering \String to \IO Stream
-
-You can filter a \String to an \IO stream, with or without headers.
-
-===== Recipe: Filter \String to \IO Stream with Headers
-
-Use class method CSV.filter with option +headers+ to filter a \String to an \IO stream:
- in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.open(path, 'w') do |out_io|
- CSV.filter(in_string, out_io, headers: true) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- p File.read(path) # => "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"
-
-===== Recipe: Filter \String to \IO Stream Without Headers
-
-Use class method CSV.filter without option +headers+ to filter a \String to an \IO stream:
- in_string = "foo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.open(path, 'w') do |out_io|
- CSV.filter(in_string, out_io) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- p File.read(path) # => "FOO,0000\nBAR,1111\nBAZ,2222\n"
-
-==== Filtering \IO Stream to \String
-
-You can filter an \IO stream to a \String, with or without headers.
-
-===== Recipe: Filter \IO Stream to \String with Headers
-
-Use class method CSV.filter with option +headers+ to filter an \IO stream to a \String:
- in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, in_string)
- out_string = ''
- File.open(path, headers: true) do |in_io|
- CSV.filter(in_io, out_string, headers: true) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- out_string # => "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"
-
-===== Recipe: Filter \IO Stream to \String Without Headers
-
-Use class method CSV.filter without option +headers+ to filter an \IO stream to a \String:
- in_string = "foo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, in_string)
- out_string = ''
- File.open(path) do |in_io|
- CSV.filter(in_io, out_string) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- out_string # => "FOO,0000\nBAR,1111\nBAZ,2222\n"
-
-==== Filtering \IO Stream to \IO Stream
-
-You can filter an \IO stream to another \IO stream, with or without headers.
-
-===== Recipe: Filter \IO Stream to \IO Stream with Headers
-
-Use class method CSV.filter with option +headers+ to filter an \IO stream to another \IO stream:
- in_path = 't.csv'
- in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- File.write(in_path, in_string)
- out_path = 'u.csv'
- File.open(in_path) do |in_io|
- File.open(out_path, 'w') do |out_io|
- CSV.filter(in_io, out_io, headers: true) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- end
- p File.read(out_path) # => "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"
-
-===== Recipe: Filter \IO Stream to \IO Stream Without Headers
-
-Use class method CSV.filter without option +headers+ to filter an \IO stream to another \IO stream:
- in_path = 't.csv'
- in_string = "foo,0\nbar,1\nbaz,2\n"
- File.write(in_path, in_string)
- out_path = 'u.csv'
- File.open(in_path) do |in_io|
- File.open(out_path, 'w') do |out_io|
- CSV.filter(in_io, out_io) do |row|
- row[0] = row[0].upcase
- row[1] *= 4
- end
- end
- end
- p File.read(out_path) # => "FOO,0000\nBAR,1111\nBAZ,2222\n"
diff --git a/doc/csv/recipes/generating.rdoc b/doc/csv/recipes/generating.rdoc
deleted file mode 100644
index 3ef6df99b4..0000000000
--- a/doc/csv/recipes/generating.rdoc
+++ /dev/null
@@ -1,244 +0,0 @@
-== Recipes for Generating \CSV
-
-For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].
-
-All code snippets on this page assume that the following has been executed:
- require 'csv'
-
-=== Contents
-
-- {Output Formats}[#label-Output+Formats]
- - {Generating to a String}[#label-Generating+to+a+String]
- - {Recipe: Generate to String with Headers}[#label-Recipe-3A+Generate+to+String+with+Headers]
- - {Recipe: Generate to String Without Headers}[#label-Recipe-3A+Generate+to+String+Without+Headers]
- - {Generating to a File}[#label-Generating+to+a+File]
- - {Recipe: Generate to File with Headers}[#label-Recipe-3A+Generate+to+File+with+Headers]
- - {Recipe: Generate to File Without Headers}[#label-Recipe-3A+Generate+to+File+Without+Headers]
- - {Generating to IO an Stream}[#label-Generating+to+an+IO+Stream]
- - {Recipe: Generate to IO Stream with Headers}[#label-Recipe-3A+Generate+to+IO+Stream+with+Headers]
- - {Recipe: Generate to IO Stream Without Headers}[#label-Recipe-3A+Generate+to+IO+Stream+Without+Headers]
-- {Converting Fields}[#label-Converting+Fields]
- - {Recipe: Filter Generated Field Strings}[#label-Recipe-3A+Filter+Generated+Field+Strings]
- - {Recipe: Specify Multiple Write Converters}[#label-Recipe-3A+Specify+Multiple+Write+Converters]
-- {RFC 4180 Compliance}[#label-RFC+4180+Compliance]
- - {Row Separator}[#label-Row+Separator]
- - {Recipe: Generate Compliant Row Separator}[#label-Recipe-3A+Generate+Compliant+Row+Separator]
- - {Recipe: Generate Non-Compliant Row Separator}[#label-Recipe-3A+Generate+Non-Compliant+Row+Separator]
- - {Column Separator}[#label-Column+Separator]
- - {Recipe: Generate Compliant Column Separator}[#label-Recipe-3A+Generate+Compliant+Column+Separator]
- - {Recipe: Generate Non-Compliant Column Separator}[#label-Recipe-3A+Generate+Non-Compliant+Column+Separator]
- - {Quote Character}[#label-Quote+Character]
- - {Recipe: Generate Compliant Quote Character}[#label-Recipe-3A+Generate+Compliant+Quote+Character]
- - {Recipe: Generate Non-Compliant Quote Character}[#label-Recipe-3A+Generate+Non-Compliant+Quote+Character]
-
-=== Output Formats
-
-You can generate \CSV output to a \String, to a \File (via its path), or to an \IO stream.
-
-==== Generating to a \String
-
-You can generate \CSV output to a \String, with or without headers.
-
-===== Recipe: Generate to \String with Headers
-
-Use class method CSV.generate with option +headers+ to generate to a \String.
-
-This example uses method CSV#<< to append the rows
-that are to be generated:
- output_string = CSV.generate('', headers: ['Name', 'Value'], write_headers: true) do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Name,Value\nFoo,0\nBar,1\nBaz,2\n"
-
-===== Recipe: Generate to \String Without Headers
-
-Use class method CSV.generate without option +headers+ to generate to a \String.
-
-This example uses method CSV#<< to append the rows
-that are to be generated:
- output_string = CSV.generate do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Foo,0\nBar,1\nBaz,2\n"
-
-==== Generating to a \File
-
-You can generate /CSV data to a \File, with or without headers.
-
-===== Recipe: Generate to \File with Headers
-
-Use class method CSV.open with option +headers+ generate to a \File.
-
-This example uses method CSV#<< to append the rows
-that are to be generated:
- path = 't.csv'
- CSV.open(path, 'w', headers: ['Name', 'Value'], write_headers: true) do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- p File.read(path) # => "Name,Value\nFoo,0\nBar,1\nBaz,2\n"
-
-===== Recipe: Generate to \File Without Headers
-
-Use class method CSV.open without option +headers+ to generate to a \File.
-
-This example uses method CSV#<< to append the rows
-that are to be generated:
- path = 't.csv'
- CSV.open(path, 'w') do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- p File.read(path) # => "Foo,0\nBar,1\nBaz,2\n"
-
-==== Generating to an \IO Stream
-
-You can generate \CSV data to an \IO stream, with or without headers.
-
-==== Recipe: Generate to \IO Stream with Headers
-
-Use class method CSV.new with option +headers+ to generate \CSV data to an \IO stream:
- path = 't.csv'
- File.open(path, 'w') do |file|
- csv = CSV.new(file, headers: ['Name', 'Value'], write_headers: true)
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- p File.read(path) # => "Name,Value\nFoo,0\nBar,1\nBaz,2\n"
-
-===== Recipe: Generate to \IO Stream Without Headers
-
-Use class method CSV.new without option +headers+ to generate \CSV data to an \IO stream:
- path = 't.csv'
- File.open(path, 'w') do |file|
- csv = CSV.new(file)
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- p File.read(path) # => "Foo,0\nBar,1\nBaz,2\n"
-
-=== Converting Fields
-
-You can use _write_ _converters_ to convert fields when generating \CSV.
-
-==== Recipe: Filter Generated Field Strings
-
-Use option <tt>:write_converters</tt> and a custom converter to convert field values when generating \CSV.
-
-This example defines and uses a custom write converter to strip whitespace from generated fields:
- strip_converter = proc {|field| field.respond_to?(:strip) ? field.strip : field }
- output_string = CSV.generate(write_converters: strip_converter) do |csv|
- csv << [' foo ', 0]
- csv << [' bar ', 1]
- csv << [' baz ', 2]
- end
- output_string # => "foo,0\nbar,1\nbaz,2\n"
-
-==== Recipe: Specify Multiple Write Converters
-
-Use option <tt>:write_converters</tt> and multiple custom coverters
-to convert field values when generating \CSV.
-
-This example defines and uses two custom write converters to strip and upcase generated fields:
- strip_converter = proc {|field| field.respond_to?(:strip) ? field.strip : field }
- upcase_converter = proc {|field| field.respond_to?(:upcase) ? field.upcase : field }
- converters = [strip_converter, upcase_converter]
- output_string = CSV.generate(write_converters: converters) do |csv|
- csv << [' foo ', 0]
- csv << [' bar ', 1]
- csv << [' baz ', 2]
- end
- output_string # => "FOO,0\nBAR,1\nBAZ,2\n"
-
-=== RFC 4180 Compliance
-
-By default, \CSV generates data that is compliant with
-{RFC 4180}[https://tools.ietf.org/html/rfc4180]
-with respect to:
-- Column separator.
-- Quote character.
-
-==== Row Separator
-
-RFC 4180 specifies the row separator CRLF (Ruby <tt>"\r\n"</tt>).
-
-===== Recipe: Generate Compliant Row Separator
-
-For strict compliance, use option +:row_sep+ to specify row separator <tt>"\r\n"</tt>:
- output_string = CSV.generate('', row_sep: "\r\n") do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Foo,0\r\nBar,1\r\nBaz,2\r\n"
-
-===== Recipe: Generate Non-Compliant Row Separator
-
-For data with non-compliant row separators, use option +:row_sep+ with a different value:
-This example source uses semicolon (<tt>";'</tt>) as its row separator:
- output_string = CSV.generate('', row_sep: ";") do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Foo,0;Bar,1;Baz,2;"
-
-==== Column Separator
-
-RFC 4180 specifies column separator COMMA (Ruby <tt>","</tt>).
-
-===== Recipe: Generate Compliant Column Separator
-
-Because the \CSV default comma separator is <tt>","</tt>,
-you need not specify option +:col_sep+ for compliant data:
- output_string = CSV.generate('') do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Foo,0\nBar,1\nBaz,2\n"
-
-===== Recipe: Generate Non-Compliant Column Separator
-
-For data with non-compliant column separators, use option +:col_sep+.
-This example source uses TAB (<tt>"\t"</tt>) as its column separator:
- output_string = CSV.generate('', col_sep: "\t") do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "Foo\t0\nBar\t1\nBaz\t2\n"
-
-==== Quote Character
-
-RFC 4180 specifies quote character DQUOTE (Ruby <tt>"\""</tt>).
-
-===== Recipe: Generate Compliant Quote Character
-
-Because the \CSV default quote character is <tt>"\""</tt>,
-you need not specify option +:quote_char+ for compliant data:
- output_string = CSV.generate('', force_quotes: true) do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "\"Foo\",\"0\"\n\"Bar\",\"1\"\n\"Baz\",\"2\"\n"
-
-===== Recipe: Generate Non-Compliant Quote Character
-
-For data with non-compliant quote characters, use option +:quote_char+.
-This example source uses SQUOTE (<tt>"'"</tt>) as its quote character:
- output_string = CSV.generate('', quote_char: "'", force_quotes: true) do |csv|
- csv << ['Foo', 0]
- csv << ['Bar', 1]
- csv << ['Baz', 2]
- end
- output_string # => "'Foo','0'\n'Bar','1'\n'Baz','2'\n"
diff --git a/doc/csv/recipes/parsing.rdoc b/doc/csv/recipes/parsing.rdoc
deleted file mode 100644
index 6312cea5c4..0000000000
--- a/doc/csv/recipes/parsing.rdoc
+++ /dev/null
@@ -1,543 +0,0 @@
-== Recipes for Parsing \CSV
-
-For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].
-
-All code snippets on this page assume that the following has been executed:
- require 'csv'
-
-=== Contents
-
-- {Source Formats}[#label-Source+Formats]
- - {Parsing from a String}[#label-Parsing+from+a+String]
- - {Recipe: Parse from String with Headers}[#label-Recipe-3A+Parse+from+String+with+Headers]
- - {Recipe: Parse from String Without Headers}[#label-Recipe-3A+Parse+from+String+Without+Headers]
- - {Parsing from a File}[#label-Parsing+from+a+File]
- - {Recipe: Parse from File with Headers}[#label-Recipe-3A+Parse+from+File+with+Headers]
- - {Recipe: Parse from File Without Headers}[#label-Recipe-3A+Parse+from+File+Without+Headers]
- - {Parsing from an IO Stream}[#label-Parsing+from+an+IO+Stream]
- - {Recipe: Parse from IO Stream with Headers}[#label-Recipe-3A+Parse+from+IO+Stream+with+Headers]
- - {Recipe: Parse from IO Stream Without Headers}[#label-Recipe-3A+Parse+from+IO+Stream+Without+Headers]
-- {RFC 4180 Compliance}[#label-RFC+4180+Compliance]
- - {Row Separator}[#label-Row+Separator]
- - {Recipe: Handle Compliant Row Separator}[#label-Recipe-3A+Handle+Compliant+Row+Separator]
- - {Recipe: Handle Non-Compliant Row Separator}[#label-Recipe-3A+Handle+Non-Compliant+Row+Separator]
- - {Column Separator}[#label-Column+Separator]
- - {Recipe: Handle Compliant Column Separator}[#label-Recipe-3A+Handle+Compliant+Column+Separator]
- - {Recipe: Handle Non-Compliant Column Separator}[#label-Recipe-3A+Handle+Non-Compliant+Column+Separator]
- - {Quote Character}[#label-Quote+Character]
- - {Recipe: Handle Compliant Quote Character}[#label-Recipe-3A+Handle+Compliant+Quote+Character]
- - {Recipe: Handle Non-Compliant Quote Character}[#label-Recipe-3A+Handle+Non-Compliant+Quote+Character]
- - {Recipe: Allow Liberal Parsing}[#label-Recipe-3A+Allow+Liberal+Parsing]
-- {Special Handling}[#label-Special+Handling]
- - {Special Line Handling}[#label-Special+Line+Handling]
- - {Recipe: Ignore Blank Lines}[#label-Recipe-3A+Ignore+Blank+Lines]
- - {Recipe: Ignore Selected Lines}[#label-Recipe-3A+Ignore+Selected+Lines]
- - {Special Field Handling}[#label-Special+Field+Handling]
- - {Recipe: Strip Fields}[#label-Recipe-3A+Strip+Fields]
- - {Recipe: Handle Null Fields}[#label-Recipe-3A+Handle+Null+Fields]
- - {Recipe: Handle Empty Fields}[#label-Recipe-3A+Handle+Empty+Fields]
-- {Converting Fields}[#label-Converting+Fields]
- - {Converting Fields to Objects}[#label-Converting+Fields+to+Objects]
- - {Recipe: Convert Fields to Integers}[#label-Recipe-3A+Convert+Fields+to+Integers]
- - {Recipe: Convert Fields to Floats}[#label-Recipe-3A+Convert+Fields+to+Floats]
- - {Recipe: Convert Fields to Numerics}[#label-Recipe-3A+Convert+Fields+to+Numerics]
- - {Recipe: Convert Fields to Dates}[#label-Recipe-3A+Convert+Fields+to+Dates]
- - {Recipe: Convert Fields to DateTimes}[#label-Recipe-3A+Convert+Fields+to+DateTimes]
- - {Recipe: Convert Assorted Fields to Objects}[#label-Recipe-3A+Convert+Assorted+Fields+to+Objects]
- - {Recipe: Convert Fields to Other Objects}[#label-Recipe-3A+Convert+Fields+to+Other+Objects]
- - {Recipe: Filter Field Strings}[#label-Recipe-3A+Filter+Field+Strings]
- - {Recipe: Register Field Converters}[#label-Recipe-3A+Register+Field+Converters]
- - {Using Multiple Field Converters}[#label-Using+Multiple+Field+Converters]
- - {Recipe: Specify Multiple Field Converters in Option :converters}[#label-Recipe-3A+Specify+Multiple+Field+Converters+in+Option+-3Aconverters]
- - {Recipe: Specify Multiple Field Converters in a Custom Converter List}[#label-Recipe-3A+Specify+Multiple+Field+Converters+in+a+Custom+Converter+List]
-- {Converting Headers}[#label-Converting+Headers]
- - {Recipe: Convert Headers to Lowercase}[#label-Recipe-3A+Convert+Headers+to+Lowercase]
- - {Recipe: Convert Headers to Symbols}[#label-Recipe-3A+Convert+Headers+to+Symbols]
- - {Recipe: Filter Header Strings}[#label-Recipe-3A+Filter+Header+Strings]
- - {Recipe: Register Header Converters}[#label-Recipe-3A+Register+Header+Converters]
- - {Using Multiple Header Converters}[#label-Using+Multiple+Header+Converters]
- - {Recipe: Specify Multiple Header Converters in Option :header_converters}[#label-Recipe-3A+Specify+Multiple+Header+Converters+in+Option+-3Aheader_converters]
- - {Recipe: Specify Multiple Header Converters in a Custom Header Converter List}[#label-Recipe-3A+Specify+Multiple+Header+Converters+in+a+Custom+Header+Converter+List]
-- {Diagnostics}[#label-Diagnostics]
- - {Recipe: Capture Unconverted Fields}[#label-Recipe-3A+Capture+Unconverted+Fields]
- - {Recipe: Capture Field Info}[#label-Recipe-3A+Capture+Field+Info]
-
-=== Source Formats
-
-You can parse \CSV data from a \String, from a \File (via its path), or from an \IO stream.
-
-==== Parsing from a \String
-
-You can parse \CSV data from a \String, with or without headers.
-
-===== Recipe: Parse from \String with Headers
-
-Use class method CSV.parse with option +headers+ to read a source \String all at once
-(may have memory resource implications):
- string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- CSV.parse(string, headers: true) # => #<CSV::Table mode:col_or_row row_count:4>
-
-Use instance method CSV#each with option +headers+ to read a source \String one row at a time:
- CSV.new(string, headers: true).each do |row|
- p row
- end
-Output:
- #<CSV::Row "Name":"foo" "Value":"0">
- #<CSV::Row "Name":"bar" "Value":"1">
- #<CSV::Row "Name":"baz" "Value":"2">
-
-===== Recipe: Parse from \String Without Headers
-
-Use class method CSV.parse without option +headers+ to read a source \String all at once
-(may have memory resource implications):
- string = "foo,0\nbar,1\nbaz,2\n"
- CSV.parse(string) # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Use instance method CSV#each without option +headers+ to read a source \String one row at a time:
- CSV.new(string).each do |row|
- p row
- end
-Output:
- ["foo", "0"]
- ["bar", "1"]
- ["baz", "2"]
-
-==== Parsing from a \File
-
-You can parse \CSV data from a \File, with or without headers.
-
-===== Recipe: Parse from \File with Headers
-
-Use instance method CSV#read with option +headers+ to read a file all at once:
- string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, string)
- CSV.read(path, headers: true) # => #<CSV::Table mode:col_or_row row_count:4>
-
-Use class method CSV.foreach with option +headers+ to read one row at a time:
- CSV.foreach(path, headers: true) do |row|
- p row
- end
-Output:
- #<CSV::Row "Name":"foo" "Value":"0">
- #<CSV::Row "Name":"bar" "Value":"1">
- #<CSV::Row "Name":"baz" "Value":"2">
-
-===== Recipe: Parse from \File Without Headers
-
-Use class method CSV.read without option +headers+ to read a file all at once:
- string = "foo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, string)
- CSV.read(path) # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Use class method CSV.foreach without option +headers+ to read one row at a time:
- CSV.foreach(path) do |row|
- p row
- end
-Output:
- ["foo", "0"]
- ["bar", "1"]
- ["baz", "2"]
-
-==== Parsing from an \IO Stream
-
-You can parse \CSV data from an \IO stream, with or without headers.
-
-===== Recipe: Parse from \IO Stream with Headers
-
-Use class method CSV.parse with option +headers+ to read an \IO stream all at once:
- string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, string)
- File.open(path) do |file|
- CSV.parse(file, headers: true)
- end # => #<CSV::Table mode:col_or_row row_count:4>
-
-Use class method CSV.foreach with option +headers+ to read one row at a time:
- File.open(path) do |file|
- CSV.foreach(file, headers: true) do |row|
- p row
- end
- end
-Output:
- #<CSV::Row "Name":"foo" "Value":"0">
- #<CSV::Row "Name":"bar" "Value":"1">
- #<CSV::Row "Name":"baz" "Value":"2">
-
-===== Recipe: Parse from \IO Stream Without Headers
-
-Use class method CSV.parse without option +headers+ to read an \IO stream all at once:
- string = "foo,0\nbar,1\nbaz,2\n"
- path = 't.csv'
- File.write(path, string)
- File.open(path) do |file|
- CSV.parse(file)
- end # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-Use class method CSV.foreach without option +headers+ to read one row at a time:
- File.open(path) do |file|
- CSV.foreach(file) do |row|
- p row
- end
- end
-Output:
- ["foo", "0"]
- ["bar", "1"]
- ["baz", "2"]
-
-=== RFC 4180 Compliance
-
-By default, \CSV parses data that is compliant with
-{RFC 4180}[https://tools.ietf.org/html/rfc4180]
-with respect to:
-- Row separator.
-- Column separator.
-- Quote character.
-
-==== Row Separator
-
-RFC 4180 specifies the row separator CRLF (Ruby <tt>"\r\n"</tt>).
-
-Although the \CSV default row separator is <tt>"\n"</tt>,
-the parser also by default handles row separator <tt>"\r"</tt> and the RFC-compliant <tt>"\r\n"</tt>.
-
-===== Recipe: Handle Compliant Row Separator
-
-For strict compliance, use option +:row_sep+ to specify row separator <tt>"\r\n"</tt>,
-which allows the compliant row separator:
- source = "foo,1\r\nbar,1\r\nbaz,2\r\n"
- CSV.parse(source, row_sep: "\r\n") # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-But rejects other row separators:
- source = "foo,1\nbar,1\nbaz,2\n"
- CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError
- source = "foo,1\rbar,1\rbaz,2\r"
- CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError
- source = "foo,1\n\rbar,1\n\rbaz,2\n\r"
- CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError
-
-===== Recipe: Handle Non-Compliant Row Separator
-
-For data with non-compliant row separators, use option +:row_sep+.
-This example source uses semicolon (<tt>";"</tt>) as its row separator:
- source = "foo,1;bar,1;baz,2;"
- CSV.parse(source, row_sep: ';') # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-
-==== Column Separator
-
-RFC 4180 specifies column separator COMMA (Ruby <tt>","</tt>).
-
-===== Recipe: Handle Compliant Column Separator
-
-Because the \CSV default comma separator is ',',
-you need not specify option +:col_sep+ for compliant data:
- source = "foo,1\nbar,1\nbaz,2\n"
- CSV.parse(source) # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-
-===== Recipe: Handle Non-Compliant Column Separator
-
-For data with non-compliant column separators, use option +:col_sep+.
-This example source uses TAB (<tt>"\t"</tt>) as its column separator:
- source = "foo,1\tbar,1\tbaz,2"
- CSV.parse(source, col_sep: "\t") # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-
-==== Quote Character
-
-RFC 4180 specifies quote character DQUOTE (Ruby <tt>"\""</tt>).
-
-===== Recipe: Handle Compliant Quote Character
-
-Because the \CSV default quote character is <tt>"\""</tt>,
-you need not specify option +:quote_char+ for compliant data:
- source = "\"foo\",\"1\"\n\"bar\",\"1\"\n\"baz\",\"2\"\n"
- CSV.parse(source) # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-
-===== Recipe: Handle Non-Compliant Quote Character
-
-For data with non-compliant quote characters, use option +:quote_char+.
-This example source uses SQUOTE (<tt>"'"</tt>) as its quote character:
- source = "'foo','1'\n'bar','1'\n'baz','2'\n"
- CSV.parse(source, quote_char: "'") # => [["foo", "1"], ["bar", "1"], ["baz", "2"]]
-
-==== Recipe: Allow Liberal Parsing
-
-Use option +:liberal_parsing+ to specify that \CSV should
-attempt to parse input not conformant with RFC 4180, such as double quotes in unquoted fields:
- source = 'is,this "three, or four",fields'
- CSV.parse(source) # Raises MalformedCSVError
- CSV.parse(source, liberal_parsing: true) # => [["is", "this \"three", " or four\"", "fields"]]
-
-=== Special Handling
-
-You can use parsing options to specify special handling for certain lines and fields.
-
-==== Special Line Handling
-
-Use parsing options to specify special handling for blank lines, or for other selected lines.
-
-===== Recipe: Ignore Blank Lines
-
-Use option +:skip_blanks+ to ignore blank lines:
- source = <<-EOT
- foo,0
-
- bar,1
- baz,2
-
- ,
- EOT
- parsed = CSV.parse(source, skip_blanks: true)
- parsed # => [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]
-
-===== Recipe: Ignore Selected Lines
-
-Use option +:skip_lines+ to ignore selected lines.
- source = <<-EOT
- # Comment
- foo,0
- bar,1
- baz,2
- # Another comment
- EOT
- parsed = CSV.parse(source, skip_lines: /^#/)
- parsed # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-
-==== Special Field Handling
-
-Use parsing options to specify special handling for certain field values.
-
-===== Recipe: Strip Fields
-
-Use option +:strip+ to strip parsed field values:
- CSV.parse_line(' a , b ', strip: true) # => ["a", "b"]
-
-===== Recipe: Handle Null Fields
-
-Use option +:nil_value+ to specify a value that will replace each field
-that is null (no text):
- CSV.parse_line('a,,b,,c', nil_value: 0) # => ["a", 0, "b", 0, "c"]
-
-===== Recipe: Handle Empty Fields
-
-Use option +:empty_value+ to specify a value that will replace each field
-that is empty (\String of length 0);
- CSV.parse_line('a,"",b,"",c', empty_value: 'x') # => ["a", "x", "b", "x", "c"]
-
-=== Converting Fields
-
-You can use field converters to change parsed \String fields into other objects,
-or to otherwise modify the \String fields.
-
-==== Converting Fields to Objects
-
-Use field converters to change parsed \String objects into other, more specific, objects.
-
-There are built-in field converters for converting to objects of certain classes:
-- \Float
-- \Integer
-- \Date
-- \DateTime
-
-Other built-in field converters include:
-- +:numeric+: converts to \Integer and \Float.
-- +:all+: converts to \DateTime, \Integer, \Float.
-
-You can also define field converters to convert to objects of other classes.
-
-===== Recipe: Convert Fields to Integers
-
-Convert fields to \Integer objects using built-in converter +:integer+:
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, converters: :integer)
- parsed.map {|row| row['Value'].class} # => [Integer, Integer, Integer]
-
-===== Recipe: Convert Fields to Floats
-
-Convert fields to \Float objects using built-in converter +:float+:
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, converters: :float)
- parsed.map {|row| row['Value'].class} # => [Float, Float, Float]
-
-===== Recipe: Convert Fields to Numerics
-
-Convert fields to \Integer and \Float objects using built-in converter +:numeric+:
- source = "Name,Value\nfoo,0\nbar,1.1\nbaz,2.2\n"
- parsed = CSV.parse(source, headers: true, converters: :numeric)
- parsed.map {|row| row['Value'].class} # => [Integer, Float, Float]
-
-===== Recipe: Convert Fields to Dates
-
-Convert fields to \Date objects using built-in converter +:date+:
- source = "Name,Date\nfoo,2001-02-03\nbar,2001-02-04\nbaz,2001-02-03\n"
- parsed = CSV.parse(source, headers: true, converters: :date)
- parsed.map {|row| row['Date'].class} # => [Date, Date, Date]
-
-===== Recipe: Convert Fields to DateTimes
-
-Convert fields to \DateTime objects using built-in converter +:date_time+:
- source = "Name,DateTime\nfoo,2001-02-03\nbar,2001-02-04\nbaz,2020-05-07T14:59:00-05:00\n"
- parsed = CSV.parse(source, headers: true, converters: :date_time)
- parsed.map {|row| row['DateTime'].class} # => [DateTime, DateTime, DateTime]
-
-===== Recipe: Convert Assorted Fields to Objects
-
-Convert assorted fields to objects using built-in converter +:all+:
- source = "Type,Value\nInteger,0\nFloat,1.0\nDateTime,2001-02-04\n"
- parsed = CSV.parse(source, headers: true, converters: :all)
- parsed.map {|row| row['Value'].class} # => [Integer, Float, DateTime]
-
-===== Recipe: Convert Fields to Other Objects
-
-Define a custom field converter to convert \String fields into other objects.
-This example defines and uses a custom field converter
-that converts each column-1 value to a \Rational object:
- rational_converter = proc do |field, field_context|
- field_context.index == 1 ? field.to_r : field
- end
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, converters: rational_converter)
- parsed.map {|row| row['Value'].class} # => [Rational, Rational, Rational]
-
-==== Recipe: Filter Field Strings
-
-Define a custom field converter to modify \String fields.
-This example defines and uses a custom field converter
-that strips whitespace from each field value:
- strip_converter = proc {|field| field.strip }
- source = "Name,Value\n foo , 0 \n bar , 1 \n baz , 2 \n"
- parsed = CSV.parse(source, headers: true, converters: strip_converter)
- parsed['Name'] # => ["foo", "bar", "baz"]
- parsed['Value'] # => ["0", "1", "2"]
-
-==== Recipe: Register Field Converters
-
-Register a custom field converter, assigning it a name;
-then refer to the converter by its name:
- rational_converter = proc do |field, field_context|
- field_context.index == 1 ? field.to_r : field
- end
- CSV::Converters[:rational] = rational_converter
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, converters: :rational)
- parsed['Value'] # => [(0/1), (1/1), (2/1)]
-
-==== Using Multiple Field Converters
-
-You can use multiple field converters in either of these ways:
-- Specify converters in option +:converters+.
-- Specify converters in a custom converter list.
-
-===== Recipe: Specify Multiple Field Converters in Option +:converters+
-
-Apply multiple field converters by specifying them in option +:conveters+:
- source = "Name,Value\nfoo,0\nbar,1.0\nbaz,2.0\n"
- parsed = CSV.parse(source, headers: true, converters: [:integer, :float])
- parsed['Value'] # => [0, 1.0, 2.0]
-
-===== Recipe: Specify Multiple Field Converters in a Custom Converter List
-
-Apply multiple field converters by defining and registering a custom converter list:
- strip_converter = proc {|field| field.strip }
- CSV::Converters[:strip] = strip_converter
- CSV::Converters[:my_converters] = [:integer, :float, :strip]
- source = "Name,Value\n foo , 0 \n bar , 1.0 \n baz , 2.0 \n"
- parsed = CSV.parse(source, headers: true, converters: :my_converters)
- parsed['Name'] # => ["foo", "bar", "baz"]
- parsed['Value'] # => [0, 1.0, 2.0]
-
-=== Converting Headers
-
-You can use header converters to modify parsed \String headers.
-
-Built-in header converters include:
-- +:symbol+: converts \String header to \Symbol.
-- +:downcase+: converts \String header to lowercase.
-
-You can also define header converters to otherwise modify header \Strings.
-
-==== Recipe: Convert Headers to Lowercase
-
-Convert headers to lowercase using built-in converter +:downcase+:
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, header_converters: :downcase)
- parsed.headers # => ["name", "value"]
-
-==== Recipe: Convert Headers to Symbols
-
-Convert headers to downcased Symbols using built-in converter +:symbol+:
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, header_converters: :symbol)
- parsed.headers # => [:name, :value]
- parsed.headers.map {|header| header.class} # => [Symbol, Symbol]
-
-==== Recipe: Filter Header Strings
-
-Define a custom header converter to modify \String fields.
-This example defines and uses a custom header converter
-that capitalizes each header \String:
- capitalize_converter = proc {|header| header.capitalize }
- source = "NAME,VALUE\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, header_converters: capitalize_converter)
- parsed.headers # => ["Name", "Value"]
-
-==== Recipe: Register Header Converters
-
-Register a custom header converter, assigning it a name;
-then refer to the converter by its name:
- capitalize_converter = proc {|header| header.capitalize }
- CSV::HeaderConverters[:capitalize] = capitalize_converter
- source = "NAME,VALUE\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, headers: true, header_converters: :capitalize)
- parsed.headers # => ["Name", "Value"]
-
-==== Using Multiple Header Converters
-
-You can use multiple header converters in either of these ways:
-- Specify header converters in option +:header_converters+.
-- Specify header converters in a custom header converter list.
-
-===== Recipe: Specify Multiple Header Converters in Option :header_converters
-
-Apply multiple header converters by specifying them in option +:header_conveters+:
- source = "Name,Value\nfoo,0\nbar,1.0\nbaz,2.0\n"
- parsed = CSV.parse(source, headers: true, header_converters: [:downcase, :symbol])
- parsed.headers # => [:name, :value]
-
-===== Recipe: Specify Multiple Header Converters in a Custom Header Converter List
-
-Apply multiple header converters by defining and registering a custom header converter list:
- CSV::HeaderConverters[:my_header_converters] = [:symbol, :downcase]
- source = "NAME,VALUE\nfoo,0\nbar,1.0\nbaz,2.0\n"
- parsed = CSV.parse(source, headers: true, header_converters: :my_header_converters)
- parsed.headers # => [:name, :value]
-
-=== Diagnostics
-
-==== Recipe: Capture Unconverted Fields
-
-To capture unconverted field values, use option +:unconverted_fields+:
- source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
- parsed = CSV.parse(source, converters: :integer, unconverted_fields: true)
- parsed # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
- parsed.each {|row| p row.unconverted_fields }
-Output:
- ["Name", "Value"]
- ["foo", "0"]
- ["bar", "1"]
- ["baz", "2"]
-
-==== Recipe: Capture Field Info
-
-To capture field info in a custom converter, accept two block arguments.
-The first is the field value; the second is a +CSV::FieldInfo+ object:
- strip_converter = proc {|field, field_info| p field_info; field.strip }
- source = " foo , 0 \n bar , 1 \n baz , 2 \n"
- parsed = CSV.parse(source, converters: strip_converter)
- parsed # => [["foo", "0"], ["bar", "1"], ["baz", "2"]]
-Output:
- #<struct CSV::FieldInfo index=0, line=1, header=nil>
- #<struct CSV::FieldInfo index=1, line=1, header=nil>
- #<struct CSV::FieldInfo index=0, line=2, header=nil>
- #<struct CSV::FieldInfo index=1, line=2, header=nil>
- #<struct CSV::FieldInfo index=0, line=3, header=nil>
- #<struct CSV::FieldInfo index=1, line=3, header=nil>
diff --git a/doc/csv/recipes/recipes.rdoc b/doc/csv/recipes/recipes.rdoc
deleted file mode 100644
index 9e4eaa1da4..0000000000
--- a/doc/csv/recipes/recipes.rdoc
+++ /dev/null
@@ -1,6 +0,0 @@
-== Recipes for \CSV
-
-See:
-- {Recipes for Parsing CSV}[./parsing_rdoc.html]
-- {Recipes for Generating CSV}[./generating_rdoc.html]
-- {Recipes for Filtering CSV}[./filtering_rdoc.html]
diff --git a/doc/dig_methods.rdoc b/doc/dig_methods.rdoc
deleted file mode 100644
index 366275d451..0000000000
--- a/doc/dig_methods.rdoc
+++ /dev/null
@@ -1,82 +0,0 @@
-= Dig Methods
-
-Ruby's +dig+ methods are useful for accessing nested data structures.
-
-Consider this data:
- item = {
- id: "0001",
- type: "donut",
- name: "Cake",
- ppu: 0.55,
- batters: {
- batter: [
- {id: "1001", type: "Regular"},
- {id: "1002", type: "Chocolate"},
- {id: "1003", type: "Blueberry"},
- {id: "1004", type: "Devil's Food"}
- ]
- },
- topping: [
- {id: "5001", type: "None"},
- {id: "5002", type: "Glazed"},
- {id: "5005", type: "Sugar"},
- {id: "5007", type: "Powdered Sugar"},
- {id: "5006", type: "Chocolate with Sprinkles"},
- {id: "5003", type: "Chocolate"},
- {id: "5004", type: "Maple"}
- ]
- }
-
-Without a +dig+ method, you can write:
- item[:batters][:batter][1][:type] # => "Chocolate"
-
-With a +dig+ method, you can write:
- item.dig(:batters, :batter, 1, :type) # => "Chocolate"
-
-Without a +dig+ method, you can write, erroneously
-(raises <tt>NoMethodError (undefined method `[]' for nil:NilClass)</tt>):
- item[:batters][:BATTER][1][:type]
-
-With a +dig+ method, you can write (still erroneously, but avoiding the exception):
- item.dig(:batters, :BATTER, 1, :type) # => nil
-
-== Why Is +dig+ Better?
-
-- It has fewer syntactical elements (to get wrong).
-- It reads better.
-- It does not raise an exception if an item is not found.
-
-== How Does +dig+ Work?
-
-The call sequence is:
- obj.dig(*identifiers)
-
-The +identifiers+ define a "path" into the nested data structures:
-- For each identifier in +identifiers+, calls method \#dig on a receiver
- with that identifier.
-- The first receiver is +self+.
-- Each successive receiver is the value returned by the previous call to +dig+.
-- The value finally returned is the value returned by the last call to +dig+.
-
-A +dig+ method raises an exception if any receiver does not respond to \#dig:
- h = { foo: 1 }
- # Raises TypeError (Integer does not have #dig method):
- h.dig(:foo, :bar)
-
-== What Else?
-
-The structure above has \Hash objects and \Array objects,
-both of which have instance method +dig+.
-
-Altogether there are six built-in Ruby classes that have method +dig+,
-three in the core classes and three in the standard library.
-
-In the core:
-- Array#dig: the first argument is an \Integer index.
-- Hash#dig: the first argument is a key.
-- Struct#dig: the first argument is a key.
-
-In the standard library:
-- OpenStruct#dig: the first argument is a \String name.
-- CSV::Table#dig: the first argument is an \Integer index or a \String header.
-- CSV::Row#dig: the first argument is an \Integer index or a \String header.
diff --git a/doc/dtrace_probes.rdoc b/doc/dtrace_probes.rdoc
index 1b20597ab4..d2cdd56902 100644
--- a/doc/dtrace_probes.rdoc
+++ b/doc/dtrace_probes.rdoc
@@ -52,21 +52,15 @@ with when they are fired and the arguments they take:
[ruby:::method-entry(classname, methodname, filename, lineno);]
This probe is fired just before a method is entered.
- classname:: name of the class (a string)
- methodname:: name of the method about to be executed (a string)
- filename:: the file name where the method is _being called_ (a string)
- lineno:: the line number where the method is _being called_ (an int)
-
- *NOTE*: will only be fired if tracing is enabled, e.g. with: <code>TracePoint.new{}.enable</code>.
- See Feature#14104[https://bugs.ruby-lang.org/issues/14104] for more details.
+ classname name of the class (a string)
+ methodname name of the method about to be executed (a string)
+ filename the file name where the method is _being called_ (a string)
+ lineno the line number where the method is _being called_ (an int)
[ruby:::method-return(classname, methodname, filename, lineno);]
This probe is fired just after a method has returned. The arguments are the
same as "ruby:::method-entry".
- *NOTE*: will only be fired if tracing is enabled, e.g. with: <code>TracePoint.new{}.enable</code>.
- See Feature#14104[https://bugs.ruby-lang.org/issues/14104] for more details.
-
[ruby:::cmethod-entry(classname, methodname, filename, lineno);]
This probe is fired just before a C method is entered. The arguments are the
same as "ruby:::method-entry".
@@ -78,9 +72,9 @@ with when they are fired and the arguments they take:
[ruby:::require-entry(requiredfile, filename, lineno);]
This probe is fired on calls to rb_require_safe (when a file is required).
- requiredfile:: the name of the file to be required (string).
- filename:: the file that called "+require+" (string).
- lineno:: the line number where the call to require was made (int).
+ requiredfile is the name of the file to be required (string).
+ filename is the file that called "require" (string).
+ lineno is the line number where the call to require was made (int).
[ruby:::require-return(requiredfile, filename, lineno);]
This probe is fired just before rb_require_safe (when a file is required)
@@ -90,11 +84,11 @@ with when they are fired and the arguments they take:
[ruby:::find-require-entry(requiredfile, filename, lineno);]
This probe is fired right before search_required is called. search_required
determines whether the file has already been required by searching loaded
- features (<code>$"</code>), and if not, figures out which file must be loaded.
+ features ($"), and if not, figures out which file must be loaded.
- requiredfile:: the file to be required (string).
- filename:: the file that called "require" (string).
- lineno:: the line number where the call to require was made (int).
+ requiredfile is the file to be required (string).
+ filename is the file that called "require" (string).
+ lineno is the line number where the call to require was made (int).
[ruby:::find-require-return(requiredfile, filename, lineno);]
This probe is fired right after search_required returns. See the
@@ -112,56 +106,56 @@ with when they are fired and the arguments they take:
[ruby:::raise(classname, filename, lineno);]
This probe is fired when an exception is raised.
- classname:: the class name of the raised exception (string)
- filename:: the name of the file where the exception was raised (string)
- lineno:: the line number in the file where the exception was raised (int)
+ classname is the class name of the raised exception (string)
+ filename the name of the file where the exception was raised (string)
+ lineno the line number in the file where the exception was raised (int)
[ruby:::object-create(classname, filename, lineno);]
This probe is fired when an object is about to be allocated.
- classname:: the class of the allocated object (string)
- filename:: the name of the file where the object is allocated (string)
- lineno:: the line number in the file where the object is allocated (int)
+ classname the class of the allocated object (string)
+ filename the name of the file where the object is allocated (string)
+ lineno the line number in the file where the object is allocated (int)
[ruby:::array-create(length, filename, lineno);]
This probe is fired when an Array is about to be allocated.
- length:: the size of the array (long)
- filename:: the name of the file where the array is allocated (string)
- lineno:: the line number in the file where the array is allocated (int)
+ length the size of the array (long)
+ filename the name of the file where the array is allocated (string)
+ lineno the line number in the file where the array is allocated (int)
[ruby:::hash-create(length, filename, lineno);]
This probe is fired when a Hash is about to be allocated.
- length:: the size of the hash (long)
- filename:: the name of the file where the hash is allocated (string)
- lineno:: the line number in the file where the hash is allocated (int)
+ length the size of the hash (long)
+ filename the name of the file where the hash is allocated (string)
+ lineno the line number in the file where the hash is allocated (int)
[ruby:::string-create(length, filename, lineno);]
This probe is fired when a String is about to be allocated.
- length:: the size of the string (long)
- filename:: the name of the file where the string is allocated (string)
- lineno:: the line number in the file where the string is allocated (int)
+ length the size of the string (long)
+ filename the name of the file where the string is allocated (string)
+ lineno the line number in the file where the string is allocated (int)
[ruby:::symbol-create(str, filename, lineno);]
This probe is fired when a Symbol is about to be allocated.
- str:: the contents of the symbol (string)
- filename:: the name of the file where the string is allocated (string)
- lineno:: the line number in the file where the string is allocated (int)
+ str the contents of the symbol (string)
+ filename the name of the file where the string is allocated (string)
+ lineno the line number in the file where the string is allocated (int)
[ruby:::parse-begin(sourcefile, lineno);]
Fired just before parsing and compiling a source file.
- sourcefile:: the file being parsed (string)
- lineno:: the line number where the source starts (int)
+ sourcefile the file being parsed (string)
+ lineno the line number where the source starts (int)
[ruby:::parse-end(sourcefile, lineno);]
Fired just after parsing and compiling a source file.
- sourcefile:: the file being parsed (string)
- lineno:: the line number where the source ended (int)
+ sourcefile the file being parsed (string)
+ lineno the line number where the source ended (int)
[ruby:::gc-mark-begin();]
Fired at the beginning of a mark phase.
@@ -178,7 +172,7 @@ with when they are fired and the arguments they take:
[ruby:::method-cache-clear(class, sourcefile, lineno);]
Fired when the method cache is cleared.
- class:: the classname being cleared, or "global" (string)
- sourcefile:: the file being parsed (string)
- lineno:: the line number where the source ended (int)
+ class is the classname being cleared, or "global" (string)
+ sourcefile the file being parsed (string)
+ lineno the line number where the source ended (int)
diff --git a/doc/extension.ja.rdoc b/doc/extension.ja.rdoc
index fe483e50d3..47303ec408 100644
--- a/doc/extension.ja.rdoc
+++ b/doc/extension.ja.rdoc
@@ -1829,17 +1829,6 @@ rb_ary_store() ãªã©ã®ï¼Œé©åˆ‡ãª API 関数を利用ã™ã‚‹ã‚ˆã†ã«ã—ã¦ä¸‹
ãã®ã»ã‹ï¼Œå¯¾å¿œã«ã¤ã„ã¦ã®è©³ç´°ã¯ extension.rdoc ã®ã€ŒAppendix D. Generational
GCã€ã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„.
-== Appendix E. Ractor サãƒãƒ¼ãƒˆ
-
-Ruby 3.0 ã‹ã‚‰ã€Ruby プログラムを並列ã«å®Ÿè¡Œã™ã‚‹ãŸã‚ã®ä»•組ã¿ã§ã‚ã‚‹ Ractor
-ãŒå°Žå…¥ã•れã¾ã—ãŸã€‚é©åˆ‡ã«ä¸¦åˆ—ã«å®Ÿè¡Œã™ã‚‹ãŸã‚ã«ã¯ã€Ractor サãƒãƒ¼ãƒˆãŒå¿…è¦ã«
-ãªã‚Šã¾ã™ã€‚サãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ライブラリã¯ã€ãƒ¡ã‚¤ãƒ³ Ractor 以外ã§å®Ÿè¡Œã™ã‚‹ã¨
-エラーã«ãªã‚Šã¾ã™ï¼ˆRactor::UnsafeError)。
-
-Ractor をサãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã®è©³ç´°ã¯ã€extension.rdoc ã®ã€ŒAppendix F. Ractor
-supportã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
-
-
:enddoc: Local variables:
:enddoc: fill-column: 60
:enddoc: end:
diff --git a/doc/extension.rdoc b/doc/extension.rdoc
index 71a03cbf52..79eb96d518 100644
--- a/doc/extension.rdoc
+++ b/doc/extension.rdoc
@@ -457,6 +457,8 @@ To specify whether keyword arguments are passed when calling super:
RB_NO_KEYWORDS :: Do not pass keywords
RB_PASS_KEYWORDS :: Pass keywords, final argument should be a hash of keywords
+RB_PASS_EMPTY_KEYWORDS :: Pass empty keywords (not included in arguments)
+ (this will be removed in Ruby 3.0)
RB_PASS_CALLED_KEYWORDS :: Pass keywords if current method was called with
keywords, useful for argument delegation
@@ -676,8 +678,7 @@ member of the struct.
void (*dmark)(void*);
void (*dfree)(void*);
size_t (*dsize)(const void *);
- void (*dcompact)(void*);
- void *reserved[1];
+ void *reserved[2];
} function;
const rb_data_type_t *parent;
void *data;
@@ -709,15 +710,7 @@ Its parameter is a pointer to your struct.
You can pass 0 as dsize if it is hard to implement such a function.
But it is still recommended to avoid 0.
-dcompact is invoked when memory compaction took place.
-Referred Ruby objects that were marked by rb_gc_mark_movable()
-can here be updated per rb_gc_location().
-
-You have to fill reserved with 0.
-
-parent can point to another C type definition that the Ruby object
-is inherited from. Then TypedData_Get_Struct() does also accept
-derived objects.
+You have to fill reserved and parent with 0.
You can fill "data" with an arbitrary value for your use.
Ruby does nothing with the member.
@@ -749,14 +742,6 @@ RUBY_TYPED_WB_PROTECTED ::
More about write barriers can be found in "Generational GC" in
Appendix D.
-RUBY_TYPED_FROZEN_SHAREABLE ::
-
- This flag indicates that the object is shareable object
- if the object is frozen. See Appendix F more details.
-
- If this flag is not set, the object can not become a shareable
- object by Ractor.make_shareable() method.
-
You can allocate and wrap the structure in one step.
TypedData_Make_Struct(klass, type, data_type, sval)
@@ -1438,6 +1423,28 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
; argument captured as a hash.
; If keyword arguments are not
; provided, returns nil.
+ ;
+ ; Currently, will also consider
+ ; final argument as keywords if
+ ; it is a hash or can be
+ ; converted to a hash with
+ ; #to_hash. When the last
+ ; argument is nil, it is
+ ; captured if it is not
+ ; ambiguous to take it as
+ ; empty option hash; i.e. '*'
+ ; is not specified and
+ ; arguments are given more
+ ; than sufficient.
+ ;
+ ; However, handling final
+ ; argument as keywords if
+ ; method was not called with
+ ; keywords (whether final
+ ; argument is hash or nil) is
+ ; deprecated. In that case, a
+ ; warning will be emitted, and
+ ; in Ruby 3.0 it will be an error.
sym-for-block-arg := "&" ; Indicates that an iterator
; block should be captured if
; given
@@ -1462,6 +1469,8 @@ rb_scan_args_kw(int kw_splat, int argc, VALUE *argv, const char *fmt, ...) ::
RB_SCAN_ARGS_PASS_CALLED_KEYWORDS :: Same behavior as +rb_scan_args+.
RB_SCAN_ARGS_KEYWORDS :: The final argument should be a hash treated as
keywords.
+ RB_SCAN_ARGS_EMPTY_KEYWORDS :: Don't treat a final hash as keywords.
+ (this will be removed in Ruby 3.0)
RB_SCAN_ARGS_LAST_HASH_KEYWORDS :: Treat a final argument as keywords if it
is a hash, and not as keywords otherwise.
@@ -1937,7 +1946,6 @@ the <code>*_kw</code> functions introduced in Ruby 2.7.
#define rb_proc_call_with_block_kw(p, c, v, b, kw) rb_proc_call_with_block(p, c, v, b)
#define rb_method_call_kw(c, v, m, kw) rb_method_call(c, v, m)
#define rb_method_call_with_block_kw(c, v, m, b, kw) rb_method_call_with_block(c, v, m, b)
- #define rb_eval_cmd_kwd(c, a, kw) rb_eval_cmd(c, a, 0)
#endif
== Appendix C. Functions available for use in extconf.rb
@@ -2041,7 +2049,7 @@ Before inserting write barriers, you need to know about RGenGC algorithm
available in include/ruby/ruby.h. An example is available in iseq.c.
For a complete guide for RGenGC and write barriers, please refer to
-<https://bugs.ruby-lang.org/projects/ruby-master/wiki/RGenGC>.
+<https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RGenGC>.
== Appendix E. RB_GC_GUARD to protect from premature GC
@@ -2092,89 +2100,6 @@ keyword in C. RB_GC_GUARD has the following advantages:
compilers and architectures. RB_GC_GUARD is customizable for broken
systems/compilers without negatively affecting other systems.
-== Appendix F. Ractor support
-
-Ractor is parallel execution mechanism introduced from Ruby 3.0. All
-ractrors can run in parallel by different OS thread (underlying system
-provided thread), so the C extension should be thread-safe. Now we call
-the property that C extension can run in multiple ractors "Ractor-safe".
-
-By default, all C extensions are recognized as Ractor-unsafe. If C
-extension becomes Ractor-safe, the extension should call
-rb_ext_ractor_safe(true) at the Init_ function and all defined method
-marked as Ractor-safe. Ractor-unsafe C-methods only been called from
-main-ractor. If non-main ractor calls it, then Ractor::UnsafeError is
-raised.
-
-BTW non-"Ractor-safe" extensions raises an error on non-main ractors, so
-that it is "safe" because unsafe operations are not allowed.
-"Ractor-safe" property means "multi-Ractor-ready" or "safe on
-multi-ractors execution". "Ractor-safe" term comes from "Thread-safe".
-
-To make "Ractor-safe" C extension, we need to check the following points:
-
-(1) Do not share unshareable objects between ractors
-
-For example, C's global variable can lead sharing an unshareable objects
-betwee ractors.
-
- VALUE g_var;
- VALUE set(VALUE self, VALUE v){ return g_var = v; }
- VALUE get(VALUE self){ return g_var; }
-
-set() and get() pair can share an unshareable objects using g_var, and
-it is Ractor-unsafe.
-
-Not only using global variables directly, some indirect data structure
-such as global st_table can share the objects, so please take care.
-
-Note that class and module objects are shareable objects, so you can
-keep the code "cFoo = rb_define_class(...)" with C's global variables.
-
-(2) Check the thread-safety of the extension
-
-An extension should be thread-safe. For example, the following code is
-not thread-safe:
-
- bool g_called = false;
- VALUE call(VALUE self) {
- if (g_called) rb_raise("recursive call is not allowed.");
- g_called = true;
- VALUE ret = do_something();
- g_called = false;
- return ret;
- }
-
-because g_called global variable should be synchronized by other
-ractor's threads. To avoid such data-race, some synchronization should
-be used. Check include/ruby/thread_native.h and include/ruby/atomic.h.
-
-On the Ractor mechanism, most of objects given by the method parameters
-or the receiver are isolated by Ractor's boundary, it is easy to make
-thread-safe code than usual thread-programming in general. For example,
-we don't need to lock an array object to access the element of it.
-
-(3) Check the thread-safety of using library
-
-If an extension relies on the external library libfoo and the function
-foo(), the function foo() should be thread safe.
-
-(4) Make an object shareable
-
-This is not required to make an extension Ractor-safe.
-
-If an extension provides special objects defined by rb_data_type_t,
-consider these objects can become shareable or not.
-
-RUBY_TYPED_FROZEN_SHAREABLE flag indicates that these objects can be
-shareable objects if the object is frozen. This means that if the object
-is frozen, the mutation of wrapped data is not allowed.
-
-(5) Others
-
-Maybe there are more points which should be considered to make
-Ractor-safe extension, so this document will be extended.
-
:enddoc: Local variables:
:enddoc: fill-column: 70
:enddoc: end:
diff --git a/doc/fiber.md b/doc/fiber.md
deleted file mode 100644
index 5abd848677..0000000000
--- a/doc/fiber.md
+++ /dev/null
@@ -1,191 +0,0 @@
-# Fiber
-
-Fibers provide a mechanism for cooperative concurrency.
-
-## Context Switching
-
-Fibers execute a user-provided block. During the execution, the block may call `Fiber.yield` or `Fiber.transfer` to switch to another fiber. `Fiber#resume` is used to continue execution from the point where `Fiber.yield` was called.
-
-``` ruby
-#!/usr/bin/env ruby
-
-puts "1: Start program."
-
-f = Fiber.new do
- puts "3: Entered fiber."
- Fiber.yield
- puts "5: Resumed fiber."
-end
-
-puts "2: Resume fiber first time."
-f.resume
-
-puts "4: Resume fiber second time."
-f.resume
-
-puts "6: Finished."
-```
-
-This program demonstrates the flow control of fibers.
-
-## Scheduler
-
-The scheduler interface is used to intercept blocking operations. A typical
-implementation would be a wrapper for a gem like `EventMachine` or `Async`. This
-design provides separation of concerns between the event loop implementation
-and application code. It also allows for layered schedulers which can perform
-instrumentation.
-
-To set the scheduler for the current thread:
-
-``` ruby
-Fiber.set_scheduler(MyScheduler.new)
-```
-
-When the thread exits, there is an implicit call to `set_scheduler`:
-
-``` ruby
-Fiber.set_scheduler(nil)
-```
-
-### Interface
-
-This is the interface you need to implement.
-
-``` ruby
-class Scheduler
- # Wait for the specified process ID to exit.
- # This hook is optional.
- # @parameter pid [Integer] The process ID to wait for.
- # @parameter flags [Integer] A bit-mask of flags suitable for `Process::Status.wait`.
- # @returns [Process::Status] A process status instance.
- def process_wait(pid, flags)
- Thread.new do
- Process::Status.wait(pid, flags)
- end.value
- end
-
- # Wait for the given file descriptor to match the specified events within
- # the specified timeout.
- # @parameter event [Integer] A bit mask of `IO::READABLE`,
- # `IO::WRITABLE` and `IO::PRIORITY`.
- # @parameter timeout [Numeric] The amount of time to wait for the event in seconds.
- # @returns [Integer] The subset of events that are ready.
- def io_wait(io, events, timeout)
- end
-
- # Sleep the current task for the specified duration, or forever if not
- # specified.
- # @param duration [Numeric] The amount of time to sleep in seconds.
- def kernel_sleep(duration = nil)
- end
-
- # Block the calling fiber.
- # @parameter blocker [Object] What we are waiting on, informational only.
- # @parameter timeout [Numeric | Nil] The amount of time to wait for in seconds.
- # @returns [Boolean] Whether the blocking operation was successful or not.
- def block(blocker, timeout = nil)
- end
-
- # Unblock the specified fiber.
- # @parameter blocker [Object] What we are waiting on, informational only.
- # @parameter fiber [Fiber] The fiber to unblock.
- # @reentrant Thread safe.
- def unblock(blocker, fiber)
- end
-
- # Intercept the creation of a non-blocking fiber.
- # @returns [Fiber]
- def fiber(&block)
- Fiber.new(blocking: false, &block)
- end
-
- # Invoked when the thread exits.
- def close
- self.run
- end
-
- def run
- # Implement event loop here.
- end
-end
-```
-
-Additional hooks may be introduced in the future, we will use feature detection
-in order to enable these hooks.
-
-### Non-blocking Execution
-
-The scheduler hooks will only be used in special non-blocking execution
-contexts. Non-blocking execution contexts introduce non-determinism because the
-execution of scheduler hooks may introduce context switching points into your
-program.
-
-#### Fibers
-
-Fibers can be used to create non-blocking execution contexts.
-
-``` ruby
-Fiber.new do
- puts Fiber.current.blocking? # false
-
- # May invoke `Fiber.scheduler&.io_wait`.
- io.read(...)
-
- # May invoke `Fiber.scheduler&.io_wait`.
- io.write(...)
-
- # Will invoke `Fiber.scheduler&.kernel_sleep`.
- sleep(n)
-end.resume
-```
-
-We also introduce a new method which simplifies the creation of these
-non-blocking fibers:
-
-``` ruby
-Fiber.schedule do
- puts Fiber.current.blocking? # false
-end
-```
-
-The purpose of this method is to allow the scheduler to internally decide the
-policy for when to start the fiber, and whether to use symmetric or asymmetric
-fibers.
-
-You can also create blocking execution contexts:
-
-``` ruby
-Fiber.new(blocking: true) do
- # Won't use the scheduler:
- sleep(n)
-end
-```
-
-However you should generally avoid this unless you are implementing a scheduler.
-
-#### IO
-
-By default, I/O is non-blocking. Not all operating systems support non-blocking
-I/O. Windows is a notable example where socket I/O can be non-blocking but pipe
-I/O is blocking. Provided that there *is* a scheduler and the current thread *is
-non-blocking*, the operation will invoke the scheduler.
-
-#### Mutex
-
-The `Mutex` class can be used in a non-blocking context and is fiber specific.
-
-#### ConditionVariable
-
-The `ConditionVariable` class can be used in a non-blocking context and is
-fiber-specific.
-
-#### Queue / SizedQueue
-
-The `Queue` and `SizedQueue` classes can be used in a non-blocking context and
-are fiber-specific.
-
-#### Thread
-
-The `Thread#join` operation can be used in a non-blocking context and is
-fiber-specific.
diff --git a/doc/globals.rdoc b/doc/globals.rdoc
index 1d7cda69f9..89b94e9a8f 100644
--- a/doc/globals.rdoc
+++ b/doc/globals.rdoc
@@ -50,6 +50,9 @@ $-p:: True if option <tt>-p</tt> is set. Read-only variable.
== Pre-defined global constants
+TRUE:: The typical true value. Deprecated.
+FALSE:: The +false+ itself. Deprecated.
+NIL:: The +nil+ itself. Deprecated.
STDIN:: The standard input. The default value for $stdin.
STDOUT:: The standard output. The default value for $stdout.
STDERR:: The standard error output. The default value for $stderr.
diff --git a/doc/implicit_conversion.rdoc b/doc/implicit_conversion.rdoc
deleted file mode 100644
index 0c2a1d4971..0000000000
--- a/doc/implicit_conversion.rdoc
+++ /dev/null
@@ -1,198 +0,0 @@
-== Implicit Conversions
-
-Some Ruby methods accept one or more objects
-that can be either:
-* <i>Of a given class</i>, and so accepted as is.
-* <i>Implicitly convertible to that class</i>, in which case
- the called method converts the object.
-
-For each of the relevant classes, the conversion is done by calling
-a specific conversion method:
-
-* Array: +to_ary+
-* Hash: +to_hash+
-* Integer: +to_int+
-* String: +to_str+
-
-=== Array-Convertible Objects
-
-An <i>Array-convertible object</i> is an object that:
-* Has instance method +to_ary+.
-* The method accepts no arguments.
-* The method returns an object +obj+ for which <tt>obj.kind_of?(Array)</tt> returns +true+.
-
-The examples in this section use method <tt>Array#replace</tt>,
-which accepts an Array-convertible argument.
-
-This class is Array-convertible:
-
- class ArrayConvertible
- def to_ary
- [:foo, 'bar', 2]
- end
- end
- a = []
- a.replace(ArrayConvertible.new) # => [:foo, "bar", 2]
-
-This class is not Array-convertible (no +to_ary+ method):
-
- class NotArrayConvertible; end
- a = []
- # Raises TypeError (no implicit conversion of NotArrayConvertible into Array)
- a.replace(NotArrayConvertible.new)
-
-This class is not Array-convertible (method +to_ary+ takes arguments):
-
- class NotArrayConvertible
- def to_ary(x)
- [:foo, 'bar', 2]
- end
- end
- a = []
- # Raises ArgumentError (wrong number of arguments (given 0, expected 1))
- a.replace(NotArrayConvertible.new)
-
-This class is not Array-convertible (method +to_ary+ returns non-Array):
-
- class NotArrayConvertible
- def to_ary
- :foo
- end
- end
- a = []
- # Raises TypeError (can't convert NotArrayConvertible to Array (NotArrayConvertible#to_ary gives Symbol))
- a.replace(NotArrayConvertible.new)
-
-=== Hash-Convertible Objects
-
-A <i>Hash-convertible object</i> is an object that:
-* Has instance method +to_hash+.
-* The method accepts no arguments.
-* The method returns an object +obj+ for which <tt>obj.kind_of?(Hash)</tt> returns +true+.
-
-The examples in this section use method <tt>Hash#merge</tt>,
-which accepts a Hash-convertible argument.
-
-This class is Hash-convertible:
-
- class HashConvertible
- def to_hash
- {foo: 0, bar: 1, baz: 2}
- end
- end
- h = {}
- h.merge(HashConvertible.new) # => {:foo=>0, :bar=>1, :baz=>2}
-
-This class is not Hash-convertible (no +to_hash+ method):
-
- class NotHashConvertible; end
- h = {}
- # Raises TypeError (no implicit conversion of NotHashConvertible into Hash)
- h.merge(NotHashConvertible.new)
-
-This class is not Hash-convertible (method +to_hash+ takes arguments):
-
- class NotHashConvertible
- def to_hash(x)
- {foo: 0, bar: 1, baz: 2}
- end
- end
- h = {}
- # Raises ArgumentError (wrong number of arguments (given 0, expected 1))
- h.merge(NotHashConvertible.new)
-
-This class is not Hash-convertible (method +to_hash+ returns non-Hash):
-
- class NotHashConvertible
- def to_hash
- :foo
- end
- end
- h = {}
- # Raises TypeError (can't convert NotHashConvertible to Hash (ToHashReturnsNonHash#to_hash gives Symbol))
- h.merge(NotHashConvertible.new)
-
-=== Integer-Convertible Objects
-
-An <i>Integer-convertible object</i> is an object that:
-* Has instance method +to_int+.
-* The method accepts no arguments.
-* The method returns an object +obj+ for which <tt>obj.kind_of?(Integer)</tt> returns +true+.
-
-The examples in this section use method <tt>Array.new</tt>,
-which accepts an Integer-convertible argument.
-
-This user-defined class is Integer-convertible:
-
- class IntegerConvertible
- def to_int
- 3
- end
- end
- a = Array.new(IntegerConvertible.new).size
- a # => 3
-
-This class is not Integer-convertible (method +to_int+ takes arguments):
-
- class NotIntegerConvertible
- def to_int(x)
- 3
- end
- end
- # Raises ArgumentError (wrong number of arguments (given 0, expected 1))
- Array.new(NotIntegerConvertible.new)
-
-This class is not Integer-convertible (method +to_int+ returns non-Integer):
-
- class NotIntegerConvertible
- def to_int
- :foo
- end
- end
- # Raises TypeError (can't convert NotIntegerConvertible to Integer (NotIntegerConvertible#to_int gives Symbol))
- Array.new(NotIntegerConvertible.new)
-
-=== String-Convertible Objects
-
-A <i>String-convertible object</i> is an object that:
-* Has instance method +to_str+.
-* The method accepts no arguments.
-* The method returns an object +obj+ for which <tt>obj.kind_of?(String)</tt> returns +true+.
-
-The examples in this section use method <tt>String::new</tt>,
-which accepts a String-convertible argument.
-
-This class is String-convertible:
-
- class StringConvertible
- def to_str
- 'foo'
- end
- end
- String.new(StringConvertible.new) # => "foo"
-
-This class is not String-convertible (no +to_str+ method):
-
- class NotStringConvertible; end
- # Raises TypeError (no implicit conversion of NotStringConvertible into String)
- String.new(NotStringConvertible.new)
-
-This class is not String-convertible (method +to_str+ takes arguments):
-
- class NotStringConvertible
- def to_str(x)
- 'foo'
- end
- end
- # Raises ArgumentError (wrong number of arguments (given 0, expected 1))
- String.new(NotStringConvertible.new)
-
-This class is not String-convertible (method +to_str+ returns non-String):
-
- class NotStringConvertible
- def to_str
- :foo
- end
- end
- # Raises TypeError (can't convert NotStringConvertible to String (NotStringConvertible#to_str gives Symbol))
- String.new(NotStringConvertible.new)
diff --git a/doc/keywords.rdoc b/doc/keywords.rdoc
index cb1cff33f0..a74126823d 100644
--- a/doc/keywords.rdoc
+++ b/doc/keywords.rdoc
@@ -82,8 +82,6 @@ if::
in::
Used to separate the iterable object and iterator variable in a +for+ loop.
See {control expressions}[rdoc-ref:syntax/control_expressions.rdoc]
- It also serves as a pattern in a +case+ expression.
- See {pattern matching}[rdoc-ref:syntax/pattern_matching.rdoc]
module::
Creates or opens a module. See {modules and classes
diff --git a/doc/maintainers.rdoc b/doc/maintainers.rdoc
index 64510b2559..98de9f2549 100644
--- a/doc/maintainers.rdoc
+++ b/doc/maintainers.rdoc
@@ -13,7 +13,7 @@ A module maintainer is responsible for a certain part of Ruby.
* They have "developer" role on the Redmine to modify issues.
* They have authority to decide the feature of their part. But they should always respect discussions on ruby-core/ruby-dev.
-A submaintainer of a module is like a maintainer. But the submaintainer does
+A submaintainer of a module is like a maintainer. But The submaintainer does
not have authority to change/add a feature on his/her part. They need consensus
on ruby-core/ruby-dev before changing/adding. Some of submaintainers have
commit right, others don't.
@@ -30,17 +30,77 @@ Koichi Sasada (ko1)
Yukihiro Matsumoto (matz)
+=== Documentation
+
+Zachary Scott (zzak)
+
== Standard Library Maintainers
=== Libraries
+[lib/English.rb]
+ _unmaintained_
+[lib/abbrev.rb]
+ Akinori MUSHA (knu)
+[lib/base64.rb]
+ Yusuke Endoh (mame)
+[lib/drb.rb, lib/drb/*]
+ Masatoshi SEKI (seki)
+[lib/debug.rb]
+ _unmaintained_
+[lib/erb.rb]
+ Masatoshi SEKI (seki), Takashi Kokubun (k0kubun)
+[lib/find.rb]
+ Kazuki Tsujimoto (ktsj)
[lib/mkmf.rb]
_unmaintained_
+[lib/monitor.rb]
+ Shugo Maeda (shugo)
+[lib/net/ftp.rb]
+ Shugo Maeda (shugo)
+[lib/net/imap.rb]
+ Shugo Maeda (shugo)
+[lib/net/http.rb, lib/net/https.rb]
+ NARUSE, Yui (naruse)
+[lib/net/protocol.rb]
+ _unmaintained_
+[lib/open-uri.rb]
+ Tanaka Akira (akr)
+[lib/optparse.rb, lib/optparse/*]
+ Nobuyuki Nakada (nobu)
+[lib/pp.rb]
+ Tanaka Akira (akr)
+[lib/prettyprint.rb]
+ Tanaka Akira (akr)
+[lib/resolv-replace.rb]
+ Tanaka Akira (akr)
+[lib/resolv.rb]
+ Tanaka Akira (akr)
+[lib/rinda/*]
+ Masatoshi SEKI (seki)
[lib/rubygems.rb, lib/rubygems/*]
Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)
https://github.com/rubygems/rubygems
+[lib/set.rb]
+ Akinori MUSHA (knu)
+[lib/securerandom.rb]
+ Tanaka Akira (akr)
+[lib/shellwords.rb]
+ Akinori MUSHA (knu)
+[lib/tempfile.rb]
+ _unmaintained_
+[lib/tmpdir.rb]
+ _unmaintained_
+[lib/time.rb]
+ Tanaka Akira (akr)
+[lib/tsort.rb]
+ Tanaka Akira (akr)
+[lib/un.rb]
+ WATANABE Hirofumi (eban)
[lib/unicode_normalize.rb, lib/unicode_normalize/*]
Martin J. Dürst
+[lib/weakref.rb]
+ _unmaintained_
=== Extensions
@@ -48,41 +108,47 @@ Yukihiro Matsumoto (matz)
Koichi Sasada (ko1)
[ext/coverage]
Yusuke Endoh (mame)
+[ext/digest, ext/digest/*]
+ Akinori MUSHA (knu)
[ext/fiber]
Koichi Sasada (ko1)
-[ext/monitor]
- Koichi Sasada (ko1)
+[ext/io/nonblock]
+ Nobuyuki Nakada (nobu)
+[ext/io/wait]
+ Nobuyuki Nakada (nobu)
+[ext/nkf]
+ NARUSE, Yui (naruse)
[ext/objspace]
_unmaintained_
+[ext/pathname]
+ Tanaka Akira (akr)
[ext/pty]
_unmaintained_
+[ext/readline]
+ TAKAO Kouji (kouji)
[ext/ripper]
_unmaintained_
[ext/socket]
* Tanaka Akira (akr)
* API change needs matz's approval
+[ext/syslog]
+ Akinori MUSHA (knu)
[ext/win32]
NAKAMURA Usaku (usa)
+[ext/win32ole]
+ Masaki Suketa (suke)
== Default gems Maintainers
=== Libraries
-[lib/abbrev.rb]
- Akinori MUSHA (knu)
- https://github.com/ruby/abbrev
- https://rubygems.org/gems/abbrev
-[lib/base64.rb]
- Yusuke Endoh (mame)
- https://github.com/ruby/base64
- https://rubygems.org/gems/base64
[lib/benchmark.rb]
_unmaintained_
- https://github.com/ruby/benchmark
+ https://github.com/bundler/benchmark
https://rubygems.org/gems/benchmark
[lib/bundler.rb, lib/bundler/*]
Hiroshi SHIBATA (hsbt)
- https://github.com/rubygems/rubygems
+ https://github.com/bundler/bundler
https://rubygems.org/gems/bundler
[lib/cgi.rb, lib/cgi/*]
Takeyuki Fujioka (xibbar)
@@ -92,13 +158,6 @@ Yukihiro Matsumoto (matz)
Kenta Murata (mrkn), Kouhei Sutou (kou)
https://github.com/ruby/csv
https://rubygems.org/gems/csv
-[lib/English.rb]
- _unmaintained_
- https://github.com/ruby/English
- https://rubygems.org/gems/English
-[lib/debug.rb]
- _unmaintained_
- https://github.com/ruby/debug
[lib/delegate.rb]
_unmaintained_
https://github.com/ruby/delegate
@@ -106,27 +165,10 @@ Yukihiro Matsumoto (matz)
[lib/did_you_mean.rb]
Yuki Nishijima (yuki24)
https://github.com/ruby/did_you_mean
- https://rubygems.org/gems/did_you_mean
-[ext/digest, ext/digest/*]
- Akinori MUSHA (knu)
- https://github.com/ruby/digest
- https://rubygems.org/gems/digest
-[lib/drb.rb, lib/drb/*]
- Masatoshi SEKI (seki)
- https://github.com/ruby/drb
- https://rubygems.org/gems/drb
-[lib/erb.rb]
- Masatoshi SEKI (seki), Takashi Kokubun (k0kubun)
- https://github.com/ruby/erb
- https://rubygems.org/gems/erb
[lib/fileutils.rb]
_unmaintained_
https://github.com/ruby/fileutils
https://rubygems.org/gems/fileutils
-[lib/find.rb]
- Kazuki Tsujimoto (ktsj)
- https://github.com/ruby/find
- https://rubygems.org/gems/find
[lib/forwardable.rb]
Keiju ISHITSUKA (keiju)
https://github.com/ruby/forwardable
@@ -140,36 +182,21 @@ Yukihiro Matsumoto (matz)
https://github.com/ruby/ipaddr
https://rubygems.org/gems/ipaddr
[lib/irb.rb, lib/irb/*]
- aycabta
+ Keiju ISHITSUKA (keiju)
https://github.com/ruby/irb
https://rubygems.org/gems/irb
-[lib/optparse.rb, lib/optparse/*]
- Nobuyuki Nakada (nobu)
- https://github.com/ruby/optparse
[lib/logger.rb]
Naotoshi Seo (sonots)
https://github.com/ruby/logger
https://rubygems.org/gems/logger
[lib/matrix.rb]
- Marc-André Lafortune (marcandre)
+ Marc-Andre Lafortune (marcandre)
https://github.com/ruby/matrix
https://rubygems.org/gems/matrix
[lib/mutex_m.rb]
Keiju ISHITSUKA (keiju)
https://github.com/ruby/mutex_m
https://rubygems.org/gems/mutex_m
-[lib/net/ftp.rb]
- Shugo Maeda (shugo)
- https://github.com/ruby/net-ftp
- https://rubygems.org/gems/net-ftp
-[lib/net/http.rb, lib/net/https.rb]
- NARUSE, Yui (naruse)
- https://github.com/ruby/net-http
- https://rubygems.org/gems/net-http
-[lib/net/imap.rb]
- Shugo Maeda (shugo)
- https://github.com/ruby/net-imap
- https://rubygems.org/gems/net-imap
[lib/net/pop.rb]
_unmaintained_
https://github.com/ruby/net-pop
@@ -178,37 +205,20 @@ Yukihiro Matsumoto (matz)
_unmaintained_
https://github.com/ruby/net-smtp
https://rubygems.org/gems/net-smtp
-[lib/net/protocol.rb]
- _unmaintained_
- https://github.com/ruby/net-protocol
- https://rubygems.org/gems/net-protocol
[lib/observer.rb]
_unmaintained_
https://github.com/ruby/observer
- https://rubygems.org/gems/observer
[lib/open3.rb]
_unmaintained_
https://github.com/ruby/open3
https://rubygems.org/gems/open3
-[lib/open-uri.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/open-uri
[lib/ostruct.rb]
- Marc-André Lafortune (marcandre)
+ Marc-Andre Lafortune (marcandre)
https://github.com/ruby/ostruct
https://rubygems.org/gems/ostruct
-[lib/pp.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/pp
- https://rubygems.org/gems/pp
-[lib/prettyprint.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/prettyprint
- https://rubygems.org/gems/prettyprint
[lib/prime.rb]
- Marc-André Lafortune (marcandre)
+ Yuki Sonoda (yugui)
https://github.com/ruby/prime
- https://rubygems.org/gems/prime
[lib/pstore.rb]
_unmaintained_
https://github.com/ruby/pstore
@@ -221,14 +231,6 @@ Yukihiro Matsumoto (matz)
aycabta
https://github.com/ruby/readline
https://rubygems.org/gems/readline
-[lib/resolv.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/resolv
- https://rubygems.org/gems/resolv
-[lib/resolv-replace.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/resolv-replace
- https://rubygems.org/gems/resolv-replace
[lib/rdoc.rb, lib/rdoc/*]
Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)
https://github.com/ruby/rdoc
@@ -237,70 +239,38 @@ Yukihiro Matsumoto (matz)
aycabta
https://github.com/ruby/reline
https://rubygems.org/gems/reline
-[lib/rinda/*]
- Masatoshi SEKI (seki)
- https://github.com/ruby/rinda
- https://rubygems.org/gems/rinda
-[lib/securerandom.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/securerandom
- https://rubygems.org/gems/securerandom
-[lib/set.rb]
- Akinori MUSHA (knu)
- https://github.com/ruby/set
- https://rubygems.org/gems/set
-[lib/shellwords.rb]
- Akinori MUSHA (knu)
- https://github.com/ruby/shellwords
- https://rubygems.org/gems/shellwords
+[lib/rexml/*]
+ Kouhei Sutou (kou)
+ https://github.com/ruby/rexml
+ https://rubygems.org/gems/rexml
+[lib/rss.rb, lib/rss/*]
+ Kouhei Sutou (kou)
+ https://github.com/ruby/rss
+ https://rubygems.org/gems/rss
[lib/singleton.rb]
Yukihiro Matsumoto (matz)
https://github.com/ruby/singleton
https://rubygems.org/gems/singleton
-[lib/tempfile.rb]
- _unmaintained_
- https://github.com/ruby/tempfile
- https://rubygems.org/gems/tempfile
-[lib/time.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/time
- https://rubygems.org/gems/time
[lib/timeout.rb]
Yukihiro Matsumoto (matz)
https://github.com/ruby/timeout
- https://rubygems.org/gems/timeout
[lib/thwait.rb]
Keiju ISHITSUKA (keiju)
https://github.com/ruby/thwait
https://rubygems.org/gems/thwait
-[lib/tmpdir.rb]
- _unmaintained_
- https://github.com/ruby/tmpdir
- https://rubygems.org/gems/tmpdir
[lib/tracer.rb]
Keiju ISHITSUKA (keiju)
https://github.com/ruby/tracer
- https://rubygems.org/gems/tracer
-[lib/tsort.rb]
- Tanaka Akira (akr)
- https://github.com/ruby/tsort
- https://rubygems.org/gems/tsort
-[lib/un.rb]
- WATANABE Hirofumi (eban)
- https://github.com/ruby/un
- https://rubygems.org/gems/un
[lib/uri.rb, lib/uri/*]
YAMADA, Akira (akira)
https://github.com/ruby/uri
- https://rubygems.org/gems/uri
+[lib/webrick.rb, lib/webrick/*]
+ Eric Wong (normalperson)
+ https://bugs.ruby-lang.org/
+ https://rubygems.org/gems/webrick
[lib/yaml.rb, lib/yaml/*]
Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)
https://github.com/ruby/yaml
- https://rubygems.org/gems/yaml
-[lib/weakref.rb]
- _unmaintained_
- https://github.com/ruby/weakref
- https://rubygems.org/gems/weakref
=== Extensions
@@ -340,30 +310,14 @@ Yukihiro Matsumoto (matz)
Nobuyuki Nakada (nobu)
https://github.com/ruby/io-console
https://rubygems.org/gems/io-console
-[ext/io/nonblock]
- Nobuyuki Nakada (nobu)
- https://github.com/ruby/io-nonblock
- https://rubygems.org/gems/io-nonblock
-[ext/io/wait]
- Nobuyuki Nakada (nobu)
- https://github.com/ruby/io-wait
- https://rubygems.org/gems/io-wait
[ext/json]
NARUSE, Yui (naruse), Hiroshi SHIBATA (hsbt)
https://github.com/flori/json
https://rubygems.org/gems/json
-[ext/nkf]
- NARUSE, Yui (naruse)
- https://github.com/ruby/nkf
- https://rubygems.org/gems/nkf
[ext/openssl]
Kazuki Yamaguchi (rhe)
https://github.com/ruby/openssl
https://rubygems.org/gems/openssl
-[ext/pathname]
- Tanaka Akira (akr)
- https://github.com/ruby/pathname
- https://rubygems.org/gems/pathname
[ext/psych]
Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)
https://github.com/ruby/psych
@@ -372,10 +326,10 @@ Yukihiro Matsumoto (matz)
Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)
https://github.com/ruby/racc
https://rubygems.org/gems/racc
-[ext/readline]
- TAKAO Kouji (kouji)
- https://github.com/ruby/readline-ext
- https://rubygems.org/gems/readline-ext
+[ext/sdbm]
+ Yukihiro Matsumoto (matz)
+ https://github.com/ruby/sdbm
+ https://rubygems.org/gems/sdbm
[ext/stringio]
Nobuyuki Nakada (nobu)
https://github.com/ruby/stringio
@@ -384,14 +338,6 @@ Yukihiro Matsumoto (matz)
Kouhei Sutou (kou)
https://github.com/ruby/strscan
https://rubygems.org/gems/strscan
-[ext/syslog]
- Akinori MUSHA (knu)
- https://github.com/ruby/syslog
- https://rubygems.org/gems/syslog
-[ext/win32ole]
- Masaki Suketa (suke)
- https://github.com/ruby/win32ole
- https://rubygems.org/gems/win32ole
[ext/zlib]
NARUSE, Yui (naruse)
https://github.com/ruby/zlib
@@ -401,17 +347,13 @@ Yukihiro Matsumoto (matz)
[minitest]
https://github.com/seattlerb/minitest
+[net-telnet]
+ https://github.com/ruby/net-telnet
[power_assert]
- https://github.com/ruby/power_assert
+ https://github.com/k-tsj/power_assert
[rake]
https://github.com/ruby/rake
[test-unit]
https://github.com/test-unit/test-unit
-[rexml]
- https://github.com/ruby/rexml
-[rss]
- https://github.com/ruby/rss
-[rbs]
- https://github.com/ruby/rbs
-[typeprof]
- https://github.com/ruby/typeprof
+[xmlrpc]
+ https://github.com/ruby/xmlrpc
diff --git a/doc/make_cheatsheet.md b/doc/make_cheatsheet.md
deleted file mode 100644
index bf245bea03..0000000000
--- a/doc/make_cheatsheet.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# How to use "configure" and "make" commands for Ruby
-
-This is for developers of Ruby.
-If you are a user of Ruby, please see README.md.
-
-## In-place build
-
-```
-$ autoconf
-$ ./configure --prefix=$PWD/local
-$ make
-$ make install
-$ ./local/bin/ruby -e 'puts "Hello"'
-Hello
-```
-
-## Out-of-place build
-
-```
-$ autoconf
-$ mkdir ../ruby-build
-$ cd ../ruby-build
-$ ../ruby-src/configure --prefix=$PWD/local
-$ make
-$ make install
-$ ./local/bin/ruby -e 'puts "Hello"'
-Hello
-```
-
-## How to run the whole test suite
-
-```
-$ make check
-```
-
-It runs (about) three test suites:
-
-* `make test` (a test suite for the interpreter core)
-* `make test-all` (for all builtin classes and libraries)
-* `make test-spec` (a conformance test suite for Ruby implementations)
-* `make test-bundler` (a test suite for the bundler examples)
-
-## How to run the test suite with log
-
-```
-$ make test OPTS=-v
-
-$ make test-all TESTS=-v
-
-$ make test-spec MSPECOPT=-Vfs
-```
-
-## How to run a part of the test suite
-
-### Runs a directory
-```
-$ make test-all TESTS=test/rubygems
-$ make test-all TESTS=rubygems
-```
-
-### Runs a file
-```
-$ make test-all TESTS=test/ruby/test_foo.rb
-$ make test-all TESTS=ruby/foo
-```
-
-### Runs a test whose name includes test_bar
-```
-$ make test-all TESTS="test/ruby/test_foo.rb -n /test_bar/"
-```
-
-### Runs a file or directory with GNU make
-```
-$ make test/ruby/test_foo.rb
-$ make test/ruby/test_foo.rb TESTOPTS="-n /test_bar/"
-```
-
-### Runs a ruby-spec directory
-```
-$ make test-spec MSPECOPT=spec/ruby/core/foo
-```
-
-### Runs a ruby-spec file
-```
-$ make test-spec MSPECOPT=spec/ruby/core/foo/bar_spec.rb
-```
-
-### Runs a ruby-spec file or directory with GNU make
-```
-$ make spec/ruby/core/foo/bar_spec.rb
-```
-
-### Runs a bundler spec file
-```
-$ make test-bundler BUNDLER_SPECS=commands/exec_spec.rb:58
-```
-
-## How to measure coverage of C and Ruby code
-
-You need to be able to use gcc (gcov) and lcov visualizer.
-
-```
-$ autoconf
-$ ./configure --enable-gcov
-$ make
-$ make update-coverage
-$ rm -f test-coverage.dat
-$ make test-all COVERAGE=true
-$ make lcov
-$ open lcov-out/index.html
-```
-
-If you need only C code coverage, you can remove `COVERAGE=true` from the above process.
-You can also use `gcov` command directly to get per-file coverage.
-
-If you need only Ruby code coverage, you can remove `--enable-gcov`.
-Note that `test-coverage.dat` accumulates all runs of `make test-all`.
-Make sure that you remove the file if you want to measure one test run.
-
-You can see the coverage result of CI: https://rubyci.org/coverage
-
-## How to benchmark
-
-see https://github.com/ruby/ruby/tree/master/benchmark#make-benchmark
diff --git a/doc/marshal.rdoc b/doc/marshal.rdoc
index 78a3d29d4a..a51f1bf873 100644
--- a/doc/marshal.rdoc
+++ b/doc/marshal.rdoc
@@ -73,7 +73,7 @@ The first byte has the following special values:
a positive little-endian integer.
"\xfd"::
- The total size of the integer is four bytes. The following three bytes are a
+ The total size of the integer is two bytes. The following three bytes are a
negative little-endian integer.
"\x04"::
diff --git a/doc/memory_view.md b/doc/memory_view.md
deleted file mode 100644
index 646a35423a..0000000000
--- a/doc/memory_view.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# MemoryView
-
-MemoryView provides the features to share multidimensional homogeneous arrays of
-fixed-size element on memory among extension libraries.
-
-## Disclaimer
-
-* This feature is still experimental. The specification described here can be changed in the future.
-
-* This document is under construction. Please refer the master branch of ruby for the latest version of this document.
-
-## Overview
-
-We sometimes deal with certain kinds of objects that have arrays of the same typed fixed-size elements on a contiguous memory area as its internal representation.
-Numo::NArray in numo-narray and Magick::Image in rmagick are typical examples of such objects.
-MemoryView plays the role of the hub to share the internal data of such objects without copy among such libraries.
-
-Copy-less sharing of data is very important in some field such as data analysis, machine learning, and image processing. In these field, people need to handle large amount of on-memory data with several libraries. If we are forced to copy to exchange large data among libraries, a large amount of the data processing time must be occupied by copying data. You can avoid such wasting time by using MemoryView.
-
-MemoryView has two categories of APIs:
-
-1. Producer API
-
- Classes can register own MemoryView entry which allows objects of that classes to expose their MemoryView
-
-2. Consumer API
-
- Consumer API allows us to obtain and manage the MemoryView of an object
-
-## MemoryView structure
-
-A MemoryView structure, `rb_memory_view_t`, is used for exporting objects' MemoryView.
-This structure contains the reference of the object, which is the owner of the MemoryView, the pointer to the head of exported memory, and the metadata that describes the structure of the memory. The metadata can describe multidimensional arrays with strides.
-
-### The member of MemoryView structure
-
-The MemoryView structure consists of the following members.
-
-- `VALUE obj`
-
- The reference to the original object that has the memory exported via the MemoryView.
-
- RubyVM manages the reference count of the MemoryView-exported objects to guard them from the garbage collection. The consumers do not have to struggle to guard this object from GC.
-
-- `void *data`
-
- The pointer to the head of the exported memory.
-
-- `ssize_t byte_size`
-
- The numbero f bytes in the memory pointed by `data`.
-
-- `bool readonly`
-
- `true` for readonly memory, `false` for writable memory.
-
-- `const char *format`
-
- A string to describeth e format of an element, or NULL for unsigned byte.
-
-- `ssize_t item_size`
-
- The number of bytes in each element.
-
-- `const rb_memory_view_item_component_t *item_desc.components`
-
- The array of the metadata of the component in an element.
-
-- `size_t item_desc.length`
-
- The number of items in `item_desc.components`.
-
-- `ssize_t ndim`
-
- The number of dimensions.
-
-- `const ssize_t *shape`
-
- A `ndim` size array indicating the number of elements in each dimension.
- This can be `NULL` when `ndim` is 1.
-
-- `const ssize_t *strides`
-
- A `ndim` size array indicating the number of bytes to skip to go to the next element in each dimension.
- This can be `NULL` when `ndim` is 1.
-
-- `const ssize_t *sub_offsets`
-
- A `ndim` size array consisting of the offsets in each dimension when the MemoryView exposes a nested array.
- This can be `NULL` when the MemoryView exposes a flat array.
-
-- `void *const private`
-
- The private data that MemoryView provider uses internally.
- This can be `NULL` when any private data is unnecessary.
-
-## MemoryView APIs
-
-### For consumers
-
-- `bool rb_memory_view_available_p(VALUE obj)`
-
- Return `true` if `obj` supports to export a MemoryView. Return `false` otherwise.
-
- If this function returns `true`, it doesn't mean the function `rb_memory_view_get` will succeed.
-
-- `bool rb_memory_view_get(VALUE obj, rb_memory_view_t *view, int flags)`
-
- If the given `obj` supports to export a MemoryView that conforms the given `flags`, this function fills `view` by the information of the MemoryView and returns `true`. In this case, the reference count of `obj` is increased.
-
- If the given combination of `obj` and `flags` cannot export a MemoryView, this function returns `false`. The content of `view` is not touched in this case.
-
- The exported MemoryView must be released by `rb_memory_view_release` when the MemoryView is no longer needed.
-
-- `bool rb_memory_view_release(rb_memory_view_t *view)`
-
- Release the given MemoryView `view` and decrement the reference count of `view->obj`.
-
- Consumers must call this function when the MemoryView is no longer needed. Missing to call this function leads memory leak.
-
-- `ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err)`
-
- Calculate the number of bytes occupied by an element.
-
- When the calculation fails, the failed location in `format` is stored into `err`, and returns `-1`.
-
-- `void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices)`
-
- Calculate the location of the item indicated by the given `indices`.
- The length of `indices` must equal to `view->ndim`.
- This function initializes `view->item_desc` if needed.
-
-- `VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices)`
-
- Return the Ruby object representation of the item indicated by the given `indices`.
- The length of `indices` must equal to `view->ndim`.
- This function uses `rb_memory_view_get_item_pointer`.
-
-- `rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly)`
-
- Fill the members of `view` as an 1-dimensional byte array.
-
-- `void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides)`
-
- Fill the `strides` array with byte-Strides of a contiguous array of the given shape with the given element size.
-
-- `void rb_memory_view_prepare_item_desc(rb_memory_view_t *view)`
-
- Fill the `item_desc` member of `view`.
-
-- `bool rb_memory_view_is_contiguous(const rb_memory_view_t *view)`
-
- Return `true` if the data in the MemoryView `view` is row-major or column-major contiguous.
-
- Return `false` otherwise.
-
-- `bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view)`
-
- Return `true` if the data in the MemoryView `view` is row-major contiguous.
-
- Return `false` otherwise.
-
-- `bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view)`
-
- Return `true` if the data in the MemoryView `view` is column-major contiguous.
-
- Return `false` otherwise.
diff --git a/doc/method_documentation.rdoc b/doc/method_documentation.rdoc
deleted file mode 100644
index 0432216868..0000000000
--- a/doc/method_documentation.rdoc
+++ /dev/null
@@ -1,183 +0,0 @@
-= Method Documentation Guide
-
-This guide discusses recommendations for documenting methods for Ruby core
-classes and classes in the standard library.
-
-== Goal
-
-The goal when documenting a method is to impart the most important
-information about the method in the least amount of time. A reader
-of the method documentation should be able to quickly understand
-the purpose of the method and how to use it. Providing too little
-information about the method is not good, but providing unimportant
-information or unnecessary examples is not good either. Use your
-judgment about what the user of the method needs to know to use the
-method correctly.
-
-== General Structure
-
-The general structure of the method documentation should be:
-
-* call-seq (for methods written in C)
-* Synopsis (Short Description)
-* Details and Examples
-* Argument Description (if necessary)
-* Corner Cases and Exceptions
-* Aliases
-* Related Methods (optional)
-
-== call-seq (for methods written in C)
-
-For methods written in C, RDoc cannot determine what arguments
-the method accepts, so those need to be documented using a
-<tt>call-seq</tt>. Here's an example <tt>call-seq</tt>:
-
- * call-seq:
- * array.count -> integer
- * array.count(obj) -> integer
- * array.count {|element| ... } -> integer
-
-When creating the <tt>call-seq</tt>, use the form
-
- receiver_type.method_name(arguments) {|block_arguments|} -> return_type
-
-Omit the parentheses for cases where the method does not accept arguments,
-and omit the block for cases where a block is not accepted.
-
-In the cases where method can return multiple different types, separate the
-types with "or". If the method can return any type, use "object". If the
-method returns the receiver, use "self".
-
-In cases where the method accepts optional arguments, use a <tt>call-seq</tt>
-with an optional argument if the method has the same behavior when an argument
-is omitted as when the argument is passed with the default value. For example,
-use:
-
- * obj.respond_to?(symbol, include_all=false) -> true or false
-
-Instead of:
-
- * obj.respond_to?(symbol) -> true or false
- * obj.respond_to?(symbol, include_all) -> true or false
-
-However, as shown above for <tt>Array#count</tt>, use separate lines if the
-behavior is different if the argument is omitted.
-
-Omit aliases from the call-seq.
-
-== Synopsis
-
-The synopsis comes next, and is a short description of what the
-method does and why you would want to use it. Ideally, this
-is a single sentence, but for more complex methods it may require
-an entire paragraph.
-
-For <tt>Array#count</tt>, the synopsis is:
-
- Returns a count of specified elements.
-
-This is great as it is short and descriptive. Avoid documenting
-too much in the synopsis, stick to the most important information
-for the benefit of the reader.
-
-== Details and Examples
-
-Most non-trivial methods benefit from examples, as well as details
-beyond what is given in the synopsis. In the details and examples
-section, you can document how the method handles different types
-of arguments, and provides examples on proper usage. In this
-section, focus on how to use the method properly, not on how the
-method handles improper arguments or corner cases.
-
-Not every behavior of a method requires an example. If the method
-is documented to return +self+, you don't need to provide an example
-showing the return value is the same as the receiver. If the method
-is documented to return +nil+, you don't need to provide an example
-showing that it returns +nil+. If the details mention that for a
-certain argument type, an empty array is returned, you don't need
-to provide an example for that.
-
-Only add an example if it provides the user additional information,
-do not add an example if it provides the same information given
-in the synopsis or details. The purpose of examples is not to prove
-what the details are stating.
-
-== Argument Description (if necessary)
-
-For methods that require arguments, if not obvious and not explicitly
-mentioned in the details or implicitly shown in the examples, you can
-provide details about the types of arguments supported. When discussing
-the types of arguments, use simple language even if less-precise, such
-as "level must be an integer", not "level must be an Integer-convertible
-object". The vast majority of use will be with the expected type, not an
-argument that is explicitly convertible to the expected type, and
-documenting the difference is not important.
-
-For methods that take blocks, it can be useful to document the type of
-argument passed if it is not obvious, not explicitly mentioned in the
-details, and not implicitly shown in the examples.
-
-If there is more than one argument or block argument, use an RDoc
-definition list:
-
-argument_name1 :: type and description
-argument_name2 :: type and description
-
-== Corner Cases and Exceptions
-
-For corner cases of methods, such as atypical usage, briefly mention
-the behavior, but do not provide any examples.
-
-Only document exceptions raised if they are not obvious. For example,
-if you have stated earlier than an argument type must be an integer,
-you do not need to document that a TypeError is raised if a non-integer
-is passed. Do not provide examples of exceptions being raised unless
-that is a common case, such as Hash#fetch raising KeyError.
-
-== Aliases
-
-Mention aliases in the form "Array#find_index is an alias for Array#index."
-
-== Related Methods (optional)
-
-In some cases, it is useful to document which methods are related to
-the current method. For example, documentation for Hash#[] might
-mention Hash#fetch as a related method, and Hash#merge might mention
-#merge! as a related method. Consider which methods may be related
-to the current method, and if you think the reader would benefit it,
-at the end of the method documentation, add a line starting with
-"Related: " (e.g. "Related: #fetch"). Don't list more than three
-related methods. If you think more than three methods are related,
-pick the three you think are most important and list those three.
-
-== Methods Accepting Multiple Argument Types
-
-For methods that accept multiple argument types, in some cases it can
-be useful to document the different argument types separately. It's
-best to use a separate paragraph for each case you are discussing.
-
-== Use of English
-
-Readers of this documentation may not be native speakers of English.
-Documentation should be written with this in mind.
-
-Use short sentences and group them into paragraphs that cover a single
-topic. Avoid complex verb tenses, excessive comma-separated phrases,
-and idioms.
-
-When writing documentation, define unusual or critical concepts in
-simple language. Provide links to authoritative sources, or add a
-general description to the top-level documentation for the class or
-module.
-
-== Formatting
-
-Extraneous formatting such as headings and horizontal lines should be
-avoided in general. It is best to keep the formatting as simple as
-possible. Only use headings and other formatting for the most complex
-cases where the method documentation is very long due to the complexity
-of the method.
-
-Methods are documented using RDoc syntax. See the
-{RDoc Markup Reference}[https://docs.ruby-lang.org/en/master/RDoc/Markup.html#class-RDoc::Markup-label-RDoc+Markup+Reference]
-for more information on formatting with RDoc syntax.
diff --git a/doc/ractor.md b/doc/ractor.md
deleted file mode 100644
index 0ca36326ab..0000000000
--- a/doc/ractor.md
+++ /dev/null
@@ -1,931 +0,0 @@
-# Ractor - Ruby's Actor-like concurrent abstraction
-
-Ractor is designed to provide a parallel execution feature of Ruby without thread-safety concerns.
-
-## Summary
-
-### Multiple Ractors in an interpreter process
-
-You can make multiple Ractors and they run in parallel.
-
-* `Ractor.new{ expr }` creates a new Ractor and `expr` is run in parallel on a parallel computer.
-* Interpreter invokes with the first Ractor (called *main Ractor*).
-* If main Ractor terminated, all Ractors receive terminate request like Threads (if main thread (first invoked Thread), Ruby interpreter sends all running threads to terminate execution).
-* Each Ractor has 1 or more Threads.
- * Threads in a Ractor shares a Ractor-wide global lock like GIL (GVL in MRI terminology), so they can't run in parallel (without releasing GVL explicitly in C-level). Threads in different ractors run in parallel.
- * The overhead of creating a Ractor is similar to overhead of one Thread creation.
-
-### Limited sharing between multiple ractors
-
-Ractors don't share everything, unlike threads.
-
-* Most objects are *Unshareable objects*, so you don't need to care about thread-safety problem which is caused by sharing.
-* Some objects are *Shareable objects*.
- * Immutable objects: frozen objects which don't refer to unshareable-objects.
- * `i = 123`: `i` is an immutable object.
- * `s = "str".freeze`: `s` is an immutable object.
- * `a = [1, [2], 3].freeze`: `a` is not an immutable object because `a` refers unshareable-object `[2]` (which is not frozen).
- * `h = {c: Object}.freeze`: `h` is an immutable object because `h` refers Symbol `:c` and shareable `Object` class object which is not frozen.
- * Class/Module objects
- * Special shareable objects
- * Ractor object itself.
- * And more...
-
-### Two-types communication between Ractors
-
-Ractors communicate with each other and synchronize the execution by message exchanging between Ractors. There are two message exchange protocols: push type (message passing) and pull type.
-
-* Push type message passing: `Ractor#send(obj)` and `Ractor.receive()` pair.
- * Sender ractor passes the `obj` to the ractor `r` by `r.send(obj)` and receiver ractor receives the message with `Ractor.receive`.
- * Sender knows the destination Ractor `r` and the receiver does not know the sender (accept all message from any ractors).
- * Receiver has infinite queue and sender enqueues the message. Sender doesn't block to put message into this queue.
- * This type message exchangin is employed by many other Actor-based language.
- * `Ractor.receive_if{ filter_expr }` is a variant of `Ractor.receive` to select a message.
-* Pull type communication: `Ractor.yield(obj)` and `Ractor#take()` pair.
- * Sender ractor declare to yield the `obj` by `Ractor.yield(obj)` and receiver Ractor take it with `r.take`.
- * Sender doesn't know a destination Ractor and receiver knows the sender Ractor `r`.
- * Sender or receiver will block if there is no other side.
-
-### Copy & Move semantics to send messages
-
-To send unshareable objects as messages, objects are copied or moved.
-
-* Copy: use deep-copy.
-* Move: move membership.
- * Sender can not access the moved object after moving the object.
- * Guarantee that at least only 1 Ractor can access the object.
-
-### Thread-safety
-
-Ractor helps to write a thread-safe concurrent program, but we can make thread-unsafe programs with Ractors.
-
-* GOOD: Sharing limitation
- * Most objects are unshareable, so we can't make data-racy and race-conditional programs.
- * Shareable objects are protected by an interpreter or locking mechanism.
-* BAD: Class/Module can violate this assumption
- * To make it compatible with old behavior, classes and modules can introduce data-race and so on.
- * Ruby programmers should take care if they modify class/module objects on multi Ractor programs.
-* BAD: Ractor can't solve all thread-safety problems
- * There are several blocking operations (waiting send, waiting yield and waiting take) so you can make a program which has dead-lock and live-lock issues.
- * Some kind of shareable objects can introduce transactions (STM, for example). However, misusing transactions will generate inconsistent state.
-
-Without Ractor, we need to trace all of state-mutations to debug thread-safety issues.
-With Ractor, you can concentrate to suspicious code which are shared with Ractors.
-
-## Creation and termination
-
-### `Ractor.new`
-
-* `Ractor.new{ expr }` generates another Ractor.
-
-```ruby
-# Ractor.new with a block creates new Ractor
-r = Ractor.new do
- # This block will be run in parallel with other ractors
-end
-
-# You can name a Ractor with `name:` argument.
-r = Ractor.new name: 'test-name' do
-end
-
-# and Ractor#name returns its name.
-r.name #=> 'test-name'
-```
-
-### Given block isolation
-
-The Ractor execute given `expr` in a given block.
-Given block will be isolated from outer scope by `Proc#isolate`. To prevent sharing unshareable objects between ractors, block outer-variables, `self` and other information are isolated.
-
-Given block will be isolated by `Proc#isolate` method (not exposed yet for Ruby users). `Proc#isolate` is called at Ractor creation timing (`Ractor.new` is called). If given Proc object is not enable to isolate because of outer variables and so on, an error will be raised.
-
-```ruby
-begin
- a = true
- r = Ractor.new do
- a #=> ArgumentError because this block accesses `a`.
- end
- r.take # see later
-rescue ArgumentError
-end
-```
-
-* The `self` of the given block is `Ractor` object itself.
-
-```ruby
-r = Ractor.new do
- p self.class #=> Ractor
- self.object_id
-end
-r.take == self.object_id #=> false
-```
-
-Passed arguments to `Ractor.new()` becomes block parameters for the given block. However, an interpreter does not pass the parameter object references, but send them as messages (see below for details).
-
-```ruby
-r = Ractor.new 'ok' do |msg|
- msg #=> 'ok'
-end
-r.take #=> 'ok'
-```
-
-```ruby
-# almost similar to the last example
-r = Ractor.new do
- msg = Ractor.receive
- msg
-end
-r.send 'ok'
-r.take #=> 'ok'
-```
-
-### An execution result of given block
-
-Return value of the given block becomes an outgoing message (see below for details).
-
-```ruby
-r = Ractor.new do
- 'ok'
-end
-r.take #=> `ok`
-```
-
-```ruby
-# almost similar to the last example
-r = Ractor.new do
- Ractor.yield 'ok'
-end
-r.take #=> 'ok'
-```
-
-Error in the given block will be propagated to the receiver of an outgoing message.
-
-```ruby
-r = Ractor.new do
- raise 'ok' # exception will be transferred to the receiver
-end
-
-begin
- r.take
-rescue Ractor::RemoteError => e
- e.cause.class #=> RuntimeError
- e.cause.message #=> 'ok'
- e.ractor #=> r
-end
-```
-
-## Communication between Ractors
-
-Communication between Ractors is achieved by sending and receiving messages. There is two way to communicate each other.
-
-* (1) Message sending/receiving
- * (1-1) push type send/receive (sender knows receiver). similar to the Actor model.
- * (1-2) pull type yield/take (receiver knows sender).
-* (2) Using shareable container objects
- * Ractor::TVar gem ([ko1/ractor-tvar](https://github.com/ko1/ractor-tvar))
- * more?
-
-Users can control program execution timing with (1), but should not control with (2) (only manage as critical section).
-
-For message sending and receiving, there are two types APIs: push type and pull type.
-
-* (1-1) send/receive (push type)
- * `Ractor#send(obj)` (`Ractor#<<(obj)` is an aliases) send a message to the Ractor's incoming port. Incoming port is connected to the infinite size incoming queue so `Ractor#send` will never block.
- * `Ractor.receive` dequeue a message from its own incoming queue. If the incoming queue is empty, `Ractor.receive` calling will block.
- * `Ractor.receive_if{|msg| filter_expr }` is variant of `Ractor.receive`. `receive_if` only receives a message which `filter_expr` is true (So `Ractor.receive` is same as `Ractor.receive_if{ true }`.
-* (1-2) yield/take (pull type)
- * `Ractor.yield(obj)` send an message to a Ractor which are calling `Ractor#take` via outgoing port . If no Ractors are waiting for it, the `Ractor.yield(obj)` will block. If multiple Ractors are waiting for `Ractor.yield(obj)`, only one Ractor can receive the message.
- * `Ractor#take` receives a message which is waiting by `Ractor.yield(obj)` method from the specified Ractor. If the Ractor does not call `Ractor.yield` yet, the `Ractor#take` call will block.
-* `Ractor.select()` can wait for the success of `take`, `yield` and `receive`.
-* You can close the incoming port or outgoing port.
- * You can close then with `Ractor#close_incoming` and `Ractor#close_outgoing`.
- * If the incoming port is closed for a Ractor, you can't `send` to the Ractor. If `Ractor.receive` is blocked for the closed incoming port, then it will raise an exception.
- * If the outgoing port is closed for a Ractor, you can't call `Ractor#take` and `Ractor.yield` on the Ractor. If ractors are blocking by `Ractor#take` or `Ractor.yield`, closing outgoing port will raise an exception on these blocking ractors.
- * When a Ractor is terminated, the Ractor's ports are closed.
-* There are 3 way to send an object as a message
- * (1) Send a reference: Sending a shareable object, send only a reference to the object (fast)
- * (2) Copy an object: Sending an unshareable object by copying an object deeply (slow). Note that you can not send an object which is not support deep copy. Some `T_DATA` objects are not supported.
- * (3) Move an object: Sending an unshareable object reference with a membership. Sender Ractor can not access moved objects anymore (raise an exception) after moving it. Current implementation makes new object as a moved object for receiver Ractor and copy references of sending object to moved object.
- * You can choose "Copy" and "Move" by the `move:` keyword, `Ractor#send(obj, move: true/false)` and `Ractor.yield(obj, move: true/false)` (default is `false` (COPY)).
-
-### Sending/Receiving ports
-
-Each Ractor has _incoming-port_ and _outgoing-port_. Incoming-port is connected to the infinite sized incoming queue.
-
-```
- Ractor r
- +-------------------------------------------+
- | incoming outgoing |
- | port port |
- r.send(obj) ->*->[incoming queue] Ractor.yield(obj) ->*-> r.take
- | | |
- | v |
- | Ractor.receive |
- +-------------------------------------------+
-
-
-Connection example: r2.send obj on r1ã€Ractor.receive on r2
- +----+ +----+
- * r1 |---->* r2 *
- +----+ +----+
-
-
-Connection example: Ractor.yield(obj) on r1, r1.take on r2
- +----+ +----+
- * r1 *---->- r2 *
- +----+ +----+
-
-Connection example: Ractor.yield(obj) on r1 and r2,
- and waiting for both simultaneously by Ractor.select(r1, r2)
-
- +----+
- * r1 *------+
- +----+ |
- +----> Ractor.select(r1, r2)
- +----+ |
- * r2 *------|
- +----+
-```
-
-```ruby
- r = Ractor.new do
- msg = Ractor.receive # Receive from r's incoming queue
- msg # send back msg as block return value
- end
- r.send 'ok' # Send 'ok' to r's incoming port -> incoming queue
- r.take # Receive from r's outgoing port
-```
-
-The last example shows the following ractor network.
-
-```
-
- +------+ +---+
- * main |------> * r *---+
- +-----+ +---+ |
- ^ |
- +-------------------+
-```
-
-And this code can be rewrite more simple way by using an argument for `Ractor.new`.
-
-```ruby
- # Actual argument 'ok' for `Ractor.new()` will be send to created Ractor.
- r = Ractor.new 'ok' do |msg|
- # Values for formal parameters will be received from incoming queue.
- # Similar to: msg = Ractor.receive
-
- msg # Return value of the given block will be sent via outgoing port
- end
-
- # receive from the r's outgoing port.
- r.take #=> `ok`
-```
-
-### Return value of a block for `Ractor.new`
-
-As already explained, the return value of `Ractor.new` (an evaluated value of `expr` in `Ractor.new{ expr }`) can be taken by `Ractor#take`.
-
-```ruby
-Ractor.new{ 42 }.take #=> 42
-```
-
-When the block return value is available, the Ractor is dead so that no ractors except taken Ractor can touch the return value, so any values can be sent with this communication path without any modification.
-
-```ruby
-r = Ractor.new do
- a = "hello"
- binding
-end
-
-r.take.eval("p a") #=> "hello" (other communication path can not send a Binding object directly)
-```
-
-### Wait for multiple Ractors with `Ractor.select`
-
-You can wait multiple Ractor's `yield` with `Ractor.select(*ractors)`.
-The return value of `Ractor.select()` is `[r, msg]` where `r` is yielding Ractor and `msg` is yielded message.
-
-Wait for a single ractor (same as `Ractor.take`):
-
-```ruby
-r1 = Ractor.new{'r1'}
-
-r, obj = Ractor.select(r1)
-r == r1 and obj == 'r1' #=> true
-```
-
-Wait for two ractors:
-
-```ruby
-r1 = Ractor.new{'r1'}
-r2 = Ractor.new{'r2'}
-rs = [r1, r2]
-as = []
-
-# Wait for r1 or r2's Ractor.yield
-r, obj = Ractor.select(*rs)
-rs.delete(r)
-as << obj
-
-# Second try (rs only contain not-closed ractors)
-r, obj = Ractor.select(*rs)
-rs.delete(r)
-as << obj
-as.sort == ['r1', 'r2'] #=> true
-```
-
-Complex example:
-
-```ruby
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- rs = RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- msg = pipe.take
- msg # ping-pong
- end
- }
- RN.times{|i|
- pipe << i
- }
- RN.times.map{
- r, n = Ractor.select(*rs)
- rs.delete r
- n
- }.sort #=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-```
-
-Multiple Ractors can send to one Ractor.
-
-```ruby
-# Create 10 ractors and they send objects to pipe ractor.
-# pipe ractor yield received objects
-
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- rs = RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- pipe << i
- end
- }
-
- RN.times.map{
- pipe.take
- }.sort #=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-```
-
-TODO: Current `Ractor.select()` has the same issue of `select(2)`, so this interface should be refined.
-
-TODO: `select` syntax of go-language uses round-robin technique to make fair scheduling. Now `Ractor.select()` doesn't use it.
-
-### Closing Ractor's ports
-
-* `Ractor#close_incoming/outgoing` close incoming/outgoing ports (similar to `Queue#close`).
-* `Ractor#close_incoming`
- * `r.send(obj) ` where `r`'s incoming port is closed, will raise an exception.
- * When the incoming queue is empty and incoming port is closed, `Ractor.receive` raise an exception. If the incoming queue is not empty, it dequeues an object without exceptions.
-* `Ractor#close_outgoing`
- * `Ractor.yield` on a Ractor which closed the outgoing port, it will raise an exception.
- * `Ractor#take` for a Ractor which closed the outgoing port, it will raise an exception. If `Ractor#take` is blocking, it will raise an exception.
-* When a Ractor terminates, the ports are closed automatically.
- * Return value of the Ractor's block will be yielded as `Ractor.yield(ret_val)`, even if the implementation terminates the based native thread.
-
-Example (try to take from closed Ractor):
-
-```ruby
- r = Ractor.new do
- 'finish'
- end
- r.take # success (will return 'finish')
- begin
- o = r.take # try to take from closed Ractor
- rescue Ractor::ClosedError
- 'ok'
- else
- "ng: #{o}"
- end
-```
-
-Example (try to send to closed (terminated) Ractor):
-
-```ruby
- r = Ractor.new do
- end
-
- r.take # wait terminate
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-```
-
-When multiple Ractors waiting for `Ractor.yield()`, `Ractor#close_outgoing` will cancel all blocking by raise an exception (`ClosedError`).
-
-### Send a message by copying
-
-`Ractor#send(obj)` or `Ractor.yield(obj)` copy `obj` deeply if `obj` is an unshareable object.
-
-```ruby
-obj = 'str'.dup
-r = Ractor.new obj do |msg|
- # return received msg's object_id
- msg.object_id
-end
-
-obj.object_id == r.take #=> false
-```
-
-Some objects are not supported to copy the value, and raise an exception.
-
-```ruby
-obj = Thread.new{}
-begin
- Ractor.new obj do |msg|
- msg
- end
-rescue TypeError => e
- e.message #=> #<TypeError: allocator undefined for Thread>
-else
- 'ng' # unreachable here
-end
-```
-
-### Send a message by moving
-
-`Ractor#send(obj, move: true)` or `Ractor.yield(obj, move: true)` move `obj` to the destination Ractor.
-If the source Ractor touches the moved object (for example, call the method like `obj.foo()`), it will be an error.
-
-```ruby
-# move with Ractor#send
-r = Ractor.new do
- obj = Ractor.receive
- obj << ' world'
-end
-
-str = 'hello'
-r.send str, move: true
-modified = r.take #=> 'hello world'
-
-# str is moved, and accessing str from this Ractor is prohibited
-
-begin
- # Error because it touches moved str.
- str << ' exception' # raise Ractor::MovedError
-rescue Ractor::MovedError
- modified #=> 'hello world'
-else
- raise 'unreachable'
-end
-```
-
-```ruby
- # move with Ractor.yield
- r = Ractor.new do
- obj = 'hello'
- Ractor.yield obj, move: true
- obj << 'world' # raise Ractor::MovedError
- end
-
- str = r.take
- begin
- r.take
- rescue Ractor::RemoteError
- p str #=> "hello"
- end
-```
-
-Some objects are not supported to move, and an exception will be raise.
-
-```ruby
-r = Ractor.new do
- Ractor.receive
-end
-
-r.send(Thread.new{}, move: true) #=> allocator undefined for Thread (TypeError)
-```
-
-To achieve the access prohibition for moved objects, _class replacement_ technique is used to implement it.
-
-### Shareable objects
-
-The following objects are shareable.
-
-* Immutable objects
- * Small integers, some symbols, `true`, `false`, `nil` (a.k.a. `SPECIAL_CONST_P()` objects in internal)
- * Frozen native objects
- * Numeric objects: `Float`, `Complex`, `Rational`, big integers (`T_BIGNUM` in internal)
- * All Symbols.
- * Frozen `String` and `Regexp` objects (their instance variables should refer only sharble objects)
-* Class, Module objects (`T_CLASS`, `T_MODULE` and `T_ICLASS` in internal)
-* `Ractor` and other special objects which care about synchronization.
-
-Implementation: Now shareable objects (`RVALUE`) have `FL_SHAREABLE` flag. This flag can be added lazily.
-
-To make sharable objects, `Ractor.make_shareable(obj)` method is provided. In this case, try to make sharaeble by freezing `obj` and recursively travasible objects. This method accepts `copy:` keyword (default value is false).`Ractor.make_sharable(obj, copy: true)` tries to make a deep copy of `obj` and make the copied object sharable.
-
-## Language changes to isolate unshareable objects between Ractors
-
-To isolate unshareable objects between Ractors, we introduced additional language semantics on multi-Ractor Ruby programs.
-
-Note that without using Ractors, these additional semantics is not needed (100% compatible with Ruby 2).
-
-### Global variables
-
-Only the main Ractor (a Ractor created at starting of interpreter) can access global variables.
-
-```ruby
- $gv = 1
- r = Ractor.new do
- $gv
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message #=> 'can not access global variables from non-main Ractors'
- end
-```
-
-Note that some special global variables are ractor-local, like `$stdin`, `$stdout`, `$stderr`. See [[Bug #17268]](https://bugs.ruby-lang.org/issues/17268) for more details.
-
-### Instance variables of shareable objects
-
-Only the main Ractor can access instance variables of shareable objects.
-
-```ruby
- class C
- @iv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @iv
- end
- end
-
-
- begin
- r.take
- rescue => e
- e.class #=> Ractor::IsolationError
- end
-```
-
-```ruby
- shared = Ractor.new{}
- shared.instance_variable_set(:@iv, 'str')
-
- r = Ractor.new shared do |shared|
- p shared.instance_variable_get(:@iv)
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message #=> can not access instance variables of shareable objects from non-main Ractors (Ractor::IsolationError)
- end
-```
-
-Note that instance variables for class/module objects are also prohibited on Ractors.
-
-### Class variables
-
-Only the main Ractor can access class variables.
-
-```ruby
- class C
- @@cv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @@cv
- end
- end
-
-
- begin
- r.take
- rescue => e
- e.class #=> Ractor::IsolationError
- end
-```
-
-### Constants
-
-Only the main Ractor can read constants which refer to the unshareable object.
-
-```ruby
- class C
- CONST = 'str'
- end
- r = Ractor.new do
- C::CONST
- end
- begin
- r.take
- rescue => e
- e.class #=> Ractor::IsolationError
- end
-```
-
-Only the main Ractor can define constants which refer to the unshareable object.
-
-```ruby
- class C
- end
- r = Ractor.new do
- C::CONST = 'str'
- end
- begin
- r.take
- rescue => e
- e.class #=> Ractor::IsolationError
- end
-```
-
-To make multi-ractor supported library, the constants should only refer sharable objects.
-
-```ruby
-TABLE = {a: 'ko1', b: 'ko2', c: 'ko3'}
-```
-
-In this case, `TABLE` reference an unsharable Hash object. So that other ractors can not refer `TABLE` constant. To make it shareable, we can use `Ractor.make_sharable()` like that.
-
-```ruby
-TABLE = Ractor.make_sharable( {a: 'ko1', b: 'ko2', c: 'ko3'} )
-```
-
-To make it easy, Ruby 3.0 introduced new `shareable_constant_value` Directive.
-
-```ruby
-shareable_constant_value: literal
-
-TABLE = {a: 'ko1', b: 'ko2', c: 'ko3'}
-#=> Same as: TABLE = Ractor.make_sharable( {a: 'ko1', b: 'ko2', c: 'ko3'} )
-```
-
-`shareable_constant_value` directive accepts the following modes (descriptions use the example: `CONST = expr`):
-
-* none: Do nothing. Same as: `CONST = expr`
-* literal:
- * if `expr` is consites of literals, replaced to `CONST = Ractor.make_sharable(expr)`.
- * otherwise: replaced to `CONST = expr.tap{|o| raise unless Ractor.shareable?}`.
-* experimental_everything: replaced to `CONST = Ractor.make_sharable(expr)`.
-* experimental_copy: replaced to `CONST = Ractor.make_sharable(expr, copy: true)`.
-
-Except the `none` mode (default), it is guaranteed that the assigned constants refer to only sharable objects.
-
-See [doc/syntax/comment.rdoc](syntax/comment.rdoc) for more details.
-
-## Implementation note
-
-* Each Ractor has its own thread, it means each Ractor has at least 1 native thread.
-* Each Ractor has its own ID (`rb_ractor_t::pub::id`).
- * On debug mode, all unshareable objects are labeled with current Ractor's id, and it is checked to detect unshareable object leak (access an object from different Ractor) in VM.
-
-## Examples
-
-### Traditional Ring example in Actor-model
-
-```ruby
-RN = 1_000
-CR = Ractor.current
-
-r = Ractor.new do
- p Ractor.receive
- CR << :fin
-end
-
-RN.times{
- r = Ractor.new r do |next_r|
- next_r << Ractor.receive
- end
-}
-
-p :setup_ok
-r << 1
-p Ractor.receive
-```
-
-### Fork-join
-
-```ruby
-def fib n
- if n < 2
- 1
- else
- fib(n-2) + fib(n-1)
- end
-end
-
-RN = 10
-rs = (1..RN).map do |i|
- Ractor.new i do |i|
- [i, fib(i)]
- end
-end
-
-until rs.empty?
- r, v = Ractor.select(*rs)
- rs.delete r
- p answer: v
-end
-```
-
-### Worker pool
-
-```ruby
-require 'prime'
-
-pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
-end
-
-N = 1000
-RN = 10
-workers = (1..RN).map do
- Ractor.new pipe do |pipe|
- while n = pipe.take
- Ractor.yield [n, n.prime?]
- end
- end
-end
-
-(1..N).each{|i|
- pipe << i
-}
-
-pp (1..N).map{
- _r, (n, b) = Ractor.select(*workers)
- [n, b]
-}.sort_by{|(n, b)| n}
-```
-
-### Pipeline
-
-```ruby
-# pipeline with yield/take
-r1 = Ractor.new do
- 'r1'
-end
-
-r2 = Ractor.new r1 do |r1|
- r1.take + 'r2'
-end
-
-r3 = Ractor.new r2 do |r2|
- r2.take + 'r3'
-end
-
-p r3.take #=> 'r1r2r3'
-```
-
-```ruby
-# pipeline with send/receive
-
-r3 = Ractor.new Ractor.current do |cr|
- cr.send Ractor.receive + 'r3'
-end
-
-r2 = Ractor.new r3 do |r3|
- r3.send Ractor.receive + 'r2'
-end
-
-r1 = Ractor.new r2 do |r2|
- r2.send Ractor.receive + 'r1'
-end
-
-r1 << 'r0'
-p Ractor.receive #=> "r0r1r2r3"
-```
-
-### Supervise
-
-```ruby
-# ring example again
-
-r = Ractor.current
-(1..10).map{|i|
- r = Ractor.new r, i do |r, i|
- r.send Ractor.receive + "r#{i}"
- end
-}
-
-r.send "r0"
-p Ractor.receive #=> "r0r10r9r8r7r6r5r4r3r2r1"
-```
-
-```ruby
-# ring example with an error
-
-r = Ractor.current
-rs = (1..10).map{|i|
- r = Ractor.new r, i do |r, i|
- loop do
- msg = Ractor.receive
- raise if /e/ =~ msg
- r.send msg + "r#{i}"
- end
- end
-}
-
-r.send "r0"
-p Ractor.receive #=> "r0r10r9r8r7r6r5r4r3r2r1"
-r.send "r0"
-p Ractor.select(*rs, Ractor.current) #=> [:receive, "r0r10r9r8r7r6r5r4r3r2r1"]
-r.send "e0"
-p Ractor.select(*rs, Ractor.current)
-#=>
-#<Thread:0x000056262de28bd8 run> terminated with exception (report_on_exception is true):
-Traceback (most recent call last):
- 2: from /home/ko1/src/ruby/trunk/test.rb:7:in `block (2 levels) in <main>'
- 1: from /home/ko1/src/ruby/trunk/test.rb:7:in `loop'
-/home/ko1/src/ruby/trunk/test.rb:9:in `block (3 levels) in <main>': unhandled exception
-Traceback (most recent call last):
- 2: from /home/ko1/src/ruby/trunk/test.rb:7:in `block (2 levels) in <main>'
- 1: from /home/ko1/src/ruby/trunk/test.rb:7:in `loop'
-/home/ko1/src/ruby/trunk/test.rb:9:in `block (3 levels) in <main>': unhandled exception
- 1: from /home/ko1/src/ruby/trunk/test.rb:21:in `<main>'
-<internal:ractor>:69:in `select': thrown by remote Ractor. (Ractor::RemoteError)
-```
-
-```ruby
-# resend non-error message
-
-r = Ractor.current
-rs = (1..10).map{|i|
- r = Ractor.new r, i do |r, i|
- loop do
- msg = Ractor.receive
- raise if /e/ =~ msg
- r.send msg + "r#{i}"
- end
- end
-}
-
-r.send "r0"
-p Ractor.receive #=> "r0r10r9r8r7r6r5r4r3r2r1"
-r.send "r0"
-p Ractor.select(*rs, Ractor.current)
-[:receive, "r0r10r9r8r7r6r5r4r3r2r1"]
-msg = 'e0'
-begin
- r.send msg
- p Ractor.select(*rs, Ractor.current)
-rescue Ractor::RemoteError
- msg = 'r0'
- retry
-end
-
-#=> <internal:ractor>:100:in `send': The incoming-port is already closed (Ractor::ClosedError)
-# because r == r[-1] is terminated.
-```
-
-```ruby
-# ring example with supervisor and re-start
-
-def make_ractor r, i
- Ractor.new r, i do |r, i|
- loop do
- msg = Ractor.receive
- raise if /e/ =~ msg
- r.send msg + "r#{i}"
- end
- end
-end
-
-r = Ractor.current
-rs = (1..10).map{|i|
- r = make_ractor(r, i)
-}
-
-msg = 'e0' # error causing message
-begin
- r.send msg
- p Ractor.select(*rs, Ractor.current)
-rescue Ractor::RemoteError
- r = rs[-1] = make_ractor(rs[-2], rs.size-1)
- msg = 'x0'
- retry
-end
-
-#=> [:receive, "x0r9r9r8r7r6r5r4r3r2r1"]
-```
diff --git a/doc/standard_library.rdoc b/doc/standard_library.rdoc
index e4418aea81..f71cedebf7 100644
--- a/doc/standard_library.rdoc
+++ b/doc/standard_library.rdoc
@@ -8,76 +8,86 @@ description.
== Libraries
+Abbrev:: Calculates a set of unique abbreviations for a given set of strings
+Base64:: Support for encoding and decoding binary data using a Base64 representation
+DEBUGGER__:: Debugging functionality for Ruby
+DRb:: Distributed object system for Ruby
+English.rb:: Require 'English.rb' to reference global variables with less cryptic names
+ERB:: An easy to use but powerful templating system for Ruby
+Find:: This module supports top-down traversal of a set of file paths
MakeMakefile:: Module used to generate a Makefile for C extensions
+Monitor:: Provides an object or module to use safely by more than one thread
+Net::FTP:: Support for the File Transfer Protocol
+Net::HTTP:: HTTP client api for Ruby
+Net::IMAP:: Ruby client api for Internet Message Access Protocol
+OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP
+OptionParser:: Ruby-oriented class for command-line option analysis
+PP:: Provides a PrettyPrinter for Ruby objects
+PrettyPrinter:: Implements a pretty printing algorithm for readable structure
RbConfig:: Information of your configure and build of Ruby
+resolv-replace.rb:: Replace Socket DNS with Resolv
+Resolv:: Thread-aware DNS resolver library in Ruby
+Rinda:: The Linda distributed computing paradigm in Ruby
Gem:: Package management framework for Ruby
+SecureRandom:: Interface for secure random number generator
+Set:: Provides a class to deal with collections of unordered, unique values
+Shellwords:: Manipulates strings with word parsing rules of UNIX Bourne shell
+Tempfile:: A utility class for managing temporary files
+Time:: Extends the Time class with methods for parsing and conversion
+tmpdir.rb:: Extends the Dir class to manage the OS temporary file path
+TSort:: Topological sorting using Tarjan's algorithm
+un.rb:: Utilities to replace common UNIX commands
+WeakRef:: Allows a referenced object to be garbage-collected
== Extensions
Coverage:: Provides coverage measurement for Ruby
-Monitor:: Provides an object or module to use safely by more than one thread
+Digest:: Provides a framework for message digest libraries
+IO:: Extensions for Ruby IO class, including #wait and ::console
+NKF:: Ruby extension for Network Kanji Filter
objspace:: Extends ObjectSpace module to add methods for internal statistics
+Pathname:: Representation of the name of a file or directory on the filesystem
PTY:: Creates and manages pseudo terminals
Ripper:: Provides an interface for parsing Ruby programs into S-expressions
Socket:: Access underlying OS socket implementations
+Syslog:: Ruby interface for the POSIX system logging facility
+WIN32OLE:: Provides an interface for OLE Automation in Ruby
= Default gems
== Libraries
-Abbrev:: Calculates a set of unique abbreviations for a given set of strings
-Base64:: Support for encoding and decoding binary data using a Base64 representation
Benchmark:: Provides methods to measure and report the time used to execute code
Bundler:: Manage your Ruby application's gem dependencies
CGI:: Support for the Common Gateway Interface protocol
CSV:: Provides an interface to read and write CSV files and data
-DEBUGGER__:: Debugging functionality for Ruby
Delegator:: Provides three abilities to delegate method calls to an object
DidYouMean:: "Did you mean?" experience in Ruby
-DRb:: Distributed object system for Ruby
-English:: Provides references to special global variables with less cryptic names
-ERB:: An easy to use but powerful templating system for Ruby
FileUtils:: Several file utility methods for copying, moving, removing, etc
-Find:: This module supports top-down traversal of a set of file paths
Forwardable:: Provides delegation of specified methods to a designated object
GetoptLong:: Parse command line options similar to the GNU C getopt_long()
IPAddr:: Provides methods to manipulate IPv4 and IPv6 IP addresses
IRB:: Interactive Ruby command-line tool for REPL (Read Eval Print Loop)
-OptionParser:: Ruby-oriented class for command-line option analysis
Logger:: Provides a simple logging utility for outputting messages
Matrix:: Represents a mathematical matrix.
Mutex_m:: Mixin to extend objects to be handled like a Mutex
-Net::FTP:: Support for the File Transfer Protocol
-Net::HTTP:: HTTP client api for Ruby
-Net::IMAP:: Ruby client api for Internet Message Access Protocol
Net::POP3:: Ruby client library for POP3
Net::SMTP:: Simple Mail Transfer Protocol client library for Ruby
Observable:: Provides a mechanism for publish/subscribe pattern in Ruby
Open3:: Provides access to stdin, stdout and stderr when running other programs
OpenStruct:: Class to build custom data structures, similar to a Hash
-OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP
-PP:: Provides a PrettyPrinter for Ruby objects
-PrettyPrinter:: Implements a pretty printing algorithm for readable structure
Prime:: Prime numbers and factorization library
PStore:: Implements a file based persistence mechanism based on a Hash
-Resolv:: Thread-aware DNS resolver library in Ruby
-resolv-replace.rb:: Replace Socket DNS with Resolv
+Racc:: A LALR(1) parser generator written in Ruby.
RDoc:: Produces HTML and command-line documentation for Ruby
-Rinda:: The Linda distributed computing paradigm in Ruby
-SecureRandom:: Interface for secure random number generator
-Set:: Provides a class to deal with collections of unordered, unique values
-Shellwords:: Manipulates strings with word parsing rules of UNIX Bourne shell
+REXML:: An XML toolkit for Ruby
+RSS:: Family of libraries that support various formats of XML "feeds"
Singleton:: Implementation of the Singleton pattern for Ruby
-Tempfile:: A utility class for managing temporary files
-Time:: Extends the Time class with methods for parsing and conversion
Timeout:: Auto-terminate potentially long-running operations in Ruby
-tmpdir.rb:: Extends the Dir class to manage the OS temporary file path
Tracer:: Outputs a source level execution trace of a Ruby program
-TSort:: Topological sorting using Tarjan's algorithm
-un.rb:: Utilities to replace common UNIX commands
URI:: A Ruby module providing support for Uniform Resource Identifiers
+WEBrick:: An HTTP server toolkit for Ruby
YAML:: Ruby client library for the Psych YAML implementation
-WeakRef:: Allows a referenced object to be garbage-collected
== Extensions
@@ -85,23 +95,18 @@ BigDecimal:: Provides arbitrary-precision floating point decimal arithmetic
Date:: A subclass of Object includes Comparable module for handling dates
DateTime:: Subclass of Date to handling dates, hours, minutes, seconds, offsets
DBM:: Provides a wrapper for the UNIX-style Database Manager Library
-Digest:: Provides a framework for message digest libraries
Etc:: Provides access to information typically stored in UNIX /etc directory
Fcntl:: Loads constants defined in the OS fcntl.h C header file
Fiddle:: A libffi wrapper for Ruby
GDBM:: Ruby extension for the GNU dbm (gdbm) library
-IO:: Extensions for Ruby IO class, including #wait, #nonblock and ::console
+IO::console:: Console interface
JSON:: Implements Javascript Object Notation for Ruby
-NKF:: Ruby extension for Network Kanji Filter
OpenSSL:: Provides SSL, TLS and general purpose cryptography for Ruby
-Pathname:: Representation of the name of a file or directory on the filesystem
Psych:: A YAML parser and emitter for Ruby
-Racc:: A LALR(1) parser generator written in Ruby.
Readline:: Provides an interface for GNU Readline and Edit Line (libedit)
+SDBM:: Provides a simple file-based key-value store with String keys and values
StringIO:: Pseudo I/O on String objects
StringScanner:: Provides lexical scanning operations on a String
-Syslog:: Ruby interface for the POSIX system logging facility
-WIN32OLE:: Provides an interface for OLE Automation in Ruby
Zlib:: Ruby interface for the zlib compression/decompression library
= Bundled gems
@@ -109,10 +114,8 @@ Zlib:: Ruby interface for the zlib compression/decompression library
== Libraries
MiniTest:: A test suite with TDD, BDD, mocking and benchmarking
+Net::Telnet:: Telnet client library for Ruby
PowerAssert:: Power Assert for Ruby.
Rake:: Ruby build program with capabilities similar to make
Test::Unit:: A compatibility layer for MiniTest
-REXML:: An XML toolkit for Ruby
-RSS:: Family of libraries that support various formats of XML "feeds"
-RBS:: RBS is a language to describe the structure of Ruby programs
-TypeProf:: A type analysis tool for Ruby code based on abstract interpretation
+XMLRPC:: Remote Procedure Call over HTTP support for Ruby
diff --git a/doc/syntax.rdoc b/doc/syntax.rdoc
index 5895673f36..2463c12a63 100644
--- a/doc/syntax.rdoc
+++ b/doc/syntax.rdoc
@@ -11,9 +11,6 @@ Assignment[rdoc-ref:syntax/assignment.rdoc] ::
{Control Expressions}[rdoc-ref:syntax/control_expressions.rdoc] ::
+if+, +unless+, +while+, +until+, +for+, +break+, +next+, +redo+
-{Pattern matching}[rdoc-ref:syntax/pattern_matching.rdoc] ::
- Experimental structural pattern matching and variable binding syntax
-
Methods[rdoc-ref:syntax/methods.rdoc] ::
Method and method argument syntax
@@ -30,7 +27,7 @@ Precedence[rdoc-ref:syntax/precedence.rdoc] ::
Precedence of ruby operators
Refinements[rdoc-ref:syntax/refinements.rdoc] ::
- Use and behavior of the refinements feature
+ Use and behavior of the experimental refinements feature
Miscellaneous[rdoc-ref:syntax/miscellaneous.rdoc] ::
+alias+, +undef+, +BEGIN+, +END+
diff --git a/doc/syntax/calling_methods.rdoc b/doc/syntax/calling_methods.rdoc
index fc806d5c31..5abecc69da 100644
--- a/doc/syntax/calling_methods.rdoc
+++ b/doc/syntax/calling_methods.rdoc
@@ -30,41 +30,7 @@ NoMethodError.
You may also use <code>::</code> to designate a receiver, but this is rarely
used due to the potential for confusion with <code>::</code> for namespaces.
-=== Chaining \Method Calls
-
-You can "chain" method calls by immediately following one method call with another.
-
-This example chains methods Array#append and Array#compact:
-
- a = [:foo, 'bar', 2]
- a1 = [:baz, nil, :bam, nil]
- a2 = a.append(*a1).compact
- a2 # => [:foo, "bar", 2, :baz, :bam]
-
-Details:
-
-- First method <tt>merge</tt> creates a copy of <tt>a</tt>,
- appends (separately) each element of <tt>a1</tt> to the copy, and returns
- [:foo, "bar", 2, :baz, nil, :bam, nil]
-- Chained method <tt>compact</tt> creates a copy of that return value,
- removes its <tt>nil</tt>-valued entries, and returns
- [:foo, "bar", 2, :baz, :bam]
-
-You can chain methods that are in different classes.
-This example chains methods Hash#to_a and Array#reverse:
-
- h = {foo: 0, bar: 1, baz: 2}
- h.to_a.reverse # => [[:baz, 2], [:bar, 1], [:foo, 0]]
-
-Details:
-
-- First method Hash#to_a converts <tt>a</tt> to an \Array, and returns
- [[:foo, 0], [:bar, 1], [:baz, 2]]
-- Chained method Array#reverse creates copy of that return value,
- reverses it, and returns
- [[:baz, 2], [:bar, 1], [:foo, 0]]
-
-=== Safe Navigation Operator
+=== Safe navigation operator
<code>&.</code>, called "safe navigation operator", allows to skip method call
when receiver is +nil+. It returns +nil+ and doesn't evaluate method's arguments
diff --git a/doc/syntax/comments.rdoc b/doc/syntax/comments.rdoc
index 650d13c2dc..a07dd41494 100644
--- a/doc/syntax/comments.rdoc
+++ b/doc/syntax/comments.rdoc
@@ -35,219 +35,3 @@ syntax error:
Will not work
=end
end
-
-== Magic Comments
-
-While comments are typically ignored by Ruby, special "magic comments" contain
-directives that affect how the code is interpreted.
-
-Top-level magic comments must start on the first line, or on the second line if
-the first line looks like <tt>#! shebang line</tt>.
-
-NOTE: Magic comments affect only the file in which they appear;
-other files are unaffected.
-
- # frozen_string_literal: true
-
- var = 'hello'
- var.frozen? # => true
-
-=== Alternative syntax
-
-Magic comments may consist of a single directive (as in the example above).
-Alternatively, multiple directives may appear on the same line if separated by ";"
-and wrapped between "-*-" (see Emacs' {file variables}[https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html]).
-
- # emacs-compatible; -*- coding: big5; mode: ruby -*-
-
- p 'hello'.frozen? # => true
- p 'hello'.encoding # => #<Encoding:Big5>
-
-=== +encoding+ Directive
-
-Indicates which string encoding should be used for string literals,
-regexp literals and <code>__ENCODING__</code>:
-
- # encoding: big5
-
- ''.encoding # => #<Encoding:Big5>
-
-Default encoding is UTF-8.
-
-It must appear in the first comment section of a file.
-
-The word "coding" may be used instead of "encoding".
-
-=== +frozen_string_literal+ Directive
-
-Indicates that string literals should be allocated once at parse time and frozen.
-
- # frozen_string_literal: true
-
- 3.times do
- p 'hello'.object_id # => prints same number
- end
- p 'world'.frozen? # => true
-
-The default is false; this can be changed with <code>--enable=frozen-string-literal</code>.
-Without the directive, or with <code># frozen_string_literal: false</code>,
-the example above would print 3 different numbers and "false".
-
-Starting in Ruby 3.0, string literals that are dynamic are not frozen nor reused:
-
- # frozen_string_literal: true
-
- p "Addition: #{2 + 2}".frozen? # => false
-
-It must appear in the first comment section of a file.
-
-=== +warn_indent+ Directive
-
-This directive can turn on detection of bad indentation for statements that follow it:
-
- def foo
- end # => no warning
-
- # warn_indent: true
- def bar
- end # => warning: mismatched indentations at 'end' with 'def' at 6
-
-Another way to get these warnings to show is by running Ruby with warnings (<code>ruby -w</code>). Using a directive to set this false will prevent these warnings to show.
-
-=== +shareable_constant_value+ Directive
-
-Note: This directive is experimental in Ruby 3.0 and may change in future releases.
-
-This special directive helps to create constants that hold only immutable objects, or {Ractor-shareable}[rdoc-ref:Ractor@Shareable+and+unshareable+objects] constants.
-
-The directive can specify special treatment for values assigned to constants:
-
-* +none+: (default)
-* +literal+: literals are implicitly frozen, others must be Ractor-shareable
-* +experimental_everything+: all made shareable
-* +experimental_copy+: copy deeply and make it shareable
-
-==== Mode +none+ (default)
-
-No special treatment in this mode (as in Ruby 2.x): no automatic freezing and no checks.
-
-It has always been a good idea to deep-freeze constants; Ractor makes this
-an even better idea as only the main ractor can access non-shareable constants:
-
- # shareable_constant_value: none
- A = {foo: []}
- A.frozen? # => false
- Ractor.new { puts A } # => can not access non-shareable objects by non-main Ractor.
-
-==== Mode +literal+
-
-In "literal" mode, constants assigned to literals will be deeply-frozen:
-
- # shareable_constant_value: literal
- X = [{foo: []}] # => same as [{foo: [].freeze}.freeze].freeze
-
-Other values must be shareable:
-
- # shareable_constant_value: literal
- X = Object.new # => cannot assign unshareable object to X
-
-Note that only literals directly assigned to constants, or recursively held in such literals will be frozen:
-
- # shareable_constant_value: literal
- var = [{foo: []}]
- var.frozen? # => false (assignment was made to local variable)
- X = var # => cannot assign unshareable object to X
-
- X = Set[1, 2, {foo: []}].freeze # => cannot assign unshareable object to X
- # (`Set[...]` is not a literal and
- # `{foo: []}` is an argument to `Set.[]`)
-
-The method Module#const_set is not affected.
-
-==== Mode +experimental_everything+
-
-In this mode, all values assigned to constants are made shareable.
-
- # shareable_constant_value: experimental_everything
- FOO = Set[1, 2, {foo: []}]
- # same as FOO = Ractor.make_sharable(...)
- # OR same as `FOO = Set[1, 2, {foo: [].freeze}.freeze].freeze`
-
- var = [{foo: []}]
- var.frozen? # => false (assignment was made to local variable)
- X = var # => calls `Ractor.make_shareable(var)`
- var.frozen? # => true
-
-This mode is "experimental", because it might be error prone, for
-example by deep-freezing the constants of an external resource which
-could cause errors:
-
- # shareable_constant_value: experimental_everything
- FOO = SomeGem::Something::FOO
- # => deep freezes the gem's constant!
-
-This will be revisited before Ruby 3.1 to either allow `everything`
-or to instead remove this mode.
-
-The method Module#const_set is not affected.
-
-==== Mode +experimental_copy+
-
-In this mode, all values assigned to constants are deeply copied and
-made shareable. It is safer mode than +experimental_everything+.
-
- # shareable_constant_value: experimental_everything
- var = [{foo: []}]
- var.frozen? # => false (assignment was made to local variable)
- X = var # => calls `Ractor.make_shareable(var, copy: true)`
- var.frozen? # => false
- Ractor.shareable?(X) #=> true
- var.object_id == X.object_id #=> false
-
-This mode is "experimental" and has not been discussed thoroughly.
-This will be revisited before Ruby 3.1 to either allow `copy`
-or to instead remove this mode.
-
-The method Module#const_set is not affected.
-
-==== Scope
-
-This directive can be used multiple times in the same file:
-
- # shareable_constant_value: none
- A = {foo: []}
- A.frozen? # => false
- Ractor.new { puts A } # => can not access non-shareable objects by non-main Ractor.
-
- # shareable_constant_value: literal
- B = {foo: []}
- B.frozen? # => true
- B[:foo].frozen? # => true
-
- C = [Object.new] # => cannot assign unshareable object to C (Ractor::IsolationError)
-
- D = [Object.new.freeze]
- D.frozen? # => true
-
- # shareable_constant_value: experimental_everything
- E = Set[1, 2, Object.new]
- E.frozen? # => true
- E.all(&:frozen?) # => true
-
-The directive affects only subsequent constants and only for the current scope:
-
- module Mod
- # shareable_constant_value: literal
- A = [1, 2, 3]
- module Sub
- B = [4, 5]
- end
- end
-
- C = [4, 5]
-
- module Mod
- D = [6]
- end
- p Mod::A.frozen?, Mod::Sub::B.frozen? # => true, true
- p C.frozen?, Mod::D.frozen? # => false, false
diff --git a/doc/syntax/control_expressions.rdoc b/doc/syntax/control_expressions.rdoc
index e91b03e72d..f7e6d54924 100644
--- a/doc/syntax/control_expressions.rdoc
+++ b/doc/syntax/control_expressions.rdoc
@@ -232,7 +232,7 @@ You may use +then+ after the +when+ condition. This is most frequently used
to place the body of the +when+ on a single line.
case a
- when 1, 2 then puts "a is one or two"
+ when 1, 2 then puts "a is one or two
when 3 then puts "a is three"
else puts "I don't know what a is"
end
@@ -255,20 +255,6 @@ Again, the +then+ and +else+ are optional.
The result value of a +case+ expression is the last value executed in the
expression.
-Since Ruby 2.7, +case+ expressions also provide a more powerful experimental
-pattern matching feature via the +in+ keyword:
-
- case {a: 1, b: 2, c: 3}
- in a: Integer => m
- "matched: #{m}"
- else
- "not matched"
- end
- # => "matched: 1"
-
-The pattern matching syntax is described on
-{its own page}[rdoc-ref:syntax/pattern_matching.rdoc].
-
== +while+ Loop
The +while+ loop executes while a condition is true:
diff --git a/doc/syntax/literals.rdoc b/doc/syntax/literals.rdoc
index d6d677806e..38bfa38676 100644
--- a/doc/syntax/literals.rdoc
+++ b/doc/syntax/literals.rdoc
@@ -20,6 +20,9 @@ Literals create objects you can use in your program. Literals include:
+true+ is a true value. All objects except +nil+ and +false+ evaluate to a
true value in conditional expressions.
+(There are also the constants +TRUE+, +FALSE+ and +NIL+, but the lowercase
+literal forms are preferred.)
+
== Numbers
You can write integers of any size as follows:
@@ -143,10 +146,6 @@ Double-quote strings allow interpolation of other values using
Any expression may be placed inside the interpolated section, but it's best to
keep the expression small for readability.
-You can also use <tt>#@foo</tt>, <tt>#@@foo</tt> and <tt>#$foo</tt> as a
-shorthand for, respectively, <tt>#{ @foo }</tt>, <tt>#{ @@foo }</tt> and
-<tt>#{ $foo }</tt>.
-
Interpolation may be disabled by escaping the "#" character or using
single-quote strings:
@@ -363,7 +362,7 @@ See Regexp for a description of the syntax of regular expressions.
== Procs
-A lambda proc can be created with <tt>-></tt>:
+A proc can be created with <tt>-></tt>:
-> { 1 + 1 }
diff --git a/doc/syntax/methods.rdoc b/doc/syntax/methods.rdoc
index c11bd449bc..924e31611f 100644
--- a/doc/syntax/methods.rdoc
+++ b/doc/syntax/methods.rdoc
@@ -379,23 +379,12 @@ converted to an Array:
gather_arguments 1, 2, 3 # prints [1, 2, 3]
-The array argument must appear before any keyword arguments.
-
-It is possible to gather arguments at the beginning or in the middle:
-
- def gather_arguments(first_arg, *middle_arguments, last_arg)
- p middle_arguments
- end
-
- gather_arguments 1, 2, 3, 4 # prints [2, 3]
+The array argument must be the last positional argument, it must appear before
+any keyword arguments.
The array argument will capture a Hash as the last entry if a hash was sent by
the caller after all positional arguments.
- def gather_arguments(*arguments)
- p arguments
- end
-
gather_arguments 1, a: 2 # prints [1, {:a=>2}]
However, this only occurs if the method does not declare any keyword arguments.
diff --git a/doc/syntax/miscellaneous.rdoc b/doc/syntax/miscellaneous.rdoc
index d5cfd3e474..87ec059ae7 100644
--- a/doc/syntax/miscellaneous.rdoc
+++ b/doc/syntax/miscellaneous.rdoc
@@ -83,36 +83,6 @@ Using the specific reflection methods such as instance_variable_defined? for
instance variables or const_defined? for constants is less error prone than
using +defined?+.
-+defined?+ handles some regexp global variables specially based on whether
-there is an active regexp match and how many capture groups there are:
-
- /b/ =~ 'a'
- defined?($~) # => "global-variable"
- defined?($&) # => nil
- defined?($`) # => nil
- defined?($') # => nil
- defined?($+) # => nil
- defined?($1) # => nil
- defined?($2) # => nil
-
- /./ =~ 'a'
- defined?($~) # => "global-variable"
- defined?($&) # => "global-variable"
- defined?($`) # => "global-variable"
- defined?($') # => "global-variable"
- defined?($+) # => nil
- defined?($1) # => nil
- defined?($2) # => nil
-
- /(.)/ =~ 'a'
- defined?($~) # => "global-variable"
- defined?($&) # => "global-variable"
- defined?($`) # => "global-variable"
- defined?($') # => "global-variable"
- defined?($+) # => "global-variable"
- defined?($1) # => "global-variable"
- defined?($2) # => nil
-
== +BEGIN+ and +END+
+BEGIN+ defines a block that is run before any other code in the current file.
diff --git a/doc/syntax/pattern_matching.rdoc b/doc/syntax/pattern_matching.rdoc
deleted file mode 100644
index 9f6954f1cb..0000000000
--- a/doc/syntax/pattern_matching.rdoc
+++ /dev/null
@@ -1,503 +0,0 @@
-= Pattern matching
-
-Pattern matching is a feature allowing deep matching of structured values: checking the structure and binding the matched parts to local variables.
-
-Pattern matching in Ruby is implemented with the +case+/+in+ expression:
-
- case <expression>
- in <pattern1>
- ...
- in <pattern2>
- ...
- in <pattern3>
- ...
- else
- ...
- end
-
-(Note that +in+ and +when+ branches can NOT be mixed in one +case+ expression.)
-
-Or with the <code>=></code> operator and the +in+ operator, which can be used in a standalone expression:
-
- <expression> => <pattern>
-
- <expression> in <pattern>
-
-The +case+/+in+ expression is _exhaustive_: if the value of the expression does not match any branch of the +case+ expression (and the +else+ branch is absent), +NoMatchingPatternError+ is raised.
-
-Therefore, the +case+ expression might be used for conditional matching and unpacking:
-
- config = {db: {user: 'admin', password: 'abc123'}}
-
- case config
- in db: {user:} # matches subhash and puts matched value in variable user
- puts "Connect with user '#{user}'"
- in connection: {username: }
- puts "Connect with user '#{username}'"
- else
- puts "Unrecognized structure of config"
- end
- # Prints: "Connect with user 'admin'"
-
-whilst the <code>=></code> operator is most useful when the expected data structure is known beforehand, to just unpack parts of it:
-
- config = {db: {user: 'admin', password: 'abc123'}}
-
- config => {db: {user:}} # will raise if the config's structure is unexpected
-
- puts "Connect with user '#{user}'"
- # Prints: "Connect with user 'admin'"
-
-<code><expression> in <pattern></code> is the same as <code>case <expression>; in <pattern>; true; else false; end</code>.
-You can use it when you only want to know if a pattern has been matched or not:
-
- users = [{name: "Alice", age: 12}, {name: "Bob", age: 23}]
- users.any? {|user| user in {name: /B/, age: 20..} } #=> true
-
-See below for more examples and explanations of the syntax.
-
-== Patterns
-
-Patterns can be:
-
-* any Ruby object (matched by the <code>===</code> operator, like in +when+); (<em>Value pattern</em>)
-* array pattern: <code>[<subpattern>, <subpattern>, <subpattern>, ...]</code>; (<em>Array pattern</em>)
-* find pattern: <code>[*variable, <subpattern>, <subpattern>, <subpattern>, ..., *variable]</code>; (<em>Find pattern</em>)
-* hash pattern: <code>{key: <subpattern>, key: <subpattern>, ...}</code>; (<em>Hash pattern</em>)
-* combination of patterns with <code>|</code>; (<em>Alternative pattern</em>)
-* variable capture: <code><pattern> => variable</code> or <code>variable</code>; (<em>As pattern</em>, <em>Variable pattern</em>)
-
-Any pattern can be nested inside array/find/hash patterns where <code><subpattern></code> is specified.
-
-Array patterns and find patterns match arrays, or objects that respond to +deconstruct+ (see below about the latter).
-Hash patterns match hashes, or objects that respond to +deconstruct_keys+ (see below about the latter). Note that only symbol keys are supported for hash patterns.
-
-An important difference between array and hash pattern behavior is that arrays match only a _whole_ array:
-
- case [1, 2, 3]
- in [Integer, Integer]
- "matched"
- else
- "not matched"
- end
- #=> "not matched"
-
-while the hash matches even if there are other keys besides the specified part:
-
- case {a: 1, b: 2, c: 3}
- in {a: Integer}
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
-<code>{}</code> is the only exclusion from this rule. It matches only if an empty hash is given:
-
- case {a: 1, b: 2, c: 3}
- in {}
- "matched"
- else
- "not matched"
- end
- #=> "not matched"
-
- case {}
- in {}
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
-There is also a way to specify there should be no other keys in the matched hash except those explicitly specified by the pattern, with <code>**nil</code>:
-
- case {a: 1, b: 2}
- in {a: Integer, **nil} # this will not match the pattern having keys other than a:
- "matched a part"
- in {a: Integer, b: Integer, **nil}
- "matched a whole"
- else
- "not matched"
- end
- #=> "matched a whole"
-
-Both array and hash patterns support "rest" specification:
-
- case [1, 2, 3]
- in [Integer, *]
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
- case {a: 1, b: 2, c: 3}
- in {a: Integer, **}
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
-In +case+ (but not in <code>=></code> and +in+) expressions, parentheses around both kinds of patterns could be omitted:
-
- case [1, 2]
- in Integer, Integer
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
- case {a: 1, b: 2, c: 3}
- in a: Integer
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
-Find pattern is similar to array pattern but it can be used to check if the given object has any elements that match the pattern:
-
- case ["a", 1, "b", "c", 2]
- in [*, String, String, *]
- "matched"
- else
- "not matched"
- end
-
-== Variable binding
-
-Besides deep structural checks, one of the very important features of the pattern matching is the binding of the matched parts to local variables. The basic form of binding is just specifying <code>=> variable_name</code> after the matched (sub)pattern (one might find this similar to storing exceptions in local variables in a <code>rescue ExceptionClass => var</code> clause):
-
- case [1, 2]
- in Integer => a, Integer
- "matched: #{a}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
- case {a: 1, b: 2, c: 3}
- in a: Integer => m
- "matched: #{m}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
-If no additional check is required, for only binding some part of the data to a variable, a simpler form could be used:
-
- case [1, 2]
- in a, Integer
- "matched: #{a}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
- case {a: 1, b: 2, c: 3}
- in a: m
- "matched: #{m}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
-For hash patterns, even a simpler form exists: key-only specification (without any sub-pattern) binds the local variable with the key's name, too:
-
- case {a: 1, b: 2, c: 3}
- in a:
- "matched: #{a}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
-Binding works for nested patterns as well:
-
- case {name: 'John', friends: [{name: 'Jane'}, {name: 'Rajesh'}]}
- in name:, friends: [{name: first_friend}, *]
- "matched: #{first_friend}"
- else
- "not matched"
- end
- #=> "matched: Jane"
-
-The "rest" part of a pattern also can be bound to a variable:
-
- case [1, 2, 3]
- in a, *rest
- "matched: #{a}, #{rest}"
- else
- "not matched"
- end
- #=> "matched: 1, [2, 3]"
-
- case {a: 1, b: 2, c: 3}
- in a:, **rest
- "matched: #{a}, #{rest}"
- else
- "not matched"
- end
- #=> "matched: 1, {:b=>2, :c=>3}"
-
-Binding to variables currently does NOT work for alternative patterns joined with <code>|</code>:
-
- case {a: 1, b: 2}
- in {a: } | Array
- "matched: #{a}"
- else
- "not matched"
- end
- # SyntaxError (illegal variable in alternative pattern (a))
-
-Variables that start with <code>_</code> are the only exclusions from this rule:
-
- case {a: 1, b: 2}
- in {a: _, b: _foo} | Array
- "matched: #{_}, #{_foo}"
- else
- "not matched"
- end
- # => "matched: 1, 2"
-
-It is, though, not advised to reuse the bound value, as this pattern's goal is to signify a discarded value.
-
-== Variable pinning
-
-Due to the variable binding feature, existing local variable can not be straightforwardly used as a sub-pattern:
-
- expectation = 18
-
- case [1, 2]
- in expectation, *rest
- "matched. expectation was: #{expectation}"
- else
- "not matched. expectation was: #{expectation}"
- end
- # expected: "not matched. expectation was: 18"
- # real: "matched. expectation was: 1" -- local variable just rewritten
-
-For this case, the pin operator <code>^</code> can be used, to tell Ruby "just use this value as part of the pattern":
-
- expectation = 18
- case [1, 2]
- in ^expectation, *rest
- "matched. expectation was: #{expectation}"
- else
- "not matched. expectation was: #{expectation}"
- end
- #=> "not matched. expectation was: 18"
-
-One important usage of variable pinning is specifying that the same value should occur in the pattern several times:
-
- jane = {school: 'high', schools: [{id: 1, level: 'middle'}, {id: 2, level: 'high'}]}
- john = {school: 'high', schools: [{id: 1, level: 'middle'}]}
-
- case jane
- in school:, schools: [*, {id:, level: ^school}] # select the last school, level should match
- "matched. school: #{id}"
- else
- "not matched"
- end
- #=> "matched. school: 2"
-
- case john # the specified school level is "high", but last school does not match
- in school:, schools: [*, {id:, level: ^school}]
- "matched. school: #{id}"
- else
- "not matched"
- end
- #=> "not matched"
-
-== Matching non-primitive objects: +deconstruct+ and +deconstruct_keys+
-
-As already mentioned above, array, find, and hash patterns besides literal arrays and hashes will try to match any object implementing +deconstruct+ (for array/find patterns) or +deconstruct_keys+ (for hash patterns).
-
- class Point
- def initialize(x, y)
- @x, @y = x, y
- end
-
- def deconstruct
- puts "deconstruct called"
- [@x, @y]
- end
-
- def deconstruct_keys(keys)
- puts "deconstruct_keys called with #{keys.inspect}"
- {x: @x, y: @y}
- end
- end
-
- case Point.new(1, -2)
- in px, Integer # sub-patterns and variable binding works
- "matched: #{px}"
- else
- "not matched"
- end
- # prints "deconstruct called"
- "matched: 1"
-
- case Point.new(1, -2)
- in x: 0.. => px
- "matched: #{px}"
- else
- "not matched"
- end
- # prints: deconstruct_keys called with [:x]
- #=> "matched: 1"
-
-+keys+ are passed to +deconstruct_keys+ to provide a room for optimization in the matched class: if calculating a full hash representation is expensive, one may calculate only the necessary subhash. When the <code>**rest</code> pattern is used, +nil+ is passed as a +keys+ value:
-
- case Point.new(1, -2)
- in x: 0.. => px, **rest
- "matched: #{px}"
- else
- "not matched"
- end
- # prints: deconstruct_keys called with nil
- #=> "matched: 1"
-
-Additionally, when matching custom classes, the expected class can be specified as part of the pattern and is checked with <code>===</code>
-
- class SuperPoint < Point
- end
-
- case Point.new(1, -2)
- in SuperPoint(x: 0.. => px)
- "matched: #{px}"
- else
- "not matched"
- end
- #=> "not matched"
-
- case SuperPoint.new(1, -2)
- in SuperPoint[x: 0.. => px] # [] or () parentheses are allowed
- "matched: #{px}"
- else
- "not matched"
- end
- #=> "matched: 1"
-
-== Guard clauses
-
-+if+ can be used to attach an additional condition (guard clause) when the pattern matches. This condition may use bound variables:
-
- case [1, 2]
- in a, b if b == a*2
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
- case [1, 1]
- in a, b if b == a*2
- "matched"
- else
- "not matched"
- end
- #=> "not matched"
-
-+unless+ works, too:
-
- case [1, 1]
- in a, b unless b == a*2
- "matched"
- else
- "not matched"
- end
- #=> "matched"
-
-== Current feature status
-
-As of Ruby 3.0, one-line pattern matching and find patterns are considered _experimental_: its syntax can change in the future. Every time you use these features in code, a warning will be printed:
-
- [0] => [*, 0, *]
- # warning: Find pattern is experimental, and the behavior may change in future versions of Ruby!
- # warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!
-
-To suppress this warning, one may use the Warning::[]= method:
-
- Warning[:experimental] = false
- eval('[0] => [*, 0, *]')
- # ...no warning printed...
-
-Note that pattern-matching warnings are raised at compile time, so this will not suppress the warning:
-
- Warning[:experimental] = false # At the time this line is evaluated, the parsing happened and warning emitted
- [0] => [*, 0, *]
-
-So, only subsequently loaded files or `eval`-ed code is affected by switching the flag.
-
-Alternatively, the command line option <code>-W:no-experimental</code> can be used to turn off "experimental" feature warnings.
-
-== Appendix A. Pattern syntax
-
-Approximate syntax is:
-
- pattern: value_pattern
- | variable_pattern
- | alternative_pattern
- | as_pattern
- | array_pattern
- | find_pattern
- | hash_pattern
-
- value_pattern: literal
- | Constant
- | ^variable
-
- variable_pattern: variable
-
- alternative_pattern: pattern | pattern | ...
-
- as_pattern: pattern => variable
-
- array_pattern: [pattern, ..., *variable]
- | Constant(pattern, ..., *variable)
- | Constant[pattern, ..., *variable]
-
- find_pattern: [*variable, pattern, ..., *variable]
- | Constant(*variable, pattern, ..., *variable)
- | Constant[*variable, pattern, ..., *variable]
-
- hash_pattern: {key: pattern, key:, ..., **variable}
- | Constant(key: pattern, key:, ..., **variable)
- | Constant[key: pattern, key:, ..., **variable]
-
-== Appendix B. Some undefined behavior examples
-
-To leave room for optimization in the future, the specification contains some undefined behavior.
-
-Use of a variable in an unmatched pattern:
-
- case [0, 1]
- in [a, 2]
- "not matched"
- in b
- "matched"
- in c
- "not matched"
- end
- a #=> undefined
- c #=> undefined
-
-Number of +deconstruct+, +deconstruct_keys+ method calls:
-
- $i = 0
- ary = [0]
- def ary.deconstruct
- $i += 1
- self
- end
- case ary
- in [0, 1]
- "not matched"
- in [0]
- "matched"
- end
- $i #=> undefined
diff --git a/doc/syntax/refinements.rdoc b/doc/syntax/refinements.rdoc
index c900ab1bdc..fc554bb476 100644
--- a/doc/syntax/refinements.rdoc
+++ b/doc/syntax/refinements.rdoc
@@ -245,8 +245,7 @@ When +super+ is invoked method lookup checks:
Note that +super+ in a method of a refinement invokes the method in the
refined class even if there is another refinement which has been activated in
-the same context. This is only true for +super+ in a method of a refinement, it
-does not apply to +super+ in a method in a module that is included in a refinement.
+the same context.
== Methods Introspection
@@ -279,6 +278,6 @@ Refinements in descendants have higher precedence than those of ancestors.
== Further Reading
-See https://bugs.ruby-lang.org/projects/ruby-master/wiki/RefinementsSpec for the
+See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RefinementsSpec for the
current specification for implementing refinements. The specification also
contains more details.
diff --git a/enc/Makefile.in b/enc/Makefile.in
index 9203874386..8385236494 100644
--- a/enc/Makefile.in
+++ b/enc/Makefile.in
@@ -11,7 +11,6 @@ exec_prefix = @exec_prefix@
libdir = @libdir@
top_srcdir = $(encsrcdir:/enc=)
srcdir = $(top_srcdir)
-tooldir = $(top_srcdir)/tool
arch = @arch@
EXTOUT = @EXTOUT@
hdrdir = $(srcdir)/include
diff --git a/enc/ascii.c b/enc/ascii.c
index a2fef2f879..8b32c414fe 100644
--- a/enc/ascii.c
+++ b/enc/ascii.c
@@ -61,8 +61,6 @@ OnigEncodingDefine(ascii, ASCII) = {
ENC_ALIAS("BINARY", "ASCII-8BIT")
ENC_REPLICATE("IBM437", "ASCII-8BIT")
ENC_ALIAS("CP437", "IBM437")
-ENC_REPLICATE("IBM720", "ASCII-8BIT")
-ENC_ALIAS("CP720", "IBM720")
ENC_REPLICATE("IBM737", "ASCII-8BIT")
ENC_ALIAS("CP737", "IBM737")
ENC_REPLICATE("IBM775", "ASCII-8BIT")
diff --git a/enc/cp949.c b/enc/cp949.c
index 1600d0cd5b..bd2c8d21a4 100644
--- a/enc/cp949.c
+++ b/enc/cp949.c
@@ -218,5 +218,5 @@ OnigEncodingDefine(cp949, CP949) = {
/*
* Name: CP949
* Link: http://www.microsoft.com/globaldev/reference/dbcs/949.mspx
- * Link: https://en.wikipedia.org/wiki/EUC-KR#EUC-KR
+ * Link: http://en.wikipedia.org/wiki/EUC-KR#EUC-KR
*/
diff --git a/enc/depend b/enc/depend
index 26f8e70c15..0fffcc273f 100644
--- a/enc/depend
+++ b/enc/depend
@@ -97,7 +97,7 @@ $(ENCSOS) $(TRANSSOS): $(ENC_TRANS_SO_D)
<%=transvpath_prefix%>.trans<%=transvpath_prefix%>.c:
$(ECHO) generating table from $@
- $(Q)$(MINIRUBY) "$(tooldir)/transcode-tblgen.rb" -vo "$@" "$<"
+ $(Q)$(MINIRUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo "$@" "$<"
% unless ENCS.empty? or TRANS.empty?
@@ -113,7 +113,7 @@ enc/<%=e%>.$(OBJEXT): <%=deps.map {|n| rule_subst % n}.join(' ')%>
% if src.empty?
% src = trans.scan(/^\s*transcode_tblgen_\w+\s+[\'\"]([^\'\"]*)/).flatten.map{|c|c.downcase+"-tbl.rb"}
% end
-<%=transvpath % "#{e}.c"%>: <%= src.map {|s| transvpath % "#{s}"}.join(" ")%> $(tooldir)/transcode-tblgen.rb
+<%=transvpath % "#{e}.c"%>: <%= src.map {|s| transvpath % "#{s}"}.join(" ")%> $(srcdir)/tool/transcode-tblgen.rb
% end
% end
@@ -178,499 +178,33 @@ clean-srcs:
<%# vim: set ft=eruby noexpandtab ts=8 sw=2 : -%>
# AUTOGENERATED DEPENDENCIES START
-enc/ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/ascii.$(OBJEXT): $(top_srcdir)/encindex.h
enc/ascii.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/ascii.$(OBJEXT): internal/anyargs.h
-enc/ascii.$(OBJEXT): internal/arithmetic.h
-enc/ascii.$(OBJEXT): internal/arithmetic/char.h
-enc/ascii.$(OBJEXT): internal/arithmetic/double.h
-enc/ascii.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/ascii.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/int.h
-enc/ascii.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/long.h
-enc/ascii.$(OBJEXT): internal/arithmetic/long_long.h
-enc/ascii.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/off_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/short.h
-enc/ascii.$(OBJEXT): internal/arithmetic/size_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/ascii.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/ascii.$(OBJEXT): internal/assume.h
-enc/ascii.$(OBJEXT): internal/attr/alloc_size.h
-enc/ascii.$(OBJEXT): internal/attr/artificial.h
-enc/ascii.$(OBJEXT): internal/attr/cold.h
-enc/ascii.$(OBJEXT): internal/attr/const.h
-enc/ascii.$(OBJEXT): internal/attr/constexpr.h
-enc/ascii.$(OBJEXT): internal/attr/deprecated.h
-enc/ascii.$(OBJEXT): internal/attr/diagnose_if.h
-enc/ascii.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/ascii.$(OBJEXT): internal/attr/error.h
-enc/ascii.$(OBJEXT): internal/attr/flag_enum.h
-enc/ascii.$(OBJEXT): internal/attr/forceinline.h
-enc/ascii.$(OBJEXT): internal/attr/format.h
-enc/ascii.$(OBJEXT): internal/attr/maybe_unused.h
-enc/ascii.$(OBJEXT): internal/attr/noalias.h
-enc/ascii.$(OBJEXT): internal/attr/nodiscard.h
-enc/ascii.$(OBJEXT): internal/attr/noexcept.h
-enc/ascii.$(OBJEXT): internal/attr/noinline.h
-enc/ascii.$(OBJEXT): internal/attr/nonnull.h
-enc/ascii.$(OBJEXT): internal/attr/noreturn.h
-enc/ascii.$(OBJEXT): internal/attr/pure.h
-enc/ascii.$(OBJEXT): internal/attr/restrict.h
-enc/ascii.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/ascii.$(OBJEXT): internal/attr/warning.h
-enc/ascii.$(OBJEXT): internal/attr/weakref.h
-enc/ascii.$(OBJEXT): internal/cast.h
-enc/ascii.$(OBJEXT): internal/compiler_is.h
-enc/ascii.$(OBJEXT): internal/compiler_is/apple.h
-enc/ascii.$(OBJEXT): internal/compiler_is/clang.h
-enc/ascii.$(OBJEXT): internal/compiler_is/gcc.h
-enc/ascii.$(OBJEXT): internal/compiler_is/intel.h
-enc/ascii.$(OBJEXT): internal/compiler_is/msvc.h
-enc/ascii.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/ascii.$(OBJEXT): internal/compiler_since.h
-enc/ascii.$(OBJEXT): internal/config.h
-enc/ascii.$(OBJEXT): internal/constant_p.h
-enc/ascii.$(OBJEXT): internal/core.h
-enc/ascii.$(OBJEXT): internal/core/rarray.h
-enc/ascii.$(OBJEXT): internal/core/rbasic.h
-enc/ascii.$(OBJEXT): internal/core/rbignum.h
-enc/ascii.$(OBJEXT): internal/core/rclass.h
-enc/ascii.$(OBJEXT): internal/core/rdata.h
-enc/ascii.$(OBJEXT): internal/core/rfile.h
-enc/ascii.$(OBJEXT): internal/core/rhash.h
-enc/ascii.$(OBJEXT): internal/core/robject.h
-enc/ascii.$(OBJEXT): internal/core/rregexp.h
-enc/ascii.$(OBJEXT): internal/core/rstring.h
-enc/ascii.$(OBJEXT): internal/core/rstruct.h
-enc/ascii.$(OBJEXT): internal/core/rtypeddata.h
-enc/ascii.$(OBJEXT): internal/ctype.h
-enc/ascii.$(OBJEXT): internal/dllexport.h
-enc/ascii.$(OBJEXT): internal/dosish.h
-enc/ascii.$(OBJEXT): internal/error.h
-enc/ascii.$(OBJEXT): internal/eval.h
-enc/ascii.$(OBJEXT): internal/event.h
-enc/ascii.$(OBJEXT): internal/fl_type.h
-enc/ascii.$(OBJEXT): internal/gc.h
-enc/ascii.$(OBJEXT): internal/glob.h
-enc/ascii.$(OBJEXT): internal/globals.h
-enc/ascii.$(OBJEXT): internal/has/attribute.h
-enc/ascii.$(OBJEXT): internal/has/builtin.h
-enc/ascii.$(OBJEXT): internal/has/c_attribute.h
-enc/ascii.$(OBJEXT): internal/has/cpp_attribute.h
-enc/ascii.$(OBJEXT): internal/has/declspec_attribute.h
-enc/ascii.$(OBJEXT): internal/has/extension.h
-enc/ascii.$(OBJEXT): internal/has/feature.h
-enc/ascii.$(OBJEXT): internal/has/warning.h
-enc/ascii.$(OBJEXT): internal/intern/array.h
-enc/ascii.$(OBJEXT): internal/intern/bignum.h
-enc/ascii.$(OBJEXT): internal/intern/class.h
-enc/ascii.$(OBJEXT): internal/intern/compar.h
-enc/ascii.$(OBJEXT): internal/intern/complex.h
-enc/ascii.$(OBJEXT): internal/intern/cont.h
-enc/ascii.$(OBJEXT): internal/intern/dir.h
-enc/ascii.$(OBJEXT): internal/intern/enum.h
-enc/ascii.$(OBJEXT): internal/intern/enumerator.h
-enc/ascii.$(OBJEXT): internal/intern/error.h
-enc/ascii.$(OBJEXT): internal/intern/eval.h
-enc/ascii.$(OBJEXT): internal/intern/file.h
-enc/ascii.$(OBJEXT): internal/intern/gc.h
-enc/ascii.$(OBJEXT): internal/intern/hash.h
-enc/ascii.$(OBJEXT): internal/intern/io.h
-enc/ascii.$(OBJEXT): internal/intern/load.h
-enc/ascii.$(OBJEXT): internal/intern/marshal.h
-enc/ascii.$(OBJEXT): internal/intern/numeric.h
-enc/ascii.$(OBJEXT): internal/intern/object.h
-enc/ascii.$(OBJEXT): internal/intern/parse.h
-enc/ascii.$(OBJEXT): internal/intern/proc.h
-enc/ascii.$(OBJEXT): internal/intern/process.h
-enc/ascii.$(OBJEXT): internal/intern/random.h
-enc/ascii.$(OBJEXT): internal/intern/range.h
-enc/ascii.$(OBJEXT): internal/intern/rational.h
-enc/ascii.$(OBJEXT): internal/intern/re.h
-enc/ascii.$(OBJEXT): internal/intern/ruby.h
-enc/ascii.$(OBJEXT): internal/intern/select.h
-enc/ascii.$(OBJEXT): internal/intern/select/largesize.h
-enc/ascii.$(OBJEXT): internal/intern/signal.h
-enc/ascii.$(OBJEXT): internal/intern/sprintf.h
-enc/ascii.$(OBJEXT): internal/intern/string.h
-enc/ascii.$(OBJEXT): internal/intern/struct.h
-enc/ascii.$(OBJEXT): internal/intern/thread.h
-enc/ascii.$(OBJEXT): internal/intern/time.h
-enc/ascii.$(OBJEXT): internal/intern/variable.h
-enc/ascii.$(OBJEXT): internal/intern/vm.h
-enc/ascii.$(OBJEXT): internal/interpreter.h
-enc/ascii.$(OBJEXT): internal/iterator.h
-enc/ascii.$(OBJEXT): internal/memory.h
-enc/ascii.$(OBJEXT): internal/method.h
-enc/ascii.$(OBJEXT): internal/module.h
-enc/ascii.$(OBJEXT): internal/newobj.h
-enc/ascii.$(OBJEXT): internal/rgengc.h
-enc/ascii.$(OBJEXT): internal/scan_args.h
-enc/ascii.$(OBJEXT): internal/special_consts.h
-enc/ascii.$(OBJEXT): internal/static_assert.h
-enc/ascii.$(OBJEXT): internal/stdalign.h
-enc/ascii.$(OBJEXT): internal/stdbool.h
-enc/ascii.$(OBJEXT): internal/symbol.h
-enc/ascii.$(OBJEXT): internal/token_paste.h
-enc/ascii.$(OBJEXT): internal/value.h
-enc/ascii.$(OBJEXT): internal/value_type.h
-enc/ascii.$(OBJEXT): internal/variable.h
-enc/ascii.$(OBJEXT): internal/warning_push.h
-enc/ascii.$(OBJEXT): internal/xmalloc.h
-enc/ascii.$(OBJEXT): assert.h
-enc/ascii.$(OBJEXT): backward/2/assume.h
-enc/ascii.$(OBJEXT): backward/2/attributes.h
-enc/ascii.$(OBJEXT): backward/2/bool.h
-enc/ascii.$(OBJEXT): backward/2/gcc_version_since.h
-enc/ascii.$(OBJEXT): backward/2/inttypes.h
-enc/ascii.$(OBJEXT): backward/2/limits.h
-enc/ascii.$(OBJEXT): backward/2/long_long.h
-enc/ascii.$(OBJEXT): backward/2/stdalign.h
-enc/ascii.$(OBJEXT): backward/2/stdarg.h
enc/ascii.$(OBJEXT): config.h
enc/ascii.$(OBJEXT): defines.h
enc/ascii.$(OBJEXT): enc/ascii.c
-enc/ascii.$(OBJEXT): encoding.h
-enc/ascii.$(OBJEXT): intern.h
enc/ascii.$(OBJEXT): missing.h
enc/ascii.$(OBJEXT): onigmo.h
-enc/ascii.$(OBJEXT): oniguruma.h
-enc/ascii.$(OBJEXT): st.h
-enc/ascii.$(OBJEXT): subst.h
enc/big5.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/big5.$(OBJEXT): internal/assume.h
-enc/big5.$(OBJEXT): internal/attr/alloc_size.h
-enc/big5.$(OBJEXT): internal/attr/cold.h
-enc/big5.$(OBJEXT): internal/attr/const.h
-enc/big5.$(OBJEXT): internal/attr/deprecated.h
-enc/big5.$(OBJEXT): internal/attr/error.h
-enc/big5.$(OBJEXT): internal/attr/forceinline.h
-enc/big5.$(OBJEXT): internal/attr/format.h
-enc/big5.$(OBJEXT): internal/attr/maybe_unused.h
-enc/big5.$(OBJEXT): internal/attr/nodiscard.h
-enc/big5.$(OBJEXT): internal/attr/noexcept.h
-enc/big5.$(OBJEXT): internal/attr/noinline.h
-enc/big5.$(OBJEXT): internal/attr/nonnull.h
-enc/big5.$(OBJEXT): internal/attr/noreturn.h
-enc/big5.$(OBJEXT): internal/attr/pure.h
-enc/big5.$(OBJEXT): internal/attr/restrict.h
-enc/big5.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/big5.$(OBJEXT): internal/attr/warning.h
-enc/big5.$(OBJEXT): internal/cast.h
-enc/big5.$(OBJEXT): internal/compiler_is.h
-enc/big5.$(OBJEXT): internal/compiler_is/apple.h
-enc/big5.$(OBJEXT): internal/compiler_is/clang.h
-enc/big5.$(OBJEXT): internal/compiler_is/gcc.h
-enc/big5.$(OBJEXT): internal/compiler_is/intel.h
-enc/big5.$(OBJEXT): internal/compiler_is/msvc.h
-enc/big5.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/big5.$(OBJEXT): internal/compiler_since.h
-enc/big5.$(OBJEXT): internal/config.h
-enc/big5.$(OBJEXT): internal/dllexport.h
-enc/big5.$(OBJEXT): internal/dosish.h
-enc/big5.$(OBJEXT): internal/has/attribute.h
-enc/big5.$(OBJEXT): internal/has/builtin.h
-enc/big5.$(OBJEXT): internal/has/c_attribute.h
-enc/big5.$(OBJEXT): internal/has/cpp_attribute.h
-enc/big5.$(OBJEXT): internal/has/declspec_attribute.h
-enc/big5.$(OBJEXT): internal/has/extension.h
-enc/big5.$(OBJEXT): internal/has/feature.h
-enc/big5.$(OBJEXT): internal/has/warning.h
-enc/big5.$(OBJEXT): internal/stdalign.h
-enc/big5.$(OBJEXT): internal/stdbool.h
-enc/big5.$(OBJEXT): internal/token_paste.h
-enc/big5.$(OBJEXT): internal/warning_push.h
-enc/big5.$(OBJEXT): internal/xmalloc.h
-enc/big5.$(OBJEXT): assert.h
-enc/big5.$(OBJEXT): backward/2/assume.h
-enc/big5.$(OBJEXT): backward/2/attributes.h
-enc/big5.$(OBJEXT): backward/2/bool.h
-enc/big5.$(OBJEXT): backward/2/gcc_version_since.h
-enc/big5.$(OBJEXT): backward/2/long_long.h
-enc/big5.$(OBJEXT): backward/2/stdalign.h
-enc/big5.$(OBJEXT): backward/2/stdarg.h
enc/big5.$(OBJEXT): config.h
enc/big5.$(OBJEXT): defines.h
enc/big5.$(OBJEXT): enc/big5.c
enc/big5.$(OBJEXT): missing.h
enc/big5.$(OBJEXT): onigmo.h
-enc/cesu_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/cesu_8.$(OBJEXT): $(top_srcdir)/encindex.h
enc/cesu_8.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/cesu_8.$(OBJEXT): internal/anyargs.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/char.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/double.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/int.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/long.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/long_long.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/off_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/short.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/size_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/cesu_8.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/cesu_8.$(OBJEXT): internal/assume.h
-enc/cesu_8.$(OBJEXT): internal/attr/alloc_size.h
-enc/cesu_8.$(OBJEXT): internal/attr/artificial.h
-enc/cesu_8.$(OBJEXT): internal/attr/cold.h
-enc/cesu_8.$(OBJEXT): internal/attr/const.h
-enc/cesu_8.$(OBJEXT): internal/attr/constexpr.h
-enc/cesu_8.$(OBJEXT): internal/attr/deprecated.h
-enc/cesu_8.$(OBJEXT): internal/attr/diagnose_if.h
-enc/cesu_8.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/cesu_8.$(OBJEXT): internal/attr/error.h
-enc/cesu_8.$(OBJEXT): internal/attr/flag_enum.h
-enc/cesu_8.$(OBJEXT): internal/attr/forceinline.h
-enc/cesu_8.$(OBJEXT): internal/attr/format.h
-enc/cesu_8.$(OBJEXT): internal/attr/maybe_unused.h
-enc/cesu_8.$(OBJEXT): internal/attr/noalias.h
-enc/cesu_8.$(OBJEXT): internal/attr/nodiscard.h
-enc/cesu_8.$(OBJEXT): internal/attr/noexcept.h
-enc/cesu_8.$(OBJEXT): internal/attr/noinline.h
-enc/cesu_8.$(OBJEXT): internal/attr/nonnull.h
-enc/cesu_8.$(OBJEXT): internal/attr/noreturn.h
-enc/cesu_8.$(OBJEXT): internal/attr/pure.h
-enc/cesu_8.$(OBJEXT): internal/attr/restrict.h
-enc/cesu_8.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/cesu_8.$(OBJEXT): internal/attr/warning.h
-enc/cesu_8.$(OBJEXT): internal/attr/weakref.h
-enc/cesu_8.$(OBJEXT): internal/cast.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/apple.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/clang.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/gcc.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/intel.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/msvc.h
-enc/cesu_8.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/cesu_8.$(OBJEXT): internal/compiler_since.h
-enc/cesu_8.$(OBJEXT): internal/config.h
-enc/cesu_8.$(OBJEXT): internal/constant_p.h
-enc/cesu_8.$(OBJEXT): internal/core.h
-enc/cesu_8.$(OBJEXT): internal/core/rarray.h
-enc/cesu_8.$(OBJEXT): internal/core/rbasic.h
-enc/cesu_8.$(OBJEXT): internal/core/rbignum.h
-enc/cesu_8.$(OBJEXT): internal/core/rclass.h
-enc/cesu_8.$(OBJEXT): internal/core/rdata.h
-enc/cesu_8.$(OBJEXT): internal/core/rfile.h
-enc/cesu_8.$(OBJEXT): internal/core/rhash.h
-enc/cesu_8.$(OBJEXT): internal/core/robject.h
-enc/cesu_8.$(OBJEXT): internal/core/rregexp.h
-enc/cesu_8.$(OBJEXT): internal/core/rstring.h
-enc/cesu_8.$(OBJEXT): internal/core/rstruct.h
-enc/cesu_8.$(OBJEXT): internal/core/rtypeddata.h
-enc/cesu_8.$(OBJEXT): internal/ctype.h
-enc/cesu_8.$(OBJEXT): internal/dllexport.h
-enc/cesu_8.$(OBJEXT): internal/dosish.h
-enc/cesu_8.$(OBJEXT): internal/error.h
-enc/cesu_8.$(OBJEXT): internal/eval.h
-enc/cesu_8.$(OBJEXT): internal/event.h
-enc/cesu_8.$(OBJEXT): internal/fl_type.h
-enc/cesu_8.$(OBJEXT): internal/gc.h
-enc/cesu_8.$(OBJEXT): internal/glob.h
-enc/cesu_8.$(OBJEXT): internal/globals.h
-enc/cesu_8.$(OBJEXT): internal/has/attribute.h
-enc/cesu_8.$(OBJEXT): internal/has/builtin.h
-enc/cesu_8.$(OBJEXT): internal/has/c_attribute.h
-enc/cesu_8.$(OBJEXT): internal/has/cpp_attribute.h
-enc/cesu_8.$(OBJEXT): internal/has/declspec_attribute.h
-enc/cesu_8.$(OBJEXT): internal/has/extension.h
-enc/cesu_8.$(OBJEXT): internal/has/feature.h
-enc/cesu_8.$(OBJEXT): internal/has/warning.h
-enc/cesu_8.$(OBJEXT): internal/intern/array.h
-enc/cesu_8.$(OBJEXT): internal/intern/bignum.h
-enc/cesu_8.$(OBJEXT): internal/intern/class.h
-enc/cesu_8.$(OBJEXT): internal/intern/compar.h
-enc/cesu_8.$(OBJEXT): internal/intern/complex.h
-enc/cesu_8.$(OBJEXT): internal/intern/cont.h
-enc/cesu_8.$(OBJEXT): internal/intern/dir.h
-enc/cesu_8.$(OBJEXT): internal/intern/enum.h
-enc/cesu_8.$(OBJEXT): internal/intern/enumerator.h
-enc/cesu_8.$(OBJEXT): internal/intern/error.h
-enc/cesu_8.$(OBJEXT): internal/intern/eval.h
-enc/cesu_8.$(OBJEXT): internal/intern/file.h
-enc/cesu_8.$(OBJEXT): internal/intern/gc.h
-enc/cesu_8.$(OBJEXT): internal/intern/hash.h
-enc/cesu_8.$(OBJEXT): internal/intern/io.h
-enc/cesu_8.$(OBJEXT): internal/intern/load.h
-enc/cesu_8.$(OBJEXT): internal/intern/marshal.h
-enc/cesu_8.$(OBJEXT): internal/intern/numeric.h
-enc/cesu_8.$(OBJEXT): internal/intern/object.h
-enc/cesu_8.$(OBJEXT): internal/intern/parse.h
-enc/cesu_8.$(OBJEXT): internal/intern/proc.h
-enc/cesu_8.$(OBJEXT): internal/intern/process.h
-enc/cesu_8.$(OBJEXT): internal/intern/random.h
-enc/cesu_8.$(OBJEXT): internal/intern/range.h
-enc/cesu_8.$(OBJEXT): internal/intern/rational.h
-enc/cesu_8.$(OBJEXT): internal/intern/re.h
-enc/cesu_8.$(OBJEXT): internal/intern/ruby.h
-enc/cesu_8.$(OBJEXT): internal/intern/select.h
-enc/cesu_8.$(OBJEXT): internal/intern/select/largesize.h
-enc/cesu_8.$(OBJEXT): internal/intern/signal.h
-enc/cesu_8.$(OBJEXT): internal/intern/sprintf.h
-enc/cesu_8.$(OBJEXT): internal/intern/string.h
-enc/cesu_8.$(OBJEXT): internal/intern/struct.h
-enc/cesu_8.$(OBJEXT): internal/intern/thread.h
-enc/cesu_8.$(OBJEXT): internal/intern/time.h
-enc/cesu_8.$(OBJEXT): internal/intern/variable.h
-enc/cesu_8.$(OBJEXT): internal/intern/vm.h
-enc/cesu_8.$(OBJEXT): internal/interpreter.h
-enc/cesu_8.$(OBJEXT): internal/iterator.h
-enc/cesu_8.$(OBJEXT): internal/memory.h
-enc/cesu_8.$(OBJEXT): internal/method.h
-enc/cesu_8.$(OBJEXT): internal/module.h
-enc/cesu_8.$(OBJEXT): internal/newobj.h
-enc/cesu_8.$(OBJEXT): internal/rgengc.h
-enc/cesu_8.$(OBJEXT): internal/scan_args.h
-enc/cesu_8.$(OBJEXT): internal/special_consts.h
-enc/cesu_8.$(OBJEXT): internal/static_assert.h
-enc/cesu_8.$(OBJEXT): internal/stdalign.h
-enc/cesu_8.$(OBJEXT): internal/stdbool.h
-enc/cesu_8.$(OBJEXT): internal/symbol.h
-enc/cesu_8.$(OBJEXT): internal/token_paste.h
-enc/cesu_8.$(OBJEXT): internal/value.h
-enc/cesu_8.$(OBJEXT): internal/value_type.h
-enc/cesu_8.$(OBJEXT): internal/variable.h
-enc/cesu_8.$(OBJEXT): internal/warning_push.h
-enc/cesu_8.$(OBJEXT): internal/xmalloc.h
-enc/cesu_8.$(OBJEXT): assert.h
-enc/cesu_8.$(OBJEXT): backward.h
-enc/cesu_8.$(OBJEXT): backward/2/assume.h
-enc/cesu_8.$(OBJEXT): backward/2/attributes.h
-enc/cesu_8.$(OBJEXT): backward/2/bool.h
-enc/cesu_8.$(OBJEXT): backward/2/gcc_version_since.h
-enc/cesu_8.$(OBJEXT): backward/2/inttypes.h
-enc/cesu_8.$(OBJEXT): backward/2/limits.h
-enc/cesu_8.$(OBJEXT): backward/2/long_long.h
-enc/cesu_8.$(OBJEXT): backward/2/stdalign.h
-enc/cesu_8.$(OBJEXT): backward/2/stdarg.h
enc/cesu_8.$(OBJEXT): config.h
enc/cesu_8.$(OBJEXT): defines.h
enc/cesu_8.$(OBJEXT): enc/cesu_8.c
-enc/cesu_8.$(OBJEXT): encoding.h
-enc/cesu_8.$(OBJEXT): intern.h
enc/cesu_8.$(OBJEXT): missing.h
enc/cesu_8.$(OBJEXT): onigmo.h
-enc/cesu_8.$(OBJEXT): oniguruma.h
-enc/cesu_8.$(OBJEXT): st.h
-enc/cesu_8.$(OBJEXT): subst.h
enc/cp949.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/cp949.$(OBJEXT): internal/assume.h
-enc/cp949.$(OBJEXT): internal/attr/alloc_size.h
-enc/cp949.$(OBJEXT): internal/attr/cold.h
-enc/cp949.$(OBJEXT): internal/attr/const.h
-enc/cp949.$(OBJEXT): internal/attr/deprecated.h
-enc/cp949.$(OBJEXT): internal/attr/error.h
-enc/cp949.$(OBJEXT): internal/attr/forceinline.h
-enc/cp949.$(OBJEXT): internal/attr/format.h
-enc/cp949.$(OBJEXT): internal/attr/maybe_unused.h
-enc/cp949.$(OBJEXT): internal/attr/nodiscard.h
-enc/cp949.$(OBJEXT): internal/attr/noexcept.h
-enc/cp949.$(OBJEXT): internal/attr/noinline.h
-enc/cp949.$(OBJEXT): internal/attr/nonnull.h
-enc/cp949.$(OBJEXT): internal/attr/noreturn.h
-enc/cp949.$(OBJEXT): internal/attr/pure.h
-enc/cp949.$(OBJEXT): internal/attr/restrict.h
-enc/cp949.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/cp949.$(OBJEXT): internal/attr/warning.h
-enc/cp949.$(OBJEXT): internal/cast.h
-enc/cp949.$(OBJEXT): internal/compiler_is.h
-enc/cp949.$(OBJEXT): internal/compiler_is/apple.h
-enc/cp949.$(OBJEXT): internal/compiler_is/clang.h
-enc/cp949.$(OBJEXT): internal/compiler_is/gcc.h
-enc/cp949.$(OBJEXT): internal/compiler_is/intel.h
-enc/cp949.$(OBJEXT): internal/compiler_is/msvc.h
-enc/cp949.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/cp949.$(OBJEXT): internal/compiler_since.h
-enc/cp949.$(OBJEXT): internal/config.h
-enc/cp949.$(OBJEXT): internal/dllexport.h
-enc/cp949.$(OBJEXT): internal/dosish.h
-enc/cp949.$(OBJEXT): internal/has/attribute.h
-enc/cp949.$(OBJEXT): internal/has/builtin.h
-enc/cp949.$(OBJEXT): internal/has/c_attribute.h
-enc/cp949.$(OBJEXT): internal/has/cpp_attribute.h
-enc/cp949.$(OBJEXT): internal/has/declspec_attribute.h
-enc/cp949.$(OBJEXT): internal/has/extension.h
-enc/cp949.$(OBJEXT): internal/has/feature.h
-enc/cp949.$(OBJEXT): internal/has/warning.h
-enc/cp949.$(OBJEXT): internal/stdalign.h
-enc/cp949.$(OBJEXT): internal/stdbool.h
-enc/cp949.$(OBJEXT): internal/token_paste.h
-enc/cp949.$(OBJEXT): internal/warning_push.h
-enc/cp949.$(OBJEXT): internal/xmalloc.h
-enc/cp949.$(OBJEXT): assert.h
-enc/cp949.$(OBJEXT): backward/2/assume.h
-enc/cp949.$(OBJEXT): backward/2/attributes.h
-enc/cp949.$(OBJEXT): backward/2/bool.h
-enc/cp949.$(OBJEXT): backward/2/gcc_version_since.h
-enc/cp949.$(OBJEXT): backward/2/long_long.h
-enc/cp949.$(OBJEXT): backward/2/stdalign.h
-enc/cp949.$(OBJEXT): backward/2/stdarg.h
enc/cp949.$(OBJEXT): config.h
enc/cp949.$(OBJEXT): defines.h
enc/cp949.$(OBJEXT): enc/cp949.c
enc/cp949.$(OBJEXT): missing.h
enc/cp949.$(OBJEXT): onigmo.h
enc/emacs_mule.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/emacs_mule.$(OBJEXT): internal/assume.h
-enc/emacs_mule.$(OBJEXT): internal/attr/alloc_size.h
-enc/emacs_mule.$(OBJEXT): internal/attr/cold.h
-enc/emacs_mule.$(OBJEXT): internal/attr/const.h
-enc/emacs_mule.$(OBJEXT): internal/attr/deprecated.h
-enc/emacs_mule.$(OBJEXT): internal/attr/error.h
-enc/emacs_mule.$(OBJEXT): internal/attr/forceinline.h
-enc/emacs_mule.$(OBJEXT): internal/attr/format.h
-enc/emacs_mule.$(OBJEXT): internal/attr/maybe_unused.h
-enc/emacs_mule.$(OBJEXT): internal/attr/nodiscard.h
-enc/emacs_mule.$(OBJEXT): internal/attr/noexcept.h
-enc/emacs_mule.$(OBJEXT): internal/attr/noinline.h
-enc/emacs_mule.$(OBJEXT): internal/attr/nonnull.h
-enc/emacs_mule.$(OBJEXT): internal/attr/noreturn.h
-enc/emacs_mule.$(OBJEXT): internal/attr/pure.h
-enc/emacs_mule.$(OBJEXT): internal/attr/restrict.h
-enc/emacs_mule.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/emacs_mule.$(OBJEXT): internal/attr/warning.h
-enc/emacs_mule.$(OBJEXT): internal/cast.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/apple.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/clang.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/gcc.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/intel.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/msvc.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/emacs_mule.$(OBJEXT): internal/compiler_since.h
-enc/emacs_mule.$(OBJEXT): internal/config.h
-enc/emacs_mule.$(OBJEXT): internal/dllexport.h
-enc/emacs_mule.$(OBJEXT): internal/dosish.h
-enc/emacs_mule.$(OBJEXT): internal/has/attribute.h
-enc/emacs_mule.$(OBJEXT): internal/has/builtin.h
-enc/emacs_mule.$(OBJEXT): internal/has/c_attribute.h
-enc/emacs_mule.$(OBJEXT): internal/has/cpp_attribute.h
-enc/emacs_mule.$(OBJEXT): internal/has/declspec_attribute.h
-enc/emacs_mule.$(OBJEXT): internal/has/extension.h
-enc/emacs_mule.$(OBJEXT): internal/has/feature.h
-enc/emacs_mule.$(OBJEXT): internal/has/warning.h
-enc/emacs_mule.$(OBJEXT): internal/stdalign.h
-enc/emacs_mule.$(OBJEXT): internal/stdbool.h
-enc/emacs_mule.$(OBJEXT): internal/token_paste.h
-enc/emacs_mule.$(OBJEXT): internal/warning_push.h
-enc/emacs_mule.$(OBJEXT): internal/xmalloc.h
-enc/emacs_mule.$(OBJEXT): assert.h
-enc/emacs_mule.$(OBJEXT): backward/2/assume.h
-enc/emacs_mule.$(OBJEXT): backward/2/attributes.h
-enc/emacs_mule.$(OBJEXT): backward/2/bool.h
-enc/emacs_mule.$(OBJEXT): backward/2/gcc_version_since.h
-enc/emacs_mule.$(OBJEXT): backward/2/long_long.h
-enc/emacs_mule.$(OBJEXT): backward/2/stdalign.h
-enc/emacs_mule.$(OBJEXT): backward/2/stdarg.h
enc/emacs_mule.$(OBJEXT): config.h
enc/emacs_mule.$(OBJEXT): defines.h
enc/emacs_mule.$(OBJEXT): enc/emacs_mule.c
@@ -679,221 +213,17 @@ enc/emacs_mule.$(OBJEXT): onigmo.h
enc/encdb.$(OBJEXT): $(hdrdir)/ruby.h
enc/encdb.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/encdb.$(OBJEXT): $(top_srcdir)/internal.h
-enc/encdb.$(OBJEXT): $(top_srcdir)/internal/encoding.h
-enc/encdb.$(OBJEXT): internal/anyargs.h
-enc/encdb.$(OBJEXT): internal/arithmetic.h
-enc/encdb.$(OBJEXT): internal/arithmetic/char.h
-enc/encdb.$(OBJEXT): internal/arithmetic/double.h
-enc/encdb.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/encdb.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/int.h
-enc/encdb.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/long.h
-enc/encdb.$(OBJEXT): internal/arithmetic/long_long.h
-enc/encdb.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/off_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/short.h
-enc/encdb.$(OBJEXT): internal/arithmetic/size_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/encdb.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/encdb.$(OBJEXT): internal/assume.h
-enc/encdb.$(OBJEXT): internal/attr/alloc_size.h
-enc/encdb.$(OBJEXT): internal/attr/artificial.h
-enc/encdb.$(OBJEXT): internal/attr/cold.h
-enc/encdb.$(OBJEXT): internal/attr/const.h
-enc/encdb.$(OBJEXT): internal/attr/constexpr.h
-enc/encdb.$(OBJEXT): internal/attr/deprecated.h
-enc/encdb.$(OBJEXT): internal/attr/diagnose_if.h
-enc/encdb.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/encdb.$(OBJEXT): internal/attr/error.h
-enc/encdb.$(OBJEXT): internal/attr/flag_enum.h
-enc/encdb.$(OBJEXT): internal/attr/forceinline.h
-enc/encdb.$(OBJEXT): internal/attr/format.h
-enc/encdb.$(OBJEXT): internal/attr/maybe_unused.h
-enc/encdb.$(OBJEXT): internal/attr/noalias.h
-enc/encdb.$(OBJEXT): internal/attr/nodiscard.h
-enc/encdb.$(OBJEXT): internal/attr/noexcept.h
-enc/encdb.$(OBJEXT): internal/attr/noinline.h
-enc/encdb.$(OBJEXT): internal/attr/nonnull.h
-enc/encdb.$(OBJEXT): internal/attr/noreturn.h
-enc/encdb.$(OBJEXT): internal/attr/pure.h
-enc/encdb.$(OBJEXT): internal/attr/restrict.h
-enc/encdb.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/encdb.$(OBJEXT): internal/attr/warning.h
-enc/encdb.$(OBJEXT): internal/attr/weakref.h
-enc/encdb.$(OBJEXT): internal/cast.h
-enc/encdb.$(OBJEXT): internal/compiler_is.h
-enc/encdb.$(OBJEXT): internal/compiler_is/apple.h
-enc/encdb.$(OBJEXT): internal/compiler_is/clang.h
-enc/encdb.$(OBJEXT): internal/compiler_is/gcc.h
-enc/encdb.$(OBJEXT): internal/compiler_is/intel.h
-enc/encdb.$(OBJEXT): internal/compiler_is/msvc.h
-enc/encdb.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/encdb.$(OBJEXT): internal/compiler_since.h
-enc/encdb.$(OBJEXT): internal/config.h
-enc/encdb.$(OBJEXT): internal/constant_p.h
-enc/encdb.$(OBJEXT): internal/core.h
-enc/encdb.$(OBJEXT): internal/core/rarray.h
-enc/encdb.$(OBJEXT): internal/core/rbasic.h
-enc/encdb.$(OBJEXT): internal/core/rbignum.h
-enc/encdb.$(OBJEXT): internal/core/rclass.h
-enc/encdb.$(OBJEXT): internal/core/rdata.h
-enc/encdb.$(OBJEXT): internal/core/rfile.h
-enc/encdb.$(OBJEXT): internal/core/rhash.h
-enc/encdb.$(OBJEXT): internal/core/robject.h
-enc/encdb.$(OBJEXT): internal/core/rregexp.h
-enc/encdb.$(OBJEXT): internal/core/rstring.h
-enc/encdb.$(OBJEXT): internal/core/rstruct.h
-enc/encdb.$(OBJEXT): internal/core/rtypeddata.h
-enc/encdb.$(OBJEXT): internal/ctype.h
-enc/encdb.$(OBJEXT): internal/dllexport.h
-enc/encdb.$(OBJEXT): internal/dosish.h
-enc/encdb.$(OBJEXT): internal/error.h
-enc/encdb.$(OBJEXT): internal/eval.h
-enc/encdb.$(OBJEXT): internal/event.h
-enc/encdb.$(OBJEXT): internal/fl_type.h
-enc/encdb.$(OBJEXT): internal/gc.h
-enc/encdb.$(OBJEXT): internal/glob.h
-enc/encdb.$(OBJEXT): internal/globals.h
-enc/encdb.$(OBJEXT): internal/has/attribute.h
-enc/encdb.$(OBJEXT): internal/has/builtin.h
-enc/encdb.$(OBJEXT): internal/has/c_attribute.h
-enc/encdb.$(OBJEXT): internal/has/cpp_attribute.h
-enc/encdb.$(OBJEXT): internal/has/declspec_attribute.h
-enc/encdb.$(OBJEXT): internal/has/extension.h
-enc/encdb.$(OBJEXT): internal/has/feature.h
-enc/encdb.$(OBJEXT): internal/has/warning.h
-enc/encdb.$(OBJEXT): internal/intern/array.h
-enc/encdb.$(OBJEXT): internal/intern/bignum.h
-enc/encdb.$(OBJEXT): internal/intern/class.h
-enc/encdb.$(OBJEXT): internal/intern/compar.h
-enc/encdb.$(OBJEXT): internal/intern/complex.h
-enc/encdb.$(OBJEXT): internal/intern/cont.h
-enc/encdb.$(OBJEXT): internal/intern/dir.h
-enc/encdb.$(OBJEXT): internal/intern/enum.h
-enc/encdb.$(OBJEXT): internal/intern/enumerator.h
-enc/encdb.$(OBJEXT): internal/intern/error.h
-enc/encdb.$(OBJEXT): internal/intern/eval.h
-enc/encdb.$(OBJEXT): internal/intern/file.h
-enc/encdb.$(OBJEXT): internal/intern/gc.h
-enc/encdb.$(OBJEXT): internal/intern/hash.h
-enc/encdb.$(OBJEXT): internal/intern/io.h
-enc/encdb.$(OBJEXT): internal/intern/load.h
-enc/encdb.$(OBJEXT): internal/intern/marshal.h
-enc/encdb.$(OBJEXT): internal/intern/numeric.h
-enc/encdb.$(OBJEXT): internal/intern/object.h
-enc/encdb.$(OBJEXT): internal/intern/parse.h
-enc/encdb.$(OBJEXT): internal/intern/proc.h
-enc/encdb.$(OBJEXT): internal/intern/process.h
-enc/encdb.$(OBJEXT): internal/intern/random.h
-enc/encdb.$(OBJEXT): internal/intern/range.h
-enc/encdb.$(OBJEXT): internal/intern/rational.h
-enc/encdb.$(OBJEXT): internal/intern/re.h
-enc/encdb.$(OBJEXT): internal/intern/ruby.h
-enc/encdb.$(OBJEXT): internal/intern/select.h
-enc/encdb.$(OBJEXT): internal/intern/select/largesize.h
-enc/encdb.$(OBJEXT): internal/intern/signal.h
-enc/encdb.$(OBJEXT): internal/intern/sprintf.h
-enc/encdb.$(OBJEXT): internal/intern/string.h
-enc/encdb.$(OBJEXT): internal/intern/struct.h
-enc/encdb.$(OBJEXT): internal/intern/thread.h
-enc/encdb.$(OBJEXT): internal/intern/time.h
-enc/encdb.$(OBJEXT): internal/intern/variable.h
-enc/encdb.$(OBJEXT): internal/intern/vm.h
-enc/encdb.$(OBJEXT): internal/interpreter.h
-enc/encdb.$(OBJEXT): internal/iterator.h
-enc/encdb.$(OBJEXT): internal/memory.h
-enc/encdb.$(OBJEXT): internal/method.h
-enc/encdb.$(OBJEXT): internal/module.h
-enc/encdb.$(OBJEXT): internal/newobj.h
-enc/encdb.$(OBJEXT): internal/rgengc.h
-enc/encdb.$(OBJEXT): internal/scan_args.h
-enc/encdb.$(OBJEXT): internal/special_consts.h
-enc/encdb.$(OBJEXT): internal/static_assert.h
-enc/encdb.$(OBJEXT): internal/stdalign.h
-enc/encdb.$(OBJEXT): internal/stdbool.h
-enc/encdb.$(OBJEXT): internal/symbol.h
-enc/encdb.$(OBJEXT): internal/token_paste.h
-enc/encdb.$(OBJEXT): internal/value.h
-enc/encdb.$(OBJEXT): internal/value_type.h
-enc/encdb.$(OBJEXT): internal/variable.h
-enc/encdb.$(OBJEXT): internal/warning_push.h
-enc/encdb.$(OBJEXT): internal/xmalloc.h
enc/encdb.$(OBJEXT): assert.h
enc/encdb.$(OBJEXT): backward.h
-enc/encdb.$(OBJEXT): backward/2/assume.h
-enc/encdb.$(OBJEXT): backward/2/attributes.h
-enc/encdb.$(OBJEXT): backward/2/bool.h
-enc/encdb.$(OBJEXT): backward/2/gcc_version_since.h
-enc/encdb.$(OBJEXT): backward/2/inttypes.h
-enc/encdb.$(OBJEXT): backward/2/limits.h
-enc/encdb.$(OBJEXT): backward/2/long_long.h
-enc/encdb.$(OBJEXT): backward/2/stdalign.h
-enc/encdb.$(OBJEXT): backward/2/stdarg.h
enc/encdb.$(OBJEXT): config.h
enc/encdb.$(OBJEXT): defines.h
enc/encdb.$(OBJEXT): enc/encdb.c
enc/encdb.$(OBJEXT): encdb.h
-enc/encdb.$(OBJEXT): encoding.h
enc/encdb.$(OBJEXT): intern.h
enc/encdb.$(OBJEXT): missing.h
-enc/encdb.$(OBJEXT): onigmo.h
-enc/encdb.$(OBJEXT): oniguruma.h
enc/encdb.$(OBJEXT): st.h
enc/encdb.$(OBJEXT): subst.h
enc/euc_jp.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/euc_jp.$(OBJEXT): internal/assume.h
-enc/euc_jp.$(OBJEXT): internal/attr/alloc_size.h
-enc/euc_jp.$(OBJEXT): internal/attr/cold.h
-enc/euc_jp.$(OBJEXT): internal/attr/const.h
-enc/euc_jp.$(OBJEXT): internal/attr/deprecated.h
-enc/euc_jp.$(OBJEXT): internal/attr/error.h
-enc/euc_jp.$(OBJEXT): internal/attr/forceinline.h
-enc/euc_jp.$(OBJEXT): internal/attr/format.h
-enc/euc_jp.$(OBJEXT): internal/attr/maybe_unused.h
-enc/euc_jp.$(OBJEXT): internal/attr/nodiscard.h
-enc/euc_jp.$(OBJEXT): internal/attr/noexcept.h
-enc/euc_jp.$(OBJEXT): internal/attr/noinline.h
-enc/euc_jp.$(OBJEXT): internal/attr/nonnull.h
-enc/euc_jp.$(OBJEXT): internal/attr/noreturn.h
-enc/euc_jp.$(OBJEXT): internal/attr/pure.h
-enc/euc_jp.$(OBJEXT): internal/attr/restrict.h
-enc/euc_jp.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/euc_jp.$(OBJEXT): internal/attr/warning.h
-enc/euc_jp.$(OBJEXT): internal/cast.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/apple.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/clang.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/gcc.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/intel.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/msvc.h
-enc/euc_jp.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/euc_jp.$(OBJEXT): internal/compiler_since.h
-enc/euc_jp.$(OBJEXT): internal/config.h
-enc/euc_jp.$(OBJEXT): internal/dllexport.h
-enc/euc_jp.$(OBJEXT): internal/dosish.h
-enc/euc_jp.$(OBJEXT): internal/has/attribute.h
-enc/euc_jp.$(OBJEXT): internal/has/builtin.h
-enc/euc_jp.$(OBJEXT): internal/has/c_attribute.h
-enc/euc_jp.$(OBJEXT): internal/has/cpp_attribute.h
-enc/euc_jp.$(OBJEXT): internal/has/declspec_attribute.h
-enc/euc_jp.$(OBJEXT): internal/has/extension.h
-enc/euc_jp.$(OBJEXT): internal/has/feature.h
-enc/euc_jp.$(OBJEXT): internal/has/warning.h
-enc/euc_jp.$(OBJEXT): internal/stdalign.h
-enc/euc_jp.$(OBJEXT): internal/stdbool.h
-enc/euc_jp.$(OBJEXT): internal/token_paste.h
-enc/euc_jp.$(OBJEXT): internal/warning_push.h
-enc/euc_jp.$(OBJEXT): internal/xmalloc.h
-enc/euc_jp.$(OBJEXT): assert.h
-enc/euc_jp.$(OBJEXT): backward/2/assume.h
-enc/euc_jp.$(OBJEXT): backward/2/attributes.h
-enc/euc_jp.$(OBJEXT): backward/2/bool.h
-enc/euc_jp.$(OBJEXT): backward/2/gcc_version_since.h
-enc/euc_jp.$(OBJEXT): backward/2/long_long.h
-enc/euc_jp.$(OBJEXT): backward/2/stdalign.h
-enc/euc_jp.$(OBJEXT): backward/2/stdarg.h
enc/euc_jp.$(OBJEXT): config.h
enc/euc_jp.$(OBJEXT): defines.h
enc/euc_jp.$(OBJEXT): enc/euc_jp.c
@@ -902,342 +232,36 @@ enc/euc_jp.$(OBJEXT): enc/jis/props.kwd
enc/euc_jp.$(OBJEXT): missing.h
enc/euc_jp.$(OBJEXT): onigmo.h
enc/euc_kr.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/euc_kr.$(OBJEXT): internal/assume.h
-enc/euc_kr.$(OBJEXT): internal/attr/alloc_size.h
-enc/euc_kr.$(OBJEXT): internal/attr/cold.h
-enc/euc_kr.$(OBJEXT): internal/attr/const.h
-enc/euc_kr.$(OBJEXT): internal/attr/deprecated.h
-enc/euc_kr.$(OBJEXT): internal/attr/error.h
-enc/euc_kr.$(OBJEXT): internal/attr/forceinline.h
-enc/euc_kr.$(OBJEXT): internal/attr/format.h
-enc/euc_kr.$(OBJEXT): internal/attr/maybe_unused.h
-enc/euc_kr.$(OBJEXT): internal/attr/nodiscard.h
-enc/euc_kr.$(OBJEXT): internal/attr/noexcept.h
-enc/euc_kr.$(OBJEXT): internal/attr/noinline.h
-enc/euc_kr.$(OBJEXT): internal/attr/nonnull.h
-enc/euc_kr.$(OBJEXT): internal/attr/noreturn.h
-enc/euc_kr.$(OBJEXT): internal/attr/pure.h
-enc/euc_kr.$(OBJEXT): internal/attr/restrict.h
-enc/euc_kr.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/euc_kr.$(OBJEXT): internal/attr/warning.h
-enc/euc_kr.$(OBJEXT): internal/cast.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/apple.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/clang.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/gcc.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/intel.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/msvc.h
-enc/euc_kr.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/euc_kr.$(OBJEXT): internal/compiler_since.h
-enc/euc_kr.$(OBJEXT): internal/config.h
-enc/euc_kr.$(OBJEXT): internal/dllexport.h
-enc/euc_kr.$(OBJEXT): internal/dosish.h
-enc/euc_kr.$(OBJEXT): internal/has/attribute.h
-enc/euc_kr.$(OBJEXT): internal/has/builtin.h
-enc/euc_kr.$(OBJEXT): internal/has/c_attribute.h
-enc/euc_kr.$(OBJEXT): internal/has/cpp_attribute.h
-enc/euc_kr.$(OBJEXT): internal/has/declspec_attribute.h
-enc/euc_kr.$(OBJEXT): internal/has/extension.h
-enc/euc_kr.$(OBJEXT): internal/has/feature.h
-enc/euc_kr.$(OBJEXT): internal/has/warning.h
-enc/euc_kr.$(OBJEXT): internal/stdalign.h
-enc/euc_kr.$(OBJEXT): internal/stdbool.h
-enc/euc_kr.$(OBJEXT): internal/token_paste.h
-enc/euc_kr.$(OBJEXT): internal/warning_push.h
-enc/euc_kr.$(OBJEXT): internal/xmalloc.h
-enc/euc_kr.$(OBJEXT): assert.h
-enc/euc_kr.$(OBJEXT): backward/2/assume.h
-enc/euc_kr.$(OBJEXT): backward/2/attributes.h
-enc/euc_kr.$(OBJEXT): backward/2/bool.h
-enc/euc_kr.$(OBJEXT): backward/2/gcc_version_since.h
-enc/euc_kr.$(OBJEXT): backward/2/long_long.h
-enc/euc_kr.$(OBJEXT): backward/2/stdalign.h
-enc/euc_kr.$(OBJEXT): backward/2/stdarg.h
enc/euc_kr.$(OBJEXT): config.h
enc/euc_kr.$(OBJEXT): defines.h
enc/euc_kr.$(OBJEXT): enc/euc_kr.c
enc/euc_kr.$(OBJEXT): missing.h
enc/euc_kr.$(OBJEXT): onigmo.h
enc/euc_tw.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/euc_tw.$(OBJEXT): internal/assume.h
-enc/euc_tw.$(OBJEXT): internal/attr/alloc_size.h
-enc/euc_tw.$(OBJEXT): internal/attr/cold.h
-enc/euc_tw.$(OBJEXT): internal/attr/const.h
-enc/euc_tw.$(OBJEXT): internal/attr/deprecated.h
-enc/euc_tw.$(OBJEXT): internal/attr/error.h
-enc/euc_tw.$(OBJEXT): internal/attr/forceinline.h
-enc/euc_tw.$(OBJEXT): internal/attr/format.h
-enc/euc_tw.$(OBJEXT): internal/attr/maybe_unused.h
-enc/euc_tw.$(OBJEXT): internal/attr/nodiscard.h
-enc/euc_tw.$(OBJEXT): internal/attr/noexcept.h
-enc/euc_tw.$(OBJEXT): internal/attr/noinline.h
-enc/euc_tw.$(OBJEXT): internal/attr/nonnull.h
-enc/euc_tw.$(OBJEXT): internal/attr/noreturn.h
-enc/euc_tw.$(OBJEXT): internal/attr/pure.h
-enc/euc_tw.$(OBJEXT): internal/attr/restrict.h
-enc/euc_tw.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/euc_tw.$(OBJEXT): internal/attr/warning.h
-enc/euc_tw.$(OBJEXT): internal/cast.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/apple.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/clang.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/gcc.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/intel.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/msvc.h
-enc/euc_tw.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/euc_tw.$(OBJEXT): internal/compiler_since.h
-enc/euc_tw.$(OBJEXT): internal/config.h
-enc/euc_tw.$(OBJEXT): internal/dllexport.h
-enc/euc_tw.$(OBJEXT): internal/dosish.h
-enc/euc_tw.$(OBJEXT): internal/has/attribute.h
-enc/euc_tw.$(OBJEXT): internal/has/builtin.h
-enc/euc_tw.$(OBJEXT): internal/has/c_attribute.h
-enc/euc_tw.$(OBJEXT): internal/has/cpp_attribute.h
-enc/euc_tw.$(OBJEXT): internal/has/declspec_attribute.h
-enc/euc_tw.$(OBJEXT): internal/has/extension.h
-enc/euc_tw.$(OBJEXT): internal/has/feature.h
-enc/euc_tw.$(OBJEXT): internal/has/warning.h
-enc/euc_tw.$(OBJEXT): internal/stdalign.h
-enc/euc_tw.$(OBJEXT): internal/stdbool.h
-enc/euc_tw.$(OBJEXT): internal/token_paste.h
-enc/euc_tw.$(OBJEXT): internal/warning_push.h
-enc/euc_tw.$(OBJEXT): internal/xmalloc.h
-enc/euc_tw.$(OBJEXT): assert.h
-enc/euc_tw.$(OBJEXT): backward/2/assume.h
-enc/euc_tw.$(OBJEXT): backward/2/attributes.h
-enc/euc_tw.$(OBJEXT): backward/2/bool.h
-enc/euc_tw.$(OBJEXT): backward/2/gcc_version_since.h
-enc/euc_tw.$(OBJEXT): backward/2/long_long.h
-enc/euc_tw.$(OBJEXT): backward/2/stdalign.h
-enc/euc_tw.$(OBJEXT): backward/2/stdarg.h
enc/euc_tw.$(OBJEXT): config.h
enc/euc_tw.$(OBJEXT): defines.h
enc/euc_tw.$(OBJEXT): enc/euc_tw.c
enc/euc_tw.$(OBJEXT): missing.h
enc/euc_tw.$(OBJEXT): onigmo.h
enc/gb18030.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/gb18030.$(OBJEXT): internal/assume.h
-enc/gb18030.$(OBJEXT): internal/attr/alloc_size.h
-enc/gb18030.$(OBJEXT): internal/attr/cold.h
-enc/gb18030.$(OBJEXT): internal/attr/const.h
-enc/gb18030.$(OBJEXT): internal/attr/deprecated.h
-enc/gb18030.$(OBJEXT): internal/attr/error.h
-enc/gb18030.$(OBJEXT): internal/attr/forceinline.h
-enc/gb18030.$(OBJEXT): internal/attr/format.h
-enc/gb18030.$(OBJEXT): internal/attr/maybe_unused.h
-enc/gb18030.$(OBJEXT): internal/attr/nodiscard.h
-enc/gb18030.$(OBJEXT): internal/attr/noexcept.h
-enc/gb18030.$(OBJEXT): internal/attr/noinline.h
-enc/gb18030.$(OBJEXT): internal/attr/nonnull.h
-enc/gb18030.$(OBJEXT): internal/attr/noreturn.h
-enc/gb18030.$(OBJEXT): internal/attr/pure.h
-enc/gb18030.$(OBJEXT): internal/attr/restrict.h
-enc/gb18030.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/gb18030.$(OBJEXT): internal/attr/warning.h
-enc/gb18030.$(OBJEXT): internal/cast.h
-enc/gb18030.$(OBJEXT): internal/compiler_is.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/apple.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/clang.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/gcc.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/intel.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/msvc.h
-enc/gb18030.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/gb18030.$(OBJEXT): internal/compiler_since.h
-enc/gb18030.$(OBJEXT): internal/config.h
-enc/gb18030.$(OBJEXT): internal/dllexport.h
-enc/gb18030.$(OBJEXT): internal/dosish.h
-enc/gb18030.$(OBJEXT): internal/has/attribute.h
-enc/gb18030.$(OBJEXT): internal/has/builtin.h
-enc/gb18030.$(OBJEXT): internal/has/c_attribute.h
-enc/gb18030.$(OBJEXT): internal/has/cpp_attribute.h
-enc/gb18030.$(OBJEXT): internal/has/declspec_attribute.h
-enc/gb18030.$(OBJEXT): internal/has/extension.h
-enc/gb18030.$(OBJEXT): internal/has/feature.h
-enc/gb18030.$(OBJEXT): internal/has/warning.h
-enc/gb18030.$(OBJEXT): internal/stdalign.h
-enc/gb18030.$(OBJEXT): internal/stdbool.h
-enc/gb18030.$(OBJEXT): internal/token_paste.h
-enc/gb18030.$(OBJEXT): internal/warning_push.h
-enc/gb18030.$(OBJEXT): internal/xmalloc.h
-enc/gb18030.$(OBJEXT): assert.h
-enc/gb18030.$(OBJEXT): backward/2/assume.h
-enc/gb18030.$(OBJEXT): backward/2/attributes.h
-enc/gb18030.$(OBJEXT): backward/2/bool.h
-enc/gb18030.$(OBJEXT): backward/2/gcc_version_since.h
-enc/gb18030.$(OBJEXT): backward/2/long_long.h
-enc/gb18030.$(OBJEXT): backward/2/stdalign.h
-enc/gb18030.$(OBJEXT): backward/2/stdarg.h
enc/gb18030.$(OBJEXT): config.h
enc/gb18030.$(OBJEXT): defines.h
enc/gb18030.$(OBJEXT): enc/gb18030.c
enc/gb18030.$(OBJEXT): missing.h
enc/gb18030.$(OBJEXT): onigmo.h
enc/gb2312.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/gb2312.$(OBJEXT): internal/assume.h
-enc/gb2312.$(OBJEXT): internal/attr/alloc_size.h
-enc/gb2312.$(OBJEXT): internal/attr/cold.h
-enc/gb2312.$(OBJEXT): internal/attr/const.h
-enc/gb2312.$(OBJEXT): internal/attr/deprecated.h
-enc/gb2312.$(OBJEXT): internal/attr/error.h
-enc/gb2312.$(OBJEXT): internal/attr/forceinline.h
-enc/gb2312.$(OBJEXT): internal/attr/format.h
-enc/gb2312.$(OBJEXT): internal/attr/maybe_unused.h
-enc/gb2312.$(OBJEXT): internal/attr/nodiscard.h
-enc/gb2312.$(OBJEXT): internal/attr/noexcept.h
-enc/gb2312.$(OBJEXT): internal/attr/noinline.h
-enc/gb2312.$(OBJEXT): internal/attr/nonnull.h
-enc/gb2312.$(OBJEXT): internal/attr/noreturn.h
-enc/gb2312.$(OBJEXT): internal/attr/pure.h
-enc/gb2312.$(OBJEXT): internal/attr/restrict.h
-enc/gb2312.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/gb2312.$(OBJEXT): internal/attr/warning.h
-enc/gb2312.$(OBJEXT): internal/cast.h
-enc/gb2312.$(OBJEXT): internal/compiler_is.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/apple.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/clang.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/gcc.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/intel.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/msvc.h
-enc/gb2312.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/gb2312.$(OBJEXT): internal/compiler_since.h
-enc/gb2312.$(OBJEXT): internal/config.h
-enc/gb2312.$(OBJEXT): internal/dllexport.h
-enc/gb2312.$(OBJEXT): internal/dosish.h
-enc/gb2312.$(OBJEXT): internal/has/attribute.h
-enc/gb2312.$(OBJEXT): internal/has/builtin.h
-enc/gb2312.$(OBJEXT): internal/has/c_attribute.h
-enc/gb2312.$(OBJEXT): internal/has/cpp_attribute.h
-enc/gb2312.$(OBJEXT): internal/has/declspec_attribute.h
-enc/gb2312.$(OBJEXT): internal/has/extension.h
-enc/gb2312.$(OBJEXT): internal/has/feature.h
-enc/gb2312.$(OBJEXT): internal/has/warning.h
-enc/gb2312.$(OBJEXT): internal/stdalign.h
-enc/gb2312.$(OBJEXT): internal/stdbool.h
-enc/gb2312.$(OBJEXT): internal/token_paste.h
-enc/gb2312.$(OBJEXT): internal/warning_push.h
-enc/gb2312.$(OBJEXT): internal/xmalloc.h
-enc/gb2312.$(OBJEXT): assert.h
-enc/gb2312.$(OBJEXT): backward/2/assume.h
-enc/gb2312.$(OBJEXT): backward/2/attributes.h
-enc/gb2312.$(OBJEXT): backward/2/bool.h
-enc/gb2312.$(OBJEXT): backward/2/gcc_version_since.h
-enc/gb2312.$(OBJEXT): backward/2/long_long.h
-enc/gb2312.$(OBJEXT): backward/2/stdalign.h
-enc/gb2312.$(OBJEXT): backward/2/stdarg.h
enc/gb2312.$(OBJEXT): config.h
enc/gb2312.$(OBJEXT): defines.h
enc/gb2312.$(OBJEXT): enc/gb2312.c
enc/gb2312.$(OBJEXT): missing.h
enc/gb2312.$(OBJEXT): onigmo.h
enc/gbk.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/gbk.$(OBJEXT): internal/assume.h
-enc/gbk.$(OBJEXT): internal/attr/alloc_size.h
-enc/gbk.$(OBJEXT): internal/attr/cold.h
-enc/gbk.$(OBJEXT): internal/attr/const.h
-enc/gbk.$(OBJEXT): internal/attr/deprecated.h
-enc/gbk.$(OBJEXT): internal/attr/error.h
-enc/gbk.$(OBJEXT): internal/attr/forceinline.h
-enc/gbk.$(OBJEXT): internal/attr/format.h
-enc/gbk.$(OBJEXT): internal/attr/maybe_unused.h
-enc/gbk.$(OBJEXT): internal/attr/nodiscard.h
-enc/gbk.$(OBJEXT): internal/attr/noexcept.h
-enc/gbk.$(OBJEXT): internal/attr/noinline.h
-enc/gbk.$(OBJEXT): internal/attr/nonnull.h
-enc/gbk.$(OBJEXT): internal/attr/noreturn.h
-enc/gbk.$(OBJEXT): internal/attr/pure.h
-enc/gbk.$(OBJEXT): internal/attr/restrict.h
-enc/gbk.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/gbk.$(OBJEXT): internal/attr/warning.h
-enc/gbk.$(OBJEXT): internal/cast.h
-enc/gbk.$(OBJEXT): internal/compiler_is.h
-enc/gbk.$(OBJEXT): internal/compiler_is/apple.h
-enc/gbk.$(OBJEXT): internal/compiler_is/clang.h
-enc/gbk.$(OBJEXT): internal/compiler_is/gcc.h
-enc/gbk.$(OBJEXT): internal/compiler_is/intel.h
-enc/gbk.$(OBJEXT): internal/compiler_is/msvc.h
-enc/gbk.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/gbk.$(OBJEXT): internal/compiler_since.h
-enc/gbk.$(OBJEXT): internal/config.h
-enc/gbk.$(OBJEXT): internal/dllexport.h
-enc/gbk.$(OBJEXT): internal/dosish.h
-enc/gbk.$(OBJEXT): internal/has/attribute.h
-enc/gbk.$(OBJEXT): internal/has/builtin.h
-enc/gbk.$(OBJEXT): internal/has/c_attribute.h
-enc/gbk.$(OBJEXT): internal/has/cpp_attribute.h
-enc/gbk.$(OBJEXT): internal/has/declspec_attribute.h
-enc/gbk.$(OBJEXT): internal/has/extension.h
-enc/gbk.$(OBJEXT): internal/has/feature.h
-enc/gbk.$(OBJEXT): internal/has/warning.h
-enc/gbk.$(OBJEXT): internal/stdalign.h
-enc/gbk.$(OBJEXT): internal/stdbool.h
-enc/gbk.$(OBJEXT): internal/token_paste.h
-enc/gbk.$(OBJEXT): internal/warning_push.h
-enc/gbk.$(OBJEXT): internal/xmalloc.h
-enc/gbk.$(OBJEXT): assert.h
-enc/gbk.$(OBJEXT): backward/2/assume.h
-enc/gbk.$(OBJEXT): backward/2/attributes.h
-enc/gbk.$(OBJEXT): backward/2/bool.h
-enc/gbk.$(OBJEXT): backward/2/gcc_version_since.h
-enc/gbk.$(OBJEXT): backward/2/long_long.h
-enc/gbk.$(OBJEXT): backward/2/stdalign.h
-enc/gbk.$(OBJEXT): backward/2/stdarg.h
enc/gbk.$(OBJEXT): config.h
enc/gbk.$(OBJEXT): defines.h
enc/gbk.$(OBJEXT): enc/gbk.c
enc/gbk.$(OBJEXT): missing.h
enc/gbk.$(OBJEXT): onigmo.h
enc/iso_8859_1.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_1.$(OBJEXT): internal/assume.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_1.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_1.$(OBJEXT): internal/cast.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_1.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_1.$(OBJEXT): internal/config.h
-enc/iso_8859_1.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_1.$(OBJEXT): internal/dosish.h
-enc/iso_8859_1.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_1.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_1.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_1.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_1.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_1.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_1.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_1.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_1.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_1.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_1.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_1.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_1.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_1.$(OBJEXT): assert.h
-enc/iso_8859_1.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_1.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_1.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_1.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_1.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_1.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_1.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_1.$(OBJEXT): config.h
enc/iso_8859_1.$(OBJEXT): defines.h
enc/iso_8859_1.$(OBJEXT): enc/iso_8859.h
@@ -1245,57 +269,6 @@ enc/iso_8859_1.$(OBJEXT): enc/iso_8859_1.c
enc/iso_8859_1.$(OBJEXT): missing.h
enc/iso_8859_1.$(OBJEXT): onigmo.h
enc/iso_8859_10.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_10.$(OBJEXT): internal/assume.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_10.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_10.$(OBJEXT): internal/cast.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_10.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_10.$(OBJEXT): internal/config.h
-enc/iso_8859_10.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_10.$(OBJEXT): internal/dosish.h
-enc/iso_8859_10.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_10.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_10.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_10.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_10.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_10.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_10.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_10.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_10.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_10.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_10.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_10.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_10.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_10.$(OBJEXT): assert.h
-enc/iso_8859_10.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_10.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_10.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_10.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_10.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_10.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_10.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_10.$(OBJEXT): config.h
enc/iso_8859_10.$(OBJEXT): defines.h
enc/iso_8859_10.$(OBJEXT): enc/iso_8859.h
@@ -1303,114 +276,12 @@ enc/iso_8859_10.$(OBJEXT): enc/iso_8859_10.c
enc/iso_8859_10.$(OBJEXT): missing.h
enc/iso_8859_10.$(OBJEXT): onigmo.h
enc/iso_8859_11.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_11.$(OBJEXT): internal/assume.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_11.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_11.$(OBJEXT): internal/cast.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_11.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_11.$(OBJEXT): internal/config.h
-enc/iso_8859_11.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_11.$(OBJEXT): internal/dosish.h
-enc/iso_8859_11.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_11.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_11.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_11.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_11.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_11.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_11.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_11.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_11.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_11.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_11.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_11.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_11.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_11.$(OBJEXT): assert.h
-enc/iso_8859_11.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_11.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_11.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_11.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_11.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_11.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_11.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_11.$(OBJEXT): config.h
enc/iso_8859_11.$(OBJEXT): defines.h
enc/iso_8859_11.$(OBJEXT): enc/iso_8859_11.c
enc/iso_8859_11.$(OBJEXT): missing.h
enc/iso_8859_11.$(OBJEXT): onigmo.h
enc/iso_8859_13.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_13.$(OBJEXT): internal/assume.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_13.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_13.$(OBJEXT): internal/cast.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_13.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_13.$(OBJEXT): internal/config.h
-enc/iso_8859_13.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_13.$(OBJEXT): internal/dosish.h
-enc/iso_8859_13.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_13.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_13.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_13.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_13.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_13.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_13.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_13.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_13.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_13.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_13.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_13.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_13.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_13.$(OBJEXT): assert.h
-enc/iso_8859_13.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_13.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_13.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_13.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_13.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_13.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_13.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_13.$(OBJEXT): config.h
enc/iso_8859_13.$(OBJEXT): defines.h
enc/iso_8859_13.$(OBJEXT): enc/iso_8859.h
@@ -1418,57 +289,6 @@ enc/iso_8859_13.$(OBJEXT): enc/iso_8859_13.c
enc/iso_8859_13.$(OBJEXT): missing.h
enc/iso_8859_13.$(OBJEXT): onigmo.h
enc/iso_8859_14.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_14.$(OBJEXT): internal/assume.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_14.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_14.$(OBJEXT): internal/cast.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_14.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_14.$(OBJEXT): internal/config.h
-enc/iso_8859_14.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_14.$(OBJEXT): internal/dosish.h
-enc/iso_8859_14.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_14.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_14.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_14.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_14.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_14.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_14.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_14.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_14.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_14.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_14.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_14.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_14.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_14.$(OBJEXT): assert.h
-enc/iso_8859_14.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_14.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_14.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_14.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_14.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_14.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_14.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_14.$(OBJEXT): config.h
enc/iso_8859_14.$(OBJEXT): defines.h
enc/iso_8859_14.$(OBJEXT): enc/iso_8859.h
@@ -1476,57 +296,6 @@ enc/iso_8859_14.$(OBJEXT): enc/iso_8859_14.c
enc/iso_8859_14.$(OBJEXT): missing.h
enc/iso_8859_14.$(OBJEXT): onigmo.h
enc/iso_8859_15.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_15.$(OBJEXT): internal/assume.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_15.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_15.$(OBJEXT): internal/cast.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_15.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_15.$(OBJEXT): internal/config.h
-enc/iso_8859_15.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_15.$(OBJEXT): internal/dosish.h
-enc/iso_8859_15.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_15.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_15.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_15.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_15.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_15.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_15.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_15.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_15.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_15.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_15.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_15.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_15.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_15.$(OBJEXT): assert.h
-enc/iso_8859_15.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_15.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_15.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_15.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_15.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_15.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_15.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_15.$(OBJEXT): config.h
enc/iso_8859_15.$(OBJEXT): defines.h
enc/iso_8859_15.$(OBJEXT): enc/iso_8859.h
@@ -1534,57 +303,6 @@ enc/iso_8859_15.$(OBJEXT): enc/iso_8859_15.c
enc/iso_8859_15.$(OBJEXT): missing.h
enc/iso_8859_15.$(OBJEXT): onigmo.h
enc/iso_8859_16.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_16.$(OBJEXT): internal/assume.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_16.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_16.$(OBJEXT): internal/cast.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_16.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_16.$(OBJEXT): internal/config.h
-enc/iso_8859_16.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_16.$(OBJEXT): internal/dosish.h
-enc/iso_8859_16.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_16.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_16.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_16.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_16.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_16.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_16.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_16.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_16.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_16.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_16.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_16.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_16.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_16.$(OBJEXT): assert.h
-enc/iso_8859_16.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_16.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_16.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_16.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_16.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_16.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_16.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_16.$(OBJEXT): config.h
enc/iso_8859_16.$(OBJEXT): defines.h
enc/iso_8859_16.$(OBJEXT): enc/iso_8859.h
@@ -1592,57 +310,6 @@ enc/iso_8859_16.$(OBJEXT): enc/iso_8859_16.c
enc/iso_8859_16.$(OBJEXT): missing.h
enc/iso_8859_16.$(OBJEXT): onigmo.h
enc/iso_8859_2.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_2.$(OBJEXT): internal/assume.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_2.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_2.$(OBJEXT): internal/cast.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_2.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_2.$(OBJEXT): internal/config.h
-enc/iso_8859_2.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_2.$(OBJEXT): internal/dosish.h
-enc/iso_8859_2.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_2.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_2.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_2.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_2.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_2.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_2.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_2.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_2.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_2.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_2.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_2.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_2.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_2.$(OBJEXT): assert.h
-enc/iso_8859_2.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_2.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_2.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_2.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_2.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_2.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_2.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_2.$(OBJEXT): config.h
enc/iso_8859_2.$(OBJEXT): defines.h
enc/iso_8859_2.$(OBJEXT): enc/iso_8859.h
@@ -1650,57 +317,6 @@ enc/iso_8859_2.$(OBJEXT): enc/iso_8859_2.c
enc/iso_8859_2.$(OBJEXT): missing.h
enc/iso_8859_2.$(OBJEXT): onigmo.h
enc/iso_8859_3.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_3.$(OBJEXT): internal/assume.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_3.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_3.$(OBJEXT): internal/cast.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_3.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_3.$(OBJEXT): internal/config.h
-enc/iso_8859_3.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_3.$(OBJEXT): internal/dosish.h
-enc/iso_8859_3.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_3.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_3.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_3.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_3.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_3.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_3.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_3.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_3.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_3.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_3.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_3.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_3.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_3.$(OBJEXT): assert.h
-enc/iso_8859_3.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_3.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_3.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_3.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_3.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_3.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_3.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_3.$(OBJEXT): config.h
enc/iso_8859_3.$(OBJEXT): defines.h
enc/iso_8859_3.$(OBJEXT): enc/iso_8859.h
@@ -1708,57 +324,6 @@ enc/iso_8859_3.$(OBJEXT): enc/iso_8859_3.c
enc/iso_8859_3.$(OBJEXT): missing.h
enc/iso_8859_3.$(OBJEXT): onigmo.h
enc/iso_8859_4.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_4.$(OBJEXT): internal/assume.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_4.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_4.$(OBJEXT): internal/cast.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_4.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_4.$(OBJEXT): internal/config.h
-enc/iso_8859_4.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_4.$(OBJEXT): internal/dosish.h
-enc/iso_8859_4.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_4.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_4.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_4.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_4.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_4.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_4.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_4.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_4.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_4.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_4.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_4.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_4.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_4.$(OBJEXT): assert.h
-enc/iso_8859_4.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_4.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_4.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_4.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_4.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_4.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_4.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_4.$(OBJEXT): config.h
enc/iso_8859_4.$(OBJEXT): defines.h
enc/iso_8859_4.$(OBJEXT): enc/iso_8859.h
@@ -1766,285 +331,30 @@ enc/iso_8859_4.$(OBJEXT): enc/iso_8859_4.c
enc/iso_8859_4.$(OBJEXT): missing.h
enc/iso_8859_4.$(OBJEXT): onigmo.h
enc/iso_8859_5.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_5.$(OBJEXT): internal/assume.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_5.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_5.$(OBJEXT): internal/cast.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_5.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_5.$(OBJEXT): internal/config.h
-enc/iso_8859_5.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_5.$(OBJEXT): internal/dosish.h
-enc/iso_8859_5.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_5.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_5.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_5.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_5.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_5.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_5.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_5.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_5.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_5.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_5.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_5.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_5.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_5.$(OBJEXT): assert.h
-enc/iso_8859_5.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_5.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_5.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_5.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_5.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_5.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_5.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_5.$(OBJEXT): config.h
enc/iso_8859_5.$(OBJEXT): defines.h
enc/iso_8859_5.$(OBJEXT): enc/iso_8859_5.c
enc/iso_8859_5.$(OBJEXT): missing.h
enc/iso_8859_5.$(OBJEXT): onigmo.h
enc/iso_8859_6.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_6.$(OBJEXT): internal/assume.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_6.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_6.$(OBJEXT): internal/cast.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_6.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_6.$(OBJEXT): internal/config.h
-enc/iso_8859_6.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_6.$(OBJEXT): internal/dosish.h
-enc/iso_8859_6.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_6.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_6.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_6.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_6.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_6.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_6.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_6.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_6.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_6.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_6.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_6.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_6.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_6.$(OBJEXT): assert.h
-enc/iso_8859_6.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_6.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_6.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_6.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_6.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_6.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_6.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_6.$(OBJEXT): config.h
enc/iso_8859_6.$(OBJEXT): defines.h
enc/iso_8859_6.$(OBJEXT): enc/iso_8859_6.c
enc/iso_8859_6.$(OBJEXT): missing.h
enc/iso_8859_6.$(OBJEXT): onigmo.h
enc/iso_8859_7.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_7.$(OBJEXT): internal/assume.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_7.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_7.$(OBJEXT): internal/cast.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_7.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_7.$(OBJEXT): internal/config.h
-enc/iso_8859_7.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_7.$(OBJEXT): internal/dosish.h
-enc/iso_8859_7.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_7.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_7.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_7.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_7.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_7.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_7.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_7.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_7.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_7.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_7.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_7.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_7.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_7.$(OBJEXT): assert.h
-enc/iso_8859_7.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_7.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_7.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_7.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_7.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_7.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_7.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_7.$(OBJEXT): config.h
enc/iso_8859_7.$(OBJEXT): defines.h
enc/iso_8859_7.$(OBJEXT): enc/iso_8859_7.c
enc/iso_8859_7.$(OBJEXT): missing.h
enc/iso_8859_7.$(OBJEXT): onigmo.h
enc/iso_8859_8.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_8.$(OBJEXT): internal/assume.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_8.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_8.$(OBJEXT): internal/cast.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_8.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_8.$(OBJEXT): internal/config.h
-enc/iso_8859_8.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_8.$(OBJEXT): internal/dosish.h
-enc/iso_8859_8.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_8.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_8.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_8.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_8.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_8.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_8.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_8.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_8.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_8.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_8.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_8.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_8.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_8.$(OBJEXT): assert.h
-enc/iso_8859_8.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_8.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_8.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_8.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_8.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_8.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_8.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_8.$(OBJEXT): config.h
enc/iso_8859_8.$(OBJEXT): defines.h
enc/iso_8859_8.$(OBJEXT): enc/iso_8859_8.c
enc/iso_8859_8.$(OBJEXT): missing.h
enc/iso_8859_8.$(OBJEXT): onigmo.h
enc/iso_8859_9.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/iso_8859_9.$(OBJEXT): internal/assume.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/alloc_size.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/cold.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/const.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/deprecated.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/error.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/forceinline.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/format.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/maybe_unused.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/nodiscard.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/noexcept.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/noinline.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/nonnull.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/noreturn.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/pure.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/restrict.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/iso_8859_9.$(OBJEXT): internal/attr/warning.h
-enc/iso_8859_9.$(OBJEXT): internal/cast.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/apple.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/clang.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/gcc.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/intel.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/msvc.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/iso_8859_9.$(OBJEXT): internal/compiler_since.h
-enc/iso_8859_9.$(OBJEXT): internal/config.h
-enc/iso_8859_9.$(OBJEXT): internal/dllexport.h
-enc/iso_8859_9.$(OBJEXT): internal/dosish.h
-enc/iso_8859_9.$(OBJEXT): internal/has/attribute.h
-enc/iso_8859_9.$(OBJEXT): internal/has/builtin.h
-enc/iso_8859_9.$(OBJEXT): internal/has/c_attribute.h
-enc/iso_8859_9.$(OBJEXT): internal/has/cpp_attribute.h
-enc/iso_8859_9.$(OBJEXT): internal/has/declspec_attribute.h
-enc/iso_8859_9.$(OBJEXT): internal/has/extension.h
-enc/iso_8859_9.$(OBJEXT): internal/has/feature.h
-enc/iso_8859_9.$(OBJEXT): internal/has/warning.h
-enc/iso_8859_9.$(OBJEXT): internal/stdalign.h
-enc/iso_8859_9.$(OBJEXT): internal/stdbool.h
-enc/iso_8859_9.$(OBJEXT): internal/token_paste.h
-enc/iso_8859_9.$(OBJEXT): internal/warning_push.h
-enc/iso_8859_9.$(OBJEXT): internal/xmalloc.h
-enc/iso_8859_9.$(OBJEXT): assert.h
-enc/iso_8859_9.$(OBJEXT): backward/2/assume.h
-enc/iso_8859_9.$(OBJEXT): backward/2/attributes.h
-enc/iso_8859_9.$(OBJEXT): backward/2/bool.h
-enc/iso_8859_9.$(OBJEXT): backward/2/gcc_version_since.h
-enc/iso_8859_9.$(OBJEXT): backward/2/long_long.h
-enc/iso_8859_9.$(OBJEXT): backward/2/stdalign.h
-enc/iso_8859_9.$(OBJEXT): backward/2/stdarg.h
enc/iso_8859_9.$(OBJEXT): config.h
enc/iso_8859_9.$(OBJEXT): defines.h
enc/iso_8859_9.$(OBJEXT): enc/iso_8859.h
@@ -2052,171 +362,18 @@ enc/iso_8859_9.$(OBJEXT): enc/iso_8859_9.c
enc/iso_8859_9.$(OBJEXT): missing.h
enc/iso_8859_9.$(OBJEXT): onigmo.h
enc/koi8_r.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/koi8_r.$(OBJEXT): internal/assume.h
-enc/koi8_r.$(OBJEXT): internal/attr/alloc_size.h
-enc/koi8_r.$(OBJEXT): internal/attr/cold.h
-enc/koi8_r.$(OBJEXT): internal/attr/const.h
-enc/koi8_r.$(OBJEXT): internal/attr/deprecated.h
-enc/koi8_r.$(OBJEXT): internal/attr/error.h
-enc/koi8_r.$(OBJEXT): internal/attr/forceinline.h
-enc/koi8_r.$(OBJEXT): internal/attr/format.h
-enc/koi8_r.$(OBJEXT): internal/attr/maybe_unused.h
-enc/koi8_r.$(OBJEXT): internal/attr/nodiscard.h
-enc/koi8_r.$(OBJEXT): internal/attr/noexcept.h
-enc/koi8_r.$(OBJEXT): internal/attr/noinline.h
-enc/koi8_r.$(OBJEXT): internal/attr/nonnull.h
-enc/koi8_r.$(OBJEXT): internal/attr/noreturn.h
-enc/koi8_r.$(OBJEXT): internal/attr/pure.h
-enc/koi8_r.$(OBJEXT): internal/attr/restrict.h
-enc/koi8_r.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/koi8_r.$(OBJEXT): internal/attr/warning.h
-enc/koi8_r.$(OBJEXT): internal/cast.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/apple.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/clang.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/gcc.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/intel.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/msvc.h
-enc/koi8_r.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/koi8_r.$(OBJEXT): internal/compiler_since.h
-enc/koi8_r.$(OBJEXT): internal/config.h
-enc/koi8_r.$(OBJEXT): internal/dllexport.h
-enc/koi8_r.$(OBJEXT): internal/dosish.h
-enc/koi8_r.$(OBJEXT): internal/has/attribute.h
-enc/koi8_r.$(OBJEXT): internal/has/builtin.h
-enc/koi8_r.$(OBJEXT): internal/has/c_attribute.h
-enc/koi8_r.$(OBJEXT): internal/has/cpp_attribute.h
-enc/koi8_r.$(OBJEXT): internal/has/declspec_attribute.h
-enc/koi8_r.$(OBJEXT): internal/has/extension.h
-enc/koi8_r.$(OBJEXT): internal/has/feature.h
-enc/koi8_r.$(OBJEXT): internal/has/warning.h
-enc/koi8_r.$(OBJEXT): internal/stdalign.h
-enc/koi8_r.$(OBJEXT): internal/stdbool.h
-enc/koi8_r.$(OBJEXT): internal/token_paste.h
-enc/koi8_r.$(OBJEXT): internal/warning_push.h
-enc/koi8_r.$(OBJEXT): internal/xmalloc.h
-enc/koi8_r.$(OBJEXT): assert.h
-enc/koi8_r.$(OBJEXT): backward/2/assume.h
-enc/koi8_r.$(OBJEXT): backward/2/attributes.h
-enc/koi8_r.$(OBJEXT): backward/2/bool.h
-enc/koi8_r.$(OBJEXT): backward/2/gcc_version_since.h
-enc/koi8_r.$(OBJEXT): backward/2/long_long.h
-enc/koi8_r.$(OBJEXT): backward/2/stdalign.h
-enc/koi8_r.$(OBJEXT): backward/2/stdarg.h
enc/koi8_r.$(OBJEXT): config.h
enc/koi8_r.$(OBJEXT): defines.h
enc/koi8_r.$(OBJEXT): enc/koi8_r.c
enc/koi8_r.$(OBJEXT): missing.h
enc/koi8_r.$(OBJEXT): onigmo.h
enc/koi8_u.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/koi8_u.$(OBJEXT): internal/assume.h
-enc/koi8_u.$(OBJEXT): internal/attr/alloc_size.h
-enc/koi8_u.$(OBJEXT): internal/attr/cold.h
-enc/koi8_u.$(OBJEXT): internal/attr/const.h
-enc/koi8_u.$(OBJEXT): internal/attr/deprecated.h
-enc/koi8_u.$(OBJEXT): internal/attr/error.h
-enc/koi8_u.$(OBJEXT): internal/attr/forceinline.h
-enc/koi8_u.$(OBJEXT): internal/attr/format.h
-enc/koi8_u.$(OBJEXT): internal/attr/maybe_unused.h
-enc/koi8_u.$(OBJEXT): internal/attr/nodiscard.h
-enc/koi8_u.$(OBJEXT): internal/attr/noexcept.h
-enc/koi8_u.$(OBJEXT): internal/attr/noinline.h
-enc/koi8_u.$(OBJEXT): internal/attr/nonnull.h
-enc/koi8_u.$(OBJEXT): internal/attr/noreturn.h
-enc/koi8_u.$(OBJEXT): internal/attr/pure.h
-enc/koi8_u.$(OBJEXT): internal/attr/restrict.h
-enc/koi8_u.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/koi8_u.$(OBJEXT): internal/attr/warning.h
-enc/koi8_u.$(OBJEXT): internal/cast.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/apple.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/clang.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/gcc.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/intel.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/msvc.h
-enc/koi8_u.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/koi8_u.$(OBJEXT): internal/compiler_since.h
-enc/koi8_u.$(OBJEXT): internal/config.h
-enc/koi8_u.$(OBJEXT): internal/dllexport.h
-enc/koi8_u.$(OBJEXT): internal/dosish.h
-enc/koi8_u.$(OBJEXT): internal/has/attribute.h
-enc/koi8_u.$(OBJEXT): internal/has/builtin.h
-enc/koi8_u.$(OBJEXT): internal/has/c_attribute.h
-enc/koi8_u.$(OBJEXT): internal/has/cpp_attribute.h
-enc/koi8_u.$(OBJEXT): internal/has/declspec_attribute.h
-enc/koi8_u.$(OBJEXT): internal/has/extension.h
-enc/koi8_u.$(OBJEXT): internal/has/feature.h
-enc/koi8_u.$(OBJEXT): internal/has/warning.h
-enc/koi8_u.$(OBJEXT): internal/stdalign.h
-enc/koi8_u.$(OBJEXT): internal/stdbool.h
-enc/koi8_u.$(OBJEXT): internal/token_paste.h
-enc/koi8_u.$(OBJEXT): internal/warning_push.h
-enc/koi8_u.$(OBJEXT): internal/xmalloc.h
-enc/koi8_u.$(OBJEXT): assert.h
-enc/koi8_u.$(OBJEXT): backward/2/assume.h
-enc/koi8_u.$(OBJEXT): backward/2/attributes.h
-enc/koi8_u.$(OBJEXT): backward/2/bool.h
-enc/koi8_u.$(OBJEXT): backward/2/gcc_version_since.h
-enc/koi8_u.$(OBJEXT): backward/2/long_long.h
-enc/koi8_u.$(OBJEXT): backward/2/stdalign.h
-enc/koi8_u.$(OBJEXT): backward/2/stdarg.h
enc/koi8_u.$(OBJEXT): config.h
enc/koi8_u.$(OBJEXT): defines.h
enc/koi8_u.$(OBJEXT): enc/koi8_u.c
enc/koi8_u.$(OBJEXT): missing.h
enc/koi8_u.$(OBJEXT): onigmo.h
enc/shift_jis.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/shift_jis.$(OBJEXT): internal/assume.h
-enc/shift_jis.$(OBJEXT): internal/attr/alloc_size.h
-enc/shift_jis.$(OBJEXT): internal/attr/cold.h
-enc/shift_jis.$(OBJEXT): internal/attr/const.h
-enc/shift_jis.$(OBJEXT): internal/attr/deprecated.h
-enc/shift_jis.$(OBJEXT): internal/attr/error.h
-enc/shift_jis.$(OBJEXT): internal/attr/forceinline.h
-enc/shift_jis.$(OBJEXT): internal/attr/format.h
-enc/shift_jis.$(OBJEXT): internal/attr/maybe_unused.h
-enc/shift_jis.$(OBJEXT): internal/attr/nodiscard.h
-enc/shift_jis.$(OBJEXT): internal/attr/noexcept.h
-enc/shift_jis.$(OBJEXT): internal/attr/noinline.h
-enc/shift_jis.$(OBJEXT): internal/attr/nonnull.h
-enc/shift_jis.$(OBJEXT): internal/attr/noreturn.h
-enc/shift_jis.$(OBJEXT): internal/attr/pure.h
-enc/shift_jis.$(OBJEXT): internal/attr/restrict.h
-enc/shift_jis.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/shift_jis.$(OBJEXT): internal/attr/warning.h
-enc/shift_jis.$(OBJEXT): internal/cast.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/apple.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/clang.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/gcc.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/intel.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/msvc.h
-enc/shift_jis.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/shift_jis.$(OBJEXT): internal/compiler_since.h
-enc/shift_jis.$(OBJEXT): internal/config.h
-enc/shift_jis.$(OBJEXT): internal/dllexport.h
-enc/shift_jis.$(OBJEXT): internal/dosish.h
-enc/shift_jis.$(OBJEXT): internal/has/attribute.h
-enc/shift_jis.$(OBJEXT): internal/has/builtin.h
-enc/shift_jis.$(OBJEXT): internal/has/c_attribute.h
-enc/shift_jis.$(OBJEXT): internal/has/cpp_attribute.h
-enc/shift_jis.$(OBJEXT): internal/has/declspec_attribute.h
-enc/shift_jis.$(OBJEXT): internal/has/extension.h
-enc/shift_jis.$(OBJEXT): internal/has/feature.h
-enc/shift_jis.$(OBJEXT): internal/has/warning.h
-enc/shift_jis.$(OBJEXT): internal/stdalign.h
-enc/shift_jis.$(OBJEXT): internal/stdbool.h
-enc/shift_jis.$(OBJEXT): internal/token_paste.h
-enc/shift_jis.$(OBJEXT): internal/warning_push.h
-enc/shift_jis.$(OBJEXT): internal/xmalloc.h
-enc/shift_jis.$(OBJEXT): assert.h
-enc/shift_jis.$(OBJEXT): backward/2/assume.h
-enc/shift_jis.$(OBJEXT): backward/2/attributes.h
-enc/shift_jis.$(OBJEXT): backward/2/bool.h
-enc/shift_jis.$(OBJEXT): backward/2/gcc_version_since.h
-enc/shift_jis.$(OBJEXT): backward/2/long_long.h
-enc/shift_jis.$(OBJEXT): backward/2/stdalign.h
-enc/shift_jis.$(OBJEXT): backward/2/stdarg.h
enc/shift_jis.$(OBJEXT): config.h
enc/shift_jis.$(OBJEXT): defines.h
enc/shift_jis.$(OBJEXT): enc/jis/props.h
@@ -2227,157 +384,8 @@ enc/shift_jis.$(OBJEXT): missing.h
enc/shift_jis.$(OBJEXT): onigmo.h
enc/trans/big5.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/big5.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/big5.$(OBJEXT): internal/anyargs.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/big5.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/big5.$(OBJEXT): internal/assume.h
-enc/trans/big5.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/big5.$(OBJEXT): internal/attr/artificial.h
-enc/trans/big5.$(OBJEXT): internal/attr/cold.h
-enc/trans/big5.$(OBJEXT): internal/attr/const.h
-enc/trans/big5.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/big5.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/big5.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/big5.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/big5.$(OBJEXT): internal/attr/error.h
-enc/trans/big5.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/big5.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/big5.$(OBJEXT): internal/attr/format.h
-enc/trans/big5.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/big5.$(OBJEXT): internal/attr/noalias.h
-enc/trans/big5.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/big5.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/big5.$(OBJEXT): internal/attr/noinline.h
-enc/trans/big5.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/big5.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/big5.$(OBJEXT): internal/attr/pure.h
-enc/trans/big5.$(OBJEXT): internal/attr/restrict.h
-enc/trans/big5.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/big5.$(OBJEXT): internal/attr/warning.h
-enc/trans/big5.$(OBJEXT): internal/attr/weakref.h
-enc/trans/big5.$(OBJEXT): internal/cast.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/big5.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/big5.$(OBJEXT): internal/compiler_since.h
-enc/trans/big5.$(OBJEXT): internal/config.h
-enc/trans/big5.$(OBJEXT): internal/constant_p.h
-enc/trans/big5.$(OBJEXT): internal/core.h
-enc/trans/big5.$(OBJEXT): internal/core/rarray.h
-enc/trans/big5.$(OBJEXT): internal/core/rbasic.h
-enc/trans/big5.$(OBJEXT): internal/core/rbignum.h
-enc/trans/big5.$(OBJEXT): internal/core/rclass.h
-enc/trans/big5.$(OBJEXT): internal/core/rdata.h
-enc/trans/big5.$(OBJEXT): internal/core/rfile.h
-enc/trans/big5.$(OBJEXT): internal/core/rhash.h
-enc/trans/big5.$(OBJEXT): internal/core/robject.h
-enc/trans/big5.$(OBJEXT): internal/core/rregexp.h
-enc/trans/big5.$(OBJEXT): internal/core/rstring.h
-enc/trans/big5.$(OBJEXT): internal/core/rstruct.h
-enc/trans/big5.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/big5.$(OBJEXT): internal/ctype.h
-enc/trans/big5.$(OBJEXT): internal/dllexport.h
-enc/trans/big5.$(OBJEXT): internal/dosish.h
-enc/trans/big5.$(OBJEXT): internal/error.h
-enc/trans/big5.$(OBJEXT): internal/eval.h
-enc/trans/big5.$(OBJEXT): internal/event.h
-enc/trans/big5.$(OBJEXT): internal/fl_type.h
-enc/trans/big5.$(OBJEXT): internal/gc.h
-enc/trans/big5.$(OBJEXT): internal/glob.h
-enc/trans/big5.$(OBJEXT): internal/globals.h
-enc/trans/big5.$(OBJEXT): internal/has/attribute.h
-enc/trans/big5.$(OBJEXT): internal/has/builtin.h
-enc/trans/big5.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/big5.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/big5.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/big5.$(OBJEXT): internal/has/extension.h
-enc/trans/big5.$(OBJEXT): internal/has/feature.h
-enc/trans/big5.$(OBJEXT): internal/has/warning.h
-enc/trans/big5.$(OBJEXT): internal/intern/array.h
-enc/trans/big5.$(OBJEXT): internal/intern/bignum.h
-enc/trans/big5.$(OBJEXT): internal/intern/class.h
-enc/trans/big5.$(OBJEXT): internal/intern/compar.h
-enc/trans/big5.$(OBJEXT): internal/intern/complex.h
-enc/trans/big5.$(OBJEXT): internal/intern/cont.h
-enc/trans/big5.$(OBJEXT): internal/intern/dir.h
-enc/trans/big5.$(OBJEXT): internal/intern/enum.h
-enc/trans/big5.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/big5.$(OBJEXT): internal/intern/error.h
-enc/trans/big5.$(OBJEXT): internal/intern/eval.h
-enc/trans/big5.$(OBJEXT): internal/intern/file.h
-enc/trans/big5.$(OBJEXT): internal/intern/gc.h
-enc/trans/big5.$(OBJEXT): internal/intern/hash.h
-enc/trans/big5.$(OBJEXT): internal/intern/io.h
-enc/trans/big5.$(OBJEXT): internal/intern/load.h
-enc/trans/big5.$(OBJEXT): internal/intern/marshal.h
-enc/trans/big5.$(OBJEXT): internal/intern/numeric.h
-enc/trans/big5.$(OBJEXT): internal/intern/object.h
-enc/trans/big5.$(OBJEXT): internal/intern/parse.h
-enc/trans/big5.$(OBJEXT): internal/intern/proc.h
-enc/trans/big5.$(OBJEXT): internal/intern/process.h
-enc/trans/big5.$(OBJEXT): internal/intern/random.h
-enc/trans/big5.$(OBJEXT): internal/intern/range.h
-enc/trans/big5.$(OBJEXT): internal/intern/rational.h
-enc/trans/big5.$(OBJEXT): internal/intern/re.h
-enc/trans/big5.$(OBJEXT): internal/intern/ruby.h
-enc/trans/big5.$(OBJEXT): internal/intern/select.h
-enc/trans/big5.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/big5.$(OBJEXT): internal/intern/signal.h
-enc/trans/big5.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/big5.$(OBJEXT): internal/intern/string.h
-enc/trans/big5.$(OBJEXT): internal/intern/struct.h
-enc/trans/big5.$(OBJEXT): internal/intern/thread.h
-enc/trans/big5.$(OBJEXT): internal/intern/time.h
-enc/trans/big5.$(OBJEXT): internal/intern/variable.h
-enc/trans/big5.$(OBJEXT): internal/intern/vm.h
-enc/trans/big5.$(OBJEXT): internal/interpreter.h
-enc/trans/big5.$(OBJEXT): internal/iterator.h
-enc/trans/big5.$(OBJEXT): internal/memory.h
-enc/trans/big5.$(OBJEXT): internal/method.h
-enc/trans/big5.$(OBJEXT): internal/module.h
-enc/trans/big5.$(OBJEXT): internal/newobj.h
-enc/trans/big5.$(OBJEXT): internal/rgengc.h
-enc/trans/big5.$(OBJEXT): internal/scan_args.h
-enc/trans/big5.$(OBJEXT): internal/special_consts.h
-enc/trans/big5.$(OBJEXT): internal/static_assert.h
-enc/trans/big5.$(OBJEXT): internal/stdalign.h
-enc/trans/big5.$(OBJEXT): internal/stdbool.h
-enc/trans/big5.$(OBJEXT): internal/symbol.h
-enc/trans/big5.$(OBJEXT): internal/token_paste.h
-enc/trans/big5.$(OBJEXT): internal/value.h
-enc/trans/big5.$(OBJEXT): internal/value_type.h
-enc/trans/big5.$(OBJEXT): internal/variable.h
-enc/trans/big5.$(OBJEXT): internal/warning_push.h
-enc/trans/big5.$(OBJEXT): internal/xmalloc.h
enc/trans/big5.$(OBJEXT): assert.h
enc/trans/big5.$(OBJEXT): backward.h
-enc/trans/big5.$(OBJEXT): backward/2/assume.h
-enc/trans/big5.$(OBJEXT): backward/2/attributes.h
-enc/trans/big5.$(OBJEXT): backward/2/bool.h
-enc/trans/big5.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/big5.$(OBJEXT): backward/2/inttypes.h
-enc/trans/big5.$(OBJEXT): backward/2/limits.h
-enc/trans/big5.$(OBJEXT): backward/2/long_long.h
-enc/trans/big5.$(OBJEXT): backward/2/stdalign.h
-enc/trans/big5.$(OBJEXT): backward/2/stdarg.h
enc/trans/big5.$(OBJEXT): config.h
enc/trans/big5.$(OBJEXT): defines.h
enc/trans/big5.$(OBJEXT): enc/trans/big5.c
@@ -2387,157 +395,8 @@ enc/trans/big5.$(OBJEXT): st.h
enc/trans/big5.$(OBJEXT): subst.h
enc/trans/cesu_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/cesu_8.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/cesu_8.$(OBJEXT): internal/anyargs.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/cesu_8.$(OBJEXT): internal/assume.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/artificial.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/cold.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/const.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/error.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/format.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/noalias.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/noinline.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/pure.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/restrict.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/warning.h
-enc/trans/cesu_8.$(OBJEXT): internal/attr/weakref.h
-enc/trans/cesu_8.$(OBJEXT): internal/cast.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/cesu_8.$(OBJEXT): internal/compiler_since.h
-enc/trans/cesu_8.$(OBJEXT): internal/config.h
-enc/trans/cesu_8.$(OBJEXT): internal/constant_p.h
-enc/trans/cesu_8.$(OBJEXT): internal/core.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rarray.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rbasic.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rbignum.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rclass.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rdata.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rfile.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rhash.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/robject.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rregexp.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rstring.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rstruct.h
-enc/trans/cesu_8.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/cesu_8.$(OBJEXT): internal/ctype.h
-enc/trans/cesu_8.$(OBJEXT): internal/dllexport.h
-enc/trans/cesu_8.$(OBJEXT): internal/dosish.h
-enc/trans/cesu_8.$(OBJEXT): internal/error.h
-enc/trans/cesu_8.$(OBJEXT): internal/eval.h
-enc/trans/cesu_8.$(OBJEXT): internal/event.h
-enc/trans/cesu_8.$(OBJEXT): internal/fl_type.h
-enc/trans/cesu_8.$(OBJEXT): internal/gc.h
-enc/trans/cesu_8.$(OBJEXT): internal/glob.h
-enc/trans/cesu_8.$(OBJEXT): internal/globals.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/attribute.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/builtin.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/extension.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/feature.h
-enc/trans/cesu_8.$(OBJEXT): internal/has/warning.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/array.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/bignum.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/class.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/compar.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/complex.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/cont.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/dir.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/enum.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/error.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/eval.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/file.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/gc.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/hash.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/io.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/load.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/marshal.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/numeric.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/object.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/parse.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/proc.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/process.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/random.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/range.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/rational.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/re.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/ruby.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/select.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/signal.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/string.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/struct.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/thread.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/time.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/variable.h
-enc/trans/cesu_8.$(OBJEXT): internal/intern/vm.h
-enc/trans/cesu_8.$(OBJEXT): internal/interpreter.h
-enc/trans/cesu_8.$(OBJEXT): internal/iterator.h
-enc/trans/cesu_8.$(OBJEXT): internal/memory.h
-enc/trans/cesu_8.$(OBJEXT): internal/method.h
-enc/trans/cesu_8.$(OBJEXT): internal/module.h
-enc/trans/cesu_8.$(OBJEXT): internal/newobj.h
-enc/trans/cesu_8.$(OBJEXT): internal/rgengc.h
-enc/trans/cesu_8.$(OBJEXT): internal/scan_args.h
-enc/trans/cesu_8.$(OBJEXT): internal/special_consts.h
-enc/trans/cesu_8.$(OBJEXT): internal/static_assert.h
-enc/trans/cesu_8.$(OBJEXT): internal/stdalign.h
-enc/trans/cesu_8.$(OBJEXT): internal/stdbool.h
-enc/trans/cesu_8.$(OBJEXT): internal/symbol.h
-enc/trans/cesu_8.$(OBJEXT): internal/token_paste.h
-enc/trans/cesu_8.$(OBJEXT): internal/value.h
-enc/trans/cesu_8.$(OBJEXT): internal/value_type.h
-enc/trans/cesu_8.$(OBJEXT): internal/variable.h
-enc/trans/cesu_8.$(OBJEXT): internal/warning_push.h
-enc/trans/cesu_8.$(OBJEXT): internal/xmalloc.h
enc/trans/cesu_8.$(OBJEXT): assert.h
enc/trans/cesu_8.$(OBJEXT): backward.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/assume.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/attributes.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/bool.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/inttypes.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/limits.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/long_long.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/stdalign.h
-enc/trans/cesu_8.$(OBJEXT): backward/2/stdarg.h
enc/trans/cesu_8.$(OBJEXT): config.h
enc/trans/cesu_8.$(OBJEXT): defines.h
enc/trans/cesu_8.$(OBJEXT): enc/trans/cesu_8.c
@@ -2547,157 +406,8 @@ enc/trans/cesu_8.$(OBJEXT): st.h
enc/trans/cesu_8.$(OBJEXT): subst.h
enc/trans/chinese.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/chinese.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/chinese.$(OBJEXT): internal/anyargs.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/chinese.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/chinese.$(OBJEXT): internal/assume.h
-enc/trans/chinese.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/chinese.$(OBJEXT): internal/attr/artificial.h
-enc/trans/chinese.$(OBJEXT): internal/attr/cold.h
-enc/trans/chinese.$(OBJEXT): internal/attr/const.h
-enc/trans/chinese.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/chinese.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/chinese.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/chinese.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/chinese.$(OBJEXT): internal/attr/error.h
-enc/trans/chinese.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/chinese.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/chinese.$(OBJEXT): internal/attr/format.h
-enc/trans/chinese.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/chinese.$(OBJEXT): internal/attr/noalias.h
-enc/trans/chinese.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/chinese.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/chinese.$(OBJEXT): internal/attr/noinline.h
-enc/trans/chinese.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/chinese.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/chinese.$(OBJEXT): internal/attr/pure.h
-enc/trans/chinese.$(OBJEXT): internal/attr/restrict.h
-enc/trans/chinese.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/chinese.$(OBJEXT): internal/attr/warning.h
-enc/trans/chinese.$(OBJEXT): internal/attr/weakref.h
-enc/trans/chinese.$(OBJEXT): internal/cast.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/chinese.$(OBJEXT): internal/compiler_since.h
-enc/trans/chinese.$(OBJEXT): internal/config.h
-enc/trans/chinese.$(OBJEXT): internal/constant_p.h
-enc/trans/chinese.$(OBJEXT): internal/core.h
-enc/trans/chinese.$(OBJEXT): internal/core/rarray.h
-enc/trans/chinese.$(OBJEXT): internal/core/rbasic.h
-enc/trans/chinese.$(OBJEXT): internal/core/rbignum.h
-enc/trans/chinese.$(OBJEXT): internal/core/rclass.h
-enc/trans/chinese.$(OBJEXT): internal/core/rdata.h
-enc/trans/chinese.$(OBJEXT): internal/core/rfile.h
-enc/trans/chinese.$(OBJEXT): internal/core/rhash.h
-enc/trans/chinese.$(OBJEXT): internal/core/robject.h
-enc/trans/chinese.$(OBJEXT): internal/core/rregexp.h
-enc/trans/chinese.$(OBJEXT): internal/core/rstring.h
-enc/trans/chinese.$(OBJEXT): internal/core/rstruct.h
-enc/trans/chinese.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/chinese.$(OBJEXT): internal/ctype.h
-enc/trans/chinese.$(OBJEXT): internal/dllexport.h
-enc/trans/chinese.$(OBJEXT): internal/dosish.h
-enc/trans/chinese.$(OBJEXT): internal/error.h
-enc/trans/chinese.$(OBJEXT): internal/eval.h
-enc/trans/chinese.$(OBJEXT): internal/event.h
-enc/trans/chinese.$(OBJEXT): internal/fl_type.h
-enc/trans/chinese.$(OBJEXT): internal/gc.h
-enc/trans/chinese.$(OBJEXT): internal/glob.h
-enc/trans/chinese.$(OBJEXT): internal/globals.h
-enc/trans/chinese.$(OBJEXT): internal/has/attribute.h
-enc/trans/chinese.$(OBJEXT): internal/has/builtin.h
-enc/trans/chinese.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/chinese.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/chinese.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/chinese.$(OBJEXT): internal/has/extension.h
-enc/trans/chinese.$(OBJEXT): internal/has/feature.h
-enc/trans/chinese.$(OBJEXT): internal/has/warning.h
-enc/trans/chinese.$(OBJEXT): internal/intern/array.h
-enc/trans/chinese.$(OBJEXT): internal/intern/bignum.h
-enc/trans/chinese.$(OBJEXT): internal/intern/class.h
-enc/trans/chinese.$(OBJEXT): internal/intern/compar.h
-enc/trans/chinese.$(OBJEXT): internal/intern/complex.h
-enc/trans/chinese.$(OBJEXT): internal/intern/cont.h
-enc/trans/chinese.$(OBJEXT): internal/intern/dir.h
-enc/trans/chinese.$(OBJEXT): internal/intern/enum.h
-enc/trans/chinese.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/chinese.$(OBJEXT): internal/intern/error.h
-enc/trans/chinese.$(OBJEXT): internal/intern/eval.h
-enc/trans/chinese.$(OBJEXT): internal/intern/file.h
-enc/trans/chinese.$(OBJEXT): internal/intern/gc.h
-enc/trans/chinese.$(OBJEXT): internal/intern/hash.h
-enc/trans/chinese.$(OBJEXT): internal/intern/io.h
-enc/trans/chinese.$(OBJEXT): internal/intern/load.h
-enc/trans/chinese.$(OBJEXT): internal/intern/marshal.h
-enc/trans/chinese.$(OBJEXT): internal/intern/numeric.h
-enc/trans/chinese.$(OBJEXT): internal/intern/object.h
-enc/trans/chinese.$(OBJEXT): internal/intern/parse.h
-enc/trans/chinese.$(OBJEXT): internal/intern/proc.h
-enc/trans/chinese.$(OBJEXT): internal/intern/process.h
-enc/trans/chinese.$(OBJEXT): internal/intern/random.h
-enc/trans/chinese.$(OBJEXT): internal/intern/range.h
-enc/trans/chinese.$(OBJEXT): internal/intern/rational.h
-enc/trans/chinese.$(OBJEXT): internal/intern/re.h
-enc/trans/chinese.$(OBJEXT): internal/intern/ruby.h
-enc/trans/chinese.$(OBJEXT): internal/intern/select.h
-enc/trans/chinese.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/chinese.$(OBJEXT): internal/intern/signal.h
-enc/trans/chinese.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/chinese.$(OBJEXT): internal/intern/string.h
-enc/trans/chinese.$(OBJEXT): internal/intern/struct.h
-enc/trans/chinese.$(OBJEXT): internal/intern/thread.h
-enc/trans/chinese.$(OBJEXT): internal/intern/time.h
-enc/trans/chinese.$(OBJEXT): internal/intern/variable.h
-enc/trans/chinese.$(OBJEXT): internal/intern/vm.h
-enc/trans/chinese.$(OBJEXT): internal/interpreter.h
-enc/trans/chinese.$(OBJEXT): internal/iterator.h
-enc/trans/chinese.$(OBJEXT): internal/memory.h
-enc/trans/chinese.$(OBJEXT): internal/method.h
-enc/trans/chinese.$(OBJEXT): internal/module.h
-enc/trans/chinese.$(OBJEXT): internal/newobj.h
-enc/trans/chinese.$(OBJEXT): internal/rgengc.h
-enc/trans/chinese.$(OBJEXT): internal/scan_args.h
-enc/trans/chinese.$(OBJEXT): internal/special_consts.h
-enc/trans/chinese.$(OBJEXT): internal/static_assert.h
-enc/trans/chinese.$(OBJEXT): internal/stdalign.h
-enc/trans/chinese.$(OBJEXT): internal/stdbool.h
-enc/trans/chinese.$(OBJEXT): internal/symbol.h
-enc/trans/chinese.$(OBJEXT): internal/token_paste.h
-enc/trans/chinese.$(OBJEXT): internal/value.h
-enc/trans/chinese.$(OBJEXT): internal/value_type.h
-enc/trans/chinese.$(OBJEXT): internal/variable.h
-enc/trans/chinese.$(OBJEXT): internal/warning_push.h
-enc/trans/chinese.$(OBJEXT): internal/xmalloc.h
enc/trans/chinese.$(OBJEXT): assert.h
enc/trans/chinese.$(OBJEXT): backward.h
-enc/trans/chinese.$(OBJEXT): backward/2/assume.h
-enc/trans/chinese.$(OBJEXT): backward/2/attributes.h
-enc/trans/chinese.$(OBJEXT): backward/2/bool.h
-enc/trans/chinese.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/chinese.$(OBJEXT): backward/2/inttypes.h
-enc/trans/chinese.$(OBJEXT): backward/2/limits.h
-enc/trans/chinese.$(OBJEXT): backward/2/long_long.h
-enc/trans/chinese.$(OBJEXT): backward/2/stdalign.h
-enc/trans/chinese.$(OBJEXT): backward/2/stdarg.h
enc/trans/chinese.$(OBJEXT): config.h
enc/trans/chinese.$(OBJEXT): defines.h
enc/trans/chinese.$(OBJEXT): enc/trans/chinese.c
@@ -2707,157 +417,8 @@ enc/trans/chinese.$(OBJEXT): st.h
enc/trans/chinese.$(OBJEXT): subst.h
enc/trans/ebcdic.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/ebcdic.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/ebcdic.$(OBJEXT): internal/anyargs.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/ebcdic.$(OBJEXT): internal/assume.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/artificial.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/cold.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/const.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/error.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/format.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/noalias.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/noinline.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/pure.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/restrict.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/warning.h
-enc/trans/ebcdic.$(OBJEXT): internal/attr/weakref.h
-enc/trans/ebcdic.$(OBJEXT): internal/cast.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/ebcdic.$(OBJEXT): internal/compiler_since.h
-enc/trans/ebcdic.$(OBJEXT): internal/config.h
-enc/trans/ebcdic.$(OBJEXT): internal/constant_p.h
-enc/trans/ebcdic.$(OBJEXT): internal/core.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rarray.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rbasic.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rbignum.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rclass.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rdata.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rfile.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rhash.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/robject.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rregexp.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rstring.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rstruct.h
-enc/trans/ebcdic.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/ebcdic.$(OBJEXT): internal/ctype.h
-enc/trans/ebcdic.$(OBJEXT): internal/dllexport.h
-enc/trans/ebcdic.$(OBJEXT): internal/dosish.h
-enc/trans/ebcdic.$(OBJEXT): internal/error.h
-enc/trans/ebcdic.$(OBJEXT): internal/eval.h
-enc/trans/ebcdic.$(OBJEXT): internal/event.h
-enc/trans/ebcdic.$(OBJEXT): internal/fl_type.h
-enc/trans/ebcdic.$(OBJEXT): internal/gc.h
-enc/trans/ebcdic.$(OBJEXT): internal/glob.h
-enc/trans/ebcdic.$(OBJEXT): internal/globals.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/attribute.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/builtin.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/extension.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/feature.h
-enc/trans/ebcdic.$(OBJEXT): internal/has/warning.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/array.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/bignum.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/class.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/compar.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/complex.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/cont.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/dir.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/enum.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/error.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/eval.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/file.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/gc.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/hash.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/io.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/load.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/marshal.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/numeric.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/object.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/parse.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/proc.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/process.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/random.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/range.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/rational.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/re.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/ruby.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/select.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/signal.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/string.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/struct.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/thread.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/time.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/variable.h
-enc/trans/ebcdic.$(OBJEXT): internal/intern/vm.h
-enc/trans/ebcdic.$(OBJEXT): internal/interpreter.h
-enc/trans/ebcdic.$(OBJEXT): internal/iterator.h
-enc/trans/ebcdic.$(OBJEXT): internal/memory.h
-enc/trans/ebcdic.$(OBJEXT): internal/method.h
-enc/trans/ebcdic.$(OBJEXT): internal/module.h
-enc/trans/ebcdic.$(OBJEXT): internal/newobj.h
-enc/trans/ebcdic.$(OBJEXT): internal/rgengc.h
-enc/trans/ebcdic.$(OBJEXT): internal/scan_args.h
-enc/trans/ebcdic.$(OBJEXT): internal/special_consts.h
-enc/trans/ebcdic.$(OBJEXT): internal/static_assert.h
-enc/trans/ebcdic.$(OBJEXT): internal/stdalign.h
-enc/trans/ebcdic.$(OBJEXT): internal/stdbool.h
-enc/trans/ebcdic.$(OBJEXT): internal/symbol.h
-enc/trans/ebcdic.$(OBJEXT): internal/token_paste.h
-enc/trans/ebcdic.$(OBJEXT): internal/value.h
-enc/trans/ebcdic.$(OBJEXT): internal/value_type.h
-enc/trans/ebcdic.$(OBJEXT): internal/variable.h
-enc/trans/ebcdic.$(OBJEXT): internal/warning_push.h
-enc/trans/ebcdic.$(OBJEXT): internal/xmalloc.h
enc/trans/ebcdic.$(OBJEXT): assert.h
enc/trans/ebcdic.$(OBJEXT): backward.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/assume.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/attributes.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/bool.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/inttypes.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/limits.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/long_long.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/stdalign.h
-enc/trans/ebcdic.$(OBJEXT): backward/2/stdarg.h
enc/trans/ebcdic.$(OBJEXT): config.h
enc/trans/ebcdic.$(OBJEXT): defines.h
enc/trans/ebcdic.$(OBJEXT): enc/trans/ebcdic.c
@@ -2867,157 +428,8 @@ enc/trans/ebcdic.$(OBJEXT): st.h
enc/trans/ebcdic.$(OBJEXT): subst.h
enc/trans/emoji.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/emoji.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/emoji.$(OBJEXT): internal/anyargs.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/emoji.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/emoji.$(OBJEXT): internal/assume.h
-enc/trans/emoji.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/emoji.$(OBJEXT): internal/attr/artificial.h
-enc/trans/emoji.$(OBJEXT): internal/attr/cold.h
-enc/trans/emoji.$(OBJEXT): internal/attr/const.h
-enc/trans/emoji.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/emoji.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/emoji.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/emoji.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/emoji.$(OBJEXT): internal/attr/error.h
-enc/trans/emoji.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/emoji.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/emoji.$(OBJEXT): internal/attr/format.h
-enc/trans/emoji.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/emoji.$(OBJEXT): internal/attr/noalias.h
-enc/trans/emoji.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/emoji.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/emoji.$(OBJEXT): internal/attr/noinline.h
-enc/trans/emoji.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/emoji.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/emoji.$(OBJEXT): internal/attr/pure.h
-enc/trans/emoji.$(OBJEXT): internal/attr/restrict.h
-enc/trans/emoji.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/emoji.$(OBJEXT): internal/attr/warning.h
-enc/trans/emoji.$(OBJEXT): internal/attr/weakref.h
-enc/trans/emoji.$(OBJEXT): internal/cast.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/emoji.$(OBJEXT): internal/compiler_since.h
-enc/trans/emoji.$(OBJEXT): internal/config.h
-enc/trans/emoji.$(OBJEXT): internal/constant_p.h
-enc/trans/emoji.$(OBJEXT): internal/core.h
-enc/trans/emoji.$(OBJEXT): internal/core/rarray.h
-enc/trans/emoji.$(OBJEXT): internal/core/rbasic.h
-enc/trans/emoji.$(OBJEXT): internal/core/rbignum.h
-enc/trans/emoji.$(OBJEXT): internal/core/rclass.h
-enc/trans/emoji.$(OBJEXT): internal/core/rdata.h
-enc/trans/emoji.$(OBJEXT): internal/core/rfile.h
-enc/trans/emoji.$(OBJEXT): internal/core/rhash.h
-enc/trans/emoji.$(OBJEXT): internal/core/robject.h
-enc/trans/emoji.$(OBJEXT): internal/core/rregexp.h
-enc/trans/emoji.$(OBJEXT): internal/core/rstring.h
-enc/trans/emoji.$(OBJEXT): internal/core/rstruct.h
-enc/trans/emoji.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/emoji.$(OBJEXT): internal/ctype.h
-enc/trans/emoji.$(OBJEXT): internal/dllexport.h
-enc/trans/emoji.$(OBJEXT): internal/dosish.h
-enc/trans/emoji.$(OBJEXT): internal/error.h
-enc/trans/emoji.$(OBJEXT): internal/eval.h
-enc/trans/emoji.$(OBJEXT): internal/event.h
-enc/trans/emoji.$(OBJEXT): internal/fl_type.h
-enc/trans/emoji.$(OBJEXT): internal/gc.h
-enc/trans/emoji.$(OBJEXT): internal/glob.h
-enc/trans/emoji.$(OBJEXT): internal/globals.h
-enc/trans/emoji.$(OBJEXT): internal/has/attribute.h
-enc/trans/emoji.$(OBJEXT): internal/has/builtin.h
-enc/trans/emoji.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/emoji.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/emoji.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/emoji.$(OBJEXT): internal/has/extension.h
-enc/trans/emoji.$(OBJEXT): internal/has/feature.h
-enc/trans/emoji.$(OBJEXT): internal/has/warning.h
-enc/trans/emoji.$(OBJEXT): internal/intern/array.h
-enc/trans/emoji.$(OBJEXT): internal/intern/bignum.h
-enc/trans/emoji.$(OBJEXT): internal/intern/class.h
-enc/trans/emoji.$(OBJEXT): internal/intern/compar.h
-enc/trans/emoji.$(OBJEXT): internal/intern/complex.h
-enc/trans/emoji.$(OBJEXT): internal/intern/cont.h
-enc/trans/emoji.$(OBJEXT): internal/intern/dir.h
-enc/trans/emoji.$(OBJEXT): internal/intern/enum.h
-enc/trans/emoji.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/emoji.$(OBJEXT): internal/intern/error.h
-enc/trans/emoji.$(OBJEXT): internal/intern/eval.h
-enc/trans/emoji.$(OBJEXT): internal/intern/file.h
-enc/trans/emoji.$(OBJEXT): internal/intern/gc.h
-enc/trans/emoji.$(OBJEXT): internal/intern/hash.h
-enc/trans/emoji.$(OBJEXT): internal/intern/io.h
-enc/trans/emoji.$(OBJEXT): internal/intern/load.h
-enc/trans/emoji.$(OBJEXT): internal/intern/marshal.h
-enc/trans/emoji.$(OBJEXT): internal/intern/numeric.h
-enc/trans/emoji.$(OBJEXT): internal/intern/object.h
-enc/trans/emoji.$(OBJEXT): internal/intern/parse.h
-enc/trans/emoji.$(OBJEXT): internal/intern/proc.h
-enc/trans/emoji.$(OBJEXT): internal/intern/process.h
-enc/trans/emoji.$(OBJEXT): internal/intern/random.h
-enc/trans/emoji.$(OBJEXT): internal/intern/range.h
-enc/trans/emoji.$(OBJEXT): internal/intern/rational.h
-enc/trans/emoji.$(OBJEXT): internal/intern/re.h
-enc/trans/emoji.$(OBJEXT): internal/intern/ruby.h
-enc/trans/emoji.$(OBJEXT): internal/intern/select.h
-enc/trans/emoji.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/emoji.$(OBJEXT): internal/intern/signal.h
-enc/trans/emoji.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/emoji.$(OBJEXT): internal/intern/string.h
-enc/trans/emoji.$(OBJEXT): internal/intern/struct.h
-enc/trans/emoji.$(OBJEXT): internal/intern/thread.h
-enc/trans/emoji.$(OBJEXT): internal/intern/time.h
-enc/trans/emoji.$(OBJEXT): internal/intern/variable.h
-enc/trans/emoji.$(OBJEXT): internal/intern/vm.h
-enc/trans/emoji.$(OBJEXT): internal/interpreter.h
-enc/trans/emoji.$(OBJEXT): internal/iterator.h
-enc/trans/emoji.$(OBJEXT): internal/memory.h
-enc/trans/emoji.$(OBJEXT): internal/method.h
-enc/trans/emoji.$(OBJEXT): internal/module.h
-enc/trans/emoji.$(OBJEXT): internal/newobj.h
-enc/trans/emoji.$(OBJEXT): internal/rgengc.h
-enc/trans/emoji.$(OBJEXT): internal/scan_args.h
-enc/trans/emoji.$(OBJEXT): internal/special_consts.h
-enc/trans/emoji.$(OBJEXT): internal/static_assert.h
-enc/trans/emoji.$(OBJEXT): internal/stdalign.h
-enc/trans/emoji.$(OBJEXT): internal/stdbool.h
-enc/trans/emoji.$(OBJEXT): internal/symbol.h
-enc/trans/emoji.$(OBJEXT): internal/token_paste.h
-enc/trans/emoji.$(OBJEXT): internal/value.h
-enc/trans/emoji.$(OBJEXT): internal/value_type.h
-enc/trans/emoji.$(OBJEXT): internal/variable.h
-enc/trans/emoji.$(OBJEXT): internal/warning_push.h
-enc/trans/emoji.$(OBJEXT): internal/xmalloc.h
enc/trans/emoji.$(OBJEXT): assert.h
enc/trans/emoji.$(OBJEXT): backward.h
-enc/trans/emoji.$(OBJEXT): backward/2/assume.h
-enc/trans/emoji.$(OBJEXT): backward/2/attributes.h
-enc/trans/emoji.$(OBJEXT): backward/2/bool.h
-enc/trans/emoji.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/emoji.$(OBJEXT): backward/2/inttypes.h
-enc/trans/emoji.$(OBJEXT): backward/2/limits.h
-enc/trans/emoji.$(OBJEXT): backward/2/long_long.h
-enc/trans/emoji.$(OBJEXT): backward/2/stdalign.h
-enc/trans/emoji.$(OBJEXT): backward/2/stdarg.h
enc/trans/emoji.$(OBJEXT): config.h
enc/trans/emoji.$(OBJEXT): defines.h
enc/trans/emoji.$(OBJEXT): enc/trans/emoji.c
@@ -3027,157 +439,8 @@ enc/trans/emoji.$(OBJEXT): st.h
enc/trans/emoji.$(OBJEXT): subst.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/anyargs.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/assume.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/artificial.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/cold.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/const.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/error.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/format.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noalias.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noinline.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/pure.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/restrict.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/warning.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/weakref.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/cast.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_since.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/config.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/constant_p.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rarray.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rbasic.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rbignum.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rclass.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rdata.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rfile.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rhash.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/robject.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rregexp.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rstring.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rstruct.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/ctype.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/dllexport.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/dosish.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/error.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/eval.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/event.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/fl_type.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/gc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/glob.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/globals.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/attribute.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/builtin.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/extension.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/feature.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/warning.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/array.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/bignum.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/class.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/compar.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/complex.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/cont.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/dir.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/enum.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/error.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/eval.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/file.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/gc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/hash.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/io.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/load.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/marshal.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/numeric.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/object.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/parse.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/proc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/process.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/random.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/range.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/rational.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/re.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/ruby.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/select.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/signal.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/string.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/struct.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/thread.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/time.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/variable.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/vm.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/interpreter.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/iterator.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/memory.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/method.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/module.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/newobj.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/rgengc.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/scan_args.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/special_consts.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/static_assert.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/stdalign.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/stdbool.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/symbol.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/token_paste.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/value.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/value_type.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/variable.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/warning_push.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/xmalloc.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): assert.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/assume.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/attributes.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/bool.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/inttypes.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/limits.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/long_long.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/stdalign.h
-enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/stdarg.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): config.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): defines.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): enc/trans/emoji_iso2022_kddi.c
@@ -3187,157 +450,8 @@ enc/trans/emoji_iso2022_kddi.$(OBJEXT): st.h
enc/trans/emoji_iso2022_kddi.$(OBJEXT): subst.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/anyargs.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/assume.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/artificial.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/cold.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/const.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/error.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/format.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noalias.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noinline.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/pure.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/restrict.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/warning.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/weakref.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/cast.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_since.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/config.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/constant_p.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rarray.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rbasic.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rbignum.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rclass.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rdata.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rfile.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rhash.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/robject.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rregexp.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rstring.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rstruct.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/ctype.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/dllexport.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/dosish.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/error.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/eval.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/event.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/fl_type.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/gc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/glob.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/globals.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/attribute.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/builtin.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/extension.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/feature.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/warning.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/array.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/bignum.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/class.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/compar.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/complex.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/cont.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/dir.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/enum.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/error.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/eval.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/file.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/gc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/hash.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/io.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/load.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/marshal.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/numeric.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/object.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/parse.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/proc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/process.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/random.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/range.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/rational.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/re.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/ruby.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/select.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/signal.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/string.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/struct.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/thread.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/time.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/variable.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/vm.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/interpreter.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/iterator.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/memory.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/method.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/module.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/newobj.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/rgengc.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/scan_args.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/special_consts.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/static_assert.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/stdalign.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/stdbool.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/symbol.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/token_paste.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/value.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/value_type.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/variable.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/warning_push.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/xmalloc.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): assert.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): backward.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/assume.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/attributes.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/bool.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/inttypes.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/limits.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/long_long.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/stdalign.h
-enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/stdarg.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): config.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): defines.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): enc/trans/emoji_sjis_docomo.c
@@ -3347,157 +461,8 @@ enc/trans/emoji_sjis_docomo.$(OBJEXT): st.h
enc/trans/emoji_sjis_docomo.$(OBJEXT): subst.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/anyargs.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/assume.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/artificial.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/cold.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/const.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/error.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/format.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noalias.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noinline.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/pure.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/restrict.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/warning.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/weakref.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/cast.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_since.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/config.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/constant_p.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rarray.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rbasic.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rbignum.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rclass.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rdata.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rfile.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rhash.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/robject.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rregexp.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rstring.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rstruct.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/ctype.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/dllexport.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/dosish.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/error.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/eval.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/event.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/fl_type.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/gc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/glob.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/globals.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/attribute.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/builtin.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/extension.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/feature.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/warning.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/array.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/bignum.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/class.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/compar.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/complex.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/cont.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/dir.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/enum.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/error.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/eval.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/file.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/gc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/hash.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/io.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/load.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/marshal.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/numeric.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/object.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/parse.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/proc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/process.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/random.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/range.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/rational.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/re.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/ruby.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/select.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/signal.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/string.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/struct.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/thread.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/time.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/variable.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/vm.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/interpreter.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/iterator.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/memory.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/method.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/module.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/newobj.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/rgengc.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/scan_args.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/special_consts.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/static_assert.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/stdalign.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/stdbool.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/symbol.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/token_paste.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/value.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/value_type.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/variable.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/warning_push.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/xmalloc.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): assert.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): backward.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/assume.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/attributes.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/bool.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/inttypes.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/limits.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/long_long.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/stdalign.h
-enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/stdarg.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): config.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): defines.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): enc/trans/emoji_sjis_kddi.c
@@ -3507,157 +472,8 @@ enc/trans/emoji_sjis_kddi.$(OBJEXT): st.h
enc/trans/emoji_sjis_kddi.$(OBJEXT): subst.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/anyargs.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/assume.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/artificial.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/cold.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/const.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/error.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/format.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noalias.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noinline.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/pure.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/restrict.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/warning.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/weakref.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/cast.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_since.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/config.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/constant_p.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rarray.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rbasic.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rbignum.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rclass.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rdata.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rfile.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rhash.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/robject.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rregexp.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rstring.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rstruct.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/ctype.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/dllexport.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/dosish.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/error.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/eval.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/event.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/fl_type.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/gc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/glob.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/globals.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/attribute.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/builtin.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/extension.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/feature.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/warning.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/array.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/bignum.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/class.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/compar.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/complex.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/cont.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/dir.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/enum.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/error.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/eval.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/file.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/gc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/hash.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/io.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/load.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/marshal.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/numeric.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/object.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/parse.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/proc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/process.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/random.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/range.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/rational.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/re.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/ruby.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/select.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/signal.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/string.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/struct.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/thread.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/time.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/variable.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/vm.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/interpreter.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/iterator.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/memory.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/method.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/module.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/newobj.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/rgengc.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/scan_args.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/special_consts.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/static_assert.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/stdalign.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/stdbool.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/symbol.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/token_paste.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/value.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/value_type.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/variable.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/warning_push.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/xmalloc.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): assert.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): backward.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/assume.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/attributes.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/bool.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/inttypes.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/limits.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/long_long.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/stdalign.h
-enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/stdarg.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): config.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): defines.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): enc/trans/emoji_sjis_softbank.c
@@ -3667,157 +483,8 @@ enc/trans/emoji_sjis_softbank.$(OBJEXT): st.h
enc/trans/emoji_sjis_softbank.$(OBJEXT): subst.h
enc/trans/escape.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/escape.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/escape.$(OBJEXT): internal/anyargs.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/escape.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/escape.$(OBJEXT): internal/assume.h
-enc/trans/escape.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/escape.$(OBJEXT): internal/attr/artificial.h
-enc/trans/escape.$(OBJEXT): internal/attr/cold.h
-enc/trans/escape.$(OBJEXT): internal/attr/const.h
-enc/trans/escape.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/escape.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/escape.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/escape.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/escape.$(OBJEXT): internal/attr/error.h
-enc/trans/escape.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/escape.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/escape.$(OBJEXT): internal/attr/format.h
-enc/trans/escape.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/escape.$(OBJEXT): internal/attr/noalias.h
-enc/trans/escape.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/escape.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/escape.$(OBJEXT): internal/attr/noinline.h
-enc/trans/escape.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/escape.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/escape.$(OBJEXT): internal/attr/pure.h
-enc/trans/escape.$(OBJEXT): internal/attr/restrict.h
-enc/trans/escape.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/escape.$(OBJEXT): internal/attr/warning.h
-enc/trans/escape.$(OBJEXT): internal/attr/weakref.h
-enc/trans/escape.$(OBJEXT): internal/cast.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/escape.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/escape.$(OBJEXT): internal/compiler_since.h
-enc/trans/escape.$(OBJEXT): internal/config.h
-enc/trans/escape.$(OBJEXT): internal/constant_p.h
-enc/trans/escape.$(OBJEXT): internal/core.h
-enc/trans/escape.$(OBJEXT): internal/core/rarray.h
-enc/trans/escape.$(OBJEXT): internal/core/rbasic.h
-enc/trans/escape.$(OBJEXT): internal/core/rbignum.h
-enc/trans/escape.$(OBJEXT): internal/core/rclass.h
-enc/trans/escape.$(OBJEXT): internal/core/rdata.h
-enc/trans/escape.$(OBJEXT): internal/core/rfile.h
-enc/trans/escape.$(OBJEXT): internal/core/rhash.h
-enc/trans/escape.$(OBJEXT): internal/core/robject.h
-enc/trans/escape.$(OBJEXT): internal/core/rregexp.h
-enc/trans/escape.$(OBJEXT): internal/core/rstring.h
-enc/trans/escape.$(OBJEXT): internal/core/rstruct.h
-enc/trans/escape.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/escape.$(OBJEXT): internal/ctype.h
-enc/trans/escape.$(OBJEXT): internal/dllexport.h
-enc/trans/escape.$(OBJEXT): internal/dosish.h
-enc/trans/escape.$(OBJEXT): internal/error.h
-enc/trans/escape.$(OBJEXT): internal/eval.h
-enc/trans/escape.$(OBJEXT): internal/event.h
-enc/trans/escape.$(OBJEXT): internal/fl_type.h
-enc/trans/escape.$(OBJEXT): internal/gc.h
-enc/trans/escape.$(OBJEXT): internal/glob.h
-enc/trans/escape.$(OBJEXT): internal/globals.h
-enc/trans/escape.$(OBJEXT): internal/has/attribute.h
-enc/trans/escape.$(OBJEXT): internal/has/builtin.h
-enc/trans/escape.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/escape.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/escape.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/escape.$(OBJEXT): internal/has/extension.h
-enc/trans/escape.$(OBJEXT): internal/has/feature.h
-enc/trans/escape.$(OBJEXT): internal/has/warning.h
-enc/trans/escape.$(OBJEXT): internal/intern/array.h
-enc/trans/escape.$(OBJEXT): internal/intern/bignum.h
-enc/trans/escape.$(OBJEXT): internal/intern/class.h
-enc/trans/escape.$(OBJEXT): internal/intern/compar.h
-enc/trans/escape.$(OBJEXT): internal/intern/complex.h
-enc/trans/escape.$(OBJEXT): internal/intern/cont.h
-enc/trans/escape.$(OBJEXT): internal/intern/dir.h
-enc/trans/escape.$(OBJEXT): internal/intern/enum.h
-enc/trans/escape.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/escape.$(OBJEXT): internal/intern/error.h
-enc/trans/escape.$(OBJEXT): internal/intern/eval.h
-enc/trans/escape.$(OBJEXT): internal/intern/file.h
-enc/trans/escape.$(OBJEXT): internal/intern/gc.h
-enc/trans/escape.$(OBJEXT): internal/intern/hash.h
-enc/trans/escape.$(OBJEXT): internal/intern/io.h
-enc/trans/escape.$(OBJEXT): internal/intern/load.h
-enc/trans/escape.$(OBJEXT): internal/intern/marshal.h
-enc/trans/escape.$(OBJEXT): internal/intern/numeric.h
-enc/trans/escape.$(OBJEXT): internal/intern/object.h
-enc/trans/escape.$(OBJEXT): internal/intern/parse.h
-enc/trans/escape.$(OBJEXT): internal/intern/proc.h
-enc/trans/escape.$(OBJEXT): internal/intern/process.h
-enc/trans/escape.$(OBJEXT): internal/intern/random.h
-enc/trans/escape.$(OBJEXT): internal/intern/range.h
-enc/trans/escape.$(OBJEXT): internal/intern/rational.h
-enc/trans/escape.$(OBJEXT): internal/intern/re.h
-enc/trans/escape.$(OBJEXT): internal/intern/ruby.h
-enc/trans/escape.$(OBJEXT): internal/intern/select.h
-enc/trans/escape.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/escape.$(OBJEXT): internal/intern/signal.h
-enc/trans/escape.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/escape.$(OBJEXT): internal/intern/string.h
-enc/trans/escape.$(OBJEXT): internal/intern/struct.h
-enc/trans/escape.$(OBJEXT): internal/intern/thread.h
-enc/trans/escape.$(OBJEXT): internal/intern/time.h
-enc/trans/escape.$(OBJEXT): internal/intern/variable.h
-enc/trans/escape.$(OBJEXT): internal/intern/vm.h
-enc/trans/escape.$(OBJEXT): internal/interpreter.h
-enc/trans/escape.$(OBJEXT): internal/iterator.h
-enc/trans/escape.$(OBJEXT): internal/memory.h
-enc/trans/escape.$(OBJEXT): internal/method.h
-enc/trans/escape.$(OBJEXT): internal/module.h
-enc/trans/escape.$(OBJEXT): internal/newobj.h
-enc/trans/escape.$(OBJEXT): internal/rgengc.h
-enc/trans/escape.$(OBJEXT): internal/scan_args.h
-enc/trans/escape.$(OBJEXT): internal/special_consts.h
-enc/trans/escape.$(OBJEXT): internal/static_assert.h
-enc/trans/escape.$(OBJEXT): internal/stdalign.h
-enc/trans/escape.$(OBJEXT): internal/stdbool.h
-enc/trans/escape.$(OBJEXT): internal/symbol.h
-enc/trans/escape.$(OBJEXT): internal/token_paste.h
-enc/trans/escape.$(OBJEXT): internal/value.h
-enc/trans/escape.$(OBJEXT): internal/value_type.h
-enc/trans/escape.$(OBJEXT): internal/variable.h
-enc/trans/escape.$(OBJEXT): internal/warning_push.h
-enc/trans/escape.$(OBJEXT): internal/xmalloc.h
enc/trans/escape.$(OBJEXT): assert.h
enc/trans/escape.$(OBJEXT): backward.h
-enc/trans/escape.$(OBJEXT): backward/2/assume.h
-enc/trans/escape.$(OBJEXT): backward/2/attributes.h
-enc/trans/escape.$(OBJEXT): backward/2/bool.h
-enc/trans/escape.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/escape.$(OBJEXT): backward/2/inttypes.h
-enc/trans/escape.$(OBJEXT): backward/2/limits.h
-enc/trans/escape.$(OBJEXT): backward/2/long_long.h
-enc/trans/escape.$(OBJEXT): backward/2/stdalign.h
-enc/trans/escape.$(OBJEXT): backward/2/stdarg.h
enc/trans/escape.$(OBJEXT): config.h
enc/trans/escape.$(OBJEXT): defines.h
enc/trans/escape.$(OBJEXT): enc/trans/escape.c
@@ -3827,157 +494,8 @@ enc/trans/escape.$(OBJEXT): st.h
enc/trans/escape.$(OBJEXT): subst.h
enc/trans/gb18030.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/gb18030.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/gb18030.$(OBJEXT): internal/anyargs.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/gb18030.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/gb18030.$(OBJEXT): internal/assume.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/artificial.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/cold.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/const.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/error.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/format.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/noalias.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/noinline.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/pure.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/restrict.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/warning.h
-enc/trans/gb18030.$(OBJEXT): internal/attr/weakref.h
-enc/trans/gb18030.$(OBJEXT): internal/cast.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/gb18030.$(OBJEXT): internal/compiler_since.h
-enc/trans/gb18030.$(OBJEXT): internal/config.h
-enc/trans/gb18030.$(OBJEXT): internal/constant_p.h
-enc/trans/gb18030.$(OBJEXT): internal/core.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rarray.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rbasic.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rbignum.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rclass.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rdata.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rfile.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rhash.h
-enc/trans/gb18030.$(OBJEXT): internal/core/robject.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rregexp.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rstring.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rstruct.h
-enc/trans/gb18030.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/gb18030.$(OBJEXT): internal/ctype.h
-enc/trans/gb18030.$(OBJEXT): internal/dllexport.h
-enc/trans/gb18030.$(OBJEXT): internal/dosish.h
-enc/trans/gb18030.$(OBJEXT): internal/error.h
-enc/trans/gb18030.$(OBJEXT): internal/eval.h
-enc/trans/gb18030.$(OBJEXT): internal/event.h
-enc/trans/gb18030.$(OBJEXT): internal/fl_type.h
-enc/trans/gb18030.$(OBJEXT): internal/gc.h
-enc/trans/gb18030.$(OBJEXT): internal/glob.h
-enc/trans/gb18030.$(OBJEXT): internal/globals.h
-enc/trans/gb18030.$(OBJEXT): internal/has/attribute.h
-enc/trans/gb18030.$(OBJEXT): internal/has/builtin.h
-enc/trans/gb18030.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/gb18030.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/gb18030.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/gb18030.$(OBJEXT): internal/has/extension.h
-enc/trans/gb18030.$(OBJEXT): internal/has/feature.h
-enc/trans/gb18030.$(OBJEXT): internal/has/warning.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/array.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/bignum.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/class.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/compar.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/complex.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/cont.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/dir.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/enum.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/error.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/eval.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/file.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/gc.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/hash.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/io.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/load.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/marshal.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/numeric.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/object.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/parse.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/proc.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/process.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/random.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/range.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/rational.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/re.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/ruby.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/select.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/signal.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/string.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/struct.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/thread.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/time.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/variable.h
-enc/trans/gb18030.$(OBJEXT): internal/intern/vm.h
-enc/trans/gb18030.$(OBJEXT): internal/interpreter.h
-enc/trans/gb18030.$(OBJEXT): internal/iterator.h
-enc/trans/gb18030.$(OBJEXT): internal/memory.h
-enc/trans/gb18030.$(OBJEXT): internal/method.h
-enc/trans/gb18030.$(OBJEXT): internal/module.h
-enc/trans/gb18030.$(OBJEXT): internal/newobj.h
-enc/trans/gb18030.$(OBJEXT): internal/rgengc.h
-enc/trans/gb18030.$(OBJEXT): internal/scan_args.h
-enc/trans/gb18030.$(OBJEXT): internal/special_consts.h
-enc/trans/gb18030.$(OBJEXT): internal/static_assert.h
-enc/trans/gb18030.$(OBJEXT): internal/stdalign.h
-enc/trans/gb18030.$(OBJEXT): internal/stdbool.h
-enc/trans/gb18030.$(OBJEXT): internal/symbol.h
-enc/trans/gb18030.$(OBJEXT): internal/token_paste.h
-enc/trans/gb18030.$(OBJEXT): internal/value.h
-enc/trans/gb18030.$(OBJEXT): internal/value_type.h
-enc/trans/gb18030.$(OBJEXT): internal/variable.h
-enc/trans/gb18030.$(OBJEXT): internal/warning_push.h
-enc/trans/gb18030.$(OBJEXT): internal/xmalloc.h
enc/trans/gb18030.$(OBJEXT): assert.h
enc/trans/gb18030.$(OBJEXT): backward.h
-enc/trans/gb18030.$(OBJEXT): backward/2/assume.h
-enc/trans/gb18030.$(OBJEXT): backward/2/attributes.h
-enc/trans/gb18030.$(OBJEXT): backward/2/bool.h
-enc/trans/gb18030.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/gb18030.$(OBJEXT): backward/2/inttypes.h
-enc/trans/gb18030.$(OBJEXT): backward/2/limits.h
-enc/trans/gb18030.$(OBJEXT): backward/2/long_long.h
-enc/trans/gb18030.$(OBJEXT): backward/2/stdalign.h
-enc/trans/gb18030.$(OBJEXT): backward/2/stdarg.h
enc/trans/gb18030.$(OBJEXT): config.h
enc/trans/gb18030.$(OBJEXT): defines.h
enc/trans/gb18030.$(OBJEXT): enc/trans/gb18030.c
@@ -3987,157 +505,8 @@ enc/trans/gb18030.$(OBJEXT): st.h
enc/trans/gb18030.$(OBJEXT): subst.h
enc/trans/gbk.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/gbk.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/gbk.$(OBJEXT): internal/anyargs.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/gbk.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/gbk.$(OBJEXT): internal/assume.h
-enc/trans/gbk.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/gbk.$(OBJEXT): internal/attr/artificial.h
-enc/trans/gbk.$(OBJEXT): internal/attr/cold.h
-enc/trans/gbk.$(OBJEXT): internal/attr/const.h
-enc/trans/gbk.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/gbk.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/gbk.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/gbk.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/gbk.$(OBJEXT): internal/attr/error.h
-enc/trans/gbk.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/gbk.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/gbk.$(OBJEXT): internal/attr/format.h
-enc/trans/gbk.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/gbk.$(OBJEXT): internal/attr/noalias.h
-enc/trans/gbk.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/gbk.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/gbk.$(OBJEXT): internal/attr/noinline.h
-enc/trans/gbk.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/gbk.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/gbk.$(OBJEXT): internal/attr/pure.h
-enc/trans/gbk.$(OBJEXT): internal/attr/restrict.h
-enc/trans/gbk.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/gbk.$(OBJEXT): internal/attr/warning.h
-enc/trans/gbk.$(OBJEXT): internal/attr/weakref.h
-enc/trans/gbk.$(OBJEXT): internal/cast.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/gbk.$(OBJEXT): internal/compiler_since.h
-enc/trans/gbk.$(OBJEXT): internal/config.h
-enc/trans/gbk.$(OBJEXT): internal/constant_p.h
-enc/trans/gbk.$(OBJEXT): internal/core.h
-enc/trans/gbk.$(OBJEXT): internal/core/rarray.h
-enc/trans/gbk.$(OBJEXT): internal/core/rbasic.h
-enc/trans/gbk.$(OBJEXT): internal/core/rbignum.h
-enc/trans/gbk.$(OBJEXT): internal/core/rclass.h
-enc/trans/gbk.$(OBJEXT): internal/core/rdata.h
-enc/trans/gbk.$(OBJEXT): internal/core/rfile.h
-enc/trans/gbk.$(OBJEXT): internal/core/rhash.h
-enc/trans/gbk.$(OBJEXT): internal/core/robject.h
-enc/trans/gbk.$(OBJEXT): internal/core/rregexp.h
-enc/trans/gbk.$(OBJEXT): internal/core/rstring.h
-enc/trans/gbk.$(OBJEXT): internal/core/rstruct.h
-enc/trans/gbk.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/gbk.$(OBJEXT): internal/ctype.h
-enc/trans/gbk.$(OBJEXT): internal/dllexport.h
-enc/trans/gbk.$(OBJEXT): internal/dosish.h
-enc/trans/gbk.$(OBJEXT): internal/error.h
-enc/trans/gbk.$(OBJEXT): internal/eval.h
-enc/trans/gbk.$(OBJEXT): internal/event.h
-enc/trans/gbk.$(OBJEXT): internal/fl_type.h
-enc/trans/gbk.$(OBJEXT): internal/gc.h
-enc/trans/gbk.$(OBJEXT): internal/glob.h
-enc/trans/gbk.$(OBJEXT): internal/globals.h
-enc/trans/gbk.$(OBJEXT): internal/has/attribute.h
-enc/trans/gbk.$(OBJEXT): internal/has/builtin.h
-enc/trans/gbk.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/gbk.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/gbk.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/gbk.$(OBJEXT): internal/has/extension.h
-enc/trans/gbk.$(OBJEXT): internal/has/feature.h
-enc/trans/gbk.$(OBJEXT): internal/has/warning.h
-enc/trans/gbk.$(OBJEXT): internal/intern/array.h
-enc/trans/gbk.$(OBJEXT): internal/intern/bignum.h
-enc/trans/gbk.$(OBJEXT): internal/intern/class.h
-enc/trans/gbk.$(OBJEXT): internal/intern/compar.h
-enc/trans/gbk.$(OBJEXT): internal/intern/complex.h
-enc/trans/gbk.$(OBJEXT): internal/intern/cont.h
-enc/trans/gbk.$(OBJEXT): internal/intern/dir.h
-enc/trans/gbk.$(OBJEXT): internal/intern/enum.h
-enc/trans/gbk.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/gbk.$(OBJEXT): internal/intern/error.h
-enc/trans/gbk.$(OBJEXT): internal/intern/eval.h
-enc/trans/gbk.$(OBJEXT): internal/intern/file.h
-enc/trans/gbk.$(OBJEXT): internal/intern/gc.h
-enc/trans/gbk.$(OBJEXT): internal/intern/hash.h
-enc/trans/gbk.$(OBJEXT): internal/intern/io.h
-enc/trans/gbk.$(OBJEXT): internal/intern/load.h
-enc/trans/gbk.$(OBJEXT): internal/intern/marshal.h
-enc/trans/gbk.$(OBJEXT): internal/intern/numeric.h
-enc/trans/gbk.$(OBJEXT): internal/intern/object.h
-enc/trans/gbk.$(OBJEXT): internal/intern/parse.h
-enc/trans/gbk.$(OBJEXT): internal/intern/proc.h
-enc/trans/gbk.$(OBJEXT): internal/intern/process.h
-enc/trans/gbk.$(OBJEXT): internal/intern/random.h
-enc/trans/gbk.$(OBJEXT): internal/intern/range.h
-enc/trans/gbk.$(OBJEXT): internal/intern/rational.h
-enc/trans/gbk.$(OBJEXT): internal/intern/re.h
-enc/trans/gbk.$(OBJEXT): internal/intern/ruby.h
-enc/trans/gbk.$(OBJEXT): internal/intern/select.h
-enc/trans/gbk.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/gbk.$(OBJEXT): internal/intern/signal.h
-enc/trans/gbk.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/gbk.$(OBJEXT): internal/intern/string.h
-enc/trans/gbk.$(OBJEXT): internal/intern/struct.h
-enc/trans/gbk.$(OBJEXT): internal/intern/thread.h
-enc/trans/gbk.$(OBJEXT): internal/intern/time.h
-enc/trans/gbk.$(OBJEXT): internal/intern/variable.h
-enc/trans/gbk.$(OBJEXT): internal/intern/vm.h
-enc/trans/gbk.$(OBJEXT): internal/interpreter.h
-enc/trans/gbk.$(OBJEXT): internal/iterator.h
-enc/trans/gbk.$(OBJEXT): internal/memory.h
-enc/trans/gbk.$(OBJEXT): internal/method.h
-enc/trans/gbk.$(OBJEXT): internal/module.h
-enc/trans/gbk.$(OBJEXT): internal/newobj.h
-enc/trans/gbk.$(OBJEXT): internal/rgengc.h
-enc/trans/gbk.$(OBJEXT): internal/scan_args.h
-enc/trans/gbk.$(OBJEXT): internal/special_consts.h
-enc/trans/gbk.$(OBJEXT): internal/static_assert.h
-enc/trans/gbk.$(OBJEXT): internal/stdalign.h
-enc/trans/gbk.$(OBJEXT): internal/stdbool.h
-enc/trans/gbk.$(OBJEXT): internal/symbol.h
-enc/trans/gbk.$(OBJEXT): internal/token_paste.h
-enc/trans/gbk.$(OBJEXT): internal/value.h
-enc/trans/gbk.$(OBJEXT): internal/value_type.h
-enc/trans/gbk.$(OBJEXT): internal/variable.h
-enc/trans/gbk.$(OBJEXT): internal/warning_push.h
-enc/trans/gbk.$(OBJEXT): internal/xmalloc.h
enc/trans/gbk.$(OBJEXT): assert.h
enc/trans/gbk.$(OBJEXT): backward.h
-enc/trans/gbk.$(OBJEXT): backward/2/assume.h
-enc/trans/gbk.$(OBJEXT): backward/2/attributes.h
-enc/trans/gbk.$(OBJEXT): backward/2/bool.h
-enc/trans/gbk.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/gbk.$(OBJEXT): backward/2/inttypes.h
-enc/trans/gbk.$(OBJEXT): backward/2/limits.h
-enc/trans/gbk.$(OBJEXT): backward/2/long_long.h
-enc/trans/gbk.$(OBJEXT): backward/2/stdalign.h
-enc/trans/gbk.$(OBJEXT): backward/2/stdarg.h
enc/trans/gbk.$(OBJEXT): config.h
enc/trans/gbk.$(OBJEXT): defines.h
enc/trans/gbk.$(OBJEXT): enc/trans/gbk.c
@@ -4147,157 +516,8 @@ enc/trans/gbk.$(OBJEXT): st.h
enc/trans/gbk.$(OBJEXT): subst.h
enc/trans/iso2022.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/iso2022.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/iso2022.$(OBJEXT): internal/anyargs.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/iso2022.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/iso2022.$(OBJEXT): internal/assume.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/artificial.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/cold.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/const.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/error.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/format.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/noalias.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/noinline.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/pure.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/restrict.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/warning.h
-enc/trans/iso2022.$(OBJEXT): internal/attr/weakref.h
-enc/trans/iso2022.$(OBJEXT): internal/cast.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/iso2022.$(OBJEXT): internal/compiler_since.h
-enc/trans/iso2022.$(OBJEXT): internal/config.h
-enc/trans/iso2022.$(OBJEXT): internal/constant_p.h
-enc/trans/iso2022.$(OBJEXT): internal/core.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rarray.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rbasic.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rbignum.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rclass.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rdata.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rfile.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rhash.h
-enc/trans/iso2022.$(OBJEXT): internal/core/robject.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rregexp.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rstring.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rstruct.h
-enc/trans/iso2022.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/iso2022.$(OBJEXT): internal/ctype.h
-enc/trans/iso2022.$(OBJEXT): internal/dllexport.h
-enc/trans/iso2022.$(OBJEXT): internal/dosish.h
-enc/trans/iso2022.$(OBJEXT): internal/error.h
-enc/trans/iso2022.$(OBJEXT): internal/eval.h
-enc/trans/iso2022.$(OBJEXT): internal/event.h
-enc/trans/iso2022.$(OBJEXT): internal/fl_type.h
-enc/trans/iso2022.$(OBJEXT): internal/gc.h
-enc/trans/iso2022.$(OBJEXT): internal/glob.h
-enc/trans/iso2022.$(OBJEXT): internal/globals.h
-enc/trans/iso2022.$(OBJEXT): internal/has/attribute.h
-enc/trans/iso2022.$(OBJEXT): internal/has/builtin.h
-enc/trans/iso2022.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/iso2022.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/iso2022.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/iso2022.$(OBJEXT): internal/has/extension.h
-enc/trans/iso2022.$(OBJEXT): internal/has/feature.h
-enc/trans/iso2022.$(OBJEXT): internal/has/warning.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/array.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/bignum.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/class.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/compar.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/complex.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/cont.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/dir.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/enum.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/error.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/eval.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/file.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/gc.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/hash.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/io.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/load.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/marshal.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/numeric.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/object.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/parse.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/proc.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/process.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/random.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/range.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/rational.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/re.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/ruby.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/select.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/signal.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/string.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/struct.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/thread.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/time.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/variable.h
-enc/trans/iso2022.$(OBJEXT): internal/intern/vm.h
-enc/trans/iso2022.$(OBJEXT): internal/interpreter.h
-enc/trans/iso2022.$(OBJEXT): internal/iterator.h
-enc/trans/iso2022.$(OBJEXT): internal/memory.h
-enc/trans/iso2022.$(OBJEXT): internal/method.h
-enc/trans/iso2022.$(OBJEXT): internal/module.h
-enc/trans/iso2022.$(OBJEXT): internal/newobj.h
-enc/trans/iso2022.$(OBJEXT): internal/rgengc.h
-enc/trans/iso2022.$(OBJEXT): internal/scan_args.h
-enc/trans/iso2022.$(OBJEXT): internal/special_consts.h
-enc/trans/iso2022.$(OBJEXT): internal/static_assert.h
-enc/trans/iso2022.$(OBJEXT): internal/stdalign.h
-enc/trans/iso2022.$(OBJEXT): internal/stdbool.h
-enc/trans/iso2022.$(OBJEXT): internal/symbol.h
-enc/trans/iso2022.$(OBJEXT): internal/token_paste.h
-enc/trans/iso2022.$(OBJEXT): internal/value.h
-enc/trans/iso2022.$(OBJEXT): internal/value_type.h
-enc/trans/iso2022.$(OBJEXT): internal/variable.h
-enc/trans/iso2022.$(OBJEXT): internal/warning_push.h
-enc/trans/iso2022.$(OBJEXT): internal/xmalloc.h
enc/trans/iso2022.$(OBJEXT): assert.h
enc/trans/iso2022.$(OBJEXT): backward.h
-enc/trans/iso2022.$(OBJEXT): backward/2/assume.h
-enc/trans/iso2022.$(OBJEXT): backward/2/attributes.h
-enc/trans/iso2022.$(OBJEXT): backward/2/bool.h
-enc/trans/iso2022.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/iso2022.$(OBJEXT): backward/2/inttypes.h
-enc/trans/iso2022.$(OBJEXT): backward/2/limits.h
-enc/trans/iso2022.$(OBJEXT): backward/2/long_long.h
-enc/trans/iso2022.$(OBJEXT): backward/2/stdalign.h
-enc/trans/iso2022.$(OBJEXT): backward/2/stdarg.h
enc/trans/iso2022.$(OBJEXT): config.h
enc/trans/iso2022.$(OBJEXT): defines.h
enc/trans/iso2022.$(OBJEXT): enc/trans/iso2022.c
@@ -4307,157 +527,8 @@ enc/trans/iso2022.$(OBJEXT): st.h
enc/trans/iso2022.$(OBJEXT): subst.h
enc/trans/japanese.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/japanese.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/japanese.$(OBJEXT): internal/anyargs.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/japanese.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/japanese.$(OBJEXT): internal/assume.h
-enc/trans/japanese.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/japanese.$(OBJEXT): internal/attr/artificial.h
-enc/trans/japanese.$(OBJEXT): internal/attr/cold.h
-enc/trans/japanese.$(OBJEXT): internal/attr/const.h
-enc/trans/japanese.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/japanese.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/japanese.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/japanese.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/japanese.$(OBJEXT): internal/attr/error.h
-enc/trans/japanese.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/japanese.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/japanese.$(OBJEXT): internal/attr/format.h
-enc/trans/japanese.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/japanese.$(OBJEXT): internal/attr/noalias.h
-enc/trans/japanese.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/japanese.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/japanese.$(OBJEXT): internal/attr/noinline.h
-enc/trans/japanese.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/japanese.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/japanese.$(OBJEXT): internal/attr/pure.h
-enc/trans/japanese.$(OBJEXT): internal/attr/restrict.h
-enc/trans/japanese.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/japanese.$(OBJEXT): internal/attr/warning.h
-enc/trans/japanese.$(OBJEXT): internal/attr/weakref.h
-enc/trans/japanese.$(OBJEXT): internal/cast.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/japanese.$(OBJEXT): internal/compiler_since.h
-enc/trans/japanese.$(OBJEXT): internal/config.h
-enc/trans/japanese.$(OBJEXT): internal/constant_p.h
-enc/trans/japanese.$(OBJEXT): internal/core.h
-enc/trans/japanese.$(OBJEXT): internal/core/rarray.h
-enc/trans/japanese.$(OBJEXT): internal/core/rbasic.h
-enc/trans/japanese.$(OBJEXT): internal/core/rbignum.h
-enc/trans/japanese.$(OBJEXT): internal/core/rclass.h
-enc/trans/japanese.$(OBJEXT): internal/core/rdata.h
-enc/trans/japanese.$(OBJEXT): internal/core/rfile.h
-enc/trans/japanese.$(OBJEXT): internal/core/rhash.h
-enc/trans/japanese.$(OBJEXT): internal/core/robject.h
-enc/trans/japanese.$(OBJEXT): internal/core/rregexp.h
-enc/trans/japanese.$(OBJEXT): internal/core/rstring.h
-enc/trans/japanese.$(OBJEXT): internal/core/rstruct.h
-enc/trans/japanese.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/japanese.$(OBJEXT): internal/ctype.h
-enc/trans/japanese.$(OBJEXT): internal/dllexport.h
-enc/trans/japanese.$(OBJEXT): internal/dosish.h
-enc/trans/japanese.$(OBJEXT): internal/error.h
-enc/trans/japanese.$(OBJEXT): internal/eval.h
-enc/trans/japanese.$(OBJEXT): internal/event.h
-enc/trans/japanese.$(OBJEXT): internal/fl_type.h
-enc/trans/japanese.$(OBJEXT): internal/gc.h
-enc/trans/japanese.$(OBJEXT): internal/glob.h
-enc/trans/japanese.$(OBJEXT): internal/globals.h
-enc/trans/japanese.$(OBJEXT): internal/has/attribute.h
-enc/trans/japanese.$(OBJEXT): internal/has/builtin.h
-enc/trans/japanese.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/japanese.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/japanese.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/japanese.$(OBJEXT): internal/has/extension.h
-enc/trans/japanese.$(OBJEXT): internal/has/feature.h
-enc/trans/japanese.$(OBJEXT): internal/has/warning.h
-enc/trans/japanese.$(OBJEXT): internal/intern/array.h
-enc/trans/japanese.$(OBJEXT): internal/intern/bignum.h
-enc/trans/japanese.$(OBJEXT): internal/intern/class.h
-enc/trans/japanese.$(OBJEXT): internal/intern/compar.h
-enc/trans/japanese.$(OBJEXT): internal/intern/complex.h
-enc/trans/japanese.$(OBJEXT): internal/intern/cont.h
-enc/trans/japanese.$(OBJEXT): internal/intern/dir.h
-enc/trans/japanese.$(OBJEXT): internal/intern/enum.h
-enc/trans/japanese.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/japanese.$(OBJEXT): internal/intern/error.h
-enc/trans/japanese.$(OBJEXT): internal/intern/eval.h
-enc/trans/japanese.$(OBJEXT): internal/intern/file.h
-enc/trans/japanese.$(OBJEXT): internal/intern/gc.h
-enc/trans/japanese.$(OBJEXT): internal/intern/hash.h
-enc/trans/japanese.$(OBJEXT): internal/intern/io.h
-enc/trans/japanese.$(OBJEXT): internal/intern/load.h
-enc/trans/japanese.$(OBJEXT): internal/intern/marshal.h
-enc/trans/japanese.$(OBJEXT): internal/intern/numeric.h
-enc/trans/japanese.$(OBJEXT): internal/intern/object.h
-enc/trans/japanese.$(OBJEXT): internal/intern/parse.h
-enc/trans/japanese.$(OBJEXT): internal/intern/proc.h
-enc/trans/japanese.$(OBJEXT): internal/intern/process.h
-enc/trans/japanese.$(OBJEXT): internal/intern/random.h
-enc/trans/japanese.$(OBJEXT): internal/intern/range.h
-enc/trans/japanese.$(OBJEXT): internal/intern/rational.h
-enc/trans/japanese.$(OBJEXT): internal/intern/re.h
-enc/trans/japanese.$(OBJEXT): internal/intern/ruby.h
-enc/trans/japanese.$(OBJEXT): internal/intern/select.h
-enc/trans/japanese.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/japanese.$(OBJEXT): internal/intern/signal.h
-enc/trans/japanese.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/japanese.$(OBJEXT): internal/intern/string.h
-enc/trans/japanese.$(OBJEXT): internal/intern/struct.h
-enc/trans/japanese.$(OBJEXT): internal/intern/thread.h
-enc/trans/japanese.$(OBJEXT): internal/intern/time.h
-enc/trans/japanese.$(OBJEXT): internal/intern/variable.h
-enc/trans/japanese.$(OBJEXT): internal/intern/vm.h
-enc/trans/japanese.$(OBJEXT): internal/interpreter.h
-enc/trans/japanese.$(OBJEXT): internal/iterator.h
-enc/trans/japanese.$(OBJEXT): internal/memory.h
-enc/trans/japanese.$(OBJEXT): internal/method.h
-enc/trans/japanese.$(OBJEXT): internal/module.h
-enc/trans/japanese.$(OBJEXT): internal/newobj.h
-enc/trans/japanese.$(OBJEXT): internal/rgengc.h
-enc/trans/japanese.$(OBJEXT): internal/scan_args.h
-enc/trans/japanese.$(OBJEXT): internal/special_consts.h
-enc/trans/japanese.$(OBJEXT): internal/static_assert.h
-enc/trans/japanese.$(OBJEXT): internal/stdalign.h
-enc/trans/japanese.$(OBJEXT): internal/stdbool.h
-enc/trans/japanese.$(OBJEXT): internal/symbol.h
-enc/trans/japanese.$(OBJEXT): internal/token_paste.h
-enc/trans/japanese.$(OBJEXT): internal/value.h
-enc/trans/japanese.$(OBJEXT): internal/value_type.h
-enc/trans/japanese.$(OBJEXT): internal/variable.h
-enc/trans/japanese.$(OBJEXT): internal/warning_push.h
-enc/trans/japanese.$(OBJEXT): internal/xmalloc.h
enc/trans/japanese.$(OBJEXT): assert.h
enc/trans/japanese.$(OBJEXT): backward.h
-enc/trans/japanese.$(OBJEXT): backward/2/assume.h
-enc/trans/japanese.$(OBJEXT): backward/2/attributes.h
-enc/trans/japanese.$(OBJEXT): backward/2/bool.h
-enc/trans/japanese.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/japanese.$(OBJEXT): backward/2/inttypes.h
-enc/trans/japanese.$(OBJEXT): backward/2/limits.h
-enc/trans/japanese.$(OBJEXT): backward/2/long_long.h
-enc/trans/japanese.$(OBJEXT): backward/2/stdalign.h
-enc/trans/japanese.$(OBJEXT): backward/2/stdarg.h
enc/trans/japanese.$(OBJEXT): config.h
enc/trans/japanese.$(OBJEXT): defines.h
enc/trans/japanese.$(OBJEXT): enc/trans/japanese.c
@@ -4467,157 +538,8 @@ enc/trans/japanese.$(OBJEXT): st.h
enc/trans/japanese.$(OBJEXT): subst.h
enc/trans/japanese_euc.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/japanese_euc.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/japanese_euc.$(OBJEXT): internal/anyargs.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/japanese_euc.$(OBJEXT): internal/assume.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/artificial.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/cold.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/const.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/error.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/format.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/noalias.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/noinline.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/pure.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/restrict.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/warning.h
-enc/trans/japanese_euc.$(OBJEXT): internal/attr/weakref.h
-enc/trans/japanese_euc.$(OBJEXT): internal/cast.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/japanese_euc.$(OBJEXT): internal/compiler_since.h
-enc/trans/japanese_euc.$(OBJEXT): internal/config.h
-enc/trans/japanese_euc.$(OBJEXT): internal/constant_p.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rarray.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rbasic.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rbignum.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rclass.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rdata.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rfile.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rhash.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/robject.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rregexp.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rstring.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rstruct.h
-enc/trans/japanese_euc.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/japanese_euc.$(OBJEXT): internal/ctype.h
-enc/trans/japanese_euc.$(OBJEXT): internal/dllexport.h
-enc/trans/japanese_euc.$(OBJEXT): internal/dosish.h
-enc/trans/japanese_euc.$(OBJEXT): internal/error.h
-enc/trans/japanese_euc.$(OBJEXT): internal/eval.h
-enc/trans/japanese_euc.$(OBJEXT): internal/event.h
-enc/trans/japanese_euc.$(OBJEXT): internal/fl_type.h
-enc/trans/japanese_euc.$(OBJEXT): internal/gc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/glob.h
-enc/trans/japanese_euc.$(OBJEXT): internal/globals.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/attribute.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/builtin.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/extension.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/feature.h
-enc/trans/japanese_euc.$(OBJEXT): internal/has/warning.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/array.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/bignum.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/class.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/compar.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/complex.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/cont.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/dir.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/enum.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/error.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/eval.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/file.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/gc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/hash.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/io.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/load.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/marshal.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/numeric.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/object.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/parse.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/proc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/process.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/random.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/range.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/rational.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/re.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/ruby.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/select.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/signal.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/string.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/struct.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/thread.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/time.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/variable.h
-enc/trans/japanese_euc.$(OBJEXT): internal/intern/vm.h
-enc/trans/japanese_euc.$(OBJEXT): internal/interpreter.h
-enc/trans/japanese_euc.$(OBJEXT): internal/iterator.h
-enc/trans/japanese_euc.$(OBJEXT): internal/memory.h
-enc/trans/japanese_euc.$(OBJEXT): internal/method.h
-enc/trans/japanese_euc.$(OBJEXT): internal/module.h
-enc/trans/japanese_euc.$(OBJEXT): internal/newobj.h
-enc/trans/japanese_euc.$(OBJEXT): internal/rgengc.h
-enc/trans/japanese_euc.$(OBJEXT): internal/scan_args.h
-enc/trans/japanese_euc.$(OBJEXT): internal/special_consts.h
-enc/trans/japanese_euc.$(OBJEXT): internal/static_assert.h
-enc/trans/japanese_euc.$(OBJEXT): internal/stdalign.h
-enc/trans/japanese_euc.$(OBJEXT): internal/stdbool.h
-enc/trans/japanese_euc.$(OBJEXT): internal/symbol.h
-enc/trans/japanese_euc.$(OBJEXT): internal/token_paste.h
-enc/trans/japanese_euc.$(OBJEXT): internal/value.h
-enc/trans/japanese_euc.$(OBJEXT): internal/value_type.h
-enc/trans/japanese_euc.$(OBJEXT): internal/variable.h
-enc/trans/japanese_euc.$(OBJEXT): internal/warning_push.h
-enc/trans/japanese_euc.$(OBJEXT): internal/xmalloc.h
enc/trans/japanese_euc.$(OBJEXT): assert.h
enc/trans/japanese_euc.$(OBJEXT): backward.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/assume.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/attributes.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/bool.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/inttypes.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/limits.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/long_long.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/stdalign.h
-enc/trans/japanese_euc.$(OBJEXT): backward/2/stdarg.h
enc/trans/japanese_euc.$(OBJEXT): config.h
enc/trans/japanese_euc.$(OBJEXT): defines.h
enc/trans/japanese_euc.$(OBJEXT): enc/trans/japanese_euc.c
@@ -4627,157 +549,8 @@ enc/trans/japanese_euc.$(OBJEXT): st.h
enc/trans/japanese_euc.$(OBJEXT): subst.h
enc/trans/japanese_sjis.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/japanese_sjis.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/anyargs.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/assume.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/artificial.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/cold.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/const.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/error.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/format.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noalias.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noinline.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/pure.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/restrict.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/warning.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/attr/weakref.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/cast.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_since.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/config.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/constant_p.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rarray.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rbasic.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rbignum.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rclass.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rdata.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rfile.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rhash.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/robject.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rregexp.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rstring.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rstruct.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/ctype.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/dllexport.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/dosish.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/error.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/eval.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/event.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/fl_type.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/gc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/glob.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/globals.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/attribute.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/builtin.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/extension.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/feature.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/has/warning.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/array.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/bignum.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/class.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/compar.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/complex.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/cont.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/dir.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/enum.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/error.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/eval.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/file.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/gc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/hash.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/io.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/load.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/marshal.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/numeric.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/object.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/parse.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/proc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/process.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/random.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/range.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/rational.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/re.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/ruby.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/select.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/signal.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/string.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/struct.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/thread.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/time.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/variable.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/intern/vm.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/interpreter.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/iterator.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/memory.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/method.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/module.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/newobj.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/rgengc.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/scan_args.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/special_consts.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/static_assert.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/stdalign.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/stdbool.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/symbol.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/token_paste.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/value.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/value_type.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/variable.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/warning_push.h
-enc/trans/japanese_sjis.$(OBJEXT): internal/xmalloc.h
enc/trans/japanese_sjis.$(OBJEXT): assert.h
enc/trans/japanese_sjis.$(OBJEXT): backward.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/assume.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/attributes.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/bool.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/inttypes.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/limits.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/long_long.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/stdalign.h
-enc/trans/japanese_sjis.$(OBJEXT): backward/2/stdarg.h
enc/trans/japanese_sjis.$(OBJEXT): config.h
enc/trans/japanese_sjis.$(OBJEXT): defines.h
enc/trans/japanese_sjis.$(OBJEXT): enc/trans/japanese_sjis.c
@@ -4787,157 +560,8 @@ enc/trans/japanese_sjis.$(OBJEXT): st.h
enc/trans/japanese_sjis.$(OBJEXT): subst.h
enc/trans/korean.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/korean.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/korean.$(OBJEXT): internal/anyargs.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/korean.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/korean.$(OBJEXT): internal/assume.h
-enc/trans/korean.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/korean.$(OBJEXT): internal/attr/artificial.h
-enc/trans/korean.$(OBJEXT): internal/attr/cold.h
-enc/trans/korean.$(OBJEXT): internal/attr/const.h
-enc/trans/korean.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/korean.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/korean.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/korean.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/korean.$(OBJEXT): internal/attr/error.h
-enc/trans/korean.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/korean.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/korean.$(OBJEXT): internal/attr/format.h
-enc/trans/korean.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/korean.$(OBJEXT): internal/attr/noalias.h
-enc/trans/korean.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/korean.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/korean.$(OBJEXT): internal/attr/noinline.h
-enc/trans/korean.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/korean.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/korean.$(OBJEXT): internal/attr/pure.h
-enc/trans/korean.$(OBJEXT): internal/attr/restrict.h
-enc/trans/korean.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/korean.$(OBJEXT): internal/attr/warning.h
-enc/trans/korean.$(OBJEXT): internal/attr/weakref.h
-enc/trans/korean.$(OBJEXT): internal/cast.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/korean.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/korean.$(OBJEXT): internal/compiler_since.h
-enc/trans/korean.$(OBJEXT): internal/config.h
-enc/trans/korean.$(OBJEXT): internal/constant_p.h
-enc/trans/korean.$(OBJEXT): internal/core.h
-enc/trans/korean.$(OBJEXT): internal/core/rarray.h
-enc/trans/korean.$(OBJEXT): internal/core/rbasic.h
-enc/trans/korean.$(OBJEXT): internal/core/rbignum.h
-enc/trans/korean.$(OBJEXT): internal/core/rclass.h
-enc/trans/korean.$(OBJEXT): internal/core/rdata.h
-enc/trans/korean.$(OBJEXT): internal/core/rfile.h
-enc/trans/korean.$(OBJEXT): internal/core/rhash.h
-enc/trans/korean.$(OBJEXT): internal/core/robject.h
-enc/trans/korean.$(OBJEXT): internal/core/rregexp.h
-enc/trans/korean.$(OBJEXT): internal/core/rstring.h
-enc/trans/korean.$(OBJEXT): internal/core/rstruct.h
-enc/trans/korean.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/korean.$(OBJEXT): internal/ctype.h
-enc/trans/korean.$(OBJEXT): internal/dllexport.h
-enc/trans/korean.$(OBJEXT): internal/dosish.h
-enc/trans/korean.$(OBJEXT): internal/error.h
-enc/trans/korean.$(OBJEXT): internal/eval.h
-enc/trans/korean.$(OBJEXT): internal/event.h
-enc/trans/korean.$(OBJEXT): internal/fl_type.h
-enc/trans/korean.$(OBJEXT): internal/gc.h
-enc/trans/korean.$(OBJEXT): internal/glob.h
-enc/trans/korean.$(OBJEXT): internal/globals.h
-enc/trans/korean.$(OBJEXT): internal/has/attribute.h
-enc/trans/korean.$(OBJEXT): internal/has/builtin.h
-enc/trans/korean.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/korean.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/korean.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/korean.$(OBJEXT): internal/has/extension.h
-enc/trans/korean.$(OBJEXT): internal/has/feature.h
-enc/trans/korean.$(OBJEXT): internal/has/warning.h
-enc/trans/korean.$(OBJEXT): internal/intern/array.h
-enc/trans/korean.$(OBJEXT): internal/intern/bignum.h
-enc/trans/korean.$(OBJEXT): internal/intern/class.h
-enc/trans/korean.$(OBJEXT): internal/intern/compar.h
-enc/trans/korean.$(OBJEXT): internal/intern/complex.h
-enc/trans/korean.$(OBJEXT): internal/intern/cont.h
-enc/trans/korean.$(OBJEXT): internal/intern/dir.h
-enc/trans/korean.$(OBJEXT): internal/intern/enum.h
-enc/trans/korean.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/korean.$(OBJEXT): internal/intern/error.h
-enc/trans/korean.$(OBJEXT): internal/intern/eval.h
-enc/trans/korean.$(OBJEXT): internal/intern/file.h
-enc/trans/korean.$(OBJEXT): internal/intern/gc.h
-enc/trans/korean.$(OBJEXT): internal/intern/hash.h
-enc/trans/korean.$(OBJEXT): internal/intern/io.h
-enc/trans/korean.$(OBJEXT): internal/intern/load.h
-enc/trans/korean.$(OBJEXT): internal/intern/marshal.h
-enc/trans/korean.$(OBJEXT): internal/intern/numeric.h
-enc/trans/korean.$(OBJEXT): internal/intern/object.h
-enc/trans/korean.$(OBJEXT): internal/intern/parse.h
-enc/trans/korean.$(OBJEXT): internal/intern/proc.h
-enc/trans/korean.$(OBJEXT): internal/intern/process.h
-enc/trans/korean.$(OBJEXT): internal/intern/random.h
-enc/trans/korean.$(OBJEXT): internal/intern/range.h
-enc/trans/korean.$(OBJEXT): internal/intern/rational.h
-enc/trans/korean.$(OBJEXT): internal/intern/re.h
-enc/trans/korean.$(OBJEXT): internal/intern/ruby.h
-enc/trans/korean.$(OBJEXT): internal/intern/select.h
-enc/trans/korean.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/korean.$(OBJEXT): internal/intern/signal.h
-enc/trans/korean.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/korean.$(OBJEXT): internal/intern/string.h
-enc/trans/korean.$(OBJEXT): internal/intern/struct.h
-enc/trans/korean.$(OBJEXT): internal/intern/thread.h
-enc/trans/korean.$(OBJEXT): internal/intern/time.h
-enc/trans/korean.$(OBJEXT): internal/intern/variable.h
-enc/trans/korean.$(OBJEXT): internal/intern/vm.h
-enc/trans/korean.$(OBJEXT): internal/interpreter.h
-enc/trans/korean.$(OBJEXT): internal/iterator.h
-enc/trans/korean.$(OBJEXT): internal/memory.h
-enc/trans/korean.$(OBJEXT): internal/method.h
-enc/trans/korean.$(OBJEXT): internal/module.h
-enc/trans/korean.$(OBJEXT): internal/newobj.h
-enc/trans/korean.$(OBJEXT): internal/rgengc.h
-enc/trans/korean.$(OBJEXT): internal/scan_args.h
-enc/trans/korean.$(OBJEXT): internal/special_consts.h
-enc/trans/korean.$(OBJEXT): internal/static_assert.h
-enc/trans/korean.$(OBJEXT): internal/stdalign.h
-enc/trans/korean.$(OBJEXT): internal/stdbool.h
-enc/trans/korean.$(OBJEXT): internal/symbol.h
-enc/trans/korean.$(OBJEXT): internal/token_paste.h
-enc/trans/korean.$(OBJEXT): internal/value.h
-enc/trans/korean.$(OBJEXT): internal/value_type.h
-enc/trans/korean.$(OBJEXT): internal/variable.h
-enc/trans/korean.$(OBJEXT): internal/warning_push.h
-enc/trans/korean.$(OBJEXT): internal/xmalloc.h
enc/trans/korean.$(OBJEXT): assert.h
enc/trans/korean.$(OBJEXT): backward.h
-enc/trans/korean.$(OBJEXT): backward/2/assume.h
-enc/trans/korean.$(OBJEXT): backward/2/attributes.h
-enc/trans/korean.$(OBJEXT): backward/2/bool.h
-enc/trans/korean.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/korean.$(OBJEXT): backward/2/inttypes.h
-enc/trans/korean.$(OBJEXT): backward/2/limits.h
-enc/trans/korean.$(OBJEXT): backward/2/long_long.h
-enc/trans/korean.$(OBJEXT): backward/2/stdalign.h
-enc/trans/korean.$(OBJEXT): backward/2/stdarg.h
enc/trans/korean.$(OBJEXT): config.h
enc/trans/korean.$(OBJEXT): defines.h
enc/trans/korean.$(OBJEXT): enc/trans/korean.c
@@ -4947,156 +571,7 @@ enc/trans/korean.$(OBJEXT): st.h
enc/trans/korean.$(OBJEXT): subst.h
enc/trans/newline.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/newline.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/newline.$(OBJEXT): internal/anyargs.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/newline.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/newline.$(OBJEXT): internal/assume.h
-enc/trans/newline.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/newline.$(OBJEXT): internal/attr/artificial.h
-enc/trans/newline.$(OBJEXT): internal/attr/cold.h
-enc/trans/newline.$(OBJEXT): internal/attr/const.h
-enc/trans/newline.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/newline.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/newline.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/newline.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/newline.$(OBJEXT): internal/attr/error.h
-enc/trans/newline.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/newline.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/newline.$(OBJEXT): internal/attr/format.h
-enc/trans/newline.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/newline.$(OBJEXT): internal/attr/noalias.h
-enc/trans/newline.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/newline.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/newline.$(OBJEXT): internal/attr/noinline.h
-enc/trans/newline.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/newline.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/newline.$(OBJEXT): internal/attr/pure.h
-enc/trans/newline.$(OBJEXT): internal/attr/restrict.h
-enc/trans/newline.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/newline.$(OBJEXT): internal/attr/warning.h
-enc/trans/newline.$(OBJEXT): internal/attr/weakref.h
-enc/trans/newline.$(OBJEXT): internal/cast.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/newline.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/newline.$(OBJEXT): internal/compiler_since.h
-enc/trans/newline.$(OBJEXT): internal/config.h
-enc/trans/newline.$(OBJEXT): internal/constant_p.h
-enc/trans/newline.$(OBJEXT): internal/core.h
-enc/trans/newline.$(OBJEXT): internal/core/rarray.h
-enc/trans/newline.$(OBJEXT): internal/core/rbasic.h
-enc/trans/newline.$(OBJEXT): internal/core/rbignum.h
-enc/trans/newline.$(OBJEXT): internal/core/rclass.h
-enc/trans/newline.$(OBJEXT): internal/core/rdata.h
-enc/trans/newline.$(OBJEXT): internal/core/rfile.h
-enc/trans/newline.$(OBJEXT): internal/core/rhash.h
-enc/trans/newline.$(OBJEXT): internal/core/robject.h
-enc/trans/newline.$(OBJEXT): internal/core/rregexp.h
-enc/trans/newline.$(OBJEXT): internal/core/rstring.h
-enc/trans/newline.$(OBJEXT): internal/core/rstruct.h
-enc/trans/newline.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/newline.$(OBJEXT): internal/ctype.h
-enc/trans/newline.$(OBJEXT): internal/dllexport.h
-enc/trans/newline.$(OBJEXT): internal/dosish.h
-enc/trans/newline.$(OBJEXT): internal/error.h
-enc/trans/newline.$(OBJEXT): internal/eval.h
-enc/trans/newline.$(OBJEXT): internal/event.h
-enc/trans/newline.$(OBJEXT): internal/fl_type.h
-enc/trans/newline.$(OBJEXT): internal/gc.h
-enc/trans/newline.$(OBJEXT): internal/glob.h
-enc/trans/newline.$(OBJEXT): internal/globals.h
-enc/trans/newline.$(OBJEXT): internal/has/attribute.h
-enc/trans/newline.$(OBJEXT): internal/has/builtin.h
-enc/trans/newline.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/newline.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/newline.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/newline.$(OBJEXT): internal/has/extension.h
-enc/trans/newline.$(OBJEXT): internal/has/feature.h
-enc/trans/newline.$(OBJEXT): internal/has/warning.h
-enc/trans/newline.$(OBJEXT): internal/intern/array.h
-enc/trans/newline.$(OBJEXT): internal/intern/bignum.h
-enc/trans/newline.$(OBJEXT): internal/intern/class.h
-enc/trans/newline.$(OBJEXT): internal/intern/compar.h
-enc/trans/newline.$(OBJEXT): internal/intern/complex.h
-enc/trans/newline.$(OBJEXT): internal/intern/cont.h
-enc/trans/newline.$(OBJEXT): internal/intern/dir.h
-enc/trans/newline.$(OBJEXT): internal/intern/enum.h
-enc/trans/newline.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/newline.$(OBJEXT): internal/intern/error.h
-enc/trans/newline.$(OBJEXT): internal/intern/eval.h
-enc/trans/newline.$(OBJEXT): internal/intern/file.h
-enc/trans/newline.$(OBJEXT): internal/intern/gc.h
-enc/trans/newline.$(OBJEXT): internal/intern/hash.h
-enc/trans/newline.$(OBJEXT): internal/intern/io.h
-enc/trans/newline.$(OBJEXT): internal/intern/load.h
-enc/trans/newline.$(OBJEXT): internal/intern/marshal.h
-enc/trans/newline.$(OBJEXT): internal/intern/numeric.h
-enc/trans/newline.$(OBJEXT): internal/intern/object.h
-enc/trans/newline.$(OBJEXT): internal/intern/parse.h
-enc/trans/newline.$(OBJEXT): internal/intern/proc.h
-enc/trans/newline.$(OBJEXT): internal/intern/process.h
-enc/trans/newline.$(OBJEXT): internal/intern/random.h
-enc/trans/newline.$(OBJEXT): internal/intern/range.h
-enc/trans/newline.$(OBJEXT): internal/intern/rational.h
-enc/trans/newline.$(OBJEXT): internal/intern/re.h
-enc/trans/newline.$(OBJEXT): internal/intern/ruby.h
-enc/trans/newline.$(OBJEXT): internal/intern/select.h
-enc/trans/newline.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/newline.$(OBJEXT): internal/intern/signal.h
-enc/trans/newline.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/newline.$(OBJEXT): internal/intern/string.h
-enc/trans/newline.$(OBJEXT): internal/intern/struct.h
-enc/trans/newline.$(OBJEXT): internal/intern/thread.h
-enc/trans/newline.$(OBJEXT): internal/intern/time.h
-enc/trans/newline.$(OBJEXT): internal/intern/variable.h
-enc/trans/newline.$(OBJEXT): internal/intern/vm.h
-enc/trans/newline.$(OBJEXT): internal/interpreter.h
-enc/trans/newline.$(OBJEXT): internal/iterator.h
-enc/trans/newline.$(OBJEXT): internal/memory.h
-enc/trans/newline.$(OBJEXT): internal/method.h
-enc/trans/newline.$(OBJEXT): internal/module.h
-enc/trans/newline.$(OBJEXT): internal/newobj.h
-enc/trans/newline.$(OBJEXT): internal/rgengc.h
-enc/trans/newline.$(OBJEXT): internal/scan_args.h
-enc/trans/newline.$(OBJEXT): internal/special_consts.h
-enc/trans/newline.$(OBJEXT): internal/static_assert.h
-enc/trans/newline.$(OBJEXT): internal/stdalign.h
-enc/trans/newline.$(OBJEXT): internal/stdbool.h
-enc/trans/newline.$(OBJEXT): internal/symbol.h
-enc/trans/newline.$(OBJEXT): internal/token_paste.h
-enc/trans/newline.$(OBJEXT): internal/value.h
-enc/trans/newline.$(OBJEXT): internal/value_type.h
-enc/trans/newline.$(OBJEXT): internal/variable.h
-enc/trans/newline.$(OBJEXT): internal/warning_push.h
-enc/trans/newline.$(OBJEXT): internal/xmalloc.h
enc/trans/newline.$(OBJEXT): assert.h
-enc/trans/newline.$(OBJEXT): backward/2/assume.h
-enc/trans/newline.$(OBJEXT): backward/2/attributes.h
-enc/trans/newline.$(OBJEXT): backward/2/bool.h
-enc/trans/newline.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/newline.$(OBJEXT): backward/2/inttypes.h
-enc/trans/newline.$(OBJEXT): backward/2/limits.h
-enc/trans/newline.$(OBJEXT): backward/2/long_long.h
-enc/trans/newline.$(OBJEXT): backward/2/stdalign.h
-enc/trans/newline.$(OBJEXT): backward/2/stdarg.h
enc/trans/newline.$(OBJEXT): config.h
enc/trans/newline.$(OBJEXT): defines.h
enc/trans/newline.$(OBJEXT): enc/trans/newline.c
@@ -5106,157 +581,8 @@ enc/trans/newline.$(OBJEXT): st.h
enc/trans/newline.$(OBJEXT): subst.h
enc/trans/single_byte.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/single_byte.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/single_byte.$(OBJEXT): internal/anyargs.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/single_byte.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/single_byte.$(OBJEXT): internal/assume.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/artificial.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/cold.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/const.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/error.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/format.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/noalias.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/noinline.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/pure.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/restrict.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/warning.h
-enc/trans/single_byte.$(OBJEXT): internal/attr/weakref.h
-enc/trans/single_byte.$(OBJEXT): internal/cast.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/single_byte.$(OBJEXT): internal/compiler_since.h
-enc/trans/single_byte.$(OBJEXT): internal/config.h
-enc/trans/single_byte.$(OBJEXT): internal/constant_p.h
-enc/trans/single_byte.$(OBJEXT): internal/core.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rarray.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rbasic.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rbignum.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rclass.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rdata.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rfile.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rhash.h
-enc/trans/single_byte.$(OBJEXT): internal/core/robject.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rregexp.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rstring.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rstruct.h
-enc/trans/single_byte.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/single_byte.$(OBJEXT): internal/ctype.h
-enc/trans/single_byte.$(OBJEXT): internal/dllexport.h
-enc/trans/single_byte.$(OBJEXT): internal/dosish.h
-enc/trans/single_byte.$(OBJEXT): internal/error.h
-enc/trans/single_byte.$(OBJEXT): internal/eval.h
-enc/trans/single_byte.$(OBJEXT): internal/event.h
-enc/trans/single_byte.$(OBJEXT): internal/fl_type.h
-enc/trans/single_byte.$(OBJEXT): internal/gc.h
-enc/trans/single_byte.$(OBJEXT): internal/glob.h
-enc/trans/single_byte.$(OBJEXT): internal/globals.h
-enc/trans/single_byte.$(OBJEXT): internal/has/attribute.h
-enc/trans/single_byte.$(OBJEXT): internal/has/builtin.h
-enc/trans/single_byte.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/single_byte.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/single_byte.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/single_byte.$(OBJEXT): internal/has/extension.h
-enc/trans/single_byte.$(OBJEXT): internal/has/feature.h
-enc/trans/single_byte.$(OBJEXT): internal/has/warning.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/array.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/bignum.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/class.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/compar.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/complex.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/cont.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/dir.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/enum.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/error.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/eval.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/file.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/gc.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/hash.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/io.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/load.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/marshal.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/numeric.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/object.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/parse.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/proc.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/process.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/random.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/range.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/rational.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/re.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/ruby.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/select.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/signal.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/string.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/struct.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/thread.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/time.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/variable.h
-enc/trans/single_byte.$(OBJEXT): internal/intern/vm.h
-enc/trans/single_byte.$(OBJEXT): internal/interpreter.h
-enc/trans/single_byte.$(OBJEXT): internal/iterator.h
-enc/trans/single_byte.$(OBJEXT): internal/memory.h
-enc/trans/single_byte.$(OBJEXT): internal/method.h
-enc/trans/single_byte.$(OBJEXT): internal/module.h
-enc/trans/single_byte.$(OBJEXT): internal/newobj.h
-enc/trans/single_byte.$(OBJEXT): internal/rgengc.h
-enc/trans/single_byte.$(OBJEXT): internal/scan_args.h
-enc/trans/single_byte.$(OBJEXT): internal/special_consts.h
-enc/trans/single_byte.$(OBJEXT): internal/static_assert.h
-enc/trans/single_byte.$(OBJEXT): internal/stdalign.h
-enc/trans/single_byte.$(OBJEXT): internal/stdbool.h
-enc/trans/single_byte.$(OBJEXT): internal/symbol.h
-enc/trans/single_byte.$(OBJEXT): internal/token_paste.h
-enc/trans/single_byte.$(OBJEXT): internal/value.h
-enc/trans/single_byte.$(OBJEXT): internal/value_type.h
-enc/trans/single_byte.$(OBJEXT): internal/variable.h
-enc/trans/single_byte.$(OBJEXT): internal/warning_push.h
-enc/trans/single_byte.$(OBJEXT): internal/xmalloc.h
enc/trans/single_byte.$(OBJEXT): assert.h
enc/trans/single_byte.$(OBJEXT): backward.h
-enc/trans/single_byte.$(OBJEXT): backward/2/assume.h
-enc/trans/single_byte.$(OBJEXT): backward/2/attributes.h
-enc/trans/single_byte.$(OBJEXT): backward/2/bool.h
-enc/trans/single_byte.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/single_byte.$(OBJEXT): backward/2/inttypes.h
-enc/trans/single_byte.$(OBJEXT): backward/2/limits.h
-enc/trans/single_byte.$(OBJEXT): backward/2/long_long.h
-enc/trans/single_byte.$(OBJEXT): backward/2/stdalign.h
-enc/trans/single_byte.$(OBJEXT): backward/2/stdarg.h
enc/trans/single_byte.$(OBJEXT): config.h
enc/trans/single_byte.$(OBJEXT): defines.h
enc/trans/single_byte.$(OBJEXT): enc/trans/single_byte.c
@@ -5268,157 +594,8 @@ enc/trans/transdb.$(OBJEXT): enc/trans/transdb.c
enc/trans/transdb.$(OBJEXT): transdb.h
enc/trans/utf8_mac.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/utf8_mac.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/utf8_mac.$(OBJEXT): internal/anyargs.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/utf8_mac.$(OBJEXT): internal/assume.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/artificial.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/cold.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/const.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/error.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/format.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/noalias.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/noinline.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/pure.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/restrict.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/warning.h
-enc/trans/utf8_mac.$(OBJEXT): internal/attr/weakref.h
-enc/trans/utf8_mac.$(OBJEXT): internal/cast.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/utf8_mac.$(OBJEXT): internal/compiler_since.h
-enc/trans/utf8_mac.$(OBJEXT): internal/config.h
-enc/trans/utf8_mac.$(OBJEXT): internal/constant_p.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rarray.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rbasic.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rbignum.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rclass.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rdata.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rfile.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rhash.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/robject.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rregexp.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rstring.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rstruct.h
-enc/trans/utf8_mac.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/utf8_mac.$(OBJEXT): internal/ctype.h
-enc/trans/utf8_mac.$(OBJEXT): internal/dllexport.h
-enc/trans/utf8_mac.$(OBJEXT): internal/dosish.h
-enc/trans/utf8_mac.$(OBJEXT): internal/error.h
-enc/trans/utf8_mac.$(OBJEXT): internal/eval.h
-enc/trans/utf8_mac.$(OBJEXT): internal/event.h
-enc/trans/utf8_mac.$(OBJEXT): internal/fl_type.h
-enc/trans/utf8_mac.$(OBJEXT): internal/gc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/glob.h
-enc/trans/utf8_mac.$(OBJEXT): internal/globals.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/attribute.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/builtin.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/extension.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/feature.h
-enc/trans/utf8_mac.$(OBJEXT): internal/has/warning.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/array.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/bignum.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/class.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/compar.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/complex.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/cont.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/dir.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/enum.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/error.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/eval.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/file.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/gc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/hash.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/io.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/load.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/marshal.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/numeric.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/object.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/parse.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/proc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/process.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/random.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/range.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/rational.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/re.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/ruby.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/select.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/signal.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/string.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/struct.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/thread.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/time.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/variable.h
-enc/trans/utf8_mac.$(OBJEXT): internal/intern/vm.h
-enc/trans/utf8_mac.$(OBJEXT): internal/interpreter.h
-enc/trans/utf8_mac.$(OBJEXT): internal/iterator.h
-enc/trans/utf8_mac.$(OBJEXT): internal/memory.h
-enc/trans/utf8_mac.$(OBJEXT): internal/method.h
-enc/trans/utf8_mac.$(OBJEXT): internal/module.h
-enc/trans/utf8_mac.$(OBJEXT): internal/newobj.h
-enc/trans/utf8_mac.$(OBJEXT): internal/rgengc.h
-enc/trans/utf8_mac.$(OBJEXT): internal/scan_args.h
-enc/trans/utf8_mac.$(OBJEXT): internal/special_consts.h
-enc/trans/utf8_mac.$(OBJEXT): internal/static_assert.h
-enc/trans/utf8_mac.$(OBJEXT): internal/stdalign.h
-enc/trans/utf8_mac.$(OBJEXT): internal/stdbool.h
-enc/trans/utf8_mac.$(OBJEXT): internal/symbol.h
-enc/trans/utf8_mac.$(OBJEXT): internal/token_paste.h
-enc/trans/utf8_mac.$(OBJEXT): internal/value.h
-enc/trans/utf8_mac.$(OBJEXT): internal/value_type.h
-enc/trans/utf8_mac.$(OBJEXT): internal/variable.h
-enc/trans/utf8_mac.$(OBJEXT): internal/warning_push.h
-enc/trans/utf8_mac.$(OBJEXT): internal/xmalloc.h
enc/trans/utf8_mac.$(OBJEXT): assert.h
enc/trans/utf8_mac.$(OBJEXT): backward.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/assume.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/attributes.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/bool.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/inttypes.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/limits.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/long_long.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/stdalign.h
-enc/trans/utf8_mac.$(OBJEXT): backward/2/stdarg.h
enc/trans/utf8_mac.$(OBJEXT): config.h
enc/trans/utf8_mac.$(OBJEXT): defines.h
enc/trans/utf8_mac.$(OBJEXT): enc/trans/utf8_mac.c
@@ -5428,157 +605,8 @@ enc/trans/utf8_mac.$(OBJEXT): st.h
enc/trans/utf8_mac.$(OBJEXT): subst.h
enc/trans/utf_16_32.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/trans/utf_16_32.$(OBJEXT): $(top_srcdir)/transcode_data.h
-enc/trans/utf_16_32.$(OBJEXT): internal/anyargs.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/char.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/double.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/int.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/long.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/long_long.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/off_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/short.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/size_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/trans/utf_16_32.$(OBJEXT): internal/assume.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/alloc_size.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/artificial.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/cold.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/const.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/constexpr.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/deprecated.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/diagnose_if.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/error.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/flag_enum.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/forceinline.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/format.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/maybe_unused.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/noalias.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/nodiscard.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/noexcept.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/noinline.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/nonnull.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/noreturn.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/pure.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/restrict.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/warning.h
-enc/trans/utf_16_32.$(OBJEXT): internal/attr/weakref.h
-enc/trans/utf_16_32.$(OBJEXT): internal/cast.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/apple.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/clang.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/gcc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/intel.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/msvc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/trans/utf_16_32.$(OBJEXT): internal/compiler_since.h
-enc/trans/utf_16_32.$(OBJEXT): internal/config.h
-enc/trans/utf_16_32.$(OBJEXT): internal/constant_p.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rarray.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rbasic.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rbignum.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rclass.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rdata.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rfile.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rhash.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/robject.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rregexp.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rstring.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rstruct.h
-enc/trans/utf_16_32.$(OBJEXT): internal/core/rtypeddata.h
-enc/trans/utf_16_32.$(OBJEXT): internal/ctype.h
-enc/trans/utf_16_32.$(OBJEXT): internal/dllexport.h
-enc/trans/utf_16_32.$(OBJEXT): internal/dosish.h
-enc/trans/utf_16_32.$(OBJEXT): internal/error.h
-enc/trans/utf_16_32.$(OBJEXT): internal/eval.h
-enc/trans/utf_16_32.$(OBJEXT): internal/event.h
-enc/trans/utf_16_32.$(OBJEXT): internal/fl_type.h
-enc/trans/utf_16_32.$(OBJEXT): internal/gc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/glob.h
-enc/trans/utf_16_32.$(OBJEXT): internal/globals.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/attribute.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/builtin.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/c_attribute.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/cpp_attribute.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/declspec_attribute.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/extension.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/feature.h
-enc/trans/utf_16_32.$(OBJEXT): internal/has/warning.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/array.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/bignum.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/class.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/compar.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/complex.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/cont.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/dir.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/enum.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/enumerator.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/error.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/eval.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/file.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/gc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/hash.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/io.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/load.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/marshal.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/numeric.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/object.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/parse.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/proc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/process.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/random.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/range.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/rational.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/re.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/ruby.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/select.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/select/largesize.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/signal.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/sprintf.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/string.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/struct.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/thread.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/time.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/variable.h
-enc/trans/utf_16_32.$(OBJEXT): internal/intern/vm.h
-enc/trans/utf_16_32.$(OBJEXT): internal/interpreter.h
-enc/trans/utf_16_32.$(OBJEXT): internal/iterator.h
-enc/trans/utf_16_32.$(OBJEXT): internal/memory.h
-enc/trans/utf_16_32.$(OBJEXT): internal/method.h
-enc/trans/utf_16_32.$(OBJEXT): internal/module.h
-enc/trans/utf_16_32.$(OBJEXT): internal/newobj.h
-enc/trans/utf_16_32.$(OBJEXT): internal/rgengc.h
-enc/trans/utf_16_32.$(OBJEXT): internal/scan_args.h
-enc/trans/utf_16_32.$(OBJEXT): internal/special_consts.h
-enc/trans/utf_16_32.$(OBJEXT): internal/static_assert.h
-enc/trans/utf_16_32.$(OBJEXT): internal/stdalign.h
-enc/trans/utf_16_32.$(OBJEXT): internal/stdbool.h
-enc/trans/utf_16_32.$(OBJEXT): internal/symbol.h
-enc/trans/utf_16_32.$(OBJEXT): internal/token_paste.h
-enc/trans/utf_16_32.$(OBJEXT): internal/value.h
-enc/trans/utf_16_32.$(OBJEXT): internal/value_type.h
-enc/trans/utf_16_32.$(OBJEXT): internal/variable.h
-enc/trans/utf_16_32.$(OBJEXT): internal/warning_push.h
-enc/trans/utf_16_32.$(OBJEXT): internal/xmalloc.h
enc/trans/utf_16_32.$(OBJEXT): assert.h
enc/trans/utf_16_32.$(OBJEXT): backward.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/assume.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/attributes.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/bool.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/gcc_version_since.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/inttypes.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/limits.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/long_long.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/stdalign.h
-enc/trans/utf_16_32.$(OBJEXT): backward/2/stdarg.h
enc/trans/utf_16_32.$(OBJEXT): config.h
enc/trans/utf_16_32.$(OBJEXT): defines.h
enc/trans/utf_16_32.$(OBJEXT): enc/trans/utf_16_32.c
@@ -5591,156 +619,7 @@ enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/name2ctype.h
enc/unicode.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/unicode.$(OBJEXT): $(top_srcdir)/regenc.h
enc/unicode.$(OBJEXT): $(top_srcdir)/regint.h
-enc/unicode.$(OBJEXT): internal/anyargs.h
-enc/unicode.$(OBJEXT): internal/arithmetic.h
-enc/unicode.$(OBJEXT): internal/arithmetic/char.h
-enc/unicode.$(OBJEXT): internal/arithmetic/double.h
-enc/unicode.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/unicode.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/int.h
-enc/unicode.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/long.h
-enc/unicode.$(OBJEXT): internal/arithmetic/long_long.h
-enc/unicode.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/off_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/short.h
-enc/unicode.$(OBJEXT): internal/arithmetic/size_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/unicode.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/unicode.$(OBJEXT): internal/assume.h
-enc/unicode.$(OBJEXT): internal/attr/alloc_size.h
-enc/unicode.$(OBJEXT): internal/attr/artificial.h
-enc/unicode.$(OBJEXT): internal/attr/cold.h
-enc/unicode.$(OBJEXT): internal/attr/const.h
-enc/unicode.$(OBJEXT): internal/attr/constexpr.h
-enc/unicode.$(OBJEXT): internal/attr/deprecated.h
-enc/unicode.$(OBJEXT): internal/attr/diagnose_if.h
-enc/unicode.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/unicode.$(OBJEXT): internal/attr/error.h
-enc/unicode.$(OBJEXT): internal/attr/flag_enum.h
-enc/unicode.$(OBJEXT): internal/attr/forceinline.h
-enc/unicode.$(OBJEXT): internal/attr/format.h
-enc/unicode.$(OBJEXT): internal/attr/maybe_unused.h
-enc/unicode.$(OBJEXT): internal/attr/noalias.h
-enc/unicode.$(OBJEXT): internal/attr/nodiscard.h
-enc/unicode.$(OBJEXT): internal/attr/noexcept.h
-enc/unicode.$(OBJEXT): internal/attr/noinline.h
-enc/unicode.$(OBJEXT): internal/attr/nonnull.h
-enc/unicode.$(OBJEXT): internal/attr/noreturn.h
-enc/unicode.$(OBJEXT): internal/attr/pure.h
-enc/unicode.$(OBJEXT): internal/attr/restrict.h
-enc/unicode.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/unicode.$(OBJEXT): internal/attr/warning.h
-enc/unicode.$(OBJEXT): internal/attr/weakref.h
-enc/unicode.$(OBJEXT): internal/cast.h
-enc/unicode.$(OBJEXT): internal/compiler_is.h
-enc/unicode.$(OBJEXT): internal/compiler_is/apple.h
-enc/unicode.$(OBJEXT): internal/compiler_is/clang.h
-enc/unicode.$(OBJEXT): internal/compiler_is/gcc.h
-enc/unicode.$(OBJEXT): internal/compiler_is/intel.h
-enc/unicode.$(OBJEXT): internal/compiler_is/msvc.h
-enc/unicode.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/unicode.$(OBJEXT): internal/compiler_since.h
-enc/unicode.$(OBJEXT): internal/config.h
-enc/unicode.$(OBJEXT): internal/constant_p.h
-enc/unicode.$(OBJEXT): internal/core.h
-enc/unicode.$(OBJEXT): internal/core/rarray.h
-enc/unicode.$(OBJEXT): internal/core/rbasic.h
-enc/unicode.$(OBJEXT): internal/core/rbignum.h
-enc/unicode.$(OBJEXT): internal/core/rclass.h
-enc/unicode.$(OBJEXT): internal/core/rdata.h
-enc/unicode.$(OBJEXT): internal/core/rfile.h
-enc/unicode.$(OBJEXT): internal/core/rhash.h
-enc/unicode.$(OBJEXT): internal/core/robject.h
-enc/unicode.$(OBJEXT): internal/core/rregexp.h
-enc/unicode.$(OBJEXT): internal/core/rstring.h
-enc/unicode.$(OBJEXT): internal/core/rstruct.h
-enc/unicode.$(OBJEXT): internal/core/rtypeddata.h
-enc/unicode.$(OBJEXT): internal/ctype.h
-enc/unicode.$(OBJEXT): internal/dllexport.h
-enc/unicode.$(OBJEXT): internal/dosish.h
-enc/unicode.$(OBJEXT): internal/error.h
-enc/unicode.$(OBJEXT): internal/eval.h
-enc/unicode.$(OBJEXT): internal/event.h
-enc/unicode.$(OBJEXT): internal/fl_type.h
-enc/unicode.$(OBJEXT): internal/gc.h
-enc/unicode.$(OBJEXT): internal/glob.h
-enc/unicode.$(OBJEXT): internal/globals.h
-enc/unicode.$(OBJEXT): internal/has/attribute.h
-enc/unicode.$(OBJEXT): internal/has/builtin.h
-enc/unicode.$(OBJEXT): internal/has/c_attribute.h
-enc/unicode.$(OBJEXT): internal/has/cpp_attribute.h
-enc/unicode.$(OBJEXT): internal/has/declspec_attribute.h
-enc/unicode.$(OBJEXT): internal/has/extension.h
-enc/unicode.$(OBJEXT): internal/has/feature.h
-enc/unicode.$(OBJEXT): internal/has/warning.h
-enc/unicode.$(OBJEXT): internal/intern/array.h
-enc/unicode.$(OBJEXT): internal/intern/bignum.h
-enc/unicode.$(OBJEXT): internal/intern/class.h
-enc/unicode.$(OBJEXT): internal/intern/compar.h
-enc/unicode.$(OBJEXT): internal/intern/complex.h
-enc/unicode.$(OBJEXT): internal/intern/cont.h
-enc/unicode.$(OBJEXT): internal/intern/dir.h
-enc/unicode.$(OBJEXT): internal/intern/enum.h
-enc/unicode.$(OBJEXT): internal/intern/enumerator.h
-enc/unicode.$(OBJEXT): internal/intern/error.h
-enc/unicode.$(OBJEXT): internal/intern/eval.h
-enc/unicode.$(OBJEXT): internal/intern/file.h
-enc/unicode.$(OBJEXT): internal/intern/gc.h
-enc/unicode.$(OBJEXT): internal/intern/hash.h
-enc/unicode.$(OBJEXT): internal/intern/io.h
-enc/unicode.$(OBJEXT): internal/intern/load.h
-enc/unicode.$(OBJEXT): internal/intern/marshal.h
-enc/unicode.$(OBJEXT): internal/intern/numeric.h
-enc/unicode.$(OBJEXT): internal/intern/object.h
-enc/unicode.$(OBJEXT): internal/intern/parse.h
-enc/unicode.$(OBJEXT): internal/intern/proc.h
-enc/unicode.$(OBJEXT): internal/intern/process.h
-enc/unicode.$(OBJEXT): internal/intern/random.h
-enc/unicode.$(OBJEXT): internal/intern/range.h
-enc/unicode.$(OBJEXT): internal/intern/rational.h
-enc/unicode.$(OBJEXT): internal/intern/re.h
-enc/unicode.$(OBJEXT): internal/intern/ruby.h
-enc/unicode.$(OBJEXT): internal/intern/select.h
-enc/unicode.$(OBJEXT): internal/intern/select/largesize.h
-enc/unicode.$(OBJEXT): internal/intern/signal.h
-enc/unicode.$(OBJEXT): internal/intern/sprintf.h
-enc/unicode.$(OBJEXT): internal/intern/string.h
-enc/unicode.$(OBJEXT): internal/intern/struct.h
-enc/unicode.$(OBJEXT): internal/intern/thread.h
-enc/unicode.$(OBJEXT): internal/intern/time.h
-enc/unicode.$(OBJEXT): internal/intern/variable.h
-enc/unicode.$(OBJEXT): internal/intern/vm.h
-enc/unicode.$(OBJEXT): internal/interpreter.h
-enc/unicode.$(OBJEXT): internal/iterator.h
-enc/unicode.$(OBJEXT): internal/memory.h
-enc/unicode.$(OBJEXT): internal/method.h
-enc/unicode.$(OBJEXT): internal/module.h
-enc/unicode.$(OBJEXT): internal/newobj.h
-enc/unicode.$(OBJEXT): internal/rgengc.h
-enc/unicode.$(OBJEXT): internal/scan_args.h
-enc/unicode.$(OBJEXT): internal/special_consts.h
-enc/unicode.$(OBJEXT): internal/static_assert.h
-enc/unicode.$(OBJEXT): internal/stdalign.h
-enc/unicode.$(OBJEXT): internal/stdbool.h
-enc/unicode.$(OBJEXT): internal/symbol.h
-enc/unicode.$(OBJEXT): internal/token_paste.h
-enc/unicode.$(OBJEXT): internal/value.h
-enc/unicode.$(OBJEXT): internal/value_type.h
-enc/unicode.$(OBJEXT): internal/variable.h
-enc/unicode.$(OBJEXT): internal/warning_push.h
-enc/unicode.$(OBJEXT): internal/xmalloc.h
enc/unicode.$(OBJEXT): assert.h
-enc/unicode.$(OBJEXT): backward/2/assume.h
-enc/unicode.$(OBJEXT): backward/2/attributes.h
-enc/unicode.$(OBJEXT): backward/2/bool.h
-enc/unicode.$(OBJEXT): backward/2/gcc_version_since.h
-enc/unicode.$(OBJEXT): backward/2/inttypes.h
-enc/unicode.$(OBJEXT): backward/2/limits.h
-enc/unicode.$(OBJEXT): backward/2/long_long.h
-enc/unicode.$(OBJEXT): backward/2/stdalign.h
-enc/unicode.$(OBJEXT): backward/2/stdarg.h
enc/unicode.$(OBJEXT): config.h
enc/unicode.$(OBJEXT): defines.h
enc/unicode.$(OBJEXT): enc/unicode.c
@@ -5749,221 +628,14 @@ enc/unicode.$(OBJEXT): missing.h
enc/unicode.$(OBJEXT): onigmo.h
enc/unicode.$(OBJEXT): st.h
enc/unicode.$(OBJEXT): subst.h
-enc/us_ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/us_ascii.$(OBJEXT): $(top_srcdir)/encindex.h
enc/us_ascii.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/us_ascii.$(OBJEXT): internal/anyargs.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/char.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/double.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/int.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/long.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/long_long.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/off_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/short.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/size_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/us_ascii.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/us_ascii.$(OBJEXT): internal/assume.h
-enc/us_ascii.$(OBJEXT): internal/attr/alloc_size.h
-enc/us_ascii.$(OBJEXT): internal/attr/artificial.h
-enc/us_ascii.$(OBJEXT): internal/attr/cold.h
-enc/us_ascii.$(OBJEXT): internal/attr/const.h
-enc/us_ascii.$(OBJEXT): internal/attr/constexpr.h
-enc/us_ascii.$(OBJEXT): internal/attr/deprecated.h
-enc/us_ascii.$(OBJEXT): internal/attr/diagnose_if.h
-enc/us_ascii.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/us_ascii.$(OBJEXT): internal/attr/error.h
-enc/us_ascii.$(OBJEXT): internal/attr/flag_enum.h
-enc/us_ascii.$(OBJEXT): internal/attr/forceinline.h
-enc/us_ascii.$(OBJEXT): internal/attr/format.h
-enc/us_ascii.$(OBJEXT): internal/attr/maybe_unused.h
-enc/us_ascii.$(OBJEXT): internal/attr/noalias.h
-enc/us_ascii.$(OBJEXT): internal/attr/nodiscard.h
-enc/us_ascii.$(OBJEXT): internal/attr/noexcept.h
-enc/us_ascii.$(OBJEXT): internal/attr/noinline.h
-enc/us_ascii.$(OBJEXT): internal/attr/nonnull.h
-enc/us_ascii.$(OBJEXT): internal/attr/noreturn.h
-enc/us_ascii.$(OBJEXT): internal/attr/pure.h
-enc/us_ascii.$(OBJEXT): internal/attr/restrict.h
-enc/us_ascii.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/us_ascii.$(OBJEXT): internal/attr/warning.h
-enc/us_ascii.$(OBJEXT): internal/attr/weakref.h
-enc/us_ascii.$(OBJEXT): internal/cast.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/apple.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/clang.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/gcc.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/intel.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/msvc.h
-enc/us_ascii.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/us_ascii.$(OBJEXT): internal/compiler_since.h
-enc/us_ascii.$(OBJEXT): internal/config.h
-enc/us_ascii.$(OBJEXT): internal/constant_p.h
-enc/us_ascii.$(OBJEXT): internal/core.h
-enc/us_ascii.$(OBJEXT): internal/core/rarray.h
-enc/us_ascii.$(OBJEXT): internal/core/rbasic.h
-enc/us_ascii.$(OBJEXT): internal/core/rbignum.h
-enc/us_ascii.$(OBJEXT): internal/core/rclass.h
-enc/us_ascii.$(OBJEXT): internal/core/rdata.h
-enc/us_ascii.$(OBJEXT): internal/core/rfile.h
-enc/us_ascii.$(OBJEXT): internal/core/rhash.h
-enc/us_ascii.$(OBJEXT): internal/core/robject.h
-enc/us_ascii.$(OBJEXT): internal/core/rregexp.h
-enc/us_ascii.$(OBJEXT): internal/core/rstring.h
-enc/us_ascii.$(OBJEXT): internal/core/rstruct.h
-enc/us_ascii.$(OBJEXT): internal/core/rtypeddata.h
-enc/us_ascii.$(OBJEXT): internal/ctype.h
-enc/us_ascii.$(OBJEXT): internal/dllexport.h
-enc/us_ascii.$(OBJEXT): internal/dosish.h
-enc/us_ascii.$(OBJEXT): internal/error.h
-enc/us_ascii.$(OBJEXT): internal/eval.h
-enc/us_ascii.$(OBJEXT): internal/event.h
-enc/us_ascii.$(OBJEXT): internal/fl_type.h
-enc/us_ascii.$(OBJEXT): internal/gc.h
-enc/us_ascii.$(OBJEXT): internal/glob.h
-enc/us_ascii.$(OBJEXT): internal/globals.h
-enc/us_ascii.$(OBJEXT): internal/has/attribute.h
-enc/us_ascii.$(OBJEXT): internal/has/builtin.h
-enc/us_ascii.$(OBJEXT): internal/has/c_attribute.h
-enc/us_ascii.$(OBJEXT): internal/has/cpp_attribute.h
-enc/us_ascii.$(OBJEXT): internal/has/declspec_attribute.h
-enc/us_ascii.$(OBJEXT): internal/has/extension.h
-enc/us_ascii.$(OBJEXT): internal/has/feature.h
-enc/us_ascii.$(OBJEXT): internal/has/warning.h
-enc/us_ascii.$(OBJEXT): internal/intern/array.h
-enc/us_ascii.$(OBJEXT): internal/intern/bignum.h
-enc/us_ascii.$(OBJEXT): internal/intern/class.h
-enc/us_ascii.$(OBJEXT): internal/intern/compar.h
-enc/us_ascii.$(OBJEXT): internal/intern/complex.h
-enc/us_ascii.$(OBJEXT): internal/intern/cont.h
-enc/us_ascii.$(OBJEXT): internal/intern/dir.h
-enc/us_ascii.$(OBJEXT): internal/intern/enum.h
-enc/us_ascii.$(OBJEXT): internal/intern/enumerator.h
-enc/us_ascii.$(OBJEXT): internal/intern/error.h
-enc/us_ascii.$(OBJEXT): internal/intern/eval.h
-enc/us_ascii.$(OBJEXT): internal/intern/file.h
-enc/us_ascii.$(OBJEXT): internal/intern/gc.h
-enc/us_ascii.$(OBJEXT): internal/intern/hash.h
-enc/us_ascii.$(OBJEXT): internal/intern/io.h
-enc/us_ascii.$(OBJEXT): internal/intern/load.h
-enc/us_ascii.$(OBJEXT): internal/intern/marshal.h
-enc/us_ascii.$(OBJEXT): internal/intern/numeric.h
-enc/us_ascii.$(OBJEXT): internal/intern/object.h
-enc/us_ascii.$(OBJEXT): internal/intern/parse.h
-enc/us_ascii.$(OBJEXT): internal/intern/proc.h
-enc/us_ascii.$(OBJEXT): internal/intern/process.h
-enc/us_ascii.$(OBJEXT): internal/intern/random.h
-enc/us_ascii.$(OBJEXT): internal/intern/range.h
-enc/us_ascii.$(OBJEXT): internal/intern/rational.h
-enc/us_ascii.$(OBJEXT): internal/intern/re.h
-enc/us_ascii.$(OBJEXT): internal/intern/ruby.h
-enc/us_ascii.$(OBJEXT): internal/intern/select.h
-enc/us_ascii.$(OBJEXT): internal/intern/select/largesize.h
-enc/us_ascii.$(OBJEXT): internal/intern/signal.h
-enc/us_ascii.$(OBJEXT): internal/intern/sprintf.h
-enc/us_ascii.$(OBJEXT): internal/intern/string.h
-enc/us_ascii.$(OBJEXT): internal/intern/struct.h
-enc/us_ascii.$(OBJEXT): internal/intern/thread.h
-enc/us_ascii.$(OBJEXT): internal/intern/time.h
-enc/us_ascii.$(OBJEXT): internal/intern/variable.h
-enc/us_ascii.$(OBJEXT): internal/intern/vm.h
-enc/us_ascii.$(OBJEXT): internal/interpreter.h
-enc/us_ascii.$(OBJEXT): internal/iterator.h
-enc/us_ascii.$(OBJEXT): internal/memory.h
-enc/us_ascii.$(OBJEXT): internal/method.h
-enc/us_ascii.$(OBJEXT): internal/module.h
-enc/us_ascii.$(OBJEXT): internal/newobj.h
-enc/us_ascii.$(OBJEXT): internal/rgengc.h
-enc/us_ascii.$(OBJEXT): internal/scan_args.h
-enc/us_ascii.$(OBJEXT): internal/special_consts.h
-enc/us_ascii.$(OBJEXT): internal/static_assert.h
-enc/us_ascii.$(OBJEXT): internal/stdalign.h
-enc/us_ascii.$(OBJEXT): internal/stdbool.h
-enc/us_ascii.$(OBJEXT): internal/symbol.h
-enc/us_ascii.$(OBJEXT): internal/token_paste.h
-enc/us_ascii.$(OBJEXT): internal/value.h
-enc/us_ascii.$(OBJEXT): internal/value_type.h
-enc/us_ascii.$(OBJEXT): internal/variable.h
-enc/us_ascii.$(OBJEXT): internal/warning_push.h
-enc/us_ascii.$(OBJEXT): internal/xmalloc.h
-enc/us_ascii.$(OBJEXT): assert.h
-enc/us_ascii.$(OBJEXT): backward/2/assume.h
-enc/us_ascii.$(OBJEXT): backward/2/attributes.h
-enc/us_ascii.$(OBJEXT): backward/2/bool.h
-enc/us_ascii.$(OBJEXT): backward/2/gcc_version_since.h
-enc/us_ascii.$(OBJEXT): backward/2/inttypes.h
-enc/us_ascii.$(OBJEXT): backward/2/limits.h
-enc/us_ascii.$(OBJEXT): backward/2/long_long.h
-enc/us_ascii.$(OBJEXT): backward/2/stdalign.h
-enc/us_ascii.$(OBJEXT): backward/2/stdarg.h
enc/us_ascii.$(OBJEXT): config.h
enc/us_ascii.$(OBJEXT): defines.h
enc/us_ascii.$(OBJEXT): enc/us_ascii.c
-enc/us_ascii.$(OBJEXT): encoding.h
-enc/us_ascii.$(OBJEXT): intern.h
enc/us_ascii.$(OBJEXT): missing.h
enc/us_ascii.$(OBJEXT): onigmo.h
-enc/us_ascii.$(OBJEXT): oniguruma.h
-enc/us_ascii.$(OBJEXT): st.h
-enc/us_ascii.$(OBJEXT): subst.h
enc/utf_16be.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/utf_16be.$(OBJEXT): internal/assume.h
-enc/utf_16be.$(OBJEXT): internal/attr/alloc_size.h
-enc/utf_16be.$(OBJEXT): internal/attr/cold.h
-enc/utf_16be.$(OBJEXT): internal/attr/const.h
-enc/utf_16be.$(OBJEXT): internal/attr/deprecated.h
-enc/utf_16be.$(OBJEXT): internal/attr/error.h
-enc/utf_16be.$(OBJEXT): internal/attr/forceinline.h
-enc/utf_16be.$(OBJEXT): internal/attr/format.h
-enc/utf_16be.$(OBJEXT): internal/attr/maybe_unused.h
-enc/utf_16be.$(OBJEXT): internal/attr/nodiscard.h
-enc/utf_16be.$(OBJEXT): internal/attr/noexcept.h
-enc/utf_16be.$(OBJEXT): internal/attr/noinline.h
-enc/utf_16be.$(OBJEXT): internal/attr/nonnull.h
-enc/utf_16be.$(OBJEXT): internal/attr/noreturn.h
-enc/utf_16be.$(OBJEXT): internal/attr/pure.h
-enc/utf_16be.$(OBJEXT): internal/attr/restrict.h
-enc/utf_16be.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/utf_16be.$(OBJEXT): internal/attr/warning.h
-enc/utf_16be.$(OBJEXT): internal/cast.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/apple.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/clang.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/gcc.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/intel.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/msvc.h
-enc/utf_16be.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/utf_16be.$(OBJEXT): internal/compiler_since.h
-enc/utf_16be.$(OBJEXT): internal/config.h
-enc/utf_16be.$(OBJEXT): internal/dllexport.h
-enc/utf_16be.$(OBJEXT): internal/dosish.h
-enc/utf_16be.$(OBJEXT): internal/has/attribute.h
-enc/utf_16be.$(OBJEXT): internal/has/builtin.h
-enc/utf_16be.$(OBJEXT): internal/has/c_attribute.h
-enc/utf_16be.$(OBJEXT): internal/has/cpp_attribute.h
-enc/utf_16be.$(OBJEXT): internal/has/declspec_attribute.h
-enc/utf_16be.$(OBJEXT): internal/has/extension.h
-enc/utf_16be.$(OBJEXT): internal/has/feature.h
-enc/utf_16be.$(OBJEXT): internal/has/warning.h
-enc/utf_16be.$(OBJEXT): internal/stdalign.h
-enc/utf_16be.$(OBJEXT): internal/stdbool.h
-enc/utf_16be.$(OBJEXT): internal/token_paste.h
-enc/utf_16be.$(OBJEXT): internal/warning_push.h
-enc/utf_16be.$(OBJEXT): internal/xmalloc.h
-enc/utf_16be.$(OBJEXT): assert.h
-enc/utf_16be.$(OBJEXT): backward/2/assume.h
-enc/utf_16be.$(OBJEXT): backward/2/attributes.h
-enc/utf_16be.$(OBJEXT): backward/2/bool.h
-enc/utf_16be.$(OBJEXT): backward/2/gcc_version_since.h
-enc/utf_16be.$(OBJEXT): backward/2/long_long.h
-enc/utf_16be.$(OBJEXT): backward/2/stdalign.h
-enc/utf_16be.$(OBJEXT): backward/2/stdarg.h
enc/utf_16be.$(OBJEXT): config.h
enc/utf_16be.$(OBJEXT): defines.h
enc/utf_16be.$(OBJEXT): enc/iso_8859.h
@@ -5971,57 +643,6 @@ enc/utf_16be.$(OBJEXT): enc/utf_16be.c
enc/utf_16be.$(OBJEXT): missing.h
enc/utf_16be.$(OBJEXT): onigmo.h
enc/utf_16le.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/utf_16le.$(OBJEXT): internal/assume.h
-enc/utf_16le.$(OBJEXT): internal/attr/alloc_size.h
-enc/utf_16le.$(OBJEXT): internal/attr/cold.h
-enc/utf_16le.$(OBJEXT): internal/attr/const.h
-enc/utf_16le.$(OBJEXT): internal/attr/deprecated.h
-enc/utf_16le.$(OBJEXT): internal/attr/error.h
-enc/utf_16le.$(OBJEXT): internal/attr/forceinline.h
-enc/utf_16le.$(OBJEXT): internal/attr/format.h
-enc/utf_16le.$(OBJEXT): internal/attr/maybe_unused.h
-enc/utf_16le.$(OBJEXT): internal/attr/nodiscard.h
-enc/utf_16le.$(OBJEXT): internal/attr/noexcept.h
-enc/utf_16le.$(OBJEXT): internal/attr/noinline.h
-enc/utf_16le.$(OBJEXT): internal/attr/nonnull.h
-enc/utf_16le.$(OBJEXT): internal/attr/noreturn.h
-enc/utf_16le.$(OBJEXT): internal/attr/pure.h
-enc/utf_16le.$(OBJEXT): internal/attr/restrict.h
-enc/utf_16le.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/utf_16le.$(OBJEXT): internal/attr/warning.h
-enc/utf_16le.$(OBJEXT): internal/cast.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/apple.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/clang.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/gcc.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/intel.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/msvc.h
-enc/utf_16le.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/utf_16le.$(OBJEXT): internal/compiler_since.h
-enc/utf_16le.$(OBJEXT): internal/config.h
-enc/utf_16le.$(OBJEXT): internal/dllexport.h
-enc/utf_16le.$(OBJEXT): internal/dosish.h
-enc/utf_16le.$(OBJEXT): internal/has/attribute.h
-enc/utf_16le.$(OBJEXT): internal/has/builtin.h
-enc/utf_16le.$(OBJEXT): internal/has/c_attribute.h
-enc/utf_16le.$(OBJEXT): internal/has/cpp_attribute.h
-enc/utf_16le.$(OBJEXT): internal/has/declspec_attribute.h
-enc/utf_16le.$(OBJEXT): internal/has/extension.h
-enc/utf_16le.$(OBJEXT): internal/has/feature.h
-enc/utf_16le.$(OBJEXT): internal/has/warning.h
-enc/utf_16le.$(OBJEXT): internal/stdalign.h
-enc/utf_16le.$(OBJEXT): internal/stdbool.h
-enc/utf_16le.$(OBJEXT): internal/token_paste.h
-enc/utf_16le.$(OBJEXT): internal/warning_push.h
-enc/utf_16le.$(OBJEXT): internal/xmalloc.h
-enc/utf_16le.$(OBJEXT): assert.h
-enc/utf_16le.$(OBJEXT): backward/2/assume.h
-enc/utf_16le.$(OBJEXT): backward/2/attributes.h
-enc/utf_16le.$(OBJEXT): backward/2/bool.h
-enc/utf_16le.$(OBJEXT): backward/2/gcc_version_since.h
-enc/utf_16le.$(OBJEXT): backward/2/long_long.h
-enc/utf_16le.$(OBJEXT): backward/2/stdalign.h
-enc/utf_16le.$(OBJEXT): backward/2/stdarg.h
enc/utf_16le.$(OBJEXT): config.h
enc/utf_16le.$(OBJEXT): defines.h
enc/utf_16le.$(OBJEXT): enc/iso_8859.h
@@ -6029,57 +650,6 @@ enc/utf_16le.$(OBJEXT): enc/utf_16le.c
enc/utf_16le.$(OBJEXT): missing.h
enc/utf_16le.$(OBJEXT): onigmo.h
enc/utf_32be.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/utf_32be.$(OBJEXT): internal/assume.h
-enc/utf_32be.$(OBJEXT): internal/attr/alloc_size.h
-enc/utf_32be.$(OBJEXT): internal/attr/cold.h
-enc/utf_32be.$(OBJEXT): internal/attr/const.h
-enc/utf_32be.$(OBJEXT): internal/attr/deprecated.h
-enc/utf_32be.$(OBJEXT): internal/attr/error.h
-enc/utf_32be.$(OBJEXT): internal/attr/forceinline.h
-enc/utf_32be.$(OBJEXT): internal/attr/format.h
-enc/utf_32be.$(OBJEXT): internal/attr/maybe_unused.h
-enc/utf_32be.$(OBJEXT): internal/attr/nodiscard.h
-enc/utf_32be.$(OBJEXT): internal/attr/noexcept.h
-enc/utf_32be.$(OBJEXT): internal/attr/noinline.h
-enc/utf_32be.$(OBJEXT): internal/attr/nonnull.h
-enc/utf_32be.$(OBJEXT): internal/attr/noreturn.h
-enc/utf_32be.$(OBJEXT): internal/attr/pure.h
-enc/utf_32be.$(OBJEXT): internal/attr/restrict.h
-enc/utf_32be.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/utf_32be.$(OBJEXT): internal/attr/warning.h
-enc/utf_32be.$(OBJEXT): internal/cast.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/apple.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/clang.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/gcc.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/intel.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/msvc.h
-enc/utf_32be.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/utf_32be.$(OBJEXT): internal/compiler_since.h
-enc/utf_32be.$(OBJEXT): internal/config.h
-enc/utf_32be.$(OBJEXT): internal/dllexport.h
-enc/utf_32be.$(OBJEXT): internal/dosish.h
-enc/utf_32be.$(OBJEXT): internal/has/attribute.h
-enc/utf_32be.$(OBJEXT): internal/has/builtin.h
-enc/utf_32be.$(OBJEXT): internal/has/c_attribute.h
-enc/utf_32be.$(OBJEXT): internal/has/cpp_attribute.h
-enc/utf_32be.$(OBJEXT): internal/has/declspec_attribute.h
-enc/utf_32be.$(OBJEXT): internal/has/extension.h
-enc/utf_32be.$(OBJEXT): internal/has/feature.h
-enc/utf_32be.$(OBJEXT): internal/has/warning.h
-enc/utf_32be.$(OBJEXT): internal/stdalign.h
-enc/utf_32be.$(OBJEXT): internal/stdbool.h
-enc/utf_32be.$(OBJEXT): internal/token_paste.h
-enc/utf_32be.$(OBJEXT): internal/warning_push.h
-enc/utf_32be.$(OBJEXT): internal/xmalloc.h
-enc/utf_32be.$(OBJEXT): assert.h
-enc/utf_32be.$(OBJEXT): backward/2/assume.h
-enc/utf_32be.$(OBJEXT): backward/2/attributes.h
-enc/utf_32be.$(OBJEXT): backward/2/bool.h
-enc/utf_32be.$(OBJEXT): backward/2/gcc_version_since.h
-enc/utf_32be.$(OBJEXT): backward/2/long_long.h
-enc/utf_32be.$(OBJEXT): backward/2/stdalign.h
-enc/utf_32be.$(OBJEXT): backward/2/stdarg.h
enc/utf_32be.$(OBJEXT): config.h
enc/utf_32be.$(OBJEXT): defines.h
enc/utf_32be.$(OBJEXT): enc/iso_8859.h
@@ -6087,278 +657,20 @@ enc/utf_32be.$(OBJEXT): enc/utf_32be.c
enc/utf_32be.$(OBJEXT): missing.h
enc/utf_32be.$(OBJEXT): onigmo.h
enc/utf_32le.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/utf_32le.$(OBJEXT): internal/assume.h
-enc/utf_32le.$(OBJEXT): internal/attr/alloc_size.h
-enc/utf_32le.$(OBJEXT): internal/attr/cold.h
-enc/utf_32le.$(OBJEXT): internal/attr/const.h
-enc/utf_32le.$(OBJEXT): internal/attr/deprecated.h
-enc/utf_32le.$(OBJEXT): internal/attr/error.h
-enc/utf_32le.$(OBJEXT): internal/attr/forceinline.h
-enc/utf_32le.$(OBJEXT): internal/attr/format.h
-enc/utf_32le.$(OBJEXT): internal/attr/maybe_unused.h
-enc/utf_32le.$(OBJEXT): internal/attr/nodiscard.h
-enc/utf_32le.$(OBJEXT): internal/attr/noexcept.h
-enc/utf_32le.$(OBJEXT): internal/attr/noinline.h
-enc/utf_32le.$(OBJEXT): internal/attr/nonnull.h
-enc/utf_32le.$(OBJEXT): internal/attr/noreturn.h
-enc/utf_32le.$(OBJEXT): internal/attr/pure.h
-enc/utf_32le.$(OBJEXT): internal/attr/restrict.h
-enc/utf_32le.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/utf_32le.$(OBJEXT): internal/attr/warning.h
-enc/utf_32le.$(OBJEXT): internal/cast.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/apple.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/clang.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/gcc.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/intel.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/msvc.h
-enc/utf_32le.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/utf_32le.$(OBJEXT): internal/compiler_since.h
-enc/utf_32le.$(OBJEXT): internal/config.h
-enc/utf_32le.$(OBJEXT): internal/dllexport.h
-enc/utf_32le.$(OBJEXT): internal/dosish.h
-enc/utf_32le.$(OBJEXT): internal/has/attribute.h
-enc/utf_32le.$(OBJEXT): internal/has/builtin.h
-enc/utf_32le.$(OBJEXT): internal/has/c_attribute.h
-enc/utf_32le.$(OBJEXT): internal/has/cpp_attribute.h
-enc/utf_32le.$(OBJEXT): internal/has/declspec_attribute.h
-enc/utf_32le.$(OBJEXT): internal/has/extension.h
-enc/utf_32le.$(OBJEXT): internal/has/feature.h
-enc/utf_32le.$(OBJEXT): internal/has/warning.h
-enc/utf_32le.$(OBJEXT): internal/stdalign.h
-enc/utf_32le.$(OBJEXT): internal/stdbool.h
-enc/utf_32le.$(OBJEXT): internal/token_paste.h
-enc/utf_32le.$(OBJEXT): internal/warning_push.h
-enc/utf_32le.$(OBJEXT): internal/xmalloc.h
-enc/utf_32le.$(OBJEXT): assert.h
-enc/utf_32le.$(OBJEXT): backward/2/assume.h
-enc/utf_32le.$(OBJEXT): backward/2/attributes.h
-enc/utf_32le.$(OBJEXT): backward/2/bool.h
-enc/utf_32le.$(OBJEXT): backward/2/gcc_version_since.h
-enc/utf_32le.$(OBJEXT): backward/2/long_long.h
-enc/utf_32le.$(OBJEXT): backward/2/stdalign.h
-enc/utf_32le.$(OBJEXT): backward/2/stdarg.h
enc/utf_32le.$(OBJEXT): config.h
enc/utf_32le.$(OBJEXT): defines.h
enc/utf_32le.$(OBJEXT): enc/iso_8859.h
enc/utf_32le.$(OBJEXT): enc/utf_32le.c
enc/utf_32le.$(OBJEXT): missing.h
enc/utf_32le.$(OBJEXT): onigmo.h
-enc/utf_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h
enc/utf_8.$(OBJEXT): $(top_srcdir)/encindex.h
enc/utf_8.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/utf_8.$(OBJEXT): internal/anyargs.h
-enc/utf_8.$(OBJEXT): internal/arithmetic.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/char.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/double.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/fixnum.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/gid_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/int.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/intptr_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/long.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/long_long.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/mode_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/off_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/pid_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/short.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/size_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/st_data_t.h
-enc/utf_8.$(OBJEXT): internal/arithmetic/uid_t.h
-enc/utf_8.$(OBJEXT): internal/assume.h
-enc/utf_8.$(OBJEXT): internal/attr/alloc_size.h
-enc/utf_8.$(OBJEXT): internal/attr/artificial.h
-enc/utf_8.$(OBJEXT): internal/attr/cold.h
-enc/utf_8.$(OBJEXT): internal/attr/const.h
-enc/utf_8.$(OBJEXT): internal/attr/constexpr.h
-enc/utf_8.$(OBJEXT): internal/attr/deprecated.h
-enc/utf_8.$(OBJEXT): internal/attr/diagnose_if.h
-enc/utf_8.$(OBJEXT): internal/attr/enum_extensibility.h
-enc/utf_8.$(OBJEXT): internal/attr/error.h
-enc/utf_8.$(OBJEXT): internal/attr/flag_enum.h
-enc/utf_8.$(OBJEXT): internal/attr/forceinline.h
-enc/utf_8.$(OBJEXT): internal/attr/format.h
-enc/utf_8.$(OBJEXT): internal/attr/maybe_unused.h
-enc/utf_8.$(OBJEXT): internal/attr/noalias.h
-enc/utf_8.$(OBJEXT): internal/attr/nodiscard.h
-enc/utf_8.$(OBJEXT): internal/attr/noexcept.h
-enc/utf_8.$(OBJEXT): internal/attr/noinline.h
-enc/utf_8.$(OBJEXT): internal/attr/nonnull.h
-enc/utf_8.$(OBJEXT): internal/attr/noreturn.h
-enc/utf_8.$(OBJEXT): internal/attr/pure.h
-enc/utf_8.$(OBJEXT): internal/attr/restrict.h
-enc/utf_8.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/utf_8.$(OBJEXT): internal/attr/warning.h
-enc/utf_8.$(OBJEXT): internal/attr/weakref.h
-enc/utf_8.$(OBJEXT): internal/cast.h
-enc/utf_8.$(OBJEXT): internal/compiler_is.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/apple.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/clang.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/gcc.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/intel.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/msvc.h
-enc/utf_8.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/utf_8.$(OBJEXT): internal/compiler_since.h
-enc/utf_8.$(OBJEXT): internal/config.h
-enc/utf_8.$(OBJEXT): internal/constant_p.h
-enc/utf_8.$(OBJEXT): internal/core.h
-enc/utf_8.$(OBJEXT): internal/core/rarray.h
-enc/utf_8.$(OBJEXT): internal/core/rbasic.h
-enc/utf_8.$(OBJEXT): internal/core/rbignum.h
-enc/utf_8.$(OBJEXT): internal/core/rclass.h
-enc/utf_8.$(OBJEXT): internal/core/rdata.h
-enc/utf_8.$(OBJEXT): internal/core/rfile.h
-enc/utf_8.$(OBJEXT): internal/core/rhash.h
-enc/utf_8.$(OBJEXT): internal/core/robject.h
-enc/utf_8.$(OBJEXT): internal/core/rregexp.h
-enc/utf_8.$(OBJEXT): internal/core/rstring.h
-enc/utf_8.$(OBJEXT): internal/core/rstruct.h
-enc/utf_8.$(OBJEXT): internal/core/rtypeddata.h
-enc/utf_8.$(OBJEXT): internal/ctype.h
-enc/utf_8.$(OBJEXT): internal/dllexport.h
-enc/utf_8.$(OBJEXT): internal/dosish.h
-enc/utf_8.$(OBJEXT): internal/error.h
-enc/utf_8.$(OBJEXT): internal/eval.h
-enc/utf_8.$(OBJEXT): internal/event.h
-enc/utf_8.$(OBJEXT): internal/fl_type.h
-enc/utf_8.$(OBJEXT): internal/gc.h
-enc/utf_8.$(OBJEXT): internal/glob.h
-enc/utf_8.$(OBJEXT): internal/globals.h
-enc/utf_8.$(OBJEXT): internal/has/attribute.h
-enc/utf_8.$(OBJEXT): internal/has/builtin.h
-enc/utf_8.$(OBJEXT): internal/has/c_attribute.h
-enc/utf_8.$(OBJEXT): internal/has/cpp_attribute.h
-enc/utf_8.$(OBJEXT): internal/has/declspec_attribute.h
-enc/utf_8.$(OBJEXT): internal/has/extension.h
-enc/utf_8.$(OBJEXT): internal/has/feature.h
-enc/utf_8.$(OBJEXT): internal/has/warning.h
-enc/utf_8.$(OBJEXT): internal/intern/array.h
-enc/utf_8.$(OBJEXT): internal/intern/bignum.h
-enc/utf_8.$(OBJEXT): internal/intern/class.h
-enc/utf_8.$(OBJEXT): internal/intern/compar.h
-enc/utf_8.$(OBJEXT): internal/intern/complex.h
-enc/utf_8.$(OBJEXT): internal/intern/cont.h
-enc/utf_8.$(OBJEXT): internal/intern/dir.h
-enc/utf_8.$(OBJEXT): internal/intern/enum.h
-enc/utf_8.$(OBJEXT): internal/intern/enumerator.h
-enc/utf_8.$(OBJEXT): internal/intern/error.h
-enc/utf_8.$(OBJEXT): internal/intern/eval.h
-enc/utf_8.$(OBJEXT): internal/intern/file.h
-enc/utf_8.$(OBJEXT): internal/intern/gc.h
-enc/utf_8.$(OBJEXT): internal/intern/hash.h
-enc/utf_8.$(OBJEXT): internal/intern/io.h
-enc/utf_8.$(OBJEXT): internal/intern/load.h
-enc/utf_8.$(OBJEXT): internal/intern/marshal.h
-enc/utf_8.$(OBJEXT): internal/intern/numeric.h
-enc/utf_8.$(OBJEXT): internal/intern/object.h
-enc/utf_8.$(OBJEXT): internal/intern/parse.h
-enc/utf_8.$(OBJEXT): internal/intern/proc.h
-enc/utf_8.$(OBJEXT): internal/intern/process.h
-enc/utf_8.$(OBJEXT): internal/intern/random.h
-enc/utf_8.$(OBJEXT): internal/intern/range.h
-enc/utf_8.$(OBJEXT): internal/intern/rational.h
-enc/utf_8.$(OBJEXT): internal/intern/re.h
-enc/utf_8.$(OBJEXT): internal/intern/ruby.h
-enc/utf_8.$(OBJEXT): internal/intern/select.h
-enc/utf_8.$(OBJEXT): internal/intern/select/largesize.h
-enc/utf_8.$(OBJEXT): internal/intern/signal.h
-enc/utf_8.$(OBJEXT): internal/intern/sprintf.h
-enc/utf_8.$(OBJEXT): internal/intern/string.h
-enc/utf_8.$(OBJEXT): internal/intern/struct.h
-enc/utf_8.$(OBJEXT): internal/intern/thread.h
-enc/utf_8.$(OBJEXT): internal/intern/time.h
-enc/utf_8.$(OBJEXT): internal/intern/variable.h
-enc/utf_8.$(OBJEXT): internal/intern/vm.h
-enc/utf_8.$(OBJEXT): internal/interpreter.h
-enc/utf_8.$(OBJEXT): internal/iterator.h
-enc/utf_8.$(OBJEXT): internal/memory.h
-enc/utf_8.$(OBJEXT): internal/method.h
-enc/utf_8.$(OBJEXT): internal/module.h
-enc/utf_8.$(OBJEXT): internal/newobj.h
-enc/utf_8.$(OBJEXT): internal/rgengc.h
-enc/utf_8.$(OBJEXT): internal/scan_args.h
-enc/utf_8.$(OBJEXT): internal/special_consts.h
-enc/utf_8.$(OBJEXT): internal/static_assert.h
-enc/utf_8.$(OBJEXT): internal/stdalign.h
-enc/utf_8.$(OBJEXT): internal/stdbool.h
-enc/utf_8.$(OBJEXT): internal/symbol.h
-enc/utf_8.$(OBJEXT): internal/token_paste.h
-enc/utf_8.$(OBJEXT): internal/value.h
-enc/utf_8.$(OBJEXT): internal/value_type.h
-enc/utf_8.$(OBJEXT): internal/variable.h
-enc/utf_8.$(OBJEXT): internal/warning_push.h
-enc/utf_8.$(OBJEXT): internal/xmalloc.h
-enc/utf_8.$(OBJEXT): assert.h
-enc/utf_8.$(OBJEXT): backward/2/assume.h
-enc/utf_8.$(OBJEXT): backward/2/attributes.h
-enc/utf_8.$(OBJEXT): backward/2/bool.h
-enc/utf_8.$(OBJEXT): backward/2/gcc_version_since.h
-enc/utf_8.$(OBJEXT): backward/2/inttypes.h
-enc/utf_8.$(OBJEXT): backward/2/limits.h
-enc/utf_8.$(OBJEXT): backward/2/long_long.h
-enc/utf_8.$(OBJEXT): backward/2/stdalign.h
-enc/utf_8.$(OBJEXT): backward/2/stdarg.h
enc/utf_8.$(OBJEXT): config.h
enc/utf_8.$(OBJEXT): defines.h
enc/utf_8.$(OBJEXT): enc/utf_8.c
-enc/utf_8.$(OBJEXT): encoding.h
-enc/utf_8.$(OBJEXT): intern.h
enc/utf_8.$(OBJEXT): missing.h
enc/utf_8.$(OBJEXT): onigmo.h
-enc/utf_8.$(OBJEXT): oniguruma.h
-enc/utf_8.$(OBJEXT): st.h
-enc/utf_8.$(OBJEXT): subst.h
enc/windows_1250.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1250.$(OBJEXT): internal/assume.h
-enc/windows_1250.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1250.$(OBJEXT): internal/attr/cold.h
-enc/windows_1250.$(OBJEXT): internal/attr/const.h
-enc/windows_1250.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1250.$(OBJEXT): internal/attr/error.h
-enc/windows_1250.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1250.$(OBJEXT): internal/attr/format.h
-enc/windows_1250.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1250.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1250.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1250.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1250.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1250.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1250.$(OBJEXT): internal/attr/pure.h
-enc/windows_1250.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1250.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1250.$(OBJEXT): internal/attr/warning.h
-enc/windows_1250.$(OBJEXT): internal/cast.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1250.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1250.$(OBJEXT): internal/compiler_since.h
-enc/windows_1250.$(OBJEXT): internal/config.h
-enc/windows_1250.$(OBJEXT): internal/dllexport.h
-enc/windows_1250.$(OBJEXT): internal/dosish.h
-enc/windows_1250.$(OBJEXT): internal/has/attribute.h
-enc/windows_1250.$(OBJEXT): internal/has/builtin.h
-enc/windows_1250.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1250.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1250.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1250.$(OBJEXT): internal/has/extension.h
-enc/windows_1250.$(OBJEXT): internal/has/feature.h
-enc/windows_1250.$(OBJEXT): internal/has/warning.h
-enc/windows_1250.$(OBJEXT): internal/stdalign.h
-enc/windows_1250.$(OBJEXT): internal/stdbool.h
-enc/windows_1250.$(OBJEXT): internal/token_paste.h
-enc/windows_1250.$(OBJEXT): internal/warning_push.h
-enc/windows_1250.$(OBJEXT): internal/xmalloc.h
-enc/windows_1250.$(OBJEXT): assert.h
-enc/windows_1250.$(OBJEXT): backward/2/assume.h
-enc/windows_1250.$(OBJEXT): backward/2/attributes.h
-enc/windows_1250.$(OBJEXT): backward/2/bool.h
-enc/windows_1250.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1250.$(OBJEXT): backward/2/long_long.h
-enc/windows_1250.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1250.$(OBJEXT): backward/2/stdarg.h
enc/windows_1250.$(OBJEXT): config.h
enc/windows_1250.$(OBJEXT): defines.h
enc/windows_1250.$(OBJEXT): enc/iso_8859.h
@@ -6366,114 +678,12 @@ enc/windows_1250.$(OBJEXT): enc/windows_1250.c
enc/windows_1250.$(OBJEXT): missing.h
enc/windows_1250.$(OBJEXT): onigmo.h
enc/windows_1251.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1251.$(OBJEXT): internal/assume.h
-enc/windows_1251.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1251.$(OBJEXT): internal/attr/cold.h
-enc/windows_1251.$(OBJEXT): internal/attr/const.h
-enc/windows_1251.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1251.$(OBJEXT): internal/attr/error.h
-enc/windows_1251.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1251.$(OBJEXT): internal/attr/format.h
-enc/windows_1251.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1251.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1251.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1251.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1251.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1251.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1251.$(OBJEXT): internal/attr/pure.h
-enc/windows_1251.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1251.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1251.$(OBJEXT): internal/attr/warning.h
-enc/windows_1251.$(OBJEXT): internal/cast.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1251.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1251.$(OBJEXT): internal/compiler_since.h
-enc/windows_1251.$(OBJEXT): internal/config.h
-enc/windows_1251.$(OBJEXT): internal/dllexport.h
-enc/windows_1251.$(OBJEXT): internal/dosish.h
-enc/windows_1251.$(OBJEXT): internal/has/attribute.h
-enc/windows_1251.$(OBJEXT): internal/has/builtin.h
-enc/windows_1251.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1251.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1251.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1251.$(OBJEXT): internal/has/extension.h
-enc/windows_1251.$(OBJEXT): internal/has/feature.h
-enc/windows_1251.$(OBJEXT): internal/has/warning.h
-enc/windows_1251.$(OBJEXT): internal/stdalign.h
-enc/windows_1251.$(OBJEXT): internal/stdbool.h
-enc/windows_1251.$(OBJEXT): internal/token_paste.h
-enc/windows_1251.$(OBJEXT): internal/warning_push.h
-enc/windows_1251.$(OBJEXT): internal/xmalloc.h
-enc/windows_1251.$(OBJEXT): assert.h
-enc/windows_1251.$(OBJEXT): backward/2/assume.h
-enc/windows_1251.$(OBJEXT): backward/2/attributes.h
-enc/windows_1251.$(OBJEXT): backward/2/bool.h
-enc/windows_1251.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1251.$(OBJEXT): backward/2/long_long.h
-enc/windows_1251.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1251.$(OBJEXT): backward/2/stdarg.h
enc/windows_1251.$(OBJEXT): config.h
enc/windows_1251.$(OBJEXT): defines.h
enc/windows_1251.$(OBJEXT): enc/windows_1251.c
enc/windows_1251.$(OBJEXT): missing.h
enc/windows_1251.$(OBJEXT): onigmo.h
enc/windows_1252.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1252.$(OBJEXT): internal/assume.h
-enc/windows_1252.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1252.$(OBJEXT): internal/attr/cold.h
-enc/windows_1252.$(OBJEXT): internal/attr/const.h
-enc/windows_1252.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1252.$(OBJEXT): internal/attr/error.h
-enc/windows_1252.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1252.$(OBJEXT): internal/attr/format.h
-enc/windows_1252.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1252.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1252.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1252.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1252.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1252.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1252.$(OBJEXT): internal/attr/pure.h
-enc/windows_1252.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1252.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1252.$(OBJEXT): internal/attr/warning.h
-enc/windows_1252.$(OBJEXT): internal/cast.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1252.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1252.$(OBJEXT): internal/compiler_since.h
-enc/windows_1252.$(OBJEXT): internal/config.h
-enc/windows_1252.$(OBJEXT): internal/dllexport.h
-enc/windows_1252.$(OBJEXT): internal/dosish.h
-enc/windows_1252.$(OBJEXT): internal/has/attribute.h
-enc/windows_1252.$(OBJEXT): internal/has/builtin.h
-enc/windows_1252.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1252.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1252.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1252.$(OBJEXT): internal/has/extension.h
-enc/windows_1252.$(OBJEXT): internal/has/feature.h
-enc/windows_1252.$(OBJEXT): internal/has/warning.h
-enc/windows_1252.$(OBJEXT): internal/stdalign.h
-enc/windows_1252.$(OBJEXT): internal/stdbool.h
-enc/windows_1252.$(OBJEXT): internal/token_paste.h
-enc/windows_1252.$(OBJEXT): internal/warning_push.h
-enc/windows_1252.$(OBJEXT): internal/xmalloc.h
-enc/windows_1252.$(OBJEXT): assert.h
-enc/windows_1252.$(OBJEXT): backward/2/assume.h
-enc/windows_1252.$(OBJEXT): backward/2/attributes.h
-enc/windows_1252.$(OBJEXT): backward/2/bool.h
-enc/windows_1252.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1252.$(OBJEXT): backward/2/long_long.h
-enc/windows_1252.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1252.$(OBJEXT): backward/2/stdarg.h
enc/windows_1252.$(OBJEXT): config.h
enc/windows_1252.$(OBJEXT): defines.h
enc/windows_1252.$(OBJEXT): enc/iso_8859.h
@@ -6481,114 +691,12 @@ enc/windows_1252.$(OBJEXT): enc/windows_1252.c
enc/windows_1252.$(OBJEXT): missing.h
enc/windows_1252.$(OBJEXT): onigmo.h
enc/windows_1253.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1253.$(OBJEXT): internal/assume.h
-enc/windows_1253.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1253.$(OBJEXT): internal/attr/cold.h
-enc/windows_1253.$(OBJEXT): internal/attr/const.h
-enc/windows_1253.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1253.$(OBJEXT): internal/attr/error.h
-enc/windows_1253.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1253.$(OBJEXT): internal/attr/format.h
-enc/windows_1253.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1253.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1253.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1253.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1253.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1253.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1253.$(OBJEXT): internal/attr/pure.h
-enc/windows_1253.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1253.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1253.$(OBJEXT): internal/attr/warning.h
-enc/windows_1253.$(OBJEXT): internal/cast.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1253.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1253.$(OBJEXT): internal/compiler_since.h
-enc/windows_1253.$(OBJEXT): internal/config.h
-enc/windows_1253.$(OBJEXT): internal/dllexport.h
-enc/windows_1253.$(OBJEXT): internal/dosish.h
-enc/windows_1253.$(OBJEXT): internal/has/attribute.h
-enc/windows_1253.$(OBJEXT): internal/has/builtin.h
-enc/windows_1253.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1253.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1253.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1253.$(OBJEXT): internal/has/extension.h
-enc/windows_1253.$(OBJEXT): internal/has/feature.h
-enc/windows_1253.$(OBJEXT): internal/has/warning.h
-enc/windows_1253.$(OBJEXT): internal/stdalign.h
-enc/windows_1253.$(OBJEXT): internal/stdbool.h
-enc/windows_1253.$(OBJEXT): internal/token_paste.h
-enc/windows_1253.$(OBJEXT): internal/warning_push.h
-enc/windows_1253.$(OBJEXT): internal/xmalloc.h
-enc/windows_1253.$(OBJEXT): assert.h
-enc/windows_1253.$(OBJEXT): backward/2/assume.h
-enc/windows_1253.$(OBJEXT): backward/2/attributes.h
-enc/windows_1253.$(OBJEXT): backward/2/bool.h
-enc/windows_1253.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1253.$(OBJEXT): backward/2/long_long.h
-enc/windows_1253.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1253.$(OBJEXT): backward/2/stdarg.h
enc/windows_1253.$(OBJEXT): config.h
enc/windows_1253.$(OBJEXT): defines.h
enc/windows_1253.$(OBJEXT): enc/windows_1253.c
enc/windows_1253.$(OBJEXT): missing.h
enc/windows_1253.$(OBJEXT): onigmo.h
enc/windows_1254.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1254.$(OBJEXT): internal/assume.h
-enc/windows_1254.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1254.$(OBJEXT): internal/attr/cold.h
-enc/windows_1254.$(OBJEXT): internal/attr/const.h
-enc/windows_1254.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1254.$(OBJEXT): internal/attr/error.h
-enc/windows_1254.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1254.$(OBJEXT): internal/attr/format.h
-enc/windows_1254.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1254.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1254.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1254.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1254.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1254.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1254.$(OBJEXT): internal/attr/pure.h
-enc/windows_1254.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1254.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1254.$(OBJEXT): internal/attr/warning.h
-enc/windows_1254.$(OBJEXT): internal/cast.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1254.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1254.$(OBJEXT): internal/compiler_since.h
-enc/windows_1254.$(OBJEXT): internal/config.h
-enc/windows_1254.$(OBJEXT): internal/dllexport.h
-enc/windows_1254.$(OBJEXT): internal/dosish.h
-enc/windows_1254.$(OBJEXT): internal/has/attribute.h
-enc/windows_1254.$(OBJEXT): internal/has/builtin.h
-enc/windows_1254.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1254.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1254.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1254.$(OBJEXT): internal/has/extension.h
-enc/windows_1254.$(OBJEXT): internal/has/feature.h
-enc/windows_1254.$(OBJEXT): internal/has/warning.h
-enc/windows_1254.$(OBJEXT): internal/stdalign.h
-enc/windows_1254.$(OBJEXT): internal/stdbool.h
-enc/windows_1254.$(OBJEXT): internal/token_paste.h
-enc/windows_1254.$(OBJEXT): internal/warning_push.h
-enc/windows_1254.$(OBJEXT): internal/xmalloc.h
-enc/windows_1254.$(OBJEXT): assert.h
-enc/windows_1254.$(OBJEXT): backward/2/assume.h
-enc/windows_1254.$(OBJEXT): backward/2/attributes.h
-enc/windows_1254.$(OBJEXT): backward/2/bool.h
-enc/windows_1254.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1254.$(OBJEXT): backward/2/long_long.h
-enc/windows_1254.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1254.$(OBJEXT): backward/2/stdarg.h
enc/windows_1254.$(OBJEXT): config.h
enc/windows_1254.$(OBJEXT): defines.h
enc/windows_1254.$(OBJEXT): enc/iso_8859.h
@@ -6596,57 +704,6 @@ enc/windows_1254.$(OBJEXT): enc/windows_1254.c
enc/windows_1254.$(OBJEXT): missing.h
enc/windows_1254.$(OBJEXT): onigmo.h
enc/windows_1257.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_1257.$(OBJEXT): internal/assume.h
-enc/windows_1257.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_1257.$(OBJEXT): internal/attr/cold.h
-enc/windows_1257.$(OBJEXT): internal/attr/const.h
-enc/windows_1257.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_1257.$(OBJEXT): internal/attr/error.h
-enc/windows_1257.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_1257.$(OBJEXT): internal/attr/format.h
-enc/windows_1257.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_1257.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_1257.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_1257.$(OBJEXT): internal/attr/noinline.h
-enc/windows_1257.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_1257.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_1257.$(OBJEXT): internal/attr/pure.h
-enc/windows_1257.$(OBJEXT): internal/attr/restrict.h
-enc/windows_1257.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_1257.$(OBJEXT): internal/attr/warning.h
-enc/windows_1257.$(OBJEXT): internal/cast.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_1257.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_1257.$(OBJEXT): internal/compiler_since.h
-enc/windows_1257.$(OBJEXT): internal/config.h
-enc/windows_1257.$(OBJEXT): internal/dllexport.h
-enc/windows_1257.$(OBJEXT): internal/dosish.h
-enc/windows_1257.$(OBJEXT): internal/has/attribute.h
-enc/windows_1257.$(OBJEXT): internal/has/builtin.h
-enc/windows_1257.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_1257.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_1257.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_1257.$(OBJEXT): internal/has/extension.h
-enc/windows_1257.$(OBJEXT): internal/has/feature.h
-enc/windows_1257.$(OBJEXT): internal/has/warning.h
-enc/windows_1257.$(OBJEXT): internal/stdalign.h
-enc/windows_1257.$(OBJEXT): internal/stdbool.h
-enc/windows_1257.$(OBJEXT): internal/token_paste.h
-enc/windows_1257.$(OBJEXT): internal/warning_push.h
-enc/windows_1257.$(OBJEXT): internal/xmalloc.h
-enc/windows_1257.$(OBJEXT): assert.h
-enc/windows_1257.$(OBJEXT): backward/2/assume.h
-enc/windows_1257.$(OBJEXT): backward/2/attributes.h
-enc/windows_1257.$(OBJEXT): backward/2/bool.h
-enc/windows_1257.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_1257.$(OBJEXT): backward/2/long_long.h
-enc/windows_1257.$(OBJEXT): backward/2/stdalign.h
-enc/windows_1257.$(OBJEXT): backward/2/stdarg.h
enc/windows_1257.$(OBJEXT): config.h
enc/windows_1257.$(OBJEXT): defines.h
enc/windows_1257.$(OBJEXT): enc/iso_8859.h
@@ -6654,57 +711,6 @@ enc/windows_1257.$(OBJEXT): enc/windows_1257.c
enc/windows_1257.$(OBJEXT): missing.h
enc/windows_1257.$(OBJEXT): onigmo.h
enc/windows_31j.$(OBJEXT): $(top_srcdir)/regenc.h
-enc/windows_31j.$(OBJEXT): internal/assume.h
-enc/windows_31j.$(OBJEXT): internal/attr/alloc_size.h
-enc/windows_31j.$(OBJEXT): internal/attr/cold.h
-enc/windows_31j.$(OBJEXT): internal/attr/const.h
-enc/windows_31j.$(OBJEXT): internal/attr/deprecated.h
-enc/windows_31j.$(OBJEXT): internal/attr/error.h
-enc/windows_31j.$(OBJEXT): internal/attr/forceinline.h
-enc/windows_31j.$(OBJEXT): internal/attr/format.h
-enc/windows_31j.$(OBJEXT): internal/attr/maybe_unused.h
-enc/windows_31j.$(OBJEXT): internal/attr/nodiscard.h
-enc/windows_31j.$(OBJEXT): internal/attr/noexcept.h
-enc/windows_31j.$(OBJEXT): internal/attr/noinline.h
-enc/windows_31j.$(OBJEXT): internal/attr/nonnull.h
-enc/windows_31j.$(OBJEXT): internal/attr/noreturn.h
-enc/windows_31j.$(OBJEXT): internal/attr/pure.h
-enc/windows_31j.$(OBJEXT): internal/attr/restrict.h
-enc/windows_31j.$(OBJEXT): internal/attr/returns_nonnull.h
-enc/windows_31j.$(OBJEXT): internal/attr/warning.h
-enc/windows_31j.$(OBJEXT): internal/cast.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/apple.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/clang.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/gcc.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/intel.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/msvc.h
-enc/windows_31j.$(OBJEXT): internal/compiler_is/sunpro.h
-enc/windows_31j.$(OBJEXT): internal/compiler_since.h
-enc/windows_31j.$(OBJEXT): internal/config.h
-enc/windows_31j.$(OBJEXT): internal/dllexport.h
-enc/windows_31j.$(OBJEXT): internal/dosish.h
-enc/windows_31j.$(OBJEXT): internal/has/attribute.h
-enc/windows_31j.$(OBJEXT): internal/has/builtin.h
-enc/windows_31j.$(OBJEXT): internal/has/c_attribute.h
-enc/windows_31j.$(OBJEXT): internal/has/cpp_attribute.h
-enc/windows_31j.$(OBJEXT): internal/has/declspec_attribute.h
-enc/windows_31j.$(OBJEXT): internal/has/extension.h
-enc/windows_31j.$(OBJEXT): internal/has/feature.h
-enc/windows_31j.$(OBJEXT): internal/has/warning.h
-enc/windows_31j.$(OBJEXT): internal/stdalign.h
-enc/windows_31j.$(OBJEXT): internal/stdbool.h
-enc/windows_31j.$(OBJEXT): internal/token_paste.h
-enc/windows_31j.$(OBJEXT): internal/warning_push.h
-enc/windows_31j.$(OBJEXT): internal/xmalloc.h
-enc/windows_31j.$(OBJEXT): assert.h
-enc/windows_31j.$(OBJEXT): backward/2/assume.h
-enc/windows_31j.$(OBJEXT): backward/2/attributes.h
-enc/windows_31j.$(OBJEXT): backward/2/bool.h
-enc/windows_31j.$(OBJEXT): backward/2/gcc_version_since.h
-enc/windows_31j.$(OBJEXT): backward/2/long_long.h
-enc/windows_31j.$(OBJEXT): backward/2/stdalign.h
-enc/windows_31j.$(OBJEXT): backward/2/stdarg.h
enc/windows_31j.$(OBJEXT): config.h
enc/windows_31j.$(OBJEXT): defines.h
enc/windows_31j.$(OBJEXT): enc/jis/props.h
diff --git a/enc/encdb.c b/enc/encdb.c
index a1936df804..a41e4edc6d 100644
--- a/enc/encdb.c
+++ b/enc/encdb.c
@@ -9,7 +9,7 @@
**********************************************************************/
-#include "internal/encoding.h"
+#include "internal.h"
#define ENC_REPLICATE(name, orig) rb_encdb_replicate((name), (orig))
#define ENC_ALIAS(name, orig) rb_encdb_alias((name), (orig))
diff --git a/enc/euc_jp.c b/enc/euc_jp.c
index d283bf4ebb..ded051af69 100644
--- a/enc/euc_jp.c
+++ b/enc/euc_jp.c
@@ -593,7 +593,7 @@ ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese
* Name: eucJP-ms
* Link: http://home.m05.itscom.net/numa/cde/ucs-conv/ucs-conv.html
* Link: http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/eucJP-ms.html
- * Link: https://ja.wikipedia.org/wiki/EUC-JP
+ * Link: http://ja.wikipedia.org/wiki/EUC-JP
*/
ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */
ENC_ALIAS("euc-jp-ms", "eucJP-ms")
@@ -610,7 +610,7 @@ ENC_REPLICATE("CP51932", "EUC-JP")
/*
* Name: EUC-JIS-2004
- * Link: https://ja.wikipedia.org/wiki/EUC-JIS-2004
+ * Link: http://ja.wikipedia.org/wiki/EUC-JIS-2004
*/
ENC_REPLICATE("EUC-JIS-2004", "EUC-JP") /* defined at JIS X 0213:2004 */
ENC_ALIAS("EUC-JISX0213", "EUC-JIS-2004") /* defined at JIS X 0213:2000, and obsolete at JIS X 0213:2004 */
diff --git a/enc/iso_8859_11.c b/enc/iso_8859_11.c
index b9c6119fd9..85e8f2cdb4 100644
--- a/enc/iso_8859_11.c
+++ b/enc/iso_8859_11.c
@@ -102,7 +102,7 @@ ENC_ALIAS("ISO8859-11", "ISO-8859-11")
/*
* Name: TIS-620
* MIBenum: 2259
- * Link: https://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533
+ * Link: http://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533
*/
ENC_REPLICATE("TIS-620", "ISO-8859-11")
diff --git a/enc/iso_8859_6.c b/enc/iso_8859_6.c
index cdb74054d1..6d852ac8c0 100644
--- a/enc/iso_8859_6.c
+++ b/enc/iso_8859_6.c
@@ -104,7 +104,7 @@ ENC_ALIAS("ISO8859-6", "ISO-8859-6")
* MIBenum: 2256
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1256.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1256
+ * Link: http://en.wikipedia.org/wiki/Windows-1256
*/
ENC_REPLICATE("Windows-1256", "ISO-8859-6")
ENC_ALIAS("CP1256", "Windows-1256")
diff --git a/enc/iso_8859_8.c b/enc/iso_8859_8.c
index e256855f21..0a7a29e82e 100644
--- a/enc/iso_8859_8.c
+++ b/enc/iso_8859_8.c
@@ -104,7 +104,7 @@ ENC_ALIAS("ISO8859-8", "ISO-8859-8")
* MIBenum: 2255
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1255.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1255
+ * Link: http://en.wikipedia.org/wiki/Windows-1255
*/
ENC_REPLICATE("Windows-1255", "ISO-8859-8")
ENC_ALIAS("CP1255", "Windows-1255")
diff --git a/enc/shift_jis.c b/enc/shift_jis.c
index f1355d2d95..65fd5102de 100644
--- a/enc/shift_jis.c
+++ b/enc/shift_jis.c
@@ -55,13 +55,13 @@ OnigEncodingDefine(shift_jis, Shift_JIS) = {
* Name: Shift_JIS
* MIBenum: 17
* Link: http://www.iana.org/assignments/character-sets
- * Link: https://ja.wikipedia.org/wiki/Shift_JIS
+ * Link: http://ja.wikipedia.org/wiki/Shift_JIS
*/
/*
* Name: MacJapanese
* Link: http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT
- * Link: https://ja.wikipedia.org/wiki/MacJapanese
+ * Link: http://ja.wikipedia.org/wiki/MacJapanese
*/
ENC_REPLICATE("MacJapanese", "Shift_JIS")
ENC_ALIAS("MacJapan", "MacJapanese")
diff --git a/enc/trans/escape.trans b/enc/trans/escape.trans
index 36d9dd0f13..c76ffa0e06 100644
--- a/enc/trans/escape.trans
+++ b/enc/trans/escape.trans
@@ -18,10 +18,9 @@
], nil)
transcode_tblgen("", "xml_attr_content_escape", [
- ["{00-21,23-25,28-3B,3D,3F-FF}", :nomap],
+ ["{00-21,23-25,27-3B,3D,3F-FF}", :nomap],
["22", hexstr("&quot;")],
["26", hexstr("&amp;")],
- ["27", hexstr("&apos;")],
["3C", hexstr("&lt;")],
["3E", hexstr("&gt;")]
], nil)
diff --git a/enc/trans/ibm720-tbl.rb b/enc/trans/ibm720-tbl.rb
deleted file mode 100644
index 558684d649..0000000000
--- a/enc/trans/ibm720-tbl.rb
+++ /dev/null
@@ -1,122 +0,0 @@
-IBM720_TO_UCS_TBL = [
- ["FF",0xA0],
- ["9C",0xA3],
- ["94",0xA4],
- ["AE",0xAB],
- ["F8",0xB0],
- ["FD",0xB2],
- ["E6",0xB5],
- ["FA",0xB7],
- ["AF",0xBB],
- ["85",0xE0],
- ["83",0xE2],
- ["87",0xE7],
- ["8A",0xE8],
- ["82",0xE9],
- ["88",0xEA],
- ["89",0xEB],
- ["8C",0xEE],
- ["8B",0xEF],
- ["93",0xF4],
- ["97",0xF9],
- ["96",0xFB],
- ["98",0x621],
- ["99",0x622],
- ["9A",0x623],
- ["9B",0x624],
- ["9D",0x625],
- ["9E",0x626],
- ["9F",0x627],
- ["A0",0x628],
- ["A1",0x629],
- ["A2",0x62A],
- ["A3",0x62B],
- ["A4",0x62C],
- ["A5",0x62D],
- ["A6",0x62E],
- ["A7",0x62F],
- ["A8",0x630],
- ["A9",0x631],
- ["AA",0x632],
- ["AB",0x633],
- ["AC",0x634],
- ["AD",0x635],
- ["E0",0x636],
- ["E1",0x637],
- ["E2",0x638],
- ["E3",0x639],
- ["E4",0x63A],
- ["95",0x640],
- ["E5",0x641],
- ["E7",0x642],
- ["E8",0x643],
- ["E9",0x644],
- ["EA",0x645],
- ["EB",0x646],
- ["EC",0x647],
- ["ED",0x648],
- ["EE",0x649],
- ["EF",0x64A],
- ["F1",0x64B],
- ["F2",0x64C],
- ["F3",0x64D],
- ["F4",0x64E],
- ["F5",0x64F],
- ["F6",0x650],
- ["91",0x651],
- ["92",0x652],
- ["FC",0x207F],
- ["F9",0x2219],
- ["FB",0x221A],
- ["F7",0x2248],
- ["F0",0x2261],
- ["C4",0x2500],
- ["B3",0x2502],
- ["DA",0x250C],
- ["BF",0x2510],
- ["C0",0x2514],
- ["D9",0x2518],
- ["C3",0x251C],
- ["B4",0x2524],
- ["C2",0x252C],
- ["C1",0x2534],
- ["C5",0x253C],
- ["CD",0x2550],
- ["BA",0x2551],
- ["D5",0x2552],
- ["D6",0x2553],
- ["C9",0x2554],
- ["B8",0x2555],
- ["B7",0x2556],
- ["BB",0x2557],
- ["D4",0x2558],
- ["D3",0x2559],
- ["C8",0x255A],
- ["BE",0x255B],
- ["BD",0x255C],
- ["BC",0x255D],
- ["C6",0x255E],
- ["C7",0x255F],
- ["CC",0x2560],
- ["B5",0x2561],
- ["B6",0x2562],
- ["B9",0x2563],
- ["D1",0x2564],
- ["D2",0x2565],
- ["CB",0x2566],
- ["CF",0x2567],
- ["D0",0x2568],
- ["CA",0x2569],
- ["D8",0x256A],
- ["D7",0x256B],
- ["CE",0x256C],
- ["DF",0x2580],
- ["DC",0x2584],
- ["DB",0x2588],
- ["DD",0x258C],
- ["DE",0x2590],
- ["B0",0x2591],
- ["B1",0x2592],
- ["B2",0x2593],
- ["FE",0x25A0],
-]
diff --git a/enc/trans/newline.trans b/enc/trans/newline.trans
index 9e763407f9..a200ec00a7 100644
--- a/enc/trans/newline.trans
+++ b/enc/trans/newline.trans
@@ -98,7 +98,7 @@ rb_universal_newline = {
2, /* max_output */
asciicompat_converter, /* asciicompat_type */
2, universal_newline_init, universal_newline_init, /* state_size, state_init, state_fini */
- 0, 0, 0, fun_so_universal_newline,
+ NULL, NULL, NULL, fun_so_universal_newline,
universal_newline_finish
};
@@ -110,8 +110,8 @@ rb_crlf_newline = {
1, /* max_input */
2, /* max_output */
asciicompat_converter, /* asciicompat_type */
- 0, 0, 0, /* state_size, state_init, state_fini */
- 0, 0, 0, 0
+ 0, NULL, NULL, /* state_size, state_init, state_fini */
+ NULL, NULL, NULL, NULL
};
static const rb_transcoder
@@ -122,8 +122,8 @@ rb_cr_newline = {
1, /* max_input */
1, /* max_output */
asciicompat_converter, /* asciicompat_type */
- 0, 0, 0, /* state_size, state_init, state_fini */
- 0, 0, 0, 0
+ 0, NULL, NULL, /* state_size, state_init, state_fini */
+ NULL, NULL, NULL, NULL
};
void
diff --git a/enc/trans/single_byte.trans b/enc/trans/single_byte.trans
index 0d5407b918..cf521bed38 100644
--- a/enc/trans/single_byte.trans
+++ b/enc/trans/single_byte.trans
@@ -51,9 +51,8 @@
transcode_tblgen_singlebyte "WINDOWS-1256"
transcode_tblgen_singlebyte "WINDOWS-1257"
transcode_tblgen_singlebyte "IBM437"
- transcode_tblgen_singlebyte "IBM720"
- transcode_tblgen_singlebyte "IBM737"
transcode_tblgen_singlebyte "IBM775"
+ transcode_tblgen_singlebyte "IBM737"
transcode_tblgen_singlebyte "IBM852"
transcode_tblgen_singlebyte "IBM855"
transcode_tblgen_singlebyte "IBM857"
diff --git a/enc/unicode.c b/enc/unicode.c
index 18fba02476..6e8c3d8816 100644
--- a/enc/unicode.c
+++ b/enc/unicode.c
@@ -493,10 +493,6 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
#endif
if ((to = onigenc_unicode_fold_lookup(code)) != 0) {
- if (OnigCodePointCount(to->n) == 0) {
- /* any codepoint should not be empty */
- UNREACHABLE_RETURN(0);
- }
if (OnigCodePointCount(to->n) == 1) {
OnigCodePoint orig_code = code;
diff --git a/enc/unicode/case-folding.rb b/enc/unicode/case-folding.rb
index 4a29fdebf7..362d6ebfd9 100644..100755
--- a/enc/unicode/case-folding.rb
+++ b/enc/unicode/case-folding.rb
@@ -232,7 +232,7 @@ class CaseMapping
@version = nil
IO.foreach(File.join(mapping_directory, 'UnicodeData.txt'), mode: "rb") do |line|
next if line =~ /^</
- code, _, _, _, _, _, _, _, _, _, _, _, upper, lower, title = line.chomp.split ';'
+ code, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11, upper, lower, title = line.chomp.split ';'
unless upper and lower and title and (upper+lower+title)==''
@mappings[code] = MapItem.new(code, upper, lower, title)
end
diff --git a/enc/windows_1250.c b/enc/windows_1250.c
index daf23e9d1e..d2cf7b16bc 100644
--- a/enc/windows_1250.c
+++ b/enc/windows_1250.c
@@ -266,6 +266,6 @@ OnigEncodingDefine(windows_1250, Windows_1250) = {
* MIBenum: 2251
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1250.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1250
+ * Link: http://en.wikipedia.org/wiki/Windows-1250
*/
ENC_ALIAS("CP1250", "Windows-1250")
diff --git a/enc/windows_1251.c b/enc/windows_1251.c
index 6c892c1b8c..fcd0f1015d 100644
--- a/enc/windows_1251.c
+++ b/enc/windows_1251.c
@@ -248,6 +248,6 @@ OnigEncodingDefine(windows_1251, Windows_1251) = {
* MIBenum: 2251
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1251.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1251
+ * Link: http://en.wikipedia.org/wiki/Windows-1251
*/
ENC_ALIAS("CP1251", "Windows-1251")
diff --git a/enc/windows_1252.c b/enc/windows_1252.c
index b685878d3f..5f90c15601 100644
--- a/enc/windows_1252.c
+++ b/enc/windows_1252.c
@@ -255,6 +255,6 @@ OnigEncodingDefine(windows_1252, Windows_1252) = {
* MIBenum: 2251
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1252
+ * Link: http://en.wikipedia.org/wiki/Windows-1252
*/
ENC_ALIAS("CP1252", "Windows-1252")
diff --git a/enc/windows_1253.c b/enc/windows_1253.c
index b2a43581c3..9e9c63a581 100644
--- a/enc/windows_1253.c
+++ b/enc/windows_1253.c
@@ -32,7 +32,7 @@
* MIBenum: 2253
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1253.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1253
+ * Link: http://en.wikipedia.org/wiki/Windows-1253
*/
#include "regenc.h"
diff --git a/enc/windows_1254.c b/enc/windows_1254.c
index 5e6d92d3d2..9ae66978a2 100644
--- a/enc/windows_1254.c
+++ b/enc/windows_1254.c
@@ -32,7 +32,7 @@
* MIBenum: 2254
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1254.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1254
+ * Link: http://en.wikipedia.org/wiki/Windows-1254
*/
#include "regenc.h"
diff --git a/enc/windows_1257.c b/enc/windows_1257.c
index ada03b72bf..936a94ac76 100644
--- a/enc/windows_1257.c
+++ b/enc/windows_1257.c
@@ -35,7 +35,7 @@
* MIBenum: 2257
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/sbcs/1257.mspx
- * Link: https://en.wikipedia.org/wiki/Windows-1257
+ * Link: http://en.wikipedia.org/wiki/Windows-1257
*/
#define ENC_CP1252_TO_LOWER_CASE(c) EncCP1252_ToLowerCaseTable[c]
diff --git a/enc/windows_31j.c b/enc/windows_31j.c
index 1eb859596a..e3a468f414 100644
--- a/enc/windows_31j.c
+++ b/enc/windows_31j.c
@@ -57,7 +57,7 @@ OnigEncodingDefine(windows_31j, Windows_31J) = {
* MIBenum: 2024
* Link: http://www.iana.org/assignments/character-sets
* Link: http://www.microsoft.com/globaldev/reference/dbcs/932.mspx
- * Link: https://ja.wikipedia.org/wiki/Windows-31J
+ * Link: http://ja.wikipedia.org/wiki/Windows-31J
* Link: http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-932-2000.ucm
*
* Windows Standard Character Set and its mapping to Unicode by Microsoft.
diff --git a/encindex.h b/encindex.h
index 8457a7b39f..658b60a9fd 100644
--- a/encindex.h
+++ b/encindex.h
@@ -1,5 +1,3 @@
-#ifndef RUBY_ENCINDEX_H
-#define RUBY_ENCINDEX_H 1
/**********************************************************************
encindex.h -
@@ -11,7 +9,8 @@
**********************************************************************/
-#include "ruby/encoding.h" /* rb_ascii8bit_encindex etc. */
+#ifndef RUBY_ENCINDEX_H
+#define RUBY_ENCINDEX_H 1
#if defined(__cplusplus)
extern "C" {
#if 0
diff --git a/encoding.c b/encoding.c
index 32d5a349eb..69015cc8fd 100644
--- a/encoding.c
+++ b/encoding.c
@@ -9,25 +9,14 @@
**********************************************************************/
-#include "ruby/internal/config.h"
-
-#include <ctype.h>
-
-#include "encindex.h"
+#include "ruby/encoding.h"
#include "internal.h"
-#include "internal/enc.h"
-#include "internal/encoding.h"
-#include "internal/inits.h"
-#include "internal/load.h"
-#include "internal/object.h"
-#include "internal/string.h"
-#include "internal/vm.h"
+#include "encindex.h"
#include "regenc.h"
-#include "ruby/encoding.h"
+#include <ctype.h>
#include "ruby/util.h"
-#include "ruby_assert.h"
-#include "vm_sync.h"
+#include "ruby_assert.h"
#ifndef ENC_DEBUG
#define ENC_DEBUG 0
#endif
@@ -55,10 +44,7 @@ void rb_encdb_set_unicode(int index);
static ID id_encoding;
VALUE rb_cEncoding;
-
-#define DEFAULT_ENCODING_LIST_CAPA 128
-static VALUE rb_default_encoding_list;
-static VALUE rb_additional_encoding_list;
+static VALUE rb_encoding_list;
struct rb_encoding_entry {
const char *name;
@@ -66,27 +52,12 @@ struct rb_encoding_entry {
rb_encoding *base;
};
-static struct enc_table {
+static struct {
struct rb_encoding_entry *list;
int count;
int size;
st_table *names;
-} global_enc_table;
-
-static rb_encoding *global_enc_ascii,
- *global_enc_utf_8,
- *global_enc_us_ascii;
-
-#define GLOBAL_ENC_TABLE_ENTER(enc_table) struct enc_table *enc_table = &global_enc_table; RB_VM_LOCK_ENTER()
-#define GLOBAL_ENC_TABLE_LEAVE() RB_VM_LOCK_LEAVE()
-#define GLOBAL_ENC_TABLE_EVAL(enc_table, expr) do { \
- GLOBAL_ENC_TABLE_ENTER(enc_table); \
- { \
- expr; \
- } \
- GLOBAL_ENC_TABLE_LEAVE(); \
-} while (0)
-
+} enc_table;
#define ENC_DUMMY_FLAG (1<<24)
#define ENC_INDEX_MASK (~(~0U<<24))
@@ -101,6 +72,10 @@ static rb_encoding *global_enc_ascii,
#define ENCODING_NAMELEN_MAX 63
#define valid_encoding_name_p(name) ((name) && strlen(name) <= ENCODING_NAMELEN_MAX)
+#define enc_autoload_p(enc) (!rb_enc_mbmaxlen(enc))
+
+static int load_encoding(const char *name);
+
static const rb_data_type_t encoding_data_type = {
"encoding",
{0, 0, 0,},
@@ -119,69 +94,22 @@ rb_data_is_encoding(VALUE obj)
static VALUE
enc_new(rb_encoding *encoding)
{
- VALUE enc = TypedData_Wrap_Struct(rb_cEncoding, &encoding_data_type, (void *)encoding);
- rb_obj_freeze(enc);
- FL_SET_RAW(enc, RUBY_FL_SHAREABLE);
- return enc;
-}
-
-static void
-enc_list_update(int index, rb_raw_encoding *encoding)
-{
- if (index < DEFAULT_ENCODING_LIST_CAPA) {
- VALUE list = rb_default_encoding_list;
- if (list && NIL_P(rb_ary_entry(list, index))) {
- /* initialize encoding data */
- rb_ary_store(list, index, enc_new(encoding));
- }
- }
- else {
- RB_VM_LOCK_ENTER();
- {
- VALUE list = rb_additional_encoding_list;
- if (list && NIL_P(rb_ary_entry(list, index))) {
- /* initialize encoding data */
- rb_ary_store(list, index - DEFAULT_ENCODING_LIST_CAPA, enc_new(encoding));
- }
- }
- RB_VM_LOCK_LEAVE();
- }
+ return TypedData_Wrap_Struct(rb_cEncoding, &encoding_data_type, (void *)encoding);
}
static VALUE
-enc_list_lookup(int idx)
+rb_enc_from_encoding_index(int idx)
{
VALUE list, enc;
- if (idx < DEFAULT_ENCODING_LIST_CAPA) {
- if (!(list = rb_default_encoding_list)) {
- rb_bug("rb_enc_from_encoding_index(%d): no rb_default_encoding_list", idx);
- }
- enc = rb_ary_entry(list, idx);
+ if (!(list = rb_encoding_list)) {
+ rb_bug("rb_enc_from_encoding_index(%d): no rb_encoding_list", idx);
}
- else {
- RB_VM_LOCK_ENTER();
- {
- if (!(list = rb_additional_encoding_list)) {
- rb_bug("rb_enc_from_encoding_index(%d): no rb_additional_encoding_list", idx);
- }
- enc = rb_ary_entry(list, idx - DEFAULT_ENCODING_LIST_CAPA);
- }
- RB_VM_LOCK_LEAVE();
- }
-
+ enc = rb_ary_entry(list, idx);
if (NIL_P(enc)) {
- rb_bug("rb_enc_from_encoding_index(%d): not created yet", idx);
+ rb_bug("rb_enc_from_encoding_index(%d): not created yet", idx);
}
- else {
- return enc;
- }
-}
-
-static VALUE
-rb_enc_from_encoding_index(int idx)
-{
- return enc_list_lookup(idx);
+ return enc;
}
VALUE
@@ -205,14 +133,16 @@ rb_enc_dummy_p(rb_encoding *enc)
return ENC_DUMMY_P(enc) != 0;
}
+static int enc_autoload(rb_encoding *);
+
static int
check_encoding(rb_encoding *enc)
{
int index = rb_enc_to_index(enc);
if (rb_enc_from_index(index) != enc)
return -1;
- if (rb_enc_autoload_p(enc)) {
- index = rb_enc_autoload(enc);
+ if (enc_autoload_p(enc)) {
+ index = enc_autoload(enc);
}
return index;
}
@@ -256,7 +186,7 @@ must_encindex(int index)
rb_raise(rb_eEncodingError, "wrong encoding index %d for %s (expected %d)",
index, rb_enc_name(enc), ENC_TO_ENCINDEX(enc));
}
- if (rb_enc_autoload_p(enc) && rb_enc_autoload(enc) == -1) {
+ if (enc_autoload_p(enc) && enc_autoload(enc) == -1) {
rb_loaderror("failed to load encoding (%s)",
rb_enc_name(enc));
}
@@ -267,7 +197,6 @@ int
rb_to_encoding_index(VALUE enc)
{
int idx;
- const char *name;
idx = enc_check_encoding(enc);
if (idx >= 0) {
@@ -279,33 +208,20 @@ rb_to_encoding_index(VALUE enc)
if (!rb_enc_asciicompat(rb_enc_get(enc))) {
return -1;
}
- if (!(name = rb_str_to_cstr(enc))) {
- return -1;
- }
- return rb_enc_find_index(name);
-}
-
-static const char *
-name_for_encoding(volatile VALUE *enc)
-{
- VALUE name = StringValue(*enc);
- const char *n;
-
- if (!rb_enc_asciicompat(rb_enc_get(name))) {
- rb_raise(rb_eArgError, "invalid encoding name (non ASCII)");
- }
- if (!(n = rb_str_to_cstr(name))) {
- rb_raise(rb_eArgError, "invalid encoding name (NUL byte)");
- }
- return n;
+ return rb_enc_find_index(StringValueCStr(enc));
}
/* Returns encoding index or UNSPECIFIED_ENCODING */
static int
str_find_encindex(VALUE enc)
{
- int idx = rb_enc_find_index(name_for_encoding(&enc));
- RB_GC_GUARD(enc);
+ int idx;
+
+ StringValue(enc);
+ if (!rb_enc_asciicompat(rb_enc_get(enc))) {
+ rb_raise(rb_eArgError, "invalid name encoding (non ASCII)");
+ }
+ idx = rb_enc_find_index(StringValueCStr(enc));
return idx;
}
@@ -343,25 +259,26 @@ rb_find_encoding(VALUE enc)
}
static int
-enc_table_expand(struct enc_table *enc_table, int newsize)
+enc_table_expand(int newsize)
{
struct rb_encoding_entry *ent;
int count = newsize;
- if (enc_table->size >= newsize) return newsize;
+ if (enc_table.size >= newsize) return newsize;
newsize = (newsize + 7) / 8 * 8;
- ent = REALLOC_N(enc_table->list, struct rb_encoding_entry, newsize);
- memset(ent + enc_table->size, 0, sizeof(*ent)*(newsize - enc_table->size));
- enc_table->list = ent;
- enc_table->size = newsize;
+ ent = REALLOC_N(enc_table.list, struct rb_encoding_entry, newsize);
+ memset(ent + enc_table.size, 0, sizeof(*ent)*(newsize - enc_table.size));
+ enc_table.list = ent;
+ enc_table.size = newsize;
return count;
}
static int
-enc_register_at(struct enc_table *enc_table, int index, const char *name, rb_encoding *base_encoding)
+enc_register_at(int index, const char *name, rb_encoding *base_encoding)
{
- struct rb_encoding_entry *ent = &enc_table->list[index];
+ struct rb_encoding_entry *ent = &enc_table.list[index];
rb_raw_encoding *encoding;
+ VALUE list;
if (!valid_encoding_name_p(name)) return -1;
if (!ent->name) {
@@ -383,120 +300,76 @@ enc_register_at(struct enc_table *enc_table, int index, const char *name, rb_enc
encoding->name = name;
encoding->ruby_encoding_index = index;
ent->enc = encoding;
- st_insert(enc_table->names, (st_data_t)name, (st_data_t)index);
-
- enc_list_update(index, encoding);
+ st_insert(enc_table.names, (st_data_t)name, (st_data_t)index);
+ list = rb_encoding_list;
+ if (list && NIL_P(rb_ary_entry(list, index))) {
+ /* initialize encoding data */
+ rb_ary_store(list, index, enc_new(encoding));
+ }
return index;
}
static int
-enc_register(struct enc_table *enc_table, const char *name, rb_encoding *encoding)
+enc_register(const char *name, rb_encoding *encoding)
{
- int index = enc_table->count;
+ int index = enc_table.count;
- enc_table->count = enc_table_expand(enc_table, index + 1);
- return enc_register_at(enc_table, index, name, encoding);
+ if ((index = enc_table_expand(index + 1)) < 0) return -1;
+ enc_table.count = index;
+ return enc_register_at(index - 1, name, encoding);
}
static void set_encoding_const(const char *, rb_encoding *);
-static int enc_registered(struct enc_table *enc_table, const char *name);
-
-static rb_encoding *
-enc_from_index(struct enc_table *enc_table, int index)
-{
- if (UNLIKELY(index < 0 || enc_table->count <= (index &= ENC_INDEX_MASK))) {
- return 0;
- }
- return enc_table->list[index].enc;
-}
-
-rb_encoding *
-rb_enc_from_index(int index)
-{
- rb_encoding *enc;
-
- switch (index) {
- case ENCINDEX_ASCII: return global_enc_ascii;
- case ENCINDEX_UTF_8: return global_enc_utf_8;
- case ENCINDEX_US_ASCII: return global_enc_us_ascii;
- default:
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- enc = enc_from_index(enc_table, index));
- return enc;
- }
-}
+int rb_enc_registered(const char *name);
int
rb_enc_register(const char *name, rb_encoding *encoding)
{
- int index;
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- index = enc_registered(enc_table, name);
-
- if (index >= 0) {
- rb_encoding *oldenc = enc_from_index(enc_table, index);
- if (STRCASECMP(name, rb_enc_name(oldenc))) {
- index = enc_register(enc_table, name, encoding);
- }
- else if (rb_enc_autoload_p(oldenc) || !ENC_DUMMY_P(oldenc)) {
- enc_register_at(enc_table, index, name, encoding);
- }
- else {
- rb_raise(rb_eArgError, "encoding %s is already registered", name);
- }
- }
- else {
- index = enc_register(enc_table, name, encoding);
- set_encoding_const(name, rb_enc_from_index(index));
- }
- }
- GLOBAL_ENC_TABLE_LEAVE();
- return index;
-}
+ int index = rb_enc_registered(name);
-int
-enc_registered(struct enc_table *enc_table, const char *name)
-{
- st_data_t idx = 0;
-
- if (!name) return -1;
- if (!enc_table->list) return -1;
- if (st_lookup(enc_table->names, (st_data_t)name, &idx)) {
- return (int)idx;
+ if (index >= 0) {
+ rb_encoding *oldenc = rb_enc_from_index(index);
+ if (STRCASECMP(name, rb_enc_name(oldenc))) {
+ index = enc_register(name, encoding);
+ }
+ else if (enc_autoload_p(oldenc) || !ENC_DUMMY_P(oldenc)) {
+ enc_register_at(index, name, encoding);
+ }
+ else {
+ rb_raise(rb_eArgError, "encoding %s is already registered", name);
+ }
}
- return -1;
+ else {
+ index = enc_register(name, encoding);
+ set_encoding_const(name, rb_enc_from_index(index));
+ }
+ return index;
}
void
rb_encdb_declare(const char *name)
{
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- int idx = enc_registered(enc_table, name);
- if (idx < 0) {
- idx = enc_register(enc_table, name, 0);
- }
- set_encoding_const(name, rb_enc_from_index(idx));
+ int idx = rb_enc_registered(name);
+ if (idx < 0) {
+ idx = enc_register(name, 0);
}
- GLOBAL_ENC_TABLE_LEAVE();
+ set_encoding_const(name, rb_enc_from_index(idx));
}
static void
-enc_check_duplication(struct enc_table *enc_table, const char *name)
+enc_check_duplication(const char *name)
{
- if (enc_registered(enc_table, name) >= 0) {
+ if (rb_enc_registered(name) >= 0) {
rb_raise(rb_eArgError, "encoding %s is already registered", name);
}
}
static rb_encoding*
-set_base_encoding(struct enc_table *enc_table, int index, rb_encoding *base)
+set_base_encoding(int index, rb_encoding *base)
{
- rb_encoding *enc = enc_table->list[index].enc;
+ rb_encoding *enc = enc_table.list[index].enc;
- enc_table->list[index].base = base;
+ enc_table.list[index].base = base;
if (ENC_DUMMY_P(base)) ENC_SET_DUMMY((rb_raw_encoding *)enc);
return enc;
}
@@ -508,13 +381,9 @@ set_base_encoding(struct enc_table *enc_table, int index, rb_encoding *base)
void
rb_enc_set_base(const char *name, const char *orig)
{
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- int idx = enc_registered(enc_table, name);
- int origidx = enc_registered(enc_table, orig);
- set_base_encoding(enc_table, idx, rb_enc_from_index(origidx));
- }
- GLOBAL_ENC_TABLE_LEAVE();
+ int idx = rb_enc_registered(name);
+ int origidx = rb_enc_registered(orig);
+ set_base_encoding(idx, rb_enc_from_index(origidx));
}
/* for encdb.h
@@ -523,39 +392,24 @@ rb_enc_set_base(const char *name, const char *orig)
int
rb_enc_set_dummy(int index)
{
- rb_encoding *enc;
-
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- enc = enc_table->list[index].enc);
+ rb_encoding *enc = enc_table.list[index].enc;
ENC_SET_DUMMY((rb_raw_encoding *)enc);
return index;
}
-static int
-enc_replicate(struct enc_table *enc_table, const char *name, rb_encoding *encoding)
+int
+rb_enc_replicate(const char *name, rb_encoding *encoding)
{
int idx;
- enc_check_duplication(enc_table, name);
- idx = enc_register(enc_table, name, encoding);
- if (idx < 0) rb_raise(rb_eArgError, "invalid encoding name: %s", name);
- set_base_encoding(enc_table, idx, encoding);
+ enc_check_duplication(name);
+ idx = enc_register(name, encoding);
+ set_base_encoding(idx, encoding);
set_encoding_const(name, rb_enc_from_index(idx));
return idx;
}
-int
-rb_enc_replicate(const char *name, rb_encoding *encoding)
-{
- int r;
-
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- r = enc_replicate(enc_table, name, encoding));
-
- return r;
-}
-
/*
* call-seq:
* enc.replicate(name) -> encoding
@@ -566,24 +420,24 @@ rb_enc_replicate(const char *name, rb_encoding *encoding)
*
*/
static VALUE
-enc_replicate_m(VALUE encoding, VALUE name)
+enc_replicate(VALUE encoding, VALUE name)
{
- int idx = rb_enc_replicate(name_for_encoding(&name), rb_to_encoding(encoding));
- RB_GC_GUARD(name);
- return rb_enc_from_encoding_index(idx);
+ return rb_enc_from_encoding_index(
+ rb_enc_replicate(StringValueCStr(name),
+ rb_to_encoding(encoding)));
}
static int
-enc_replicate_with_index(struct enc_table *enc_table, const char *name, rb_encoding *origenc, int idx)
+enc_replicate_with_index(const char *name, rb_encoding *origenc, int idx)
{
if (idx < 0) {
- idx = enc_register(enc_table, name, origenc);
+ idx = enc_register(name, origenc);
}
else {
- idx = enc_register_at(enc_table, idx, name, origenc);
+ idx = enc_register_at(idx, name, origenc);
}
if (idx >= 0) {
- set_base_encoding(enc_table, idx, origenc);
+ set_base_encoding(idx, origenc);
set_encoding_const(name, rb_enc_from_index(idx));
}
else {
@@ -595,54 +449,33 @@ enc_replicate_with_index(struct enc_table *enc_table, const char *name, rb_encod
int
rb_encdb_replicate(const char *name, const char *orig)
{
- int r;
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- int origidx = enc_registered(enc_table, orig);
- int idx = enc_registered(enc_table, name);
+ int origidx = rb_enc_registered(orig);
+ int idx = rb_enc_registered(name);
- if (origidx < 0) {
- origidx = enc_register(enc_table, orig, 0);
- }
- r = enc_replicate_with_index(enc_table, name, rb_enc_from_index(origidx), idx);
+ if (origidx < 0) {
+ origidx = enc_register(orig, 0);
}
- GLOBAL_ENC_TABLE_LEAVE();
-
- return r;
+ return enc_replicate_with_index(name, rb_enc_from_index(origidx), idx);
}
int
rb_define_dummy_encoding(const char *name)
{
- int index;
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- index = enc_replicate(enc_table, name, rb_ascii8bit_encoding());
- rb_encoding *enc = enc_table->list[index].enc;
- ENC_SET_DUMMY((rb_raw_encoding *)enc);
- }
- GLOBAL_ENC_TABLE_LEAVE();
+ int index = rb_enc_replicate(name, rb_ascii8bit_encoding());
+ rb_encoding *enc = enc_table.list[index].enc;
+ ENC_SET_DUMMY((rb_raw_encoding *)enc);
return index;
}
int
rb_encdb_dummy(const char *name)
{
- int index;
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- index = enc_replicate_with_index(enc_table, name,
- rb_ascii8bit_encoding(),
- enc_registered(enc_table, name));
- rb_encoding *enc = enc_table->list[index].enc;
- ENC_SET_DUMMY((rb_raw_encoding *)enc);
- }
- GLOBAL_ENC_TABLE_LEAVE();
+ int index = enc_replicate_with_index(name, rb_ascii8bit_encoding(),
+ rb_enc_registered(name));
+ rb_encoding *enc = enc_table.list[index].enc;
+ ENC_SET_DUMMY((rb_raw_encoding *)enc);
return index;
}
@@ -701,58 +534,42 @@ enc_dup_name(st_data_t name)
* else returns NULL.
*/
static int
-enc_alias_internal(struct enc_table *enc_table, const char *alias, int idx)
+enc_alias_internal(const char *alias, int idx)
{
- return st_insert2(enc_table->names, (st_data_t)alias, (st_data_t)idx,
+ return st_insert2(enc_table.names, (st_data_t)alias, (st_data_t)idx,
enc_dup_name);
}
static int
-enc_alias(struct enc_table *enc_table, const char *alias, int idx)
+enc_alias(const char *alias, int idx)
{
if (!valid_encoding_name_p(alias)) return -1;
- if (!enc_alias_internal(enc_table, alias, idx))
- set_encoding_const(alias, enc_from_index(enc_table, idx));
+ if (!enc_alias_internal(alias, idx))
+ set_encoding_const(alias, rb_enc_from_index(idx));
return idx;
}
int
rb_enc_alias(const char *alias, const char *orig)
{
- int idx, r;
+ int idx;
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- enc_check_duplication(enc_table, alias);
- if ((idx = rb_enc_find_index(orig)) < 0) {
- r = -1;
- }
- else {
- r = enc_alias(enc_table, alias, idx);
- }
+ enc_check_duplication(alias);
+ if ((idx = rb_enc_find_index(orig)) < 0) {
+ return -1;
}
- GLOBAL_ENC_TABLE_LEAVE();
-
- return r;
+ return enc_alias(alias, idx);
}
int
rb_encdb_alias(const char *alias, const char *orig)
{
- int r;
+ int idx = rb_enc_registered(orig);
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- int idx = enc_registered(enc_table, orig);
-
- if (idx < 0) {
- idx = enc_register(enc_table, orig, 0);
- }
- r = enc_alias(enc_table, alias, idx);
+ if (idx < 0) {
+ idx = enc_register(orig, 0);
}
- GLOBAL_ENC_TABLE_LEAVE();
-
- return r;
+ return enc_alias(alias, idx);
}
void
@@ -761,22 +578,19 @@ rb_encdb_set_unicode(int index)
((rb_raw_encoding *)rb_enc_from_index(index))->flags |= ONIGENC_FLAG_UNICODE;
}
-static void
-rb_enc_init(struct enc_table *enc_table)
+void
+rb_enc_init(void)
{
- enc_table_expand(enc_table, ENCODING_COUNT + 1);
- if (!enc_table->names) {
- enc_table->names = st_init_strcasetable();
+ enc_table_expand(ENCODING_COUNT + 1);
+ if (!enc_table.names) {
+ enc_table.names = st_init_strcasetable();
}
-#define ENC_REGISTER(enc) enc_register_at(enc_table, ENCINDEX_##enc, rb_enc_name(&OnigEncoding##enc), &OnigEncoding##enc)
+#define ENC_REGISTER(enc) enc_register_at(ENCINDEX_##enc, rb_enc_name(&OnigEncoding##enc), &OnigEncoding##enc)
ENC_REGISTER(ASCII);
ENC_REGISTER(UTF_8);
ENC_REGISTER(US_ASCII);
- global_enc_ascii = enc_table->list[ENCINDEX_ASCII].enc;
- global_enc_utf_8 = enc_table->list[ENCINDEX_UTF_8].enc;
- global_enc_us_ascii = enc_table->list[ENCINDEX_US_ASCII].enc;
#undef ENC_REGISTER
-#define ENCDB_REGISTER(name, enc) enc_register_at(enc_table, ENCINDEX_##enc, name, NULL)
+#define ENCDB_REGISTER(name, enc) enc_register_at(ENCINDEX_##enc, name, NULL)
ENCDB_REGISTER("UTF-16BE", UTF_16BE);
ENCDB_REGISTER("UTF-16LE", UTF_16LE);
ENCDB_REGISTER("UTF-32BE", UTF_32BE);
@@ -788,7 +602,16 @@ rb_enc_init(struct enc_table *enc_table)
ENCDB_REGISTER("EUC-JP", EUC_JP);
ENCDB_REGISTER("Windows-31J", Windows_31J);
#undef ENCDB_REGISTER
- enc_table->count = ENCINDEX_BUILTIN_MAX;
+ enc_table.count = ENCINDEX_BUILTIN_MAX;
+}
+
+rb_encoding *
+rb_enc_from_index(int index)
+{
+ if (UNLIKELY(index < 0 || enc_table.count <= (index &= ENC_INDEX_MASK))) {
+ return 0;
+ }
+ return enc_table.list[index].enc;
}
rb_encoding *
@@ -797,6 +620,19 @@ rb_enc_get_from_index(int index)
return must_encindex(index);
}
+int
+rb_enc_registered(const char *name)
+{
+ st_data_t idx = 0;
+
+ if (!name) return -1;
+ if (!enc_table.list) return -1;
+ if (st_lookup(enc_table.names, (st_data_t)name, &idx)) {
+ return (int)idx;
+ }
+ return -1;
+}
+
static int
load_encoding(const char *name)
{
@@ -821,55 +657,33 @@ load_encoding(const char *name)
ruby_verbose = verbose;
ruby_debug = debug;
rb_set_errinfo(errinfo);
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- if (loaded < 0 || 1 < loaded) {
- idx = -1;
- }
- else if ((idx = enc_registered(enc_table, name)) < 0) {
- idx = -1;
- }
- else if (rb_enc_autoload_p(enc_table->list[idx].enc)) {
- idx = -1;
- }
- }
- GLOBAL_ENC_TABLE_LEAVE();
-
+ if (loaded < 0 || 1 < loaded) return -1;
+ if ((idx = rb_enc_registered(name)) < 0) return -1;
+ if (enc_autoload_p(enc_table.list[idx].enc)) return -1;
return idx;
}
static int
-enc_autoload_body(struct enc_table *enc_table, rb_encoding *enc)
+enc_autoload(rb_encoding *enc)
{
- rb_encoding *base = enc_table->list[ENC_TO_ENCINDEX(enc)].base;
+ int i;
+ rb_encoding *base = enc_table.list[ENC_TO_ENCINDEX(enc)].base;
if (base) {
- int i = 0;
+ i = 0;
do {
- if (i >= enc_table->count) return -1;
- } while (enc_table->list[i].enc != base && (++i, 1));
- if (rb_enc_autoload_p(base)) {
- if (rb_enc_autoload(base) < 0) return -1;
+ if (i >= enc_table.count) return -1;
+ } while (enc_table.list[i].enc != base && (++i, 1));
+ if (enc_autoload_p(base)) {
+ if (enc_autoload(base) < 0) return -1;
}
i = enc->ruby_encoding_index;
- enc_register_at(enc_table, i & ENC_INDEX_MASK, rb_enc_name(enc), base);
- ((rb_raw_encoding *)enc)->ruby_encoding_index = i;
+ enc_register_at(i & ENC_INDEX_MASK, rb_enc_name(enc), base);
+ ((rb_raw_encoding *)enc)->ruby_encoding_index = i;
i &= ENC_INDEX_MASK;
- return i;
}
else {
- return -2;
- }
-}
-
-int
-rb_enc_autoload(rb_encoding *enc)
-{
- int i;
- GLOBAL_ENC_TABLE_EVAL(enc_table, i = enc_autoload_body(enc_table, enc));
- if (i == -2) {
- i = load_encoding(rb_enc_name(enc));
+ i = load_encoding(rb_enc_name(enc));
}
return i;
}
@@ -878,11 +692,9 @@ rb_enc_autoload(rb_encoding *enc)
int
rb_enc_find_index(const char *name)
{
- int i;
+ int i = rb_enc_registered(name);
rb_encoding *enc;
- GLOBAL_ENC_TABLE_EVAL(enc_table, i = enc_registered(enc_table, name));
-
if (i < 0) {
i = load_encoding(name);
}
@@ -891,8 +703,8 @@ rb_enc_find_index(const char *name)
rb_raise(rb_eArgError, "encoding %s is not registered", name);
}
}
- else if (rb_enc_autoload_p(enc)) {
- if (rb_enc_autoload(enc) < 0) {
+ else if (enc_autoload_p(enc)) {
+ if (enc_autoload(enc) < 0) {
rb_warn("failed to load encoding (%s); use ASCII-8BIT instead",
name);
return 0;
@@ -957,18 +769,8 @@ enc_get_index_str(VALUE str)
if (i == ENCODING_INLINE_MAX) {
VALUE iv;
-#if 0
iv = rb_ivar_get(str, rb_id_encoding());
i = NUM2INT(iv);
-#else
- /*
- * Tentatively, assume ASCII-8BIT, if encoding index instance
- * variable is not found. This can happen when freeing after
- * all instance variables are removed in `obj_free`.
- */
- iv = rb_attr_get(str, rb_id_encoding());
- i = NIL_P(iv) ? ENCINDEX_ASCII : NUM2INT(iv);
-#endif
}
return i;
}
@@ -1107,7 +909,7 @@ enc_compatible_latter(VALUE str1, VALUE str2, int idx1, int idx2)
if (isstr2 && RSTRING_LEN(str2) == 0)
return enc1;
isstr1 = RB_TYPE_P(str1, T_STRING);
- if (isstr1 && isstr2 && RSTRING_LEN(str1) == 0)
+ if (isstr1 && RSTRING_LEN(str1) == 0)
return (rb_enc_asciicompat(enc1) && rb_enc_str_asciionly_p(str2)) ? enc1 : enc2;
if (!rb_enc_asciicompat(enc1) || !rb_enc_asciicompat(enc2)) {
return 0;
@@ -1336,7 +1138,7 @@ enc_inspect(VALUE self)
"#<%"PRIsVALUE":%s%s%s>", rb_obj_class(self),
rb_enc_name(enc),
(ENC_DUMMY_P(enc) ? " (dummy)" : ""),
- rb_enc_autoload_p(enc) ? " (autoload)" : "");
+ enc_autoload_p(enc) ? " (autoload)" : "");
}
/*
@@ -1381,10 +1183,7 @@ enc_names(VALUE self)
args[0] = (VALUE)rb_to_encoding_index(self);
args[1] = rb_ary_new2(0);
-
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- st_foreach(enc_table->names, enc_names_i, (st_data_t)args));
-
+ st_foreach(enc_table.names, enc_names_i, (st_data_t)args);
return args[1];
}
@@ -1410,14 +1209,7 @@ static VALUE
enc_list(VALUE klass)
{
VALUE ary = rb_ary_new2(0);
-
- RB_VM_LOCK_ENTER();
- {
- rb_ary_replace(ary, rb_default_encoding_list);
- rb_ary_concat(ary, rb_additional_encoding_list);
- }
- RB_VM_LOCK_LEAVE();
-
+ rb_ary_replace(ary, rb_encoding_list);
return ary;
}
@@ -1490,13 +1282,12 @@ enc_compatible_p(VALUE klass, VALUE str1, VALUE str2)
return rb_enc_from_encoding(enc);
}
-NORETURN(static VALUE enc_s_alloc(VALUE klass));
/* :nodoc: */
static VALUE
enc_s_alloc(VALUE klass)
{
rb_undefined_alloc(klass);
- UNREACHABLE_RETURN(Qnil);
+ return Qnil;
}
/* :nodoc: */
@@ -1524,7 +1315,7 @@ enc_m_loader(VALUE klass, VALUE str)
rb_encoding *
rb_ascii8bit_encoding(void)
{
- return global_enc_ascii;
+ return enc_table.list[ENCINDEX_ASCII].enc;
}
int
@@ -1536,7 +1327,7 @@ rb_ascii8bit_encindex(void)
rb_encoding *
rb_utf8_encoding(void)
{
- return global_enc_utf_8;
+ return enc_table.list[ENCINDEX_UTF_8].enc;
}
int
@@ -1548,7 +1339,7 @@ rb_utf8_encindex(void)
rb_encoding *
rb_usascii_encoding(void)
{
- return global_enc_us_ascii;
+ return enc_table.list[ENCINDEX_US_ASCII].enc;
}
int
@@ -1564,17 +1355,15 @@ rb_locale_encindex(void)
{
int idx = rb_locale_charmap_index();
- if (idx < 0) idx = ENCINDEX_UTF_8;
+ if (idx < 0) idx = ENCINDEX_ASCII;
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- if (enc_registered(enc_table, "locale") < 0) {
+ if (rb_enc_registered("locale") < 0) {
# if defined _WIN32
void Init_w32_codepage(void);
Init_w32_codepage();
# endif
- enc_alias_internal(enc_table, "locale", idx);
+ enc_alias_internal("locale", idx);
}
- GLOBAL_ENC_TABLE_LEAVE();
return idx;
}
@@ -1588,11 +1377,7 @@ rb_locale_encoding(void)
int
rb_filesystem_encindex(void)
{
- int idx;
-
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- idx = enc_registered(enc_table, "filesystem"));
-
+ int idx = rb_enc_registered("filesystem");
if (idx < 0)
idx = ENCINDEX_ASCII;
return idx;
@@ -1620,25 +1405,20 @@ enc_set_default_encoding(struct default_encoding *def, VALUE encoding, const cha
/* Already set */
overridden = TRUE;
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- if (NIL_P(encoding)) {
- def->index = -1;
- def->enc = 0;
- st_insert(enc_table->names, (st_data_t)strdup(name),
- (st_data_t)UNSPECIFIED_ENCODING);
- }
- else {
- def->index = rb_enc_to_index(rb_to_encoding(encoding));
- def->enc = 0;
- enc_alias_internal(enc_table, name, def->index);
- }
-
- if (def == &default_external) {
- enc_alias_internal(enc_table, "filesystem", Init_enc_set_filesystem_encoding());
- }
- }
- GLOBAL_ENC_TABLE_LEAVE();
+ if (NIL_P(encoding)) {
+ def->index = -1;
+ def->enc = 0;
+ st_insert(enc_table.names, (st_data_t)strdup(name),
+ (st_data_t)UNSPECIFIED_ENCODING);
+ }
+ else {
+ def->index = rb_enc_to_index(rb_to_encoding(encoding));
+ def->enc = 0;
+ enc_alias_internal(name, def->index);
+ }
+
+ if (def == &default_external)
+ enc_alias_internal("filesystem", Init_enc_set_filesystem_encoding());
return overridden;
}
@@ -1685,11 +1465,9 @@ rb_enc_default_external(void)
* encoding may not be valid. Be sure to check String#valid_encoding?.
*
* File data written to disk will be transcoded to the default external
- * encoding when written, if default_internal is not nil.
+ * encoding when written.
*
- * The default external encoding is initialized by the -E option.
- * If -E isn't set, it is initialized to UTF-8 on Windows and the locale on
- * other operating systems.
+ * The default external encoding is initialized by the locale or -E option.
*/
static VALUE
get_default_external(VALUE klass)
@@ -1772,7 +1550,8 @@ rb_enc_default_internal(void)
* The script encoding (__ENCODING__), not default_internal, is used as the
* encoding of created strings.
*
- * Encoding::default_internal is initialized with -E option or nil otherwise.
+ * Encoding::default_internal is initialized by the source file's
+ * internal_encoding or -E option.
*/
static VALUE
get_default_internal(VALUE klass)
@@ -1885,15 +1664,8 @@ rb_enc_name_list_i(st_data_t name, st_data_t idx, st_data_t arg)
static VALUE
rb_enc_name_list(VALUE klass)
{
- VALUE ary;
-
- GLOBAL_ENC_TABLE_ENTER(enc_table);
- {
- ary = rb_ary_new2(enc_table->names->num_entries);
- st_foreach(enc_table->names, rb_enc_name_list_i, (st_data_t)ary);
- }
- GLOBAL_ENC_TABLE_LEAVE();
-
+ VALUE ary = rb_ary_new2(enc_table.names->num_entries);
+ st_foreach(enc_table.names, rb_enc_name_list_i, (st_data_t)ary);
return ary;
}
@@ -1938,10 +1710,7 @@ rb_enc_aliases(VALUE klass)
VALUE aliases[2];
aliases[0] = rb_hash_new();
aliases[1] = rb_ary_new();
-
- GLOBAL_ENC_TABLE_EVAL(enc_table,
- st_foreach(enc_table->names, rb_enc_aliases_enc_i, (st_data_t)aliases));
-
+ st_foreach(enc_table.names, rb_enc_aliases_enc_i, (st_data_t)aliases);
return aliases[0];
}
@@ -2149,6 +1918,8 @@ rb_enc_aliases(VALUE klass)
void
Init_Encoding(void)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
VALUE list;
int i;
@@ -2161,7 +1932,7 @@ Init_Encoding(void)
rb_define_method(rb_cEncoding, "names", enc_names, 0);
rb_define_method(rb_cEncoding, "dummy?", enc_dummy_p, 0);
rb_define_method(rb_cEncoding, "ascii_compatible?", enc_ascii_compatible_p, 0);
- rb_define_method(rb_cEncoding, "replicate", enc_replicate_m, 1);
+ rb_define_method(rb_cEncoding, "replicate", enc_replicate, 1);
rb_define_singleton_method(rb_cEncoding, "list", enc_list, 0);
rb_define_singleton_method(rb_cEncoding, "name_list", rb_enc_name_list, 0);
rb_define_singleton_method(rb_cEncoding, "aliases", rb_enc_aliases, 0);
@@ -2177,29 +1948,22 @@ Init_Encoding(void)
rb_define_singleton_method(rb_cEncoding, "default_internal=", set_default_internal, 1);
rb_define_singleton_method(rb_cEncoding, "locale_charmap", rb_locale_charmap, 0); /* in localeinit.c */
- struct enc_table *enc_table = &global_enc_table;
-
- if (DEFAULT_ENCODING_LIST_CAPA < enc_table->count) rb_bug("DEFAULT_ENCODING_LIST_CAPA is too small");
-
- list = rb_additional_encoding_list = rb_ary_new();
- RBASIC_CLEAR_CLASS(list);
- rb_gc_register_mark_object(list);
-
- list = rb_default_encoding_list = rb_ary_new2(DEFAULT_ENCODING_LIST_CAPA);
+ list = rb_ary_new2(enc_table.count);
RBASIC_CLEAR_CLASS(list);
+ rb_encoding_list = list;
rb_gc_register_mark_object(list);
- for (i = 0; i < enc_table->count; ++i) {
- rb_ary_push(list, enc_new(enc_table->list[i].enc));
+ for (i = 0; i < enc_table.count; ++i) {
+ rb_ary_push(list, enc_new(enc_table.list[i].enc));
}
- rb_marshal_define_compat(rb_cEncoding, Qnil, 0, enc_m_loader);
+ rb_marshal_define_compat(rb_cEncoding, Qnil, NULL, enc_m_loader);
}
void
Init_encodings(void)
{
- rb_enc_init(&global_enc_table);
+ rb_enc_init();
}
/* locale insensitive ctype functions */
@@ -2207,5 +1971,5 @@ Init_encodings(void)
void
rb_enc_foreach_name(int (*func)(st_data_t name, st_data_t idx, st_data_t arg), st_data_t arg)
{
- GLOBAL_ENC_TABLE_EVAL(enc_table, st_foreach(enc_table->names, func, arg));
+ st_foreach(enc_table.names, func, arg);
}
diff --git a/enum.c b/enum.c
index 9c2242c75a..cc77964ff9 100644
--- a/enum.c
+++ b/enum.c
@@ -9,21 +9,14 @@
**********************************************************************/
-#include "id.h"
+#include "ruby/encoding.h"
#include "internal.h"
-#include "internal/compar.h"
-#include "internal/enum.h"
-#include "internal/hash.h"
-#include "internal/imemo.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/proc.h"
-#include "internal/rational.h"
-#include "internal/re.h"
#include "ruby/util.h"
-#include "ruby_assert.h"
+#include "id.h"
#include "symbol.h"
+#include <assert.h>
+
VALUE rb_mEnumerable;
static ID id_next;
@@ -83,22 +76,6 @@ grep_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
}
static VALUE
-grep_regexp_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
-{
- struct MEMO *memo = MEMO_CAST(args);
- VALUE converted_element, match;
- ENUM_WANT_SVALUE();
-
- /* In case element can't be converted to a Symbol or String: not a match (don't raise) */
- converted_element = SYMBOL_P(i) ? i : rb_check_string_type(i);
- match = NIL_P(converted_element) ? Qfalse : rb_reg_match_p(memo->v1, i, 0);
- if (match == memo->u3.value) {
- rb_ary_push(memo->v2, i);
- }
- return Qnil;
-}
-
-static VALUE
grep_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
{
struct MEMO *memo = MEMO_CAST(args);
@@ -110,27 +87,6 @@ grep_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
return Qnil;
}
-static VALUE
-enum_grep0(VALUE obj, VALUE pat, VALUE test)
-{
- VALUE ary = rb_ary_new();
- struct MEMO *memo = MEMO_NEW(pat, ary, test);
- rb_block_call_func_t fn;
- if (rb_block_given_p()) {
- fn = grep_iter_i;
- }
- else if (RB_TYPE_P(pat, T_REGEXP) &&
- LIKELY(rb_method_basic_definition_p(CLASS_OF(pat), idEqq))) {
- fn = grep_regexp_i;
- }
- else {
- fn = grep_i;
- }
- rb_block_call(obj, id_each, 0, 0, fn, (VALUE)memo);
-
- return ary;
-}
-
/*
* call-seq:
* enum.grep(pattern) -> array
@@ -152,7 +108,12 @@ enum_grep0(VALUE obj, VALUE pat, VALUE test)
static VALUE
enum_grep(VALUE obj, VALUE pat)
{
- return enum_grep0(obj, pat, Qtrue);
+ VALUE ary = rb_ary_new();
+ struct MEMO *memo = MEMO_NEW(pat, ary, Qtrue);
+
+ rb_block_call(obj, id_each, 0, 0, rb_block_given_p() ? grep_iter_i : grep_i, (VALUE)memo);
+
+ return ary;
}
/*
@@ -173,7 +134,12 @@ enum_grep(VALUE obj, VALUE pat)
static VALUE
enum_grep_v(VALUE obj, VALUE pat)
{
- return enum_grep0(obj, pat, Qfalse);
+ VALUE ary = rb_ary_new();
+ struct MEMO *memo = MEMO_NEW(pat, ary, Qfalse);
+
+ rb_block_call(obj, id_each, 0, 0, rb_block_given_p() ? grep_iter_i : grep_i, (VALUE)memo);
+
+ return ary;
}
#define COUNT_BIGNUM IMEMO_FL_USER0
@@ -762,7 +728,7 @@ inject_op_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p))
}
else if (SYMBOL_P(name = memo->u3.value)) {
const ID mid = SYM2ID(name);
- MEMO_V1_SET(memo, rb_funcallv_public(memo->v1, mid, 1, &i));
+ MEMO_V1_SET(memo, rb_funcallv(memo->v1, mid, 1, &i));
}
else {
VALUE args[2];
@@ -805,7 +771,7 @@ ary_inject_op(VALUE ary, VALUE init, VALUE op)
if (FIXNUM_P(e)) {
n += FIX2LONG(e); /* should not overflow long type */
if (!FIXABLE(n)) {
- v = rb_big_plus(LONG2NUM(n), v);
+ v = rb_big_plus(ULONG2NUM(n), v);
n = 0;
}
}
@@ -1049,7 +1015,6 @@ enum_tally(VALUE obj)
return enum_hashify(obj, 0, 0, tally_i);
}
-NORETURN(static VALUE first_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, params)));
static VALUE
first_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, params))
{
@@ -1791,7 +1756,7 @@ min_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
* enum.min(n) { |a, b| block } -> array
*
* Returns the object in _enum_ with the minimum value. The
- * first form assumes all objects implement <code><=></code>;
+ * first form assumes all objects implement Comparable;
* the second uses the block to return <em>a <=> b</em>.
*
* a = %w(albatross dog horse)
@@ -1883,7 +1848,7 @@ max_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
* enum.max(n) { |a, b| block } -> array
*
* Returns the object in _enum_ with the maximum value. The
- * first form assumes all objects implement <code><=></code>;
+ * first form assumes all objects implement Comparable;
* the second uses the block to return <em>a <=> b</em>.
*
* a = %w(albatross dog horse)
@@ -2042,7 +2007,7 @@ minmax_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))
*
* Returns a two element array which contains the minimum and the
* maximum value in the enumerable. The first form assumes all
- * objects implement <code><=></code>; the second uses the
+ * objects implement Comparable; the second uses the
* block to return <em>a <=> b</em>.
*
* a = %w(albatross dog horse)
@@ -3231,7 +3196,7 @@ chunk_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))
* The following example counts words for each initial letter.
*
* open("/usr/share/dict/words", "r:iso-8859-1") { |f|
- * f.chunk { |line| line.upcase.ord }.each { |ch, lines| p [ch.chr, lines.length] }
+ * f.chunk { |line| line.ord }.each { |ch, lines| p [ch.chr, lines.length] }
* }
* #=> ["\n", 1]
* # ["A", 1327]
@@ -3729,7 +3694,7 @@ slicewhen_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))
* Creates an enumerator for each chunked elements.
* The beginnings of chunks are defined by the block.
*
- * This method splits each chunk using adjacent elements,
+ * This method split each chunk using adjacent elements,
* _elt_before_ and _elt_after_,
* in the receiver enumerator.
* This method split chunks between _elt_before_ and _elt_after_ where
@@ -3808,7 +3773,7 @@ enum_slice_when(VALUE enumerable)
* Creates an enumerator for each chunked elements.
* The beginnings of chunks are defined by the block.
*
- * This method splits each chunk using adjacent elements,
+ * This method split each chunk using adjacent elements,
* _elt_before_ and _elt_after_,
* in the receiver enumerator.
* This method split chunks between _elt_before_ and _elt_after_ where
@@ -3876,141 +3841,122 @@ struct enum_sum_memo {
};
static void
-sum_iter_normalize_memo(struct enum_sum_memo *memo)
-{
- assert(FIXABLE(memo->n));
- memo->v = rb_fix_plus(LONG2FIX(memo->n), memo->v);
- memo->n = 0;
-
- switch (TYPE(memo->r)) {
- case T_RATIONAL: memo->v = rb_rational_plus(memo->r, memo->v); break;
- case T_UNDEF: break;
- default: UNREACHABLE; /* or ...? */
- }
- memo->r = Qundef;
-}
-
-static void
-sum_iter_fixnum(VALUE i, struct enum_sum_memo *memo)
-{
- memo->n += FIX2LONG(i); /* should not overflow long type */
- if (! FIXABLE(memo->n)) {
- memo->v = rb_big_plus(LONG2NUM(memo->n), memo->v);
- memo->n = 0;
- }
-}
-
-static void
-sum_iter_bignum(VALUE i, struct enum_sum_memo *memo)
-{
- memo->v = rb_big_plus(i, memo->v);
-}
-
-static void
-sum_iter_rational(VALUE i, struct enum_sum_memo *memo)
+sum_iter(VALUE i, struct enum_sum_memo *memo)
{
- if (memo->r == Qundef) {
- memo->r = i;
- }
- else {
- memo->r = rb_rational_plus(memo->r, i);
- }
-}
+ const int unused = (assert(memo != NULL), 0);
-static void
-sum_iter_some_value(VALUE i, struct enum_sum_memo *memo)
-{
- memo->v = rb_funcallv(memo->v, idPLUS, 1, &i);
-}
+ long n = memo->n;
+ VALUE v = memo->v;
+ VALUE r = memo->r;
+ double f = memo->f;
+ double c = memo->c;
-static void
-sum_iter_Kahan_Babuska(VALUE i, struct enum_sum_memo *memo)
-{
- /*
- * Kahan-Babuska balancing compensated summation algorithm
- * See https://link.springer.com/article/10.1007/s00607-005-0139-x
- */
- double x;
-
- switch (TYPE(i)) {
- case T_FLOAT: x = RFLOAT_VALUE(i); break;
- case T_FIXNUM: x = FIX2LONG(i); break;
- case T_BIGNUM: x = rb_big2dbl(i); break;
- case T_RATIONAL: x = rb_num2dbl(i); break;
- default:
- memo->v = DBL2NUM(memo->f);
- memo->float_value = 0;
- sum_iter_some_value(i, memo);
- return;
- }
+ if (memo->block_given)
+ i = rb_yield(i);
- double f = memo->f;
+ if (memo->float_value)
+ goto float_value;
- if (isnan(f)) {
- return;
- }
- else if (! isfinite(x)) {
- if (isinf(x) && isinf(f) && signbit(x) != signbit(f)) {
- i = DBL2NUM(f);
- x = nan("");
+ if (FIXNUM_P(v) || RB_TYPE_P(v, T_BIGNUM) || RB_TYPE_P(v, T_RATIONAL)) {
+ if (FIXNUM_P(i)) {
+ n += FIX2LONG(i); /* should not overflow long type */
+ if (!FIXABLE(n)) {
+ v = rb_big_plus(LONG2NUM(n), v);
+ n = 0;
+ }
+ }
+ else if (RB_TYPE_P(i, T_BIGNUM))
+ v = rb_big_plus(i, v);
+ else if (RB_TYPE_P(i, T_RATIONAL)) {
+ if (r == Qundef)
+ r = i;
+ else
+ r = rb_rational_plus(r, i);
+ }
+ else {
+ if (n != 0) {
+ v = rb_fix_plus(LONG2FIX(n), v);
+ n = 0;
+ }
+ if (r != Qundef) {
+ /* r can be an Integer when mathn is loaded */
+ if (FIXNUM_P(r))
+ v = rb_fix_plus(r, v);
+ else if (RB_TYPE_P(r, T_BIGNUM))
+ v = rb_big_plus(r, v);
+ else
+ v = rb_rational_plus(r, v);
+ r = Qundef;
+ }
+ if (RB_FLOAT_TYPE_P(i)) {
+ f = NUM2DBL(v);
+ c = 0.0;
+ memo->float_value = 1;
+ goto float_value;
+ }
+ else
+ goto some_value;
}
- memo->v = i;
- memo->f = x;
- return;
- }
- else if (isinf(f)) {
- return;
}
+ else if (RB_FLOAT_TYPE_P(v)) {
+ /*
+ * Kahan-Babuska balancing compensated summation algorithm
+ * See http://link.springer.com/article/10.1007/s00607-005-0139-x
+ */
+ double x, t;
+
+ float_value:
+ if (RB_FLOAT_TYPE_P(i))
+ x = RFLOAT_VALUE(i);
+ else if (FIXNUM_P(i))
+ x = FIX2LONG(i);
+ else if (RB_TYPE_P(i, T_BIGNUM))
+ x = rb_big2dbl(i);
+ else if (RB_TYPE_P(i, T_RATIONAL))
+ x = rb_num2dbl(i);
+ else {
+ v = DBL2NUM(f);
+ memo->float_value = 0;
+ goto some_value;
+ }
- double c = memo->c;
- double t = f + x;
+ if (isnan(f)) return;
+ if (isnan(x)) {
+ memo->v = i;
+ memo->f = x;
+ return;
+ }
+ if (isinf(x)) {
+ if (isinf(f) && signbit(x) != signbit(f)) {
+ memo->f = NAN;
+ memo->v = DBL2NUM(f);
+ }
+ else {
+ memo->f = x;
+ memo->v = i;
+ }
+ return;
+ }
+ if (isinf(f)) return;
- if (fabs(f) >= fabs(x)) {
- c += ((f - t) + x);
+ t = f + x;
+ if (fabs(f) >= fabs(x))
+ c += ((f - t) + x);
+ else
+ c += ((x - t) + f);
+ f = t;
}
else {
- c += ((x - t) + f);
+ some_value:
+ v = rb_funcallv(v, idPLUS, 1, &i);
}
- f = t;
+ memo->v = v;
+ memo->n = n;
+ memo->r = r;
memo->f = f;
memo->c = c;
-}
-
-static void
-sum_iter(VALUE i, struct enum_sum_memo *memo)
-{
- assert(memo != NULL);
- if (memo->block_given) {
- i = rb_yield(i);
- }
-
- if (memo->float_value) {
- sum_iter_Kahan_Babuska(i, memo);
- }
- else switch (TYPE(memo->v)) {
- default: sum_iter_some_value(i, memo); return;
- case T_FLOAT: sum_iter_Kahan_Babuska(i, memo); return;
- case T_FIXNUM:
- case T_BIGNUM:
- case T_RATIONAL:
- switch (TYPE(i)) {
- case T_FIXNUM: sum_iter_fixnum(i, memo); return;
- case T_BIGNUM: sum_iter_bignum(i, memo); return;
- case T_RATIONAL: sum_iter_rational(i, memo); return;
- case T_FLOAT:
- sum_iter_normalize_memo(memo);
- memo->f = NUM2DBL(memo->v);
- memo->c = 0.0;
- memo->float_value = 1;
- sum_iter_Kahan_Babuska(i, memo);
- return;
- default:
- sum_iter_normalize_memo(memo);
- sum_iter_some_value(i, memo);
- return;
- }
- }
+ (void)unused;
}
static VALUE
@@ -4132,7 +4078,13 @@ enum_sum(int argc, VALUE* argv, VALUE obj)
if (memo.n != 0)
memo.v = rb_fix_plus(LONG2FIX(memo.n), memo.v);
if (memo.r != Qundef) {
- memo.v = rb_rational_plus(memo.r, memo.v);
+ /* r can be an Integer when mathn is loaded */
+ if (FIXNUM_P(memo.r))
+ memo.v = rb_fix_plus(memo.r, memo.v);
+ else if (RB_TYPE_P(memo.r, T_BIGNUM))
+ memo.v = rb_big_plus(memo.r, memo.v);
+ else
+ memo.v = rb_rational_plus(memo.r, memo.v);
}
return memo.v;
}
@@ -4191,6 +4143,9 @@ enum_uniq(VALUE obj)
void
Init_Enumerable(void)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
+
rb_mEnumerable = rb_define_module("Enumerable");
rb_define_method(rb_mEnumerable, "to_a", enum_to_a, -1);
@@ -4252,5 +4207,5 @@ Init_Enumerable(void)
rb_define_method(rb_mEnumerable, "sum", enum_sum, -1);
rb_define_method(rb_mEnumerable, "uniq", enum_uniq, 0);
- id_next = rb_intern_const("next");
+ id_next = rb_intern("next");
}
diff --git a/enumerator.c b/enumerator.c
index 90d2ec433c..9d0547da05 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -12,23 +12,14 @@
************************************************/
-#include "ruby/internal/config.h"
+#include "ruby/ruby.h"
+#include "internal.h"
+#include "id.h"
#ifdef HAVE_FLOAT_H
#include <float.h>
#endif
-#include "id.h"
-#include "internal.h"
-#include "internal/enumerator.h"
-#include "internal/error.h"
-#include "internal/hash.h"
-#include "internal/imemo.h"
-#include "internal/numeric.h"
-#include "internal/range.h"
-#include "internal/rational.h"
-#include "ruby/ruby.h"
-
/*
* Document-class: Enumerator
*
@@ -82,14 +73,6 @@
* puts e.next # => 3
* puts e.next # raises StopIteration
*
- * Note that enumeration sequence by +next+, +next_values+, +peek+ and
- * +peek_values+ do not affect other non-external
- * enumeration methods, unless the underlying iteration method itself has
- * side-effect, e.g. IO#each_line.
- *
- * Moreover, implementation typically uses fibers so performance could be
- * slower and exception stacktraces different than expected.
- *
* You can use this to implement an internal iterator as follows:
*
* def ext_each(e)
@@ -393,6 +376,8 @@ enumerator_allocate(VALUE klass)
return enum_obj;
}
+#define PASS_KW_SPLAT (rb_empty_keyword_given_p() ? RB_PASS_EMPTY_KEYWORDS : rb_keyword_given_p())
+
static VALUE
enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, VALUE size, int kw_splat)
{
@@ -420,31 +405,15 @@ enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *ar
return enum_obj;
}
-static VALUE
-convert_to_feasible_size_value(VALUE obj)
-{
- if (NIL_P(obj)) {
- return obj;
- }
- else if (rb_respond_to(obj, id_call)) {
- return obj;
- }
- else if (RB_FLOAT_TYPE_P(obj) && RFLOAT_VALUE(obj) == HUGE_VAL) {
- return obj;
- }
- else {
- return rb_to_int(obj);
- }
-}
-
/*
* call-seq:
* Enumerator.new(size = nil) { |yielder| ... }
+ * Enumerator.new(obj, method = :each, *args)
*
* Creates a new Enumerator object, which can be used as an
* Enumerable.
*
- * Iteration is defined by the given block, in
+ * In the first form, iteration is defined by the given block, in
* which a "yielder" object, given as block parameter, can be used to
* yield a value by calling the +yield+ method (aliased as <code><<</code>):
*
@@ -461,16 +430,52 @@ convert_to_feasible_size_value(VALUE obj)
* The optional parameter can be used to specify how to calculate the size
* in a lazy fashion (see Enumerator#size). It can either be a value or
* a callable object.
+ *
+ * In the deprecated second form, a generated Enumerator iterates over the
+ * given object using the given method with the given arguments passed.
+ *
+ * Use of this form is discouraged. Use Object#enum_for or Object#to_enum
+ * instead.
+ *
+ * e = Enumerator.new(ObjectSpace, :each_object)
+ * #-> ObjectSpace.enum_for(:each_object)
+ *
+ * e.select { |obj| obj.is_a?(Class) } # => array of all classes
+ *
*/
static VALUE
enumerator_initialize(int argc, VALUE *argv, VALUE obj)
{
- VALUE iter = rb_block_proc();
- VALUE recv = generator_init(generator_allocate(rb_cGenerator), iter);
- VALUE arg0 = rb_check_arity(argc, 0, 1) ? argv[0] : Qnil;
- VALUE size = convert_to_feasible_size_value(arg0);
+ VALUE recv, meth = sym_each;
+ VALUE size = Qnil;
+ int kw_splat = 0;
- return enumerator_init(obj, recv, sym_each, 0, 0, 0, size, false);
+ if (rb_block_given_p()) {
+ rb_check_arity(argc, 0, 1);
+ recv = generator_init(generator_allocate(rb_cGenerator), rb_block_proc());
+ if (argc) {
+ if (NIL_P(argv[0]) || rb_respond_to(argv[0], id_call) ||
+ (RB_TYPE_P(argv[0], T_FLOAT) && RFLOAT_VALUE(argv[0]) == HUGE_VAL)) {
+ size = argv[0];
+ }
+ else {
+ size = rb_to_int(argv[0]);
+ }
+ argc = 0;
+ }
+ }
+ else {
+ rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
+ rb_warn_deprecated("Enumerator.new without a block", "Object#to_enum");
+ recv = *argv++;
+ if (--argc) {
+ meth = *argv++;
+ --argc;
+ }
+ kw_splat = PASS_KW_SPLAT;
+ }
+
+ return enumerator_init(obj, recv, meth, argc, argv, 0, size, kw_splat);
}
/* :nodoc: */
@@ -522,10 +527,10 @@ rb_enumeratorize_with_size(VALUE obj, VALUE meth, int argc, const VALUE *argv, r
/* Similar effect as calling obj.to_enum, i.e. dispatching to either
Kernel#to_enum vs Lazy#to_enum */
if (RTEST(rb_obj_is_kind_of(obj, rb_cLazy)))
- return lazy_to_enum_i(obj, meth, argc, argv, size_fn, rb_keyword_given_p());
+ return lazy_to_enum_i(obj, meth, argc, argv, size_fn, PASS_KW_SPLAT);
else
return enumerator_init(enumerator_allocate(rb_cEnumerator),
- obj, meth, argc, argv, size_fn, Qnil, rb_keyword_given_p());
+ obj, meth, argc, argv, size_fn, Qnil, PASS_KW_SPLAT);
}
VALUE
@@ -711,9 +716,9 @@ enumerator_with_object_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memo))
* puts "#{string}: #{x}"
* end
*
- * # => foo: 0
- * # => foo: 1
- * # => foo: 2
+ * # => foo:0
+ * # => foo:1
+ * # => foo:2
*/
static VALUE
enumerator_with_object(VALUE obj, VALUE memo)
@@ -793,8 +798,6 @@ get_next_values(VALUE obj, struct enumerator *e)
* internal position forward. When the position reached at the end,
* StopIteration is raised.
*
- * See class-level notes about external iterators.
- *
* This method can be used to distinguish <code>yield</code> and <code>yield
* nil</code>.
*
@@ -828,6 +831,10 @@ get_next_values(VALUE obj, struct enumerator *e)
* # yield nil [nil] nil
* # yield [1, 2] [[1, 2]] [1, 2]
*
+ * Note that +next_values+ does not affect other non-external enumeration
+ * methods unless underlying iteration method itself has side-effect, e.g.
+ * IO#each_line.
+ *
*/
static VALUE
@@ -881,7 +888,9 @@ ary2sv(VALUE args, int dup)
* p e.next #=> 3
* p e.next #raises StopIteration
*
- * See class-level notes about external iterators.
+ * Note that enumeration sequence by +next+ does not affect other non-external
+ * enumeration methods, unless the underlying iteration methods itself has
+ * side-effect, e.g. IO#each_line.
*
*/
@@ -911,8 +920,6 @@ enumerator_peek_values(VALUE obj)
* doesn't move the internal position forward. If the position is already at
* the end, StopIteration is raised.
*
- * See class-level notes about external iterators.
- *
* === Example
*
* o = Object.new
@@ -947,8 +954,6 @@ enumerator_peek_values_m(VALUE obj)
* position forward. If the position is already at the end, StopIteration
* is raised.
*
- * See class-level notes about external iterators.
- *
* === Example
*
* a = [1,2,3]
@@ -1346,7 +1351,7 @@ yielder_yield_push(VALUE obj, VALUE arg)
}
/*
- * Returns a Proc object that takes arguments and yields them.
+ * Returns a Proc object that takes an argument and yields it.
*
* This method is implemented so that a Yielder object can be directly
* passed to another method as a block argument.
@@ -1534,7 +1539,17 @@ lazyenum_size(VALUE self, VALUE args, VALUE eobj)
return enum_size(self);
}
-#define lazy_receiver_size lazy_map_size
+static VALUE
+lazy_size(VALUE self)
+{
+ return enum_size(rb_ivar_get(self, id_receiver));
+}
+
+static VALUE
+lazy_receiver_size(VALUE generator, VALUE args, VALUE lazy)
+{
+ return lazy_size(lazy);
+}
static VALUE
lazy_init_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
@@ -1576,47 +1591,24 @@ lazy_init_block_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
#define LAZY_MEMO_BREAK_P(memo) ((memo)->memo_flags & LAZY_MEMO_BREAK)
#define LAZY_MEMO_PACKED_P(memo) ((memo)->memo_flags & LAZY_MEMO_PACKED)
#define LAZY_MEMO_SET_BREAK(memo) ((memo)->memo_flags |= LAZY_MEMO_BREAK)
-#define LAZY_MEMO_RESET_BREAK(memo) ((memo)->memo_flags &= ~LAZY_MEMO_BREAK)
#define LAZY_MEMO_SET_VALUE(memo, value) MEMO_V2_SET(memo, value)
#define LAZY_MEMO_SET_PACKED(memo) ((memo)->memo_flags |= LAZY_MEMO_PACKED)
#define LAZY_MEMO_RESET_PACKED(memo) ((memo)->memo_flags &= ~LAZY_MEMO_PACKED)
-static VALUE lazy_yielder_result(struct MEMO *result, VALUE yielder, VALUE procs_array, VALUE memos, long i);
-
static VALUE
lazy_init_yielder(RB_BLOCK_CALL_FUNC_ARGLIST(_, m))
{
VALUE yielder = RARRAY_AREF(m, 0);
VALUE procs_array = RARRAY_AREF(m, 1);
VALUE memos = rb_attr_get(yielder, id_memo);
+ long i = 0;
struct MEMO *result;
+ int cont = 1;
- result = MEMO_NEW(m, rb_enum_values_pack(argc, argv),
+ result = MEMO_NEW(Qnil, rb_enum_values_pack(argc, argv),
argc > 1 ? LAZY_MEMO_PACKED : 0);
- return lazy_yielder_result(result, yielder, procs_array, memos, 0);
-}
-static VALUE
-lazy_yielder_yield(struct MEMO *result, long memo_index, int argc, const VALUE *argv)
-{
- VALUE m = result->v1;
- VALUE yielder = RARRAY_AREF(m, 0);
- VALUE procs_array = RARRAY_AREF(m, 1);
- VALUE memos = rb_attr_get(yielder, id_memo);
- LAZY_MEMO_SET_VALUE(result, rb_enum_values_pack(argc, argv));
- if (argc > 1)
- LAZY_MEMO_SET_PACKED(result);
- else
- LAZY_MEMO_RESET_PACKED(result);
- return lazy_yielder_result(result, yielder, procs_array, memos, memo_index);
-}
-
-static VALUE
-lazy_yielder_result(struct MEMO *result, VALUE yielder, VALUE procs_array, VALUE memos, long i)
-{
- int cont = 1;
-
- for (; i < RARRAY_LEN(procs_array); i++) {
+ for (i = 0; i < RARRAY_LEN(procs_array); i++) {
VALUE proc = RARRAY_AREF(procs_array, i);
struct proc_entry *entry = proc_entry_ptr(proc);
if (!(*entry->fn->proc)(proc, result, memos, i)) {
@@ -1811,7 +1803,6 @@ lazy_set_args(VALUE lazy, VALUE args)
}
}
-#if 0
static VALUE
lazy_set_method(VALUE lazy, VALUE args, rb_enumerator_size_func *size_fn)
{
@@ -1820,7 +1811,6 @@ lazy_set_method(VALUE lazy, VALUE args, rb_enumerator_size_func *size_fn)
e->size_fn = size_fn;
return lazy;
}
-#endif
static VALUE
lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,
@@ -1894,7 +1884,7 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,
static VALUE
enumerable_lazy(VALUE obj)
{
- VALUE result = lazy_to_enum_i(obj, sym_each, 0, 0, lazyenum_size, rb_keyword_given_p());
+ VALUE result = lazy_to_enum_i(obj, sym_each, 0, 0, lazyenum_size, PASS_KW_SPLAT);
/* Qfalse indicates that the Enumerator::Lazy has no method name */
rb_ivar_set(result, id_method, Qfalse);
return result;
@@ -1942,7 +1932,7 @@ lazy_to_enum(int argc, VALUE *argv, VALUE self)
if (RTEST((super_meth = rb_hash_aref(lazy_use_super_method, meth)))) {
meth = super_meth;
}
- lazy = lazy_to_enum_i(self, meth, argc, argv, 0, rb_keyword_given_p());
+ lazy = lazy_to_enum_i(self, meth, argc, argv, 0, PASS_KW_SPLAT);
if (rb_block_given_p()) {
enumerator_ptr(lazy)->size = rb_block_proc();
}
@@ -2032,58 +2022,58 @@ lazy_map(VALUE obj)
return lazy_add_method(obj, 0, 0, Qnil, Qnil, &lazy_map_funcs);
}
-struct flat_map_i_arg {
- struct MEMO *result;
- long index;
-};
-
static VALUE
-lazy_flat_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, y))
+lazy_flat_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, yielder))
{
- struct flat_map_i_arg *arg = (struct flat_map_i_arg *)y;
+ VALUE arg = rb_enum_values_pack(argc, argv);
- return lazy_yielder_yield(arg->result, arg->index, argc, argv);
+ return rb_funcallv(yielder, idLTLT, 1, &arg);
}
-static struct MEMO *
-lazy_flat_map_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)
+static VALUE
+lazy_flat_map_each(VALUE obj, VALUE yielder)
{
- VALUE value = lazyenum_yield_values(proc_entry, result);
- VALUE ary = 0;
- const long proc_index = memo_index + 1;
- int break_p = LAZY_MEMO_BREAK_P(result);
+ rb_block_call(obj, id_each, 0, 0, lazy_flat_map_i, yielder);
+ return Qnil;
+}
- if (RB_TYPE_P(value, T_ARRAY)) {
- ary = value;
+static VALUE
+lazy_flat_map_to_ary(VALUE obj, VALUE yielder)
+{
+ VALUE ary = rb_check_array_type(obj);
+ if (NIL_P(ary)) {
+ rb_funcall(yielder, idLTLT, 1, obj);
}
- else if (rb_respond_to(value, id_force) && rb_respond_to(value, id_each)) {
- struct flat_map_i_arg arg = {.result = result, .index = proc_index};
- LAZY_MEMO_RESET_BREAK(result);
- rb_block_call(value, id_each, 0, 0, lazy_flat_map_i, (VALUE)&arg);
- if (break_p) LAZY_MEMO_SET_BREAK(result);
- return 0;
+ else {
+ long i;
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ rb_funcall(yielder, idLTLT, 1, RARRAY_AREF(ary, i));
+ }
}
+ return Qnil;
+}
- if (ary || !NIL_P(ary = rb_check_array_type(value))) {
- long i;
- LAZY_MEMO_RESET_BREAK(result);
- for (i = 0; i + 1 < RARRAY_LEN(ary); i++) {
- const VALUE argv = RARRAY_AREF(ary, i);
- lazy_yielder_yield(result, proc_index, 1, &argv);
- }
- if (break_p) LAZY_MEMO_SET_BREAK(result);
- if (i >= RARRAY_LEN(ary)) return 0;
- value = RARRAY_AREF(ary, i);
+static VALUE
+lazy_flat_map_proc(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
+{
+ VALUE result = rb_yield_values2(argc - 1, &argv[1]);
+ if (RB_TYPE_P(result, T_ARRAY)) {
+ long i;
+ for (i = 0; i < RARRAY_LEN(result); i++) {
+ rb_funcall(argv[0], idLTLT, 1, RARRAY_AREF(result, i));
+ }
}
- LAZY_MEMO_SET_VALUE(result, value);
- LAZY_MEMO_RESET_PACKED(result);
- return result;
+ else {
+ if (rb_respond_to(result, id_force) && rb_respond_to(result, id_each)) {
+ lazy_flat_map_each(result, argv[0]);
+ }
+ else {
+ lazy_flat_map_to_ary(result, argv[0]);
+ }
+ }
+ return Qnil;
}
-static const lazyenum_funcs lazy_flat_map_funcs = {
- lazy_flat_map_proc, 0,
-};
-
/*
* call-seq:
* lazy.collect_concat { |obj| block } -> a_lazy_enumerator
@@ -2114,7 +2104,9 @@ lazy_flat_map(VALUE obj)
rb_raise(rb_eArgError, "tried to call lazy flat_map without a block");
}
- return lazy_add_method(obj, 0, 0, Qnil, Qnil, &lazy_flat_map_funcs);
+ return lazy_set_method(rb_block_call(rb_cLazy, id_new, 1, &obj,
+ lazy_flat_map_proc, 0),
+ Qnil, 0);
}
static struct MEMO *
@@ -2316,59 +2308,58 @@ next_stopped(VALUE obj, VALUE _)
return Qnil;
}
-static struct MEMO *
-lazy_zip_arrays_func(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)
+static VALUE
+lazy_zip_arrays_func(RB_BLOCK_CALL_FUNC_ARGLIST(val, arrays))
{
- struct proc_entry *entry = proc_entry_ptr(proc_entry);
- VALUE ary, arrays = entry->memo;
- VALUE memo = rb_ary_entry(memos, memo_index);
- long i, count = NIL_P(memo) ? 0 : NUM2LONG(memo);
+ VALUE yielder, ary, memo;
+ long i, count;
+
+ yielder = argv[0];
+ memo = rb_attr_get(yielder, id_memo);
+ count = NIL_P(memo) ? 0 : NUM2LONG(memo);
ary = rb_ary_new2(RARRAY_LEN(arrays) + 1);
- rb_ary_push(ary, result->memo_value);
+ rb_ary_push(ary, argv[1]);
for (i = 0; i < RARRAY_LEN(arrays); i++) {
rb_ary_push(ary, rb_ary_entry(RARRAY_AREF(arrays, i), count));
}
- LAZY_MEMO_SET_VALUE(result, ary);
- LAZY_MEMO_SET_PACKED(result);
- rb_ary_store(memos, memo_index, LONG2NUM(++count));
- return result;
+ rb_funcall(yielder, idLTLT, 1, ary);
+ rb_ivar_set(yielder, id_memo, LONG2NUM(++count));
+ return Qnil;
}
-static struct MEMO *
-lazy_zip_func(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)
+static VALUE
+lazy_zip_func(RB_BLOCK_CALL_FUNC_ARGLIST(val, zip_args))
{
- struct proc_entry *entry = proc_entry_ptr(proc_entry);
- VALUE arg = rb_ary_entry(memos, memo_index);
- VALUE zip_args = entry->memo;
- VALUE ary, v;
+ VALUE yielder, ary, arg, v;
long i;
+ yielder = argv[0];
+ arg = rb_attr_get(yielder, id_memo);
if (NIL_P(arg)) {
arg = rb_ary_new2(RARRAY_LEN(zip_args));
for (i = 0; i < RARRAY_LEN(zip_args); i++) {
rb_ary_push(arg, rb_funcall(RARRAY_AREF(zip_args, i), id_to_enum, 0));
}
- rb_ary_store(memos, memo_index, arg);
+ rb_ivar_set(yielder, id_memo, arg);
}
ary = rb_ary_new2(RARRAY_LEN(arg) + 1);
- rb_ary_push(ary, result->memo_value);
+ v = Qnil;
+ if (--argc > 0) {
+ ++argv;
+ v = argc > 1 ? rb_ary_new_from_values(argc, argv) : *argv;
+ }
+ rb_ary_push(ary, v);
for (i = 0; i < RARRAY_LEN(arg); i++) {
v = rb_rescue2(call_next, RARRAY_AREF(arg, i), next_stopped, 0,
rb_eStopIteration, (VALUE)0);
rb_ary_push(ary, v);
}
- LAZY_MEMO_SET_VALUE(result, ary);
- LAZY_MEMO_SET_PACKED(result);
- return result;
+ rb_funcall(yielder, idLTLT, 1, ary);
+ return Qnil;
}
-static const lazyenum_funcs lazy_zip_funcs[] = {
- {lazy_zip_func, lazy_receiver_size,},
- {lazy_zip_arrays_func, lazy_receiver_size,},
-};
-
/*
* call-seq:
* lazy.zip(arg, ...) -> lazy_enumerator
@@ -2382,7 +2373,7 @@ lazy_zip(int argc, VALUE *argv, VALUE obj)
{
VALUE ary, v;
long i;
- const lazyenum_funcs *funcs = &lazy_zip_funcs[1];
+ rb_block_call_func *func = lazy_zip_arrays_func;
if (rb_block_given_p()) {
return rb_call_super(argc, argv);
@@ -2399,13 +2390,15 @@ lazy_zip(int argc, VALUE *argv, VALUE obj)
}
}
ary = rb_ary_new4(argc, argv);
- funcs = &lazy_zip_funcs[0];
+ func = lazy_zip_func;
break;
}
rb_ary_push(ary, v);
}
- return lazy_add_method(obj, 0, 0, ary, ary, funcs);
+ return lazy_set_method(rb_block_call(rb_cLazy, id_new, 1, &obj,
+ func, ary),
+ ary, lazy_receiver_size);
}
static struct MEMO *
@@ -2669,8 +2662,7 @@ lazy_with_index_proc(VALUE proc_entry, struct MEMO* result, VALUE memos, long me
if (entry->proc) {
rb_proc_call_with_block(entry->proc, 2, argv, Qnil);
LAZY_MEMO_RESET_PACKED(result);
- }
- else {
+ } else {
LAZY_MEMO_SET_VALUE(result, rb_ary_new_from_values(2, argv));
LAZY_MEMO_SET_PACKED(result);
}
@@ -2678,13 +2670,8 @@ lazy_with_index_proc(VALUE proc_entry, struct MEMO* result, VALUE memos, long me
return result;
}
-static VALUE
-lazy_with_index_size(VALUE proc, VALUE receiver) {
- return receiver;
-}
-
static const lazyenum_funcs lazy_with_index_funcs = {
- lazy_with_index_proc, lazy_with_index_size,
+ lazy_with_index_proc, 0,
};
/*
@@ -2930,8 +2917,6 @@ producer_each_stop(VALUE dummy, VALUE exc)
return rb_attr_get(exc, id_result);
}
-NORETURN(static VALUE producer_each_i(VALUE obj));
-
static VALUE
producer_each_i(VALUE obj)
{
@@ -2944,8 +2929,7 @@ producer_each_i(VALUE obj)
if (init == Qundef) {
curr = Qnil;
- }
- else {
+ } else {
rb_yield(init);
curr = init;
}
@@ -2955,7 +2939,7 @@ producer_each_i(VALUE obj)
rb_yield(curr);
}
- UNREACHABLE_RETURN(Qnil);
+ return Qnil;
}
/* :nodoc: */
@@ -2994,7 +2978,7 @@ producer_size(VALUE obj, VALUE args, VALUE eobj)
* enclosing_section = ancestors.find { |n| n.type == :section }
*
* Using ::produce together with Enumerable methods like Enumerable#detect,
- * Enumerable#slice_after, Enumerable#take_while can provide Enumerator-based alternatives
+ * Enumerable#slice, Enumerable#take_while can provide Enumerator-based alternatives
* for +while+ and +until+ cycles:
*
* # Find next Tuesday
@@ -3318,9 +3302,6 @@ enumerator_plus(VALUE obj, VALUE eobj)
* that is a representation of sequences of numbers with common difference.
* Instances of this class can be generated by the Range#step and Numeric#step
* methods.
- *
- * The class can be used for slicing Array (see Array#slice) or custom
- * collections.
*/
VALUE
@@ -3329,7 +3310,7 @@ rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,
VALUE beg, VALUE end, VALUE step, int excl)
{
VALUE aseq = enumerator_init(enumerator_allocate(rb_cArithSeq),
- obj, meth, argc, argv, size_fn, Qnil, rb_keyword_given_p());
+ obj, meth, argc, argv, size_fn, Qnil, PASS_KW_SPLAT);
rb_ivar_set(aseq, id_begin, beg);
rb_ivar_set(aseq, id_end, end);
rb_ivar_set(aseq, id_step, step);
@@ -3399,53 +3380,17 @@ rb_arithmetic_sequence_extract(VALUE obj, rb_arithmetic_sequence_components_t *c
component->exclude_end = arith_seq_exclude_end_p(obj);
return 1;
}
- else if (rb_range_values(obj, &component->begin, &component->end, &component->exclude_end)) {
+ else if (rb_obj_is_kind_of(obj, rb_cRange)) {
+ component->begin = RANGE_BEG(obj);
+ component->end = RANGE_END(obj);
component->step = INT2FIX(1);
+ component->exclude_end = RTEST(RANGE_EXCL(obj));
return 1;
}
return 0;
}
-VALUE
-rb_arithmetic_sequence_beg_len_step(VALUE obj, long *begp, long *lenp, long *stepp, long len, int err)
-{
- RUBY_ASSERT(begp != NULL);
- RUBY_ASSERT(lenp != NULL);
- RUBY_ASSERT(stepp != NULL);
-
- rb_arithmetic_sequence_components_t aseq;
- if (!rb_arithmetic_sequence_extract(obj, &aseq)) {
- return Qfalse;
- }
-
- long step = NIL_P(aseq.step) ? 1 : NUM2LONG(aseq.step);
- *stepp = step;
-
- if (step < 0) {
- VALUE tmp = aseq.begin;
- aseq.begin = aseq.end;
- aseq.end = tmp;
- }
-
- if (err == 0 && (step < -1 || step > 1)) {
- if (rb_range_component_beg_len(aseq.begin, aseq.end, aseq.exclude_end, begp, lenp, len, 1) == Qtrue) {
- if (*begp > len)
- goto out_of_range;
- if (*lenp > len)
- goto out_of_range;
- return Qtrue;
- }
- }
- else {
- return rb_range_component_beg_len(aseq.begin, aseq.end, aseq.exclude_end, begp, lenp, len, err);
- }
-
- out_of_range:
- rb_raise(rb_eRangeError, "%+"PRIsVALUE" out of range", obj);
- return Qnil;
-}
-
/*
* call-seq:
* aseq.first -> num or nil
@@ -3590,88 +3535,6 @@ arith_seq_first(int argc, VALUE *argv, VALUE self)
return rb_call_super(argc, argv);
}
-static inline VALUE
-num_plus(VALUE a, VALUE b)
-{
- if (RB_INTEGER_TYPE_P(a)) {
- return rb_int_plus(a, b);
- }
- else if (RB_FLOAT_TYPE_P(a)) {
- return rb_float_plus(a, b);
- }
- else if (RB_TYPE_P(a, T_RATIONAL)) {
- return rb_rational_plus(a, b);
- }
- else {
- return rb_funcallv(a, '+', 1, &b);
- }
-}
-
-static inline VALUE
-num_minus(VALUE a, VALUE b)
-{
- if (RB_INTEGER_TYPE_P(a)) {
- return rb_int_minus(a, b);
- }
- else if (RB_FLOAT_TYPE_P(a)) {
- return rb_float_minus(a, b);
- }
- else if (RB_TYPE_P(a, T_RATIONAL)) {
- return rb_rational_minus(a, b);
- }
- else {
- return rb_funcallv(a, '-', 1, &b);
- }
-}
-
-static inline VALUE
-num_mul(VALUE a, VALUE b)
-{
- if (RB_INTEGER_TYPE_P(a)) {
- return rb_int_mul(a, b);
- }
- else if (RB_FLOAT_TYPE_P(a)) {
- return rb_float_mul(a, b);
- }
- else if (RB_TYPE_P(a, T_RATIONAL)) {
- return rb_rational_mul(a, b);
- }
- else {
- return rb_funcallv(a, '*', 1, &b);
- }
-}
-
-static inline VALUE
-num_idiv(VALUE a, VALUE b)
-{
- VALUE q;
- if (RB_INTEGER_TYPE_P(a)) {
- q = rb_int_idiv(a, b);
- }
- else if (RB_FLOAT_TYPE_P(a)) {
- q = rb_float_div(a, b);
- }
- else if (RB_TYPE_P(a, T_RATIONAL)) {
- q = rb_rational_div(a, b);
- }
- else {
- q = rb_funcallv(a, idDiv, 1, &b);
- }
-
- if (RB_INTEGER_TYPE_P(q)) {
- return q;
- }
- else if (RB_FLOAT_TYPE_P(q)) {
- return rb_float_floor(q, 0);
- }
- else if (RB_TYPE_P(q, T_RATIONAL)) {
- return rb_rational_floor(q, 0);
- }
- else {
- return rb_funcall(q, rb_intern("floor"), 0);
- }
-}
-
/*
* call-seq:
* aseq.last -> num or nil
@@ -3696,7 +3559,7 @@ arith_seq_last(int argc, VALUE *argv, VALUE self)
b = arith_seq_begin(self);
s = arith_seq_step(self);
- len_1 = num_idiv(num_minus(e, b), s);
+ len_1 = rb_int_idiv(rb_int_minus(e, b), s);
if (rb_num_negative_int_p(len_1)) {
if (argc == 0) {
return Qnil;
@@ -3704,9 +3567,9 @@ arith_seq_last(int argc, VALUE *argv, VALUE self)
return rb_ary_new_capa(0);
}
- last = num_plus(b, num_mul(s, len_1));
+ last = rb_int_plus(b, rb_int_mul(s, len_1));
if ((last_is_adjusted = arith_seq_exclude_end_p(self) && rb_equal(last, e))) {
- last = num_minus(last, s);
+ last = rb_int_minus(last, s);
}
if (argc == 0) {
@@ -3915,28 +3778,57 @@ arith_seq_each(VALUE self)
return self;
}
- len_1 = num_idiv(num_minus(e, c), s);
- last = num_plus(c, num_mul(s, len_1));
+ len_1 = rb_int_idiv(rb_int_minus(e, c), s);
+ last = rb_int_plus(c, rb_int_mul(s, len_1));
if (x && rb_equal(last, e)) {
- last = num_minus(last, s);
+ last = rb_int_minus(last, s);
}
if (rb_num_negative_int_p(s)) {
while (NUM_GE(c, last)) {
rb_yield(c);
- c = num_plus(c, s);
+ c = rb_int_plus(c, s);
}
}
else {
while (NUM_GE(last, c)) {
rb_yield(c);
- c = num_plus(c, s);
+ c = rb_int_plus(c, s);
}
}
return self;
}
+static double
+arith_seq_float_step_size(double beg, double end, double step, int excl)
+{
+ double const epsilon = DBL_EPSILON;
+ double n, err;
+
+ if (step == 0) {
+ return HUGE_VAL;
+ }
+ n = (end - beg) / step;
+ err = (fabs(beg) + fabs(end) + fabs(end - beg)) / fabs(step) * epsilon;
+ if (isinf(step)) {
+ return step > 0 ? beg <= end : beg >= end;
+ }
+ if (err > 0.5) err = 0.5;
+ if (excl) {
+ if (n <= 0) return 0;
+ if (n < 1)
+ n = 0;
+ else
+ n = floor(n - err);
+ }
+ else {
+ if (n < 0) return 0;
+ n = floor(n + err);
+ }
+ return n + 1;
+}
+
/*
* call-seq:
* aseq.size -> num or nil
@@ -3970,9 +3862,9 @@ arith_seq_size(VALUE self)
ee = NUM2DBL(e);
}
- n = ruby_float_step_size(NUM2DBL(b), ee, NUM2DBL(s), x);
+ n = arith_seq_float_step_size(NUM2DBL(b), ee, NUM2DBL(s), x);
if (isinf(n)) return DBL2NUM(n);
- if (POSFIXABLE(n)) return LONG2FIX((long)n);
+ if (POSFIXABLE(n)) return LONG2FIX(n);
return rb_dbl2big(n);
}
@@ -4004,11 +3896,10 @@ arith_seq_size(VALUE self)
return len;
}
-#define sym(name) ID2SYM(rb_intern_const(name))
void
InitVM_Enumerator(void)
{
- ID id_private = rb_intern_const("private");
+ ID id_private = rb_intern("private");
rb_define_method(rb_mKernel, "to_enum", obj_to_enum, -1);
rb_define_method(rb_mKernel, "enum_for", obj_to_enum, -1);
@@ -4058,23 +3949,23 @@ InitVM_Enumerator(void)
rb_define_alias(rb_cLazy, "_enumerable_uniq", "uniq");
rb_define_private_method(rb_cLazy, "_enumerable_with_index", enumerator_with_index, -1);
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_map"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_collect"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_flat_map"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_collect_concat"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_select"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_find_all"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_filter"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_filter_map"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_reject"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_grep"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_grep_v"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_zip"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_take"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_take_while"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_drop"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_drop_while"));
- rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_uniq"));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_map")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_collect")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_flat_map")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_collect_concat")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_select")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_find_all")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_filter")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_filter_map")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_reject")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_grep")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_grep_v")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_zip")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_take")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_take_while")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_drop")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_drop_while")));
+ rb_funcall(rb_cLazy, id_private, 1, ID2SYM(rb_intern("_enumerable_uniq")));
rb_define_method(rb_cLazy, "initialize", lazy_initialize, -1);
rb_define_method(rb_cLazy, "to_enum", lazy_to_enum, -1);
@@ -4106,24 +3997,24 @@ InitVM_Enumerator(void)
rb_define_method(rb_cLazy, "with_index", lazy_with_index, -1);
lazy_use_super_method = rb_hash_new_with_size(18);
- rb_hash_aset(lazy_use_super_method, sym("map"), sym("_enumerable_map"));
- rb_hash_aset(lazy_use_super_method, sym("collect"), sym("_enumerable_collect"));
- rb_hash_aset(lazy_use_super_method, sym("flat_map"), sym("_enumerable_flat_map"));
- rb_hash_aset(lazy_use_super_method, sym("collect_concat"), sym("_enumerable_collect_concat"));
- rb_hash_aset(lazy_use_super_method, sym("select"), sym("_enumerable_select"));
- rb_hash_aset(lazy_use_super_method, sym("find_all"), sym("_enumerable_find_all"));
- rb_hash_aset(lazy_use_super_method, sym("filter"), sym("_enumerable_filter"));
- rb_hash_aset(lazy_use_super_method, sym("filter_map"), sym("_enumerable_filter_map"));
- rb_hash_aset(lazy_use_super_method, sym("reject"), sym("_enumerable_reject"));
- rb_hash_aset(lazy_use_super_method, sym("grep"), sym("_enumerable_grep"));
- rb_hash_aset(lazy_use_super_method, sym("grep_v"), sym("_enumerable_grep_v"));
- rb_hash_aset(lazy_use_super_method, sym("zip"), sym("_enumerable_zip"));
- rb_hash_aset(lazy_use_super_method, sym("take"), sym("_enumerable_take"));
- rb_hash_aset(lazy_use_super_method, sym("take_while"), sym("_enumerable_take_while"));
- rb_hash_aset(lazy_use_super_method, sym("drop"), sym("_enumerable_drop"));
- rb_hash_aset(lazy_use_super_method, sym("drop_while"), sym("_enumerable_drop_while"));
- rb_hash_aset(lazy_use_super_method, sym("uniq"), sym("_enumerable_uniq"));
- rb_hash_aset(lazy_use_super_method, sym("with_index"), sym("_enumerable_with_index"));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("map")), ID2SYM(rb_intern("_enumerable_map")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("collect")), ID2SYM(rb_intern("_enumerable_collect")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("flat_map")), ID2SYM(rb_intern("_enumerable_flat_map")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("collect_concat")), ID2SYM(rb_intern("_enumerable_collect_concat")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("select")), ID2SYM(rb_intern("_enumerable_select")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("find_all")), ID2SYM(rb_intern("_enumerable_find_all")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("filter")), ID2SYM(rb_intern("_enumerable_filter")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("filter_map")), ID2SYM(rb_intern("_enumerable_filter_map")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("reject")), ID2SYM(rb_intern("_enumerable_reject")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("grep")), ID2SYM(rb_intern("_enumerable_grep")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("grep_v")), ID2SYM(rb_intern("_enumerable_grep_v")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("zip")), ID2SYM(rb_intern("_enumerable_zip")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("take")), ID2SYM(rb_intern("_enumerable_take")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("take_while")), ID2SYM(rb_intern("_enumerable_take_while")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("drop")), ID2SYM(rb_intern("_enumerable_drop")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("drop_while")), ID2SYM(rb_intern("_enumerable_drop_while")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("uniq")), ID2SYM(rb_intern("_enumerable_uniq")));
+ rb_hash_aset(lazy_use_super_method, ID2SYM(rb_intern("with_index")), ID2SYM(rb_intern("_enumerable_with_index")));
rb_obj_freeze(lazy_use_super_method);
rb_gc_register_mark_object(lazy_use_super_method);
@@ -4192,28 +4083,28 @@ InitVM_Enumerator(void)
rb_provide("enumerator.so"); /* for backward compatibility */
}
-#undef sym
+#undef rb_intern
void
Init_Enumerator(void)
{
- id_rewind = rb_intern_const("rewind");
- id_new = rb_intern_const("new");
- id_next = rb_intern_const("next");
- id_result = rb_intern_const("result");
- id_receiver = rb_intern_const("receiver");
- id_arguments = rb_intern_const("arguments");
- id_memo = rb_intern_const("memo");
- id_method = rb_intern_const("method");
- id_force = rb_intern_const("force");
- id_to_enum = rb_intern_const("to_enum");
- id_begin = rb_intern_const("begin");
- id_end = rb_intern_const("end");
- id_step = rb_intern_const("step");
- id_exclude_end = rb_intern_const("exclude_end");
+ id_rewind = rb_intern("rewind");
+ id_new = rb_intern("new");
+ id_next = rb_intern("next");
+ id_result = rb_intern("result");
+ id_receiver = rb_intern("receiver");
+ id_arguments = rb_intern("arguments");
+ id_memo = rb_intern("memo");
+ id_method = rb_intern("method");
+ id_force = rb_intern("force");
+ id_to_enum = rb_intern("to_enum");
+ id_begin = rb_intern("begin");
+ id_end = rb_intern("end");
+ id_step = rb_intern("step");
+ id_exclude_end = rb_intern("exclude_end");
sym_each = ID2SYM(id_each);
- sym_cycle = ID2SYM(rb_intern_const("cycle"));
- sym_yield = ID2SYM(rb_intern_const("yield"));
+ sym_cycle = ID2SYM(rb_intern("cycle"));
+ sym_yield = ID2SYM(rb_intern("yield"));
InitVM(Enumerator);
}
diff --git a/error.c b/error.c
index 73705b0b58..9557d8552b 100644
--- a/error.c
+++ b/error.c
@@ -9,40 +9,27 @@
**********************************************************************/
-#include "ruby/internal/config.h"
+#include "ruby/encoding.h"
+#include "ruby/st.h"
+#include "internal.h"
+#include "ruby_assert.h"
+#include "vm_core.h"
+#include "builtin.h"
-#include <errno.h>
-#include <stdarg.h>
#include <stdio.h>
-
+#include <stdarg.h>
#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
+#include <stdlib.h>
#endif
-
+#include <errno.h>
#ifdef HAVE_UNISTD_H
-# include <unistd.h>
+#include <unistd.h>
#endif
#if defined __APPLE__
# include <AvailabilityMacros.h>
#endif
-#include "internal.h"
-#include "internal/error.h"
-#include "internal/eval.h"
-#include "internal/io.h"
-#include "internal/load.h"
-#include "internal/object.h"
-#include "internal/symbol.h"
-#include "internal/thread.h"
-#include "internal/variable.h"
-#include "ruby/encoding.h"
-#include "ruby/st.h"
-#include "ruby_assert.h"
-#include "vm_core.h"
-
-#include "builtin.h"
-
/*!
* \defgroup exception Exception handlings
* \{
@@ -63,9 +50,7 @@
VALUE rb_iseqw_local_variables(VALUE iseqval);
VALUE rb_iseqw_new(const rb_iseq_t *);
int rb_str_end_with_asciichar(VALUE str, int c);
-VALUE rb_ident_hash_new(void);
-long rb_backtrace_length_limit = -1;
VALUE rb_eEAGAIN;
VALUE rb_eEWOULDBLOCK;
VALUE rb_eEINPROGRESS;
@@ -73,12 +58,6 @@ static VALUE rb_mWarning;
static VALUE rb_cWarningBuffer;
static ID id_warn;
-static ID id_category;
-static ID id_deprecated;
-static ID id_experimental;
-static VALUE sym_category;
-static VALUE warning_categories;
-static VALUE warning_category_t_map;
extern const char ruby_description[];
@@ -149,9 +128,7 @@ rb_syntax_error_append(VALUE exc, VALUE file, int line, int column,
return exc;
}
-static unsigned int warning_disabled_categories = (
- 1U << RB_WARN_CATEGORY_DEPRECATED |
- 0);
+static unsigned int warning_disabled_categories;
static unsigned int
rb_warning_category_mask(VALUE category)
@@ -162,13 +139,18 @@ rb_warning_category_mask(VALUE category)
rb_warning_category_t
rb_warning_category_from_name(VALUE category)
{
- VALUE cat_value;
+ rb_warning_category_t cat = RB_WARN_CATEGORY_NONE;
Check_Type(category, T_SYMBOL);
- cat_value = rb_hash_aref(warning_categories, category);
- if (cat_value == Qnil) {
+ if (category == ID2SYM(rb_intern("deprecated"))) {
+ cat = RB_WARN_CATEGORY_DEPRECATED;
+ }
+ else if (category == ID2SYM(rb_intern("experimental"))) {
+ cat = RB_WARN_CATEGORY_EXPERIMENTAL;
+ }
+ else {
rb_raise(rb_eArgError, "unknown category: %"PRIsVALUE, category);
}
- return NUM2INT(cat_value);
+ return cat;
}
void
@@ -185,7 +167,7 @@ rb_warning_category_enabled_p(rb_warning_category_t category)
}
/*
- * call-seq:
+ * call-seq
* Warning[category] -> true or false
*
* Returns the flag to show the warning messages for +category+.
@@ -211,7 +193,7 @@ rb_warning_s_aref(VALUE mod, VALUE category)
}
/*
- * call-seq:
+ * call-seq
* Warning[category] = flag -> flag
*
* Sets the warning flags for +category+.
@@ -233,31 +215,17 @@ rb_warning_s_aset(VALUE mod, VALUE category, VALUE flag)
/*
* call-seq:
- * warn(msg, category: nil) -> nil
+ * warn(msg) -> nil
*
* Writes warning message +msg+ to $stderr. This method is called by
- * Ruby for all emitted warnings. A +category+ may be included with
- * the warning.
- *
- * See the documentation of the Warning module for how to customize this.
+ * Ruby for all emitted warnings.
*/
static VALUE
-rb_warning_s_warn(int argc, VALUE *argv, VALUE mod)
+rb_warning_s_warn(VALUE mod, VALUE str)
{
- VALUE str;
- VALUE opt;
- VALUE category = Qnil;
-
- rb_scan_args(argc, argv, "1:", &str, &opt);
- if (!NIL_P(opt)) rb_get_kwargs(opt, &id_category, 0, 1, &category);
-
Check_Type(str, T_STRING);
rb_must_asciicompat(str);
- if (!NIL_P(category)) {
- rb_warning_category_t cat = rb_warning_category_from_name(category);
- if (!rb_warning_category_enabled_p(cat)) return Qnil;
- }
rb_write_error_str(str);
return Qnil;
}
@@ -270,30 +238,11 @@ rb_warning_s_warn(int argc, VALUE *argv, VALUE mod)
* Warning.warn is called for all warnings issued by Ruby.
* By default, warnings are printed to $stderr.
*
- * Changing the behavior of Warning.warn is useful to customize how warnings are
- * handled by Ruby, for instance by filtering some warnings, and/or outputting
- * warnings somewhere other than $stderr.
- *
- * If you want to change the behavior of Warning.warn you should use
- * +Warning.extend(MyNewModuleWithWarnMethod)+ and you can use `super`
- * to get the default behavior of printing the warning to $stderr.
- *
- * Example:
- * module MyWarningFilter
- * def warn(message, category: nil, **kwargs)
- * if /some warning I want to ignore/.matches?(message)
- * # ignore
- * else
- * super
- * end
- * end
- * end
- * Warning.extend MyWarningFilter
- *
- * You should never redefine Warning#warn (the instance method), as that will
- * then no longer provide a way to use the default behavior.
- *
- * The +warning+ gem provides convenient ways to customize Warning.warn.
+ * By overriding Warning.warn, you can change how warnings are
+ * handled by Ruby, either filtering some warnings, and/or outputting
+ * warnings somewhere other than $stderr. When Warning.warn is
+ * overridden, super can be called to get the default behavior of
+ * printing the warning to $stderr.
*/
static VALUE
@@ -302,35 +251,6 @@ rb_warning_warn(VALUE mod, VALUE str)
return rb_funcallv(mod, id_warn, 1, &str);
}
-
-static int
-rb_warning_warn_arity(void)
-{
- return rb_method_entry_arity(rb_method_entry(rb_singleton_class(rb_mWarning), id_warn));
-}
-
-static VALUE
-rb_warn_category(VALUE str, VALUE category)
-{
- if (category != Qnil) {
- category = rb_to_symbol_type(category);
- if (!RTEST(rb_hash_aref(warning_categories, category))) {
- rb_raise(rb_eArgError, "invalid warning category used: %s", rb_id2name(SYM2ID(category)));
- }
- }
-
- if (rb_warning_warn_arity() == 1) {
- return rb_warning_warn(rb_mWarning, str);
- }
- else {
- VALUE args[2];
- args[0] = str;
- args[1] = rb_hash_new();
- rb_hash_aset(args[1], sym_category, category);
- return rb_funcallv_kw(rb_mWarning, id_warn, 2, args, RB_PASS_KEYWORDS);
- }
-}
-
static void
rb_write_warning_str(VALUE str)
{
@@ -375,20 +295,6 @@ rb_compile_warning(const char *file, int line, const char *fmt, ...)
rb_write_warning_str(str);
}
-void
-rb_category_compile_warn(rb_warning_category_t category, const char *file, int line, const char *fmt, ...)
-{
- VALUE str;
- va_list args;
-
- if (NIL_P(ruby_verbose)) return;
-
- va_start(args, fmt);
- str = warn_vsprintf(NULL, file, line, fmt, args);
- va_end(args);
- rb_warn_category(str, rb_hash_fetch(warning_category_t_map, INT2NUM(category)));
-}
-
static VALUE
warning_string(rb_encoding *enc, const char *fmt, va_list args)
{
@@ -414,16 +320,6 @@ rb_warn(const char *fmt, ...)
}
void
-rb_category_warn(rb_warning_category_t category, const char *fmt, ...)
-{
- if (!NIL_P(ruby_verbose)) {
- with_warning_string(mesg, 0, fmt) {
- rb_warn_category(mesg, rb_hash_fetch(warning_category_t_map, INT2NUM(category)));
- }
- }
-}
-
-void
rb_enc_warn(rb_encoding *enc, const char *fmt, ...)
{
if (!NIL_P(ruby_verbose)) {
@@ -444,17 +340,6 @@ rb_warning(const char *fmt, ...)
}
}
-/* rb_category_warning() reports only in verbose mode */
-void
-rb_category_warning(rb_warning_category_t category, const char *fmt, ...)
-{
- if (RTEST(ruby_verbose)) {
- with_warning_string(mesg, 0, fmt) {
- rb_warn_category(mesg, rb_hash_fetch(warning_category_t_map, INT2NUM(category)));
- }
- }
-}
-
VALUE
rb_warning_string(const char *fmt, ...)
{
@@ -488,21 +373,7 @@ rb_warn_deprecated(const char *fmt, const char *suggest, ...)
rb_str_cat_cstr(mesg, " is deprecated");
if (suggest) rb_str_catf(mesg, "; use %s instead", suggest);
rb_str_cat_cstr(mesg, "\n");
- rb_warn_category(mesg, ID2SYM(id_deprecated));
-}
-
-void
-rb_warn_deprecated_to_remove(const char *fmt, const char *removal, ...)
-{
- if (NIL_P(ruby_verbose)) return;
- if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) return;
- va_list args;
- va_start(args, removal);
- VALUE mesg = warning_string(0, fmt, args);
- va_end(args);
- rb_str_set_len(mesg, RSTRING_LEN(mesg) - 1);
- rb_str_catf(mesg, " is deprecated and will be removed in Ruby %s\n", removal);
- rb_warn_category(mesg, ID2SYM(id_deprecated));
+ rb_write_warning_str(mesg);
}
static inline int
@@ -522,10 +393,9 @@ warning_write(int argc, VALUE *argv, VALUE buf)
return buf;
}
-VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
-
+VALUE rb_ec_backtrace_location_ary(rb_execution_context_t *ec, long lev, long n);
static VALUE
-rb_warn_m(rb_execution_context_t *ec, VALUE exc, VALUE msgs, VALUE uplevel, VALUE category)
+rb_warn_m(rb_execution_context_t *ec, VALUE exc, VALUE msgs, VALUE uplevel)
{
VALUE location = Qnil;
int argc = RARRAY_LENINT(msgs);
@@ -538,7 +408,7 @@ rb_warn_m(rb_execution_context_t *ec, VALUE exc, VALUE msgs, VALUE uplevel, VALU
if (lev < 0) {
rb_raise(rb_eArgError, "negative level (%ld)", lev);
}
- location = rb_ec_backtrace_location_ary(ec, lev + 1, 1, TRUE);
+ location = rb_ec_backtrace_location_ary(ec, lev + 1, 1);
if (!NIL_P(location)) {
location = rb_ary_entry(location, 0);
}
@@ -561,13 +431,12 @@ rb_warn_m(rb_execution_context_t *ec, VALUE exc, VALUE msgs, VALUE uplevel, VALU
rb_io_puts(argc, argv, str);
RBASIC_SET_CLASS(str, rb_cString);
}
-
if (exc == rb_mWarning) {
rb_must_asciicompat(str);
rb_write_error_str(str);
}
else {
- rb_warn_category(str, category);
+ rb_write_warning_str(str);
}
}
return Qnil;
@@ -698,6 +567,17 @@ bug_report_begin_valist(FILE *out, const char *fmt, va_list args)
snprintf(buf, sizeof(buf), "\n%s\n\n", ruby_description);
fputs(buf, out);
preface_dump(out);
+
+#if RUBY_DEVEL
+ const char *cmd = getenv("RUBY_ON_BUG");
+ if (cmd) {
+ snprintf(buf, sizeof(buf), "%s %"PRI_PIDT_PREFIX"d", cmd, getpid());
+ int r = system(buf);
+ if (r == -1) {
+ snprintf(buf, sizeof(buf), "Launching RUBY_ON_BUG command failed.");
+ }
+ }
+#endif
}
#define bug_report_begin(out, fmt) do { \
@@ -751,25 +631,17 @@ die(void)
}
void
-rb_bug_without_die(const char *fmt, va_list args)
+rb_bug(const char *fmt, ...)
{
const char *file = NULL;
int line = 0;
if (GET_EC()) {
- file = rb_source_location_cstr(&line);
+ file = rb_source_location_cstr(&line);
}
- report_bug_valist(file, line, fmt, NULL, args);
-}
+ report_bug(file, line, fmt, NULL);
-void
-rb_bug(const char *fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- rb_bug_without_die(fmt, args);
- va_end(args);
die();
}
@@ -864,7 +736,7 @@ static const char builtin_types[][10] = {
"Array",
"Hash",
"Struct",
- "Integer",
+ "Bignum",
"File",
"Data", /* internal use: wrapped C pointers */
"MatchData", /* data of $~ */
@@ -875,7 +747,7 @@ static const char builtin_types[][10] = {
"true",
"false",
"Symbol", /* :symbol */
- "Integer",
+ "Fixnum",
"undef", /* internal use: #undef; should not happen */
"", /* 0x17 */
"", /* 0x18 */
@@ -895,17 +767,6 @@ rb_builtin_type_name(int t)
return 0;
}
-static VALUE
-displaying_class_of(VALUE x)
-{
- switch (x) {
- case Qfalse: return rb_fstring_cstr("false");
- case Qnil: return rb_fstring_cstr("nil");
- case Qtrue: return rb_fstring_cstr("true");
- default: return rb_obj_class(x);
- }
-}
-
static const char *
builtin_class_name(VALUE x)
{
@@ -953,8 +814,13 @@ unexpected_type(VALUE x, int xt, int t)
VALUE mesg, exc = rb_eFatal;
if (tname) {
- mesg = rb_sprintf("wrong argument type %"PRIsVALUE" (expected %s)",
- displaying_class_of(x), tname);
+ const char *cname = builtin_class_name(x);
+ if (cname)
+ mesg = rb_sprintf("wrong argument type %s (expected %s)",
+ cname, tname);
+ else
+ mesg = rb_sprintf("wrong argument type %"PRIsVALUE" (expected %s)",
+ rb_obj_class(x), tname);
exc = rb_eTypeError;
}
else if (xt > T_MASK && xt <= 0x3f) {
@@ -1022,26 +888,26 @@ rb_typeddata_is_instance_of(VALUE obj, const rb_data_type_t *data_type)
void *
rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type)
{
- VALUE actual;
+ const char *etype;
if (!RB_TYPE_P(obj, T_DATA)) {
- actual = displaying_class_of(obj);
- }
- else if (!RTYPEDDATA_P(obj)) {
- actual = displaying_class_of(obj);
+ wrong_type:
+ etype = builtin_class_name(obj);
+ if (!etype)
+ rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (expected %s)",
+ rb_obj_class(obj), data_type->wrap_struct_name);
+ wrong_datatype:
+ rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)",
+ etype, data_type->wrap_struct_name);
+ }
+ if (!RTYPEDDATA_P(obj)) {
+ goto wrong_type;
}
else if (!rb_typeddata_inherited_p(RTYPEDDATA_TYPE(obj), data_type)) {
- const char *name = RTYPEDDATA_TYPE(obj)->wrap_struct_name;
- actual = rb_str_new_cstr(name); /* or rb_fstring_cstr? not sure... */
- }
- else {
- return DATA_PTR(obj);
+ etype = RTYPEDDATA_TYPE(obj)->wrap_struct_name;
+ goto wrong_datatype;
}
-
- const char *expected = data_type->wrap_struct_name;
- rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (expected %s)",
- actual, expected);
- UNREACHABLE_RETURN(NULL);
+ return DATA_PTR(obj);
}
/* exception classes */
@@ -1120,8 +986,7 @@ exc_init(VALUE exc, VALUE mesg)
/*
* call-seq:
- * Exception.new(msg = nil) -> exception
- * Exception.exception(msg = nil) -> exception
+ * Exception.new(msg = nil) -> exception
*
* Construct a new Exception object, optionally passing in
* a message.
@@ -1140,7 +1005,7 @@ exc_initialize(int argc, VALUE *argv, VALUE exc)
* Document-method: exception
*
* call-seq:
- * exc.exception([string]) -> an_exception or exc
+ * exc.exception(string) -> an_exception or exc
*
* With no argument, or if the argument is the same as the receiver,
* return the receiver. Otherwise, create a new
@@ -1847,9 +1712,9 @@ static const rb_data_type_t name_err_mesg_data_type = {
/* :nodoc: */
static VALUE
-rb_name_err_mesg_init(VALUE klass, VALUE mesg, VALUE recv, VALUE method)
+rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)
{
- VALUE result = TypedData_Wrap_Struct(klass, &name_err_mesg_data_type, 0);
+ VALUE result = TypedData_Wrap_Struct(rb_cNameErrorMesg, &name_err_mesg_data_type, 0);
VALUE *ptr = ALLOC_N(VALUE, NAME_ERR_MESG_COUNT);
ptr[NAME_ERR_MESG__MESG] = mesg;
@@ -1861,35 +1726,6 @@ rb_name_err_mesg_init(VALUE klass, VALUE mesg, VALUE recv, VALUE method)
/* :nodoc: */
static VALUE
-rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)
-{
- return rb_name_err_mesg_init(rb_cNameErrorMesg, mesg, recv, method);
-}
-
-/* :nodoc: */
-static VALUE
-name_err_mesg_alloc(VALUE klass)
-{
- return rb_name_err_mesg_init(klass, Qnil, Qnil, Qnil);
-}
-
-/* :nodoc: */
-static VALUE
-name_err_mesg_init_copy(VALUE obj1, VALUE obj2)
-{
- VALUE *ptr1, *ptr2;
-
- if (obj1 == obj2) return obj1;
- rb_obj_init_copy(obj1, obj2);
-
- TypedData_Get_Struct(obj1, VALUE, &name_err_mesg_data_type, ptr1);
- TypedData_Get_Struct(obj2, VALUE, &name_err_mesg_data_type, ptr2);
- MEMCPY(ptr1, ptr2, VALUE, NAME_ERR_MESG_COUNT);
- return obj1;
-}
-
-/* :nodoc: */
-static VALUE
name_err_mesg_equal(VALUE obj1, VALUE obj2)
{
VALUE *ptr1, *ptr2;
@@ -1910,17 +1746,6 @@ name_err_mesg_equal(VALUE obj1, VALUE obj2)
/* :nodoc: */
static VALUE
-name_err_mesg_receiver_name(VALUE obj)
-{
- if (RB_SPECIAL_CONST_P(obj)) return Qundef;
- if (RB_BUILTIN_TYPE(obj) == T_MODULE || RB_BUILTIN_TYPE(obj) == T_CLASS) {
- return rb_check_funcall(obj, rb_intern("name"), 0, 0);
- }
- return Qundef;
-}
-
-/* :nodoc: */
-static VALUE
name_err_mesg_to_str(VALUE obj)
{
VALUE *ptr, mesg;
@@ -1947,14 +1772,10 @@ name_err_mesg_to_str(VALUE obj)
d = FAKE_CSTR(&d_str, "false");
break;
default:
- d = rb_protect(name_err_mesg_receiver_name, obj, &state);
- if (state || d == Qundef || d == Qnil)
- d = rb_protect(rb_inspect, obj, &state);
- if (state) {
+ d = rb_protect(rb_inspect, obj, &state);
+ if (state)
rb_set_errinfo(Qnil);
- }
- d = rb_check_string_type(d);
- if (NIL_P(d)) {
+ if (NIL_P(d) || RSTRING_LEN(d) > 65) {
d = rb_any_to_s(obj);
}
singleton = (RSTRING_LEN(d) > 0 && RSTRING_PTR(d)[0] == '#');
@@ -2623,8 +2444,6 @@ syserr_eqq(VALUE self, VALUE exc)
*/
/*
- * Document-class: Exception
- *
* \Class Exception and its subclasses are used to communicate between
* Kernel#raise and +rescue+ statements in <code>begin ... end</code> blocks.
*
@@ -2719,56 +2538,10 @@ syserr_eqq(VALUE self, VALUE exc)
* * fatal
*/
-static VALUE
-exception_alloc(VALUE klass)
-{
- return rb_class_allocate_instance(klass);
-}
-
-static VALUE
-exception_dumper(VALUE exc)
-{
- // TODO: Currently, the instance variables "bt" and "bt_locations"
- // refers to the same object (Array of String). But "bt_locations"
- // should have an Array of Thread::Backtrace::Locations.
-
- return exc;
-}
-
-static int
-ivar_copy_i(st_data_t key, st_data_t val, st_data_t exc)
-{
- rb_ivar_set((VALUE) exc, (ID) key, (VALUE) val);
- return ST_CONTINUE;
-}
-
-static VALUE
-exception_loader(VALUE exc, VALUE obj)
-{
- // The loader function of rb_marshal_define_compat seems to be called for two events:
- // one is for fixup (r_fixup_compat), the other is for TYPE_USERDEF.
- // In the former case, the first argument is an instance of Exception (because
- // we pass rb_eException to rb_marshal_define_compat). In the latter case, the first
- // argument is a class object (see TYPE_USERDEF case in r_object0).
- // We want to copy all instance variables (but "bt_locations") from obj to exc.
- // But we do not want to do so in the second case, so the following branch is for that.
- if (RB_TYPE_P(exc, T_CLASS)) return obj; // maybe called from Marshal's TYPE_USERDEF
-
- rb_ivar_foreach(obj, ivar_copy_i, exc);
-
- if (rb_attr_get(exc, id_bt) == rb_attr_get(exc, id_bt_locations)) {
- rb_ivar_set(exc, id_bt_locations, Qnil);
- }
-
- return exc;
-}
-
void
Init_Exception(void)
{
rb_eException = rb_define_class("Exception", rb_cObject);
- rb_define_alloc_func(rb_eException, exception_alloc);
- rb_marshal_define_compat(rb_eException, rb_eException, exception_dumper, exception_loader);
rb_define_singleton_method(rb_eException, "exception", rb_class_new_instance, -1);
rb_define_singleton_method(rb_eException, "to_tty?", exc_s_to_tty_p, 0);
rb_define_method(rb_eException, "exception", exc_exception, -1);
@@ -2817,9 +2590,7 @@ Init_Exception(void)
rb_define_method(rb_eNameError, "name", name_err_name, 0);
rb_define_method(rb_eNameError, "receiver", name_err_receiver, 0);
rb_define_method(rb_eNameError, "local_variables", name_err_local_variables, 0);
- rb_cNameErrorMesg = rb_define_class_under(rb_eNameError, "message", rb_cObject);
- rb_define_alloc_func(rb_cNameErrorMesg, name_err_mesg_alloc);
- rb_define_method(rb_cNameErrorMesg, "initialize_copy", name_err_mesg_init_copy, 1);
+ rb_cNameErrorMesg = rb_define_class_under(rb_eNameError, "message", rb_cData);
rb_define_method(rb_cNameErrorMesg, "==", name_err_mesg_equal, 1);
rb_define_method(rb_cNameErrorMesg, "to_str", name_err_mesg_to_str, 0);
rb_define_method(rb_cNameErrorMesg, "_dump", name_err_mesg_dump, 1);
@@ -2837,7 +2608,7 @@ Init_Exception(void)
rb_eNoMemError = rb_define_class("NoMemoryError", rb_eException);
rb_eEncodingError = rb_define_class("EncodingError", rb_eStandardError);
rb_eEncCompatError = rb_define_class_under(rb_cEncoding, "CompatibilityError", rb_eEncodingError);
- rb_eNoMatchingPatternError = rb_define_class("NoMatchingPatternError", rb_eStandardError);
+ rb_eNoMatchingPatternError = rb_define_class("NoMatchingPatternError", rb_eRuntimeError);
syserr_tbl = st_init_numtable();
rb_eSystemCallError = rb_define_class("SystemCallError", rb_eStandardError);
@@ -2850,7 +2621,7 @@ Init_Exception(void)
rb_mWarning = rb_define_module("Warning");
rb_define_singleton_method(rb_mWarning, "[]", rb_warning_s_aref, 1);
rb_define_singleton_method(rb_mWarning, "[]=", rb_warning_s_aset, 2);
- rb_define_method(rb_mWarning, "warn", rb_warning_s_warn, -1);
+ rb_define_method(rb_mWarning, "warn", rb_warning_s_warn, 1);
rb_extend_object(rb_mWarning, rb_mWarning);
/* :nodoc: */
@@ -2869,28 +2640,10 @@ Init_Exception(void)
id_errno = rb_intern_const("errno");
id_i_path = rb_intern_const("@path");
id_warn = rb_intern_const("warn");
- id_category = rb_intern_const("category");
- id_deprecated = rb_intern_const("deprecated");
- id_experimental = rb_intern_const("experimental");
id_top = rb_intern_const("top");
id_bottom = rb_intern_const("bottom");
id_iseq = rb_make_internal_id();
id_recv = rb_make_internal_id();
-
- sym_category = ID2SYM(id_category);
-
- warning_categories = rb_ident_hash_new();
- rb_gc_register_mark_object(warning_categories);
- rb_hash_aset(warning_categories, ID2SYM(id_deprecated), INT2NUM(RB_WARN_CATEGORY_DEPRECATED));
- rb_hash_aset(warning_categories, ID2SYM(id_experimental), INT2NUM(RB_WARN_CATEGORY_EXPERIMENTAL));
- rb_obj_freeze(warning_categories);
-
- warning_category_t_map = rb_ident_hash_new();
- rb_gc_register_mark_object(warning_category_t_map);
- rb_hash_aset(warning_category_t_map, INT2NUM(RB_WARN_CATEGORY_NONE), Qnil);
- rb_hash_aset(warning_category_t_map, INT2NUM(RB_WARN_CATEGORY_DEPRECATED), ID2SYM(id_deprecated));
- rb_hash_aset(warning_category_t_map, INT2NUM(RB_WARN_CATEGORY_EXPERIMENTAL), ID2SYM(id_experimental));
- rb_obj_freeze(warning_category_t_map);
}
void
@@ -3061,12 +2814,6 @@ rb_sys_fail_path_in(const char *func_name, VALUE path)
void
rb_syserr_fail_path_in(const char *func_name, int n, VALUE path)
{
- rb_exc_raise(rb_syserr_new_path_in(func_name, n, path));
-}
-
-VALUE
-rb_syserr_new_path_in(const char *func_name, int n, VALUE path)
-{
VALUE args[2];
if (!path) path = Qnil;
@@ -3078,7 +2825,7 @@ rb_syserr_new_path_in(const char *func_name, int n, VALUE path)
}
args[0] = path;
args[1] = rb_str_new_cstr(func_name);
- return rb_class_new_instance(2, args, get_syserr(n));
+ rb_exc_raise(rb_class_new_instance(2, args, get_syserr(n)));
}
#endif
@@ -3286,14 +3033,14 @@ rb_check_frozen(VALUE obj)
void
rb_error_untrusted(VALUE obj)
{
- rb_warn_deprecated_to_remove("rb_error_untrusted", "3.2");
+ rb_warning("rb_error_untrusted is deprecated and will be removed in Ruby 3.2.");
}
#undef rb_check_trusted
void
rb_check_trusted(VALUE obj)
{
- rb_warn_deprecated_to_remove("rb_check_trusted", "3.2");
+ rb_warning("rb_check_trusted is deprecated and will be removed in Ruby 3.2.");
}
void
@@ -3317,6 +3064,12 @@ Init_syserr(void)
#include "warning.rbinc"
+void
+Init_warning(void)
+{
+ load_warning();
+}
+
/*!
* \}
*/
diff --git a/eval.c b/eval.c
index 839518185a..f2fde81e19 100644
--- a/eval.c
+++ b/eval.c
@@ -11,36 +11,21 @@
**********************************************************************/
-#include "ruby/internal/config.h"
-
-#ifdef HAVE_SYS_PRCTL_H
-#include <sys/prctl.h>
-#endif
-
-#include "eval_intern.h"
-#include "gc.h"
#include "internal.h"
-#include "internal/class.h"
-#include "internal/error.h"
-#include "internal/eval.h"
-#include "internal/hash.h"
-#include "internal/inits.h"
-#include "internal/io.h"
-#include "internal/object.h"
-#include "internal/thread.h"
-#include "internal/variable.h"
-#include "internal/scheduler.h"
+#include "eval_intern.h"
#include "iseq.h"
+#include "gc.h"
+#include "ruby/vm.h"
+#include "vm_core.h"
#include "mjit.h"
#include "probes.h"
#include "probes_helper.h"
-#include "ruby/vm.h"
-#include "vm_core.h"
-#include "ractor_core.h"
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
NORETURN(void rb_raise_jump(VALUE, VALUE));
void rb_ec_clear_current_thread_trace_func(const rb_execution_context_t *ec);
-void rb_ec_clear_all_trace_func(const rb_execution_context_t *ec);
static int rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex);
static int rb_ec_exec_node(rb_execution_context_t *ec, void *n);
@@ -147,33 +132,15 @@ ruby_options(int argc, char **argv)
}
static void
-rb_ec_scheduler_finalize(rb_execution_context_t *ec)
-{
- enum ruby_tag_type state;
-
- EC_PUSH_TAG(ec);
- if ((state = EC_EXEC_TAG()) == TAG_NONE) {
- rb_scheduler_set(Qnil);
- }
- else {
- state = error_handle(ec, state);
- }
- EC_POP_TAG();
-}
-
-static void
rb_ec_teardown(rb_execution_context_t *ec)
{
- // If the user code defined a scheduler for the top level thread, run it:
- rb_ec_scheduler_finalize(ec);
-
EC_PUSH_TAG(ec);
if (EC_EXEC_TAG() == TAG_NONE) {
rb_vm_trap_exit(rb_ec_vm_ptr(ec));
}
EC_POP_TAG();
rb_ec_exec_end_proc(ec);
- rb_ec_clear_all_trace_func(ec);
+ rb_ec_clear_current_thread_trace_func(ec);
}
static void
@@ -228,7 +195,6 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
rb_threadptr_interrupt(th);
rb_threadptr_check_signal(th);
-
EC_PUSH_TAG(ec);
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
th = th0;
@@ -248,7 +214,7 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
th->status = THREAD_KILLED;
errs[0] = ec->errinfo;
- SAVE_ROOT_JMPBUF(th, rb_ractor_terminate_all());
+ SAVE_ROOT_JMPBUF(th, rb_thread_terminate_all());
}
else {
switch (step) {
@@ -264,7 +230,6 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
state = 0;
for (nerr = 0; nerr < numberof(errs); ++nerr) {
VALUE err = ATOMIC_VALUE_EXCHANGE(errs[nerr], Qnil);
- VALUE sig;
if (!RTEST(err)) continue;
@@ -280,11 +245,6 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
state = NUM2INT(sig);
break;
}
- else if (rb_obj_is_kind_of(err, rb_eSystemCallError) &&
- FIXNUM_P(sig = rb_attr_get(err, id_signo))) {
- state = NUM2INT(sig);
- break;
- }
else if (sysex == EXIT_SUCCESS) {
sysex = EXIT_FAILURE;
}
@@ -477,6 +437,7 @@ void
rb_class_modify_check(VALUE klass)
{
if (SPECIAL_CONST_P(klass)) {
+ noclass:
Check_Type(klass, T_CLASS);
}
if (OBJ_FROZEN(klass)) {
@@ -494,8 +455,6 @@ rb_class_modify_check(VALUE klass)
case T_CLASS:
desc = "Class";
break;
- default:
- break;
}
}
}
@@ -509,8 +468,7 @@ rb_class_modify_check(VALUE klass)
desc = "class";
break;
default:
- Check_Type(klass, T_CLASS);
- UNREACHABLE;
+ goto noclass;
}
}
rb_frozen_error_raise(klass, "can't modify frozen %s: %"PRIsVALUE, desc, klass);
@@ -663,19 +621,16 @@ setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE
}
if (rb_ec_set_raised(ec)) {
- goto fatal;
+ fatal:
+ ec->errinfo = exception_error;
+ rb_ec_reset_raised(ec);
+ EC_JUMP_TAG(ec, TAG_FATAL);
}
if (tag != TAG_FATAL) {
RUBY_DTRACE_HOOK(RAISE, rb_obj_classname(ec->errinfo));
EXEC_EVENT_HOOK(ec, RUBY_EVENT_RAISE, ec->cfp->self, 0, 0, 0, mesg);
}
- return;
-
- fatal:
- ec->errinfo = exception_error;
- rb_ec_reset_raised(ec);
- EC_JUMP_TAG(ec, TAG_FATAL);
}
/*! \private */
@@ -828,37 +783,44 @@ static VALUE
make_exception(int argc, const VALUE *argv, int isstr)
{
VALUE mesg, exc;
+ int n;
mesg = Qnil;
switch (argc) {
case 0:
- return Qnil;
+ break;
case 1:
exc = argv[0];
- if (isstr &&! NIL_P(exc)) {
+ if (NIL_P(exc))
+ break;
+ if (isstr) {
mesg = rb_check_string_type(exc);
if (!NIL_P(mesg)) {
- return rb_exc_new3(rb_eRuntimeError, mesg);
+ mesg = rb_exc_new3(rb_eRuntimeError, mesg);
+ break;
}
}
+ n = 0;
+ goto exception_call;
case 2:
case 3:
+ exc = argv[0];
+ n = 1;
+ exception_call:
+ mesg = rb_check_funcall(exc, idException, n, argv+1);
+ if (mesg == Qundef) {
+ rb_raise(rb_eTypeError, "exception class/object expected");
+ }
break;
default:
rb_error_arity(argc, 0, 3);
}
- if (NIL_P(mesg)) {
- mesg = rb_check_funcall(argv[0], idException, argc != 1, &argv[1]);
- }
- if (mesg == Qundef) {
- rb_raise(rb_eTypeError, "exception class/object expected");
- }
- if (!rb_obj_is_kind_of(mesg, rb_eException)) {
- rb_raise(rb_eTypeError, "exception object expected");
- }
- if (argc == 3) {
- set_backtrace(mesg, argv[2]);
+ if (argc > 0) {
+ if (!rb_obj_is_kind_of(mesg, rb_eException))
+ rb_raise(rb_eTypeError, "exception object expected");
+ if (argc > 2)
+ set_backtrace(mesg, argv[2]);
}
return mesg;
@@ -950,6 +912,14 @@ rb_keyword_given_p(void)
return rb_vm_cframe_keyword_p(GET_EC()->cfp);
}
+/* -- Remove In 3.0 -- */
+int rb_vm_cframe_empty_keyword_p(const rb_control_frame_t *cfp);
+int
+rb_empty_keyword_given_p(void)
+{
+ return rb_vm_cframe_empty_keyword_p(GET_EC()->cfp);
+}
+
VALUE rb_eThreadError;
/*! Declares that the current method needs a block.
@@ -1000,7 +970,7 @@ rb_rescue2(VALUE (* b_proc) (VALUE), VALUE data1,
/*!
* \copydoc rb_rescue2
- * \param[in] args exception classes, terminated by (VALUE)0.
+ * \param[in] args exception classes, terminated by 0.
*/
VALUE
rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
@@ -1021,7 +991,7 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
else if (result) {
/* escape from r_proc */
if (state == TAG_RETRY) {
- state = TAG_NONE;
+ state = 0;
ec->errinfo = Qnil;
result = Qfalse;
goto retry_entry;
@@ -1033,21 +1003,17 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
if (state == TAG_RAISE) {
int handle = FALSE;
VALUE eclass;
- va_list ap;
- result = Qnil;
- /* reuses args when raised again after retrying in r_proc */
- va_copy(ap, args);
- while ((eclass = va_arg(ap, VALUE)) != 0) {
+ while ((eclass = va_arg(args, VALUE)) != 0) {
if (rb_obj_is_kind_of(ec->errinfo, eclass)) {
handle = TRUE;
break;
}
}
- va_end(ap);
if (handle) {
- state = TAG_NONE;
+ result = Qnil;
+ state = 0;
if (r_proc) {
result = (*r_proc) (data2, ec->errinfo);
}
@@ -1403,7 +1369,7 @@ refinement_superclass(VALUE superclass)
{
if (RB_TYPE_P(superclass, T_MODULE)) {
/* FIXME: Should ancestors of superclass be used here? */
- return rb_include_class_new(RCLASS_ORIGIN(superclass), rb_cBasicObject);
+ return rb_include_class_new(superclass, rb_cBasicObject);
}
else {
return superclass;
@@ -1445,7 +1411,8 @@ rb_using_refinement(rb_cref_t *cref, VALUE klass, VALUE module)
c = iclass = rb_include_class_new(module, superclass);
RB_OBJ_WRITE(c, &RCLASS_REFINED_CLASS(c), klass);
- RCLASS_M_TBL(c) = RCLASS_M_TBL(module);
+ RCLASS_M_TBL(OBJ_WB_UNPROTECT(c)) =
+ RCLASS_M_TBL(OBJ_WB_UNPROTECT(module)); /* TODO: check unprotecting */
module = RCLASS_SUPER(module);
while (module && module != klass) {
@@ -1505,7 +1472,7 @@ rb_using_module(const rb_cref_t *cref, VALUE module)
{
Check_Type(module, T_MODULE);
using_module_recursive(cref, module);
- rb_clear_method_cache_all();
+ rb_clear_method_cache_by_class(rb_cObject);
}
/*! \private */
@@ -1575,6 +1542,9 @@ rb_mod_refine(VALUE module, VALUE klass)
}
ensure_class_or_module(klass);
+ if (RB_TYPE_P(klass, T_MODULE)) {
+ FL_SET(klass, RCLASS_REFINED_BY_ANY);
+ }
CONST_ID(id_refinements, "__refinements__");
refinements = rb_attr_get(module, id_refinements);
if (NIL_P(refinements)) {
@@ -2022,10 +1992,7 @@ f_current_dirname(VALUE _)
* call-seq:
* global_variables -> array
*
- * Returns an array of the names of global variables. This includes
- * special regexp global variables such as <tt>$~</tt> and <tt>$+</tt>,
- * but does not include the numbered regexp global variables (<tt>$1</tt>,
- * <tt>$2</tt>, etc.).
+ * Returns an array of the names of global variables.
*
* global_variables.grep /std/ #=> [:$stdin, :$stdout, :$stderr]
*/
@@ -2087,9 +2054,6 @@ Init_eval(void)
rb_define_virtual_variable("$@", errat_getter, errat_setter);
rb_define_virtual_variable("$!", errinfo_getter, 0);
- rb_gvar_ractor_local("$@");
- rb_gvar_ractor_local("$!");
-
rb_define_global_function("raise", f_raise, -1);
rb_define_global_function("fail", f_raise, -1);
diff --git a/eval_error.c b/eval_error.c
index 841275eed0..847072ab98 100644
--- a/eval_error.c
+++ b/eval_error.c
@@ -233,43 +233,29 @@ print_backtrace(const VALUE eclass, const VALUE errat, const VALUE str, int reve
if (!NIL_P(errat)) {
long i;
long len = RARRAY_LEN(errat);
+ int skip = eclass == rb_eSysStackError;
const int threshold = 1000000000;
int width = (len <= 1) ? INT_MIN : ((int)log10((double)(len > threshold ?
((len - 1) / threshold) :
len - 1)) +
(len < threshold ? 0 : 9) + 1);
- long skip_start = -1, skip_len = 0;
-
- // skip for stackoverflow
- if (eclass == rb_eSysStackError) {
- long trace_head = 9;
- long trace_tail = 4;
- long trace_max = trace_head + trace_tail + 5;
- if (len > trace_max) {
- skip_start = trace_head;
- skip_len = len - trace_max + 5;
- }
- }
-
- // skip for explicit limit
- if (rb_backtrace_length_limit >= 0 && len > rb_backtrace_length_limit + 2) {
- skip_start = rb_backtrace_length_limit + 1;
- skip_len = len - skip_start;
- }
+#define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5)
+#define TRACE_HEAD 8
+#define TRACE_TAIL 5
for (i = 1; i < len; i++) {
- if (i == skip_start) {
- write_warn_str(str, rb_sprintf("\t ... %ld levels...\n", skip_len));
- i += skip_len;
- if (i >= len) break;
- }
VALUE line = RARRAY_AREF(errat, reverse ? len - i : i);
if (RB_TYPE_P(line, T_STRING)) {
VALUE bt = rb_str_new_cstr("\t");
if (reverse) rb_str_catf(bt, "%*ld: ", width, len - i);
write_warn_str(str, rb_str_catf(bt, "from %"PRIsVALUE"\n", line));
}
+ if (skip && i == TRACE_HEAD && len > TRACE_MAX) {
+ write_warn_str(str, rb_sprintf("\t ... %ld levels...\n",
+ len - TRACE_HEAD - TRACE_TAIL));
+ i = len - TRACE_TAIL;
+ }
}
}
}
@@ -323,9 +309,9 @@ rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE highlig
errat = Qnil;
}
eclass = CLASS_OF(errinfo);
- if (NIL_P(reverse)) reverse = Qfalse;
- if (NIL_P(highlight)) {
+ if (NIL_P(reverse) || NIL_P(highlight)) {
VALUE tty = (VALUE)rb_stderr_tty_p();
+ if (NIL_P(reverse)) reverse = tty;
if (NIL_P(highlight)) highlight = tty;
}
if (reverse) {
@@ -362,7 +348,6 @@ rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo)
volatile uint8_t raised_flag = ec->raised_flag;
volatile VALUE errat = Qundef;
volatile VALUE emesg = Qundef;
- volatile bool written = false;
if (NIL_P(errinfo))
return;
@@ -377,10 +362,7 @@ rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo)
emesg = rb_get_message(errinfo);
}
- if (!written) {
- written = true;
- rb_error_write(errinfo, emesg, errat, Qnil, Qnil, Qfalse);
- }
+ rb_error_write(errinfo, emesg, errat, Qnil, Qnil, Qnil);
EC_POP_TAG();
ec->errinfo = errinfo;
@@ -492,10 +474,6 @@ error_handle(rb_execution_context_t *ec, int ex)
rb_ivar_get(errinfo, id_signo) != INT2FIX(SIGSEGV)) {
/* no message when exiting by signal */
}
- else if (rb_obj_is_kind_of(errinfo, rb_eSystemCallError) &&
- FIXNUM_P(rb_attr_get(errinfo, id_signo))) {
- /* no message when exiting by error to be mapped to signal */
- }
else {
rb_ec_error_print(ec, errinfo);
}
diff --git a/eval_intern.h b/eval_intern.h
index 9fa9031189..aa07ce30ed 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -132,8 +132,7 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
struct rb_vm_tag _tag; \
_tag.state = TAG_NONE; \
_tag.tag = Qundef; \
- _tag.prev = _ec->tag; \
- _tag.lock_rec = rb_ec_vm_lock_rec(_ec); \
+ _tag.prev = _ec->tag;
#define EC_POP_TAG() \
_ec->tag = _tag.prev; \
@@ -158,23 +157,12 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
# define VAR_NOCLOBBERED(var) var
#endif
-static inline void
-rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec)
-{
- unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec);
- if (current_lock_rec != recorded_lock_rec) {
- rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec);
- }
-}
-
/* clear ec->tag->state, and return the value */
static inline int
rb_ec_tag_state(const rb_execution_context_t *ec)
{
- struct rb_vm_tag *tag = ec->tag;
- enum ruby_tag_type state = tag->state;
- tag->state = TAG_NONE;
- rb_ec_vm_lock_rec_check(ec, tag->lock_rec);
+ enum ruby_tag_type state = ec->tag->state;
+ ec->tag->state = TAG_NONE;
return state;
}
@@ -293,25 +281,17 @@ rb_cref_t *rb_vm_cref(void);
rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);
VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);
void rb_vm_set_progname(VALUE filename);
+void rb_thread_terminate_all(void);
VALUE rb_vm_cbase(void);
/* vm_backtrace.c */
VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);
VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);
-VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
+VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n);
#ifndef CharNext /* defined as CharNext[AW] on Windows. */
# ifdef HAVE_MBLEN
-# define CharNext(p) rb_char_next(p)
-static inline const char *
-rb_char_next(const char *p)
-{
- if (p) {
- int len = mblen(p, RUBY_MBCHAR_MAXSIZE);
- p += len > 0 ? len : 1;
- }
- return p;
-}
+# define CharNext(p) ((p) + mblen((p), RUBY_MBCHAR_MAXSIZE))
# else
# define CharNext(p) ((p) + 1)
# endif
diff --git a/ext/-test-/RUBY_ALIGNOF/c.c b/ext/-test-/RUBY_ALIGNOF/c.c
deleted file mode 100644
index 7a9f7cb498..0000000000
--- a/ext/-test-/RUBY_ALIGNOF/c.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "ruby.h"
-#include <stddef.h>
-
-struct T {
- char _;
- double t;
-};
-
-RBIMPL_STATIC_ASSERT(RUBY_ALIGNOF, RUBY_ALIGNOF(double) == offsetof(struct T, t));
-
-void
-Init_RUBY_ALIGNOF(void)
-{
- // Windows linker mandates this symbol to exist.
-}
diff --git a/ext/-test-/RUBY_ALIGNOF/cpp.cpp b/ext/-test-/RUBY_ALIGNOF/cpp.cpp
deleted file mode 100644
index ed76d49b9f..0000000000
--- a/ext/-test-/RUBY_ALIGNOF/cpp.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "ruby.h"
-#include <cstddef>
-
-struct T {
- char _;
- double t;
-};
-
-RBIMPL_STATIC_ASSERT(RUBY_ALIGNOF, RUBY_ALIGNOF(double) == offsetof(T, t));
diff --git a/ext/-test-/RUBY_ALIGNOF/depend b/ext/-test-/RUBY_ALIGNOF/depend
deleted file mode 100644
index 1662feda25..0000000000
--- a/ext/-test-/RUBY_ALIGNOF/depend
+++ /dev/null
@@ -1,163 +0,0 @@
-# AUTOGENERATED DEPENDENCIES START
-c.o: $(RUBY_EXTCONF_H)
-c.o: $(arch_hdrdir)/ruby/config.h
-c.o: $(hdrdir)/ruby.h
-c.o: $(hdrdir)/ruby/assert.h
-c.o: $(hdrdir)/ruby/backward.h
-c.o: $(hdrdir)/ruby/backward/2/assume.h
-c.o: $(hdrdir)/ruby/backward/2/attributes.h
-c.o: $(hdrdir)/ruby/backward/2/bool.h
-c.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-c.o: $(hdrdir)/ruby/backward/2/inttypes.h
-c.o: $(hdrdir)/ruby/backward/2/limits.h
-c.o: $(hdrdir)/ruby/backward/2/long_long.h
-c.o: $(hdrdir)/ruby/backward/2/stdalign.h
-c.o: $(hdrdir)/ruby/backward/2/stdarg.h
-c.o: $(hdrdir)/ruby/defines.h
-c.o: $(hdrdir)/ruby/intern.h
-c.o: $(hdrdir)/ruby/internal/anyargs.h
-c.o: $(hdrdir)/ruby/internal/arithmetic.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-c.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-c.o: $(hdrdir)/ruby/internal/assume.h
-c.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-c.o: $(hdrdir)/ruby/internal/attr/artificial.h
-c.o: $(hdrdir)/ruby/internal/attr/cold.h
-c.o: $(hdrdir)/ruby/internal/attr/const.h
-c.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-c.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-c.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-c.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-c.o: $(hdrdir)/ruby/internal/attr/error.h
-c.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-c.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-c.o: $(hdrdir)/ruby/internal/attr/format.h
-c.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-c.o: $(hdrdir)/ruby/internal/attr/noalias.h
-c.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-c.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-c.o: $(hdrdir)/ruby/internal/attr/noinline.h
-c.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-c.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-c.o: $(hdrdir)/ruby/internal/attr/pure.h
-c.o: $(hdrdir)/ruby/internal/attr/restrict.h
-c.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-c.o: $(hdrdir)/ruby/internal/attr/warning.h
-c.o: $(hdrdir)/ruby/internal/attr/weakref.h
-c.o: $(hdrdir)/ruby/internal/cast.h
-c.o: $(hdrdir)/ruby/internal/compiler_is.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-c.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-c.o: $(hdrdir)/ruby/internal/compiler_since.h
-c.o: $(hdrdir)/ruby/internal/config.h
-c.o: $(hdrdir)/ruby/internal/constant_p.h
-c.o: $(hdrdir)/ruby/internal/core.h
-c.o: $(hdrdir)/ruby/internal/core/rarray.h
-c.o: $(hdrdir)/ruby/internal/core/rbasic.h
-c.o: $(hdrdir)/ruby/internal/core/rbignum.h
-c.o: $(hdrdir)/ruby/internal/core/rclass.h
-c.o: $(hdrdir)/ruby/internal/core/rdata.h
-c.o: $(hdrdir)/ruby/internal/core/rfile.h
-c.o: $(hdrdir)/ruby/internal/core/rhash.h
-c.o: $(hdrdir)/ruby/internal/core/robject.h
-c.o: $(hdrdir)/ruby/internal/core/rregexp.h
-c.o: $(hdrdir)/ruby/internal/core/rstring.h
-c.o: $(hdrdir)/ruby/internal/core/rstruct.h
-c.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-c.o: $(hdrdir)/ruby/internal/ctype.h
-c.o: $(hdrdir)/ruby/internal/dllexport.h
-c.o: $(hdrdir)/ruby/internal/dosish.h
-c.o: $(hdrdir)/ruby/internal/error.h
-c.o: $(hdrdir)/ruby/internal/eval.h
-c.o: $(hdrdir)/ruby/internal/event.h
-c.o: $(hdrdir)/ruby/internal/fl_type.h
-c.o: $(hdrdir)/ruby/internal/gc.h
-c.o: $(hdrdir)/ruby/internal/glob.h
-c.o: $(hdrdir)/ruby/internal/globals.h
-c.o: $(hdrdir)/ruby/internal/has/attribute.h
-c.o: $(hdrdir)/ruby/internal/has/builtin.h
-c.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-c.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-c.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-c.o: $(hdrdir)/ruby/internal/has/extension.h
-c.o: $(hdrdir)/ruby/internal/has/feature.h
-c.o: $(hdrdir)/ruby/internal/has/warning.h
-c.o: $(hdrdir)/ruby/internal/intern/array.h
-c.o: $(hdrdir)/ruby/internal/intern/bignum.h
-c.o: $(hdrdir)/ruby/internal/intern/class.h
-c.o: $(hdrdir)/ruby/internal/intern/compar.h
-c.o: $(hdrdir)/ruby/internal/intern/complex.h
-c.o: $(hdrdir)/ruby/internal/intern/cont.h
-c.o: $(hdrdir)/ruby/internal/intern/dir.h
-c.o: $(hdrdir)/ruby/internal/intern/enum.h
-c.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-c.o: $(hdrdir)/ruby/internal/intern/error.h
-c.o: $(hdrdir)/ruby/internal/intern/eval.h
-c.o: $(hdrdir)/ruby/internal/intern/file.h
-c.o: $(hdrdir)/ruby/internal/intern/gc.h
-c.o: $(hdrdir)/ruby/internal/intern/hash.h
-c.o: $(hdrdir)/ruby/internal/intern/io.h
-c.o: $(hdrdir)/ruby/internal/intern/load.h
-c.o: $(hdrdir)/ruby/internal/intern/marshal.h
-c.o: $(hdrdir)/ruby/internal/intern/numeric.h
-c.o: $(hdrdir)/ruby/internal/intern/object.h
-c.o: $(hdrdir)/ruby/internal/intern/parse.h
-c.o: $(hdrdir)/ruby/internal/intern/proc.h
-c.o: $(hdrdir)/ruby/internal/intern/process.h
-c.o: $(hdrdir)/ruby/internal/intern/random.h
-c.o: $(hdrdir)/ruby/internal/intern/range.h
-c.o: $(hdrdir)/ruby/internal/intern/rational.h
-c.o: $(hdrdir)/ruby/internal/intern/re.h
-c.o: $(hdrdir)/ruby/internal/intern/ruby.h
-c.o: $(hdrdir)/ruby/internal/intern/select.h
-c.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-c.o: $(hdrdir)/ruby/internal/intern/signal.h
-c.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-c.o: $(hdrdir)/ruby/internal/intern/string.h
-c.o: $(hdrdir)/ruby/internal/intern/struct.h
-c.o: $(hdrdir)/ruby/internal/intern/thread.h
-c.o: $(hdrdir)/ruby/internal/intern/time.h
-c.o: $(hdrdir)/ruby/internal/intern/variable.h
-c.o: $(hdrdir)/ruby/internal/intern/vm.h
-c.o: $(hdrdir)/ruby/internal/interpreter.h
-c.o: $(hdrdir)/ruby/internal/iterator.h
-c.o: $(hdrdir)/ruby/internal/memory.h
-c.o: $(hdrdir)/ruby/internal/method.h
-c.o: $(hdrdir)/ruby/internal/module.h
-c.o: $(hdrdir)/ruby/internal/newobj.h
-c.o: $(hdrdir)/ruby/internal/rgengc.h
-c.o: $(hdrdir)/ruby/internal/scan_args.h
-c.o: $(hdrdir)/ruby/internal/special_consts.h
-c.o: $(hdrdir)/ruby/internal/static_assert.h
-c.o: $(hdrdir)/ruby/internal/stdalign.h
-c.o: $(hdrdir)/ruby/internal/stdbool.h
-c.o: $(hdrdir)/ruby/internal/symbol.h
-c.o: $(hdrdir)/ruby/internal/token_paste.h
-c.o: $(hdrdir)/ruby/internal/value.h
-c.o: $(hdrdir)/ruby/internal/value_type.h
-c.o: $(hdrdir)/ruby/internal/variable.h
-c.o: $(hdrdir)/ruby/internal/warning_push.h
-c.o: $(hdrdir)/ruby/internal/xmalloc.h
-c.o: $(hdrdir)/ruby/missing.h
-c.o: $(hdrdir)/ruby/ruby.h
-c.o: $(hdrdir)/ruby/st.h
-c.o: $(hdrdir)/ruby/subst.h
-c.o: c.c
-# AUTOGENERATED DEPENDENCIES END
diff --git a/ext/-test-/RUBY_ALIGNOF/extconf.rb b/ext/-test-/RUBY_ALIGNOF/extconf.rb
deleted file mode 100644
index 98a370e987..0000000000
--- a/ext/-test-/RUBY_ALIGNOF/extconf.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-# frozen_string_literal: false
-$objs = %W"c.#$OBJEXT"
-
-$objs << "cpp.#$OBJEXT" if MakeMakefile['C++'].have_devel?
-
-create_makefile("-test-/RUBY_ALIGNOF")
diff --git a/ext/-test-/arith_seq/extract/depend b/ext/-test-/arith_seq/extract/depend
index 46117d1000..bb0719941f 100644
--- a/ext/-test-/arith_seq/extract/depend
+++ b/ext/-test-/arith_seq/extract/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
extract.o: $(RUBY_EXTCONF_H)
extract.o: $(arch_hdrdir)/ruby/config.h
-extract.o: $(hdrdir)/ruby/internal/anyargs.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-extract.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-extract.o: $(hdrdir)/ruby/internal/assume.h
-extract.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-extract.o: $(hdrdir)/ruby/internal/attr/artificial.h
-extract.o: $(hdrdir)/ruby/internal/attr/cold.h
-extract.o: $(hdrdir)/ruby/internal/attr/const.h
-extract.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-extract.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-extract.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-extract.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-extract.o: $(hdrdir)/ruby/internal/attr/error.h
-extract.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-extract.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-extract.o: $(hdrdir)/ruby/internal/attr/format.h
-extract.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-extract.o: $(hdrdir)/ruby/internal/attr/noalias.h
-extract.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-extract.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-extract.o: $(hdrdir)/ruby/internal/attr/noinline.h
-extract.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-extract.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-extract.o: $(hdrdir)/ruby/internal/attr/pure.h
-extract.o: $(hdrdir)/ruby/internal/attr/restrict.h
-extract.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-extract.o: $(hdrdir)/ruby/internal/attr/warning.h
-extract.o: $(hdrdir)/ruby/internal/attr/weakref.h
-extract.o: $(hdrdir)/ruby/internal/cast.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-extract.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-extract.o: $(hdrdir)/ruby/internal/compiler_since.h
-extract.o: $(hdrdir)/ruby/internal/config.h
-extract.o: $(hdrdir)/ruby/internal/constant_p.h
-extract.o: $(hdrdir)/ruby/internal/core.h
-extract.o: $(hdrdir)/ruby/internal/core/rarray.h
-extract.o: $(hdrdir)/ruby/internal/core/rbasic.h
-extract.o: $(hdrdir)/ruby/internal/core/rbignum.h
-extract.o: $(hdrdir)/ruby/internal/core/rclass.h
-extract.o: $(hdrdir)/ruby/internal/core/rdata.h
-extract.o: $(hdrdir)/ruby/internal/core/rfile.h
-extract.o: $(hdrdir)/ruby/internal/core/rhash.h
-extract.o: $(hdrdir)/ruby/internal/core/robject.h
-extract.o: $(hdrdir)/ruby/internal/core/rregexp.h
-extract.o: $(hdrdir)/ruby/internal/core/rstring.h
-extract.o: $(hdrdir)/ruby/internal/core/rstruct.h
-extract.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-extract.o: $(hdrdir)/ruby/internal/ctype.h
-extract.o: $(hdrdir)/ruby/internal/dllexport.h
-extract.o: $(hdrdir)/ruby/internal/dosish.h
-extract.o: $(hdrdir)/ruby/internal/error.h
-extract.o: $(hdrdir)/ruby/internal/eval.h
-extract.o: $(hdrdir)/ruby/internal/event.h
-extract.o: $(hdrdir)/ruby/internal/fl_type.h
-extract.o: $(hdrdir)/ruby/internal/gc.h
-extract.o: $(hdrdir)/ruby/internal/glob.h
-extract.o: $(hdrdir)/ruby/internal/globals.h
-extract.o: $(hdrdir)/ruby/internal/has/attribute.h
-extract.o: $(hdrdir)/ruby/internal/has/builtin.h
-extract.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-extract.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-extract.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-extract.o: $(hdrdir)/ruby/internal/has/extension.h
-extract.o: $(hdrdir)/ruby/internal/has/feature.h
-extract.o: $(hdrdir)/ruby/internal/has/warning.h
-extract.o: $(hdrdir)/ruby/internal/intern/array.h
-extract.o: $(hdrdir)/ruby/internal/intern/bignum.h
-extract.o: $(hdrdir)/ruby/internal/intern/class.h
-extract.o: $(hdrdir)/ruby/internal/intern/compar.h
-extract.o: $(hdrdir)/ruby/internal/intern/complex.h
-extract.o: $(hdrdir)/ruby/internal/intern/cont.h
-extract.o: $(hdrdir)/ruby/internal/intern/dir.h
-extract.o: $(hdrdir)/ruby/internal/intern/enum.h
-extract.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-extract.o: $(hdrdir)/ruby/internal/intern/error.h
-extract.o: $(hdrdir)/ruby/internal/intern/eval.h
-extract.o: $(hdrdir)/ruby/internal/intern/file.h
-extract.o: $(hdrdir)/ruby/internal/intern/gc.h
-extract.o: $(hdrdir)/ruby/internal/intern/hash.h
-extract.o: $(hdrdir)/ruby/internal/intern/io.h
-extract.o: $(hdrdir)/ruby/internal/intern/load.h
-extract.o: $(hdrdir)/ruby/internal/intern/marshal.h
-extract.o: $(hdrdir)/ruby/internal/intern/numeric.h
-extract.o: $(hdrdir)/ruby/internal/intern/object.h
-extract.o: $(hdrdir)/ruby/internal/intern/parse.h
-extract.o: $(hdrdir)/ruby/internal/intern/proc.h
-extract.o: $(hdrdir)/ruby/internal/intern/process.h
-extract.o: $(hdrdir)/ruby/internal/intern/random.h
-extract.o: $(hdrdir)/ruby/internal/intern/range.h
-extract.o: $(hdrdir)/ruby/internal/intern/rational.h
-extract.o: $(hdrdir)/ruby/internal/intern/re.h
-extract.o: $(hdrdir)/ruby/internal/intern/ruby.h
-extract.o: $(hdrdir)/ruby/internal/intern/select.h
-extract.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-extract.o: $(hdrdir)/ruby/internal/intern/signal.h
-extract.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-extract.o: $(hdrdir)/ruby/internal/intern/string.h
-extract.o: $(hdrdir)/ruby/internal/intern/struct.h
-extract.o: $(hdrdir)/ruby/internal/intern/thread.h
-extract.o: $(hdrdir)/ruby/internal/intern/time.h
-extract.o: $(hdrdir)/ruby/internal/intern/variable.h
-extract.o: $(hdrdir)/ruby/internal/intern/vm.h
-extract.o: $(hdrdir)/ruby/internal/interpreter.h
-extract.o: $(hdrdir)/ruby/internal/iterator.h
-extract.o: $(hdrdir)/ruby/internal/memory.h
-extract.o: $(hdrdir)/ruby/internal/method.h
-extract.o: $(hdrdir)/ruby/internal/module.h
-extract.o: $(hdrdir)/ruby/internal/newobj.h
-extract.o: $(hdrdir)/ruby/internal/rgengc.h
-extract.o: $(hdrdir)/ruby/internal/scan_args.h
-extract.o: $(hdrdir)/ruby/internal/special_consts.h
-extract.o: $(hdrdir)/ruby/internal/static_assert.h
-extract.o: $(hdrdir)/ruby/internal/stdalign.h
-extract.o: $(hdrdir)/ruby/internal/stdbool.h
-extract.o: $(hdrdir)/ruby/internal/symbol.h
-extract.o: $(hdrdir)/ruby/internal/token_paste.h
-extract.o: $(hdrdir)/ruby/internal/value.h
-extract.o: $(hdrdir)/ruby/internal/value_type.h
-extract.o: $(hdrdir)/ruby/internal/variable.h
-extract.o: $(hdrdir)/ruby/internal/warning_push.h
-extract.o: $(hdrdir)/ruby/internal/xmalloc.h
extract.o: $(hdrdir)/ruby/assert.h
extract.o: $(hdrdir)/ruby/backward.h
-extract.o: $(hdrdir)/ruby/backward/2/assume.h
-extract.o: $(hdrdir)/ruby/backward/2/attributes.h
-extract.o: $(hdrdir)/ruby/backward/2/bool.h
-extract.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-extract.o: $(hdrdir)/ruby/backward/2/inttypes.h
-extract.o: $(hdrdir)/ruby/backward/2/limits.h
-extract.o: $(hdrdir)/ruby/backward/2/long_long.h
-extract.o: $(hdrdir)/ruby/backward/2/stdalign.h
-extract.o: $(hdrdir)/ruby/backward/2/stdarg.h
extract.o: $(hdrdir)/ruby/defines.h
extract.o: $(hdrdir)/ruby/intern.h
extract.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/array/resize/depend b/ext/-test-/array/resize/depend
index 7c52b21e59..a03cc47d51 100644
--- a/ext/-test-/array/resize/depend
+++ b/ext/-test-/array/resize/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
resize.o: $(RUBY_EXTCONF_H)
resize.o: $(arch_hdrdir)/ruby/config.h
-resize.o: $(hdrdir)/ruby/internal/anyargs.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-resize.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-resize.o: $(hdrdir)/ruby/internal/assume.h
-resize.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-resize.o: $(hdrdir)/ruby/internal/attr/artificial.h
-resize.o: $(hdrdir)/ruby/internal/attr/cold.h
-resize.o: $(hdrdir)/ruby/internal/attr/const.h
-resize.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-resize.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-resize.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-resize.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-resize.o: $(hdrdir)/ruby/internal/attr/error.h
-resize.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-resize.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-resize.o: $(hdrdir)/ruby/internal/attr/format.h
-resize.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-resize.o: $(hdrdir)/ruby/internal/attr/noalias.h
-resize.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-resize.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-resize.o: $(hdrdir)/ruby/internal/attr/noinline.h
-resize.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-resize.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-resize.o: $(hdrdir)/ruby/internal/attr/pure.h
-resize.o: $(hdrdir)/ruby/internal/attr/restrict.h
-resize.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-resize.o: $(hdrdir)/ruby/internal/attr/warning.h
-resize.o: $(hdrdir)/ruby/internal/attr/weakref.h
-resize.o: $(hdrdir)/ruby/internal/cast.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-resize.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-resize.o: $(hdrdir)/ruby/internal/compiler_since.h
-resize.o: $(hdrdir)/ruby/internal/config.h
-resize.o: $(hdrdir)/ruby/internal/constant_p.h
-resize.o: $(hdrdir)/ruby/internal/core.h
-resize.o: $(hdrdir)/ruby/internal/core/rarray.h
-resize.o: $(hdrdir)/ruby/internal/core/rbasic.h
-resize.o: $(hdrdir)/ruby/internal/core/rbignum.h
-resize.o: $(hdrdir)/ruby/internal/core/rclass.h
-resize.o: $(hdrdir)/ruby/internal/core/rdata.h
-resize.o: $(hdrdir)/ruby/internal/core/rfile.h
-resize.o: $(hdrdir)/ruby/internal/core/rhash.h
-resize.o: $(hdrdir)/ruby/internal/core/robject.h
-resize.o: $(hdrdir)/ruby/internal/core/rregexp.h
-resize.o: $(hdrdir)/ruby/internal/core/rstring.h
-resize.o: $(hdrdir)/ruby/internal/core/rstruct.h
-resize.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-resize.o: $(hdrdir)/ruby/internal/ctype.h
-resize.o: $(hdrdir)/ruby/internal/dllexport.h
-resize.o: $(hdrdir)/ruby/internal/dosish.h
-resize.o: $(hdrdir)/ruby/internal/error.h
-resize.o: $(hdrdir)/ruby/internal/eval.h
-resize.o: $(hdrdir)/ruby/internal/event.h
-resize.o: $(hdrdir)/ruby/internal/fl_type.h
-resize.o: $(hdrdir)/ruby/internal/gc.h
-resize.o: $(hdrdir)/ruby/internal/glob.h
-resize.o: $(hdrdir)/ruby/internal/globals.h
-resize.o: $(hdrdir)/ruby/internal/has/attribute.h
-resize.o: $(hdrdir)/ruby/internal/has/builtin.h
-resize.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-resize.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-resize.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-resize.o: $(hdrdir)/ruby/internal/has/extension.h
-resize.o: $(hdrdir)/ruby/internal/has/feature.h
-resize.o: $(hdrdir)/ruby/internal/has/warning.h
-resize.o: $(hdrdir)/ruby/internal/intern/array.h
-resize.o: $(hdrdir)/ruby/internal/intern/bignum.h
-resize.o: $(hdrdir)/ruby/internal/intern/class.h
-resize.o: $(hdrdir)/ruby/internal/intern/compar.h
-resize.o: $(hdrdir)/ruby/internal/intern/complex.h
-resize.o: $(hdrdir)/ruby/internal/intern/cont.h
-resize.o: $(hdrdir)/ruby/internal/intern/dir.h
-resize.o: $(hdrdir)/ruby/internal/intern/enum.h
-resize.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-resize.o: $(hdrdir)/ruby/internal/intern/error.h
-resize.o: $(hdrdir)/ruby/internal/intern/eval.h
-resize.o: $(hdrdir)/ruby/internal/intern/file.h
-resize.o: $(hdrdir)/ruby/internal/intern/gc.h
-resize.o: $(hdrdir)/ruby/internal/intern/hash.h
-resize.o: $(hdrdir)/ruby/internal/intern/io.h
-resize.o: $(hdrdir)/ruby/internal/intern/load.h
-resize.o: $(hdrdir)/ruby/internal/intern/marshal.h
-resize.o: $(hdrdir)/ruby/internal/intern/numeric.h
-resize.o: $(hdrdir)/ruby/internal/intern/object.h
-resize.o: $(hdrdir)/ruby/internal/intern/parse.h
-resize.o: $(hdrdir)/ruby/internal/intern/proc.h
-resize.o: $(hdrdir)/ruby/internal/intern/process.h
-resize.o: $(hdrdir)/ruby/internal/intern/random.h
-resize.o: $(hdrdir)/ruby/internal/intern/range.h
-resize.o: $(hdrdir)/ruby/internal/intern/rational.h
-resize.o: $(hdrdir)/ruby/internal/intern/re.h
-resize.o: $(hdrdir)/ruby/internal/intern/ruby.h
-resize.o: $(hdrdir)/ruby/internal/intern/select.h
-resize.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-resize.o: $(hdrdir)/ruby/internal/intern/signal.h
-resize.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-resize.o: $(hdrdir)/ruby/internal/intern/string.h
-resize.o: $(hdrdir)/ruby/internal/intern/struct.h
-resize.o: $(hdrdir)/ruby/internal/intern/thread.h
-resize.o: $(hdrdir)/ruby/internal/intern/time.h
-resize.o: $(hdrdir)/ruby/internal/intern/variable.h
-resize.o: $(hdrdir)/ruby/internal/intern/vm.h
-resize.o: $(hdrdir)/ruby/internal/interpreter.h
-resize.o: $(hdrdir)/ruby/internal/iterator.h
-resize.o: $(hdrdir)/ruby/internal/memory.h
-resize.o: $(hdrdir)/ruby/internal/method.h
-resize.o: $(hdrdir)/ruby/internal/module.h
-resize.o: $(hdrdir)/ruby/internal/newobj.h
-resize.o: $(hdrdir)/ruby/internal/rgengc.h
-resize.o: $(hdrdir)/ruby/internal/scan_args.h
-resize.o: $(hdrdir)/ruby/internal/special_consts.h
-resize.o: $(hdrdir)/ruby/internal/static_assert.h
-resize.o: $(hdrdir)/ruby/internal/stdalign.h
-resize.o: $(hdrdir)/ruby/internal/stdbool.h
-resize.o: $(hdrdir)/ruby/internal/symbol.h
-resize.o: $(hdrdir)/ruby/internal/token_paste.h
-resize.o: $(hdrdir)/ruby/internal/value.h
-resize.o: $(hdrdir)/ruby/internal/value_type.h
-resize.o: $(hdrdir)/ruby/internal/variable.h
-resize.o: $(hdrdir)/ruby/internal/warning_push.h
-resize.o: $(hdrdir)/ruby/internal/xmalloc.h
resize.o: $(hdrdir)/ruby/assert.h
resize.o: $(hdrdir)/ruby/backward.h
-resize.o: $(hdrdir)/ruby/backward/2/assume.h
-resize.o: $(hdrdir)/ruby/backward/2/attributes.h
-resize.o: $(hdrdir)/ruby/backward/2/bool.h
-resize.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-resize.o: $(hdrdir)/ruby/backward/2/inttypes.h
-resize.o: $(hdrdir)/ruby/backward/2/limits.h
-resize.o: $(hdrdir)/ruby/backward/2/long_long.h
-resize.o: $(hdrdir)/ruby/backward/2/stdalign.h
-resize.o: $(hdrdir)/ruby/backward/2/stdarg.h
resize.o: $(hdrdir)/ruby/defines.h
resize.o: $(hdrdir)/ruby/intern.h
resize.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/bignum/big2str.c b/ext/-test-/bignum/big2str.c
index bc5a933f82..ec4bde2915 100644
--- a/ext/-test-/bignum/big2str.c
+++ b/ext/-test-/bignum/big2str.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
big(VALUE x)
diff --git a/ext/-test-/bignum/bigzero.c b/ext/-test-/bignum/bigzero.c
index e2bfebcd3e..35117db7ae 100644
--- a/ext/-test-/bignum/bigzero.c
+++ b/ext/-test-/bignum/bigzero.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
bug_big_zero(VALUE self, VALUE length)
diff --git a/ext/-test-/bignum/depend b/ext/-test-/bignum/depend
index 7ddf1da1dc..38c9f6114e 100644
--- a/ext/-test-/bignum/depend
+++ b/ext/-test-/bignum/depend
@@ -2,157 +2,8 @@
big2str.o: $(RUBY_EXTCONF_H)
big2str.o: $(arch_hdrdir)/ruby/config.h
big2str.o: $(hdrdir)/ruby.h
-big2str.o: $(hdrdir)/ruby/internal/anyargs.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-big2str.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-big2str.o: $(hdrdir)/ruby/internal/assume.h
-big2str.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-big2str.o: $(hdrdir)/ruby/internal/attr/artificial.h
-big2str.o: $(hdrdir)/ruby/internal/attr/cold.h
-big2str.o: $(hdrdir)/ruby/internal/attr/const.h
-big2str.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-big2str.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-big2str.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-big2str.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-big2str.o: $(hdrdir)/ruby/internal/attr/error.h
-big2str.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-big2str.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-big2str.o: $(hdrdir)/ruby/internal/attr/format.h
-big2str.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-big2str.o: $(hdrdir)/ruby/internal/attr/noalias.h
-big2str.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-big2str.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-big2str.o: $(hdrdir)/ruby/internal/attr/noinline.h
-big2str.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-big2str.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-big2str.o: $(hdrdir)/ruby/internal/attr/pure.h
-big2str.o: $(hdrdir)/ruby/internal/attr/restrict.h
-big2str.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-big2str.o: $(hdrdir)/ruby/internal/attr/warning.h
-big2str.o: $(hdrdir)/ruby/internal/attr/weakref.h
-big2str.o: $(hdrdir)/ruby/internal/cast.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-big2str.o: $(hdrdir)/ruby/internal/compiler_since.h
-big2str.o: $(hdrdir)/ruby/internal/config.h
-big2str.o: $(hdrdir)/ruby/internal/constant_p.h
-big2str.o: $(hdrdir)/ruby/internal/core.h
-big2str.o: $(hdrdir)/ruby/internal/core/rarray.h
-big2str.o: $(hdrdir)/ruby/internal/core/rbasic.h
-big2str.o: $(hdrdir)/ruby/internal/core/rbignum.h
-big2str.o: $(hdrdir)/ruby/internal/core/rclass.h
-big2str.o: $(hdrdir)/ruby/internal/core/rdata.h
-big2str.o: $(hdrdir)/ruby/internal/core/rfile.h
-big2str.o: $(hdrdir)/ruby/internal/core/rhash.h
-big2str.o: $(hdrdir)/ruby/internal/core/robject.h
-big2str.o: $(hdrdir)/ruby/internal/core/rregexp.h
-big2str.o: $(hdrdir)/ruby/internal/core/rstring.h
-big2str.o: $(hdrdir)/ruby/internal/core/rstruct.h
-big2str.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-big2str.o: $(hdrdir)/ruby/internal/ctype.h
-big2str.o: $(hdrdir)/ruby/internal/dllexport.h
-big2str.o: $(hdrdir)/ruby/internal/dosish.h
-big2str.o: $(hdrdir)/ruby/internal/error.h
-big2str.o: $(hdrdir)/ruby/internal/eval.h
-big2str.o: $(hdrdir)/ruby/internal/event.h
-big2str.o: $(hdrdir)/ruby/internal/fl_type.h
-big2str.o: $(hdrdir)/ruby/internal/gc.h
-big2str.o: $(hdrdir)/ruby/internal/glob.h
-big2str.o: $(hdrdir)/ruby/internal/globals.h
-big2str.o: $(hdrdir)/ruby/internal/has/attribute.h
-big2str.o: $(hdrdir)/ruby/internal/has/builtin.h
-big2str.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-big2str.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-big2str.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-big2str.o: $(hdrdir)/ruby/internal/has/extension.h
-big2str.o: $(hdrdir)/ruby/internal/has/feature.h
-big2str.o: $(hdrdir)/ruby/internal/has/warning.h
-big2str.o: $(hdrdir)/ruby/internal/intern/array.h
-big2str.o: $(hdrdir)/ruby/internal/intern/bignum.h
-big2str.o: $(hdrdir)/ruby/internal/intern/class.h
-big2str.o: $(hdrdir)/ruby/internal/intern/compar.h
-big2str.o: $(hdrdir)/ruby/internal/intern/complex.h
-big2str.o: $(hdrdir)/ruby/internal/intern/cont.h
-big2str.o: $(hdrdir)/ruby/internal/intern/dir.h
-big2str.o: $(hdrdir)/ruby/internal/intern/enum.h
-big2str.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-big2str.o: $(hdrdir)/ruby/internal/intern/error.h
-big2str.o: $(hdrdir)/ruby/internal/intern/eval.h
-big2str.o: $(hdrdir)/ruby/internal/intern/file.h
-big2str.o: $(hdrdir)/ruby/internal/intern/gc.h
-big2str.o: $(hdrdir)/ruby/internal/intern/hash.h
-big2str.o: $(hdrdir)/ruby/internal/intern/io.h
-big2str.o: $(hdrdir)/ruby/internal/intern/load.h
-big2str.o: $(hdrdir)/ruby/internal/intern/marshal.h
-big2str.o: $(hdrdir)/ruby/internal/intern/numeric.h
-big2str.o: $(hdrdir)/ruby/internal/intern/object.h
-big2str.o: $(hdrdir)/ruby/internal/intern/parse.h
-big2str.o: $(hdrdir)/ruby/internal/intern/proc.h
-big2str.o: $(hdrdir)/ruby/internal/intern/process.h
-big2str.o: $(hdrdir)/ruby/internal/intern/random.h
-big2str.o: $(hdrdir)/ruby/internal/intern/range.h
-big2str.o: $(hdrdir)/ruby/internal/intern/rational.h
-big2str.o: $(hdrdir)/ruby/internal/intern/re.h
-big2str.o: $(hdrdir)/ruby/internal/intern/ruby.h
-big2str.o: $(hdrdir)/ruby/internal/intern/select.h
-big2str.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-big2str.o: $(hdrdir)/ruby/internal/intern/signal.h
-big2str.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-big2str.o: $(hdrdir)/ruby/internal/intern/string.h
-big2str.o: $(hdrdir)/ruby/internal/intern/struct.h
-big2str.o: $(hdrdir)/ruby/internal/intern/thread.h
-big2str.o: $(hdrdir)/ruby/internal/intern/time.h
-big2str.o: $(hdrdir)/ruby/internal/intern/variable.h
-big2str.o: $(hdrdir)/ruby/internal/intern/vm.h
-big2str.o: $(hdrdir)/ruby/internal/interpreter.h
-big2str.o: $(hdrdir)/ruby/internal/iterator.h
-big2str.o: $(hdrdir)/ruby/internal/memory.h
-big2str.o: $(hdrdir)/ruby/internal/method.h
-big2str.o: $(hdrdir)/ruby/internal/module.h
-big2str.o: $(hdrdir)/ruby/internal/newobj.h
-big2str.o: $(hdrdir)/ruby/internal/rgengc.h
-big2str.o: $(hdrdir)/ruby/internal/scan_args.h
-big2str.o: $(hdrdir)/ruby/internal/special_consts.h
-big2str.o: $(hdrdir)/ruby/internal/static_assert.h
-big2str.o: $(hdrdir)/ruby/internal/stdalign.h
-big2str.o: $(hdrdir)/ruby/internal/stdbool.h
-big2str.o: $(hdrdir)/ruby/internal/symbol.h
-big2str.o: $(hdrdir)/ruby/internal/token_paste.h
-big2str.o: $(hdrdir)/ruby/internal/value.h
-big2str.o: $(hdrdir)/ruby/internal/value_type.h
-big2str.o: $(hdrdir)/ruby/internal/variable.h
-big2str.o: $(hdrdir)/ruby/internal/warning_push.h
-big2str.o: $(hdrdir)/ruby/internal/xmalloc.h
big2str.o: $(hdrdir)/ruby/assert.h
big2str.o: $(hdrdir)/ruby/backward.h
-big2str.o: $(hdrdir)/ruby/backward/2/assume.h
-big2str.o: $(hdrdir)/ruby/backward/2/attributes.h
-big2str.o: $(hdrdir)/ruby/backward/2/bool.h
-big2str.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-big2str.o: $(hdrdir)/ruby/backward/2/inttypes.h
-big2str.o: $(hdrdir)/ruby/backward/2/limits.h
-big2str.o: $(hdrdir)/ruby/backward/2/long_long.h
-big2str.o: $(hdrdir)/ruby/backward/2/stdalign.h
-big2str.o: $(hdrdir)/ruby/backward/2/stdarg.h
big2str.o: $(hdrdir)/ruby/defines.h
big2str.o: $(hdrdir)/ruby/intern.h
big2str.o: $(hdrdir)/ruby/missing.h
@@ -160,162 +11,12 @@ big2str.o: $(hdrdir)/ruby/ruby.h
big2str.o: $(hdrdir)/ruby/st.h
big2str.o: $(hdrdir)/ruby/subst.h
big2str.o: $(top_srcdir)/internal.h
-big2str.o: $(top_srcdir)/internal/bignum.h
big2str.o: big2str.c
bigzero.o: $(RUBY_EXTCONF_H)
bigzero.o: $(arch_hdrdir)/ruby/config.h
bigzero.o: $(hdrdir)/ruby.h
-bigzero.o: $(hdrdir)/ruby/internal/anyargs.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-bigzero.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-bigzero.o: $(hdrdir)/ruby/internal/assume.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/artificial.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/cold.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/const.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/error.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/format.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/noalias.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/noinline.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/pure.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/restrict.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/warning.h
-bigzero.o: $(hdrdir)/ruby/internal/attr/weakref.h
-bigzero.o: $(hdrdir)/ruby/internal/cast.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-bigzero.o: $(hdrdir)/ruby/internal/compiler_since.h
-bigzero.o: $(hdrdir)/ruby/internal/config.h
-bigzero.o: $(hdrdir)/ruby/internal/constant_p.h
-bigzero.o: $(hdrdir)/ruby/internal/core.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rarray.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rbasic.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rbignum.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rclass.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rdata.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rfile.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rhash.h
-bigzero.o: $(hdrdir)/ruby/internal/core/robject.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rregexp.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rstring.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rstruct.h
-bigzero.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-bigzero.o: $(hdrdir)/ruby/internal/ctype.h
-bigzero.o: $(hdrdir)/ruby/internal/dllexport.h
-bigzero.o: $(hdrdir)/ruby/internal/dosish.h
-bigzero.o: $(hdrdir)/ruby/internal/error.h
-bigzero.o: $(hdrdir)/ruby/internal/eval.h
-bigzero.o: $(hdrdir)/ruby/internal/event.h
-bigzero.o: $(hdrdir)/ruby/internal/fl_type.h
-bigzero.o: $(hdrdir)/ruby/internal/gc.h
-bigzero.o: $(hdrdir)/ruby/internal/glob.h
-bigzero.o: $(hdrdir)/ruby/internal/globals.h
-bigzero.o: $(hdrdir)/ruby/internal/has/attribute.h
-bigzero.o: $(hdrdir)/ruby/internal/has/builtin.h
-bigzero.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-bigzero.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-bigzero.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-bigzero.o: $(hdrdir)/ruby/internal/has/extension.h
-bigzero.o: $(hdrdir)/ruby/internal/has/feature.h
-bigzero.o: $(hdrdir)/ruby/internal/has/warning.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/array.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/bignum.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/class.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/compar.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/complex.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/cont.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/dir.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/enum.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/error.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/eval.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/file.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/gc.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/hash.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/io.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/load.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/marshal.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/numeric.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/object.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/parse.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/proc.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/process.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/random.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/range.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/rational.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/re.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/ruby.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/select.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/signal.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/string.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/struct.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/thread.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/time.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/variable.h
-bigzero.o: $(hdrdir)/ruby/internal/intern/vm.h
-bigzero.o: $(hdrdir)/ruby/internal/interpreter.h
-bigzero.o: $(hdrdir)/ruby/internal/iterator.h
-bigzero.o: $(hdrdir)/ruby/internal/memory.h
-bigzero.o: $(hdrdir)/ruby/internal/method.h
-bigzero.o: $(hdrdir)/ruby/internal/module.h
-bigzero.o: $(hdrdir)/ruby/internal/newobj.h
-bigzero.o: $(hdrdir)/ruby/internal/rgengc.h
-bigzero.o: $(hdrdir)/ruby/internal/scan_args.h
-bigzero.o: $(hdrdir)/ruby/internal/special_consts.h
-bigzero.o: $(hdrdir)/ruby/internal/static_assert.h
-bigzero.o: $(hdrdir)/ruby/internal/stdalign.h
-bigzero.o: $(hdrdir)/ruby/internal/stdbool.h
-bigzero.o: $(hdrdir)/ruby/internal/symbol.h
-bigzero.o: $(hdrdir)/ruby/internal/token_paste.h
-bigzero.o: $(hdrdir)/ruby/internal/value.h
-bigzero.o: $(hdrdir)/ruby/internal/value_type.h
-bigzero.o: $(hdrdir)/ruby/internal/variable.h
-bigzero.o: $(hdrdir)/ruby/internal/warning_push.h
-bigzero.o: $(hdrdir)/ruby/internal/xmalloc.h
bigzero.o: $(hdrdir)/ruby/assert.h
bigzero.o: $(hdrdir)/ruby/backward.h
-bigzero.o: $(hdrdir)/ruby/backward/2/assume.h
-bigzero.o: $(hdrdir)/ruby/backward/2/attributes.h
-bigzero.o: $(hdrdir)/ruby/backward/2/bool.h
-bigzero.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-bigzero.o: $(hdrdir)/ruby/backward/2/inttypes.h
-bigzero.o: $(hdrdir)/ruby/backward/2/limits.h
-bigzero.o: $(hdrdir)/ruby/backward/2/long_long.h
-bigzero.o: $(hdrdir)/ruby/backward/2/stdalign.h
-bigzero.o: $(hdrdir)/ruby/backward/2/stdarg.h
bigzero.o: $(hdrdir)/ruby/defines.h
bigzero.o: $(hdrdir)/ruby/intern.h
bigzero.o: $(hdrdir)/ruby/missing.h
@@ -323,162 +24,12 @@ bigzero.o: $(hdrdir)/ruby/ruby.h
bigzero.o: $(hdrdir)/ruby/st.h
bigzero.o: $(hdrdir)/ruby/subst.h
bigzero.o: $(top_srcdir)/internal.h
-bigzero.o: $(top_srcdir)/internal/bignum.h
bigzero.o: bigzero.c
div.o: $(RUBY_EXTCONF_H)
div.o: $(arch_hdrdir)/ruby/config.h
div.o: $(hdrdir)/ruby.h
-div.o: $(hdrdir)/ruby/internal/anyargs.h
-div.o: $(hdrdir)/ruby/internal/arithmetic.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-div.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-div.o: $(hdrdir)/ruby/internal/assume.h
-div.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-div.o: $(hdrdir)/ruby/internal/attr/artificial.h
-div.o: $(hdrdir)/ruby/internal/attr/cold.h
-div.o: $(hdrdir)/ruby/internal/attr/const.h
-div.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-div.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-div.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-div.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-div.o: $(hdrdir)/ruby/internal/attr/error.h
-div.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-div.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-div.o: $(hdrdir)/ruby/internal/attr/format.h
-div.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-div.o: $(hdrdir)/ruby/internal/attr/noalias.h
-div.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-div.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-div.o: $(hdrdir)/ruby/internal/attr/noinline.h
-div.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-div.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-div.o: $(hdrdir)/ruby/internal/attr/pure.h
-div.o: $(hdrdir)/ruby/internal/attr/restrict.h
-div.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-div.o: $(hdrdir)/ruby/internal/attr/warning.h
-div.o: $(hdrdir)/ruby/internal/attr/weakref.h
-div.o: $(hdrdir)/ruby/internal/cast.h
-div.o: $(hdrdir)/ruby/internal/compiler_is.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-div.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-div.o: $(hdrdir)/ruby/internal/compiler_since.h
-div.o: $(hdrdir)/ruby/internal/config.h
-div.o: $(hdrdir)/ruby/internal/constant_p.h
-div.o: $(hdrdir)/ruby/internal/core.h
-div.o: $(hdrdir)/ruby/internal/core/rarray.h
-div.o: $(hdrdir)/ruby/internal/core/rbasic.h
-div.o: $(hdrdir)/ruby/internal/core/rbignum.h
-div.o: $(hdrdir)/ruby/internal/core/rclass.h
-div.o: $(hdrdir)/ruby/internal/core/rdata.h
-div.o: $(hdrdir)/ruby/internal/core/rfile.h
-div.o: $(hdrdir)/ruby/internal/core/rhash.h
-div.o: $(hdrdir)/ruby/internal/core/robject.h
-div.o: $(hdrdir)/ruby/internal/core/rregexp.h
-div.o: $(hdrdir)/ruby/internal/core/rstring.h
-div.o: $(hdrdir)/ruby/internal/core/rstruct.h
-div.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-div.o: $(hdrdir)/ruby/internal/ctype.h
-div.o: $(hdrdir)/ruby/internal/dllexport.h
-div.o: $(hdrdir)/ruby/internal/dosish.h
-div.o: $(hdrdir)/ruby/internal/error.h
-div.o: $(hdrdir)/ruby/internal/eval.h
-div.o: $(hdrdir)/ruby/internal/event.h
-div.o: $(hdrdir)/ruby/internal/fl_type.h
-div.o: $(hdrdir)/ruby/internal/gc.h
-div.o: $(hdrdir)/ruby/internal/glob.h
-div.o: $(hdrdir)/ruby/internal/globals.h
-div.o: $(hdrdir)/ruby/internal/has/attribute.h
-div.o: $(hdrdir)/ruby/internal/has/builtin.h
-div.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-div.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-div.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-div.o: $(hdrdir)/ruby/internal/has/extension.h
-div.o: $(hdrdir)/ruby/internal/has/feature.h
-div.o: $(hdrdir)/ruby/internal/has/warning.h
-div.o: $(hdrdir)/ruby/internal/intern/array.h
-div.o: $(hdrdir)/ruby/internal/intern/bignum.h
-div.o: $(hdrdir)/ruby/internal/intern/class.h
-div.o: $(hdrdir)/ruby/internal/intern/compar.h
-div.o: $(hdrdir)/ruby/internal/intern/complex.h
-div.o: $(hdrdir)/ruby/internal/intern/cont.h
-div.o: $(hdrdir)/ruby/internal/intern/dir.h
-div.o: $(hdrdir)/ruby/internal/intern/enum.h
-div.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-div.o: $(hdrdir)/ruby/internal/intern/error.h
-div.o: $(hdrdir)/ruby/internal/intern/eval.h
-div.o: $(hdrdir)/ruby/internal/intern/file.h
-div.o: $(hdrdir)/ruby/internal/intern/gc.h
-div.o: $(hdrdir)/ruby/internal/intern/hash.h
-div.o: $(hdrdir)/ruby/internal/intern/io.h
-div.o: $(hdrdir)/ruby/internal/intern/load.h
-div.o: $(hdrdir)/ruby/internal/intern/marshal.h
-div.o: $(hdrdir)/ruby/internal/intern/numeric.h
-div.o: $(hdrdir)/ruby/internal/intern/object.h
-div.o: $(hdrdir)/ruby/internal/intern/parse.h
-div.o: $(hdrdir)/ruby/internal/intern/proc.h
-div.o: $(hdrdir)/ruby/internal/intern/process.h
-div.o: $(hdrdir)/ruby/internal/intern/random.h
-div.o: $(hdrdir)/ruby/internal/intern/range.h
-div.o: $(hdrdir)/ruby/internal/intern/rational.h
-div.o: $(hdrdir)/ruby/internal/intern/re.h
-div.o: $(hdrdir)/ruby/internal/intern/ruby.h
-div.o: $(hdrdir)/ruby/internal/intern/select.h
-div.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-div.o: $(hdrdir)/ruby/internal/intern/signal.h
-div.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-div.o: $(hdrdir)/ruby/internal/intern/string.h
-div.o: $(hdrdir)/ruby/internal/intern/struct.h
-div.o: $(hdrdir)/ruby/internal/intern/thread.h
-div.o: $(hdrdir)/ruby/internal/intern/time.h
-div.o: $(hdrdir)/ruby/internal/intern/variable.h
-div.o: $(hdrdir)/ruby/internal/intern/vm.h
-div.o: $(hdrdir)/ruby/internal/interpreter.h
-div.o: $(hdrdir)/ruby/internal/iterator.h
-div.o: $(hdrdir)/ruby/internal/memory.h
-div.o: $(hdrdir)/ruby/internal/method.h
-div.o: $(hdrdir)/ruby/internal/module.h
-div.o: $(hdrdir)/ruby/internal/newobj.h
-div.o: $(hdrdir)/ruby/internal/rgengc.h
-div.o: $(hdrdir)/ruby/internal/scan_args.h
-div.o: $(hdrdir)/ruby/internal/special_consts.h
-div.o: $(hdrdir)/ruby/internal/static_assert.h
-div.o: $(hdrdir)/ruby/internal/stdalign.h
-div.o: $(hdrdir)/ruby/internal/stdbool.h
-div.o: $(hdrdir)/ruby/internal/symbol.h
-div.o: $(hdrdir)/ruby/internal/token_paste.h
-div.o: $(hdrdir)/ruby/internal/value.h
-div.o: $(hdrdir)/ruby/internal/value_type.h
-div.o: $(hdrdir)/ruby/internal/variable.h
-div.o: $(hdrdir)/ruby/internal/warning_push.h
-div.o: $(hdrdir)/ruby/internal/xmalloc.h
div.o: $(hdrdir)/ruby/assert.h
div.o: $(hdrdir)/ruby/backward.h
-div.o: $(hdrdir)/ruby/backward/2/assume.h
-div.o: $(hdrdir)/ruby/backward/2/attributes.h
-div.o: $(hdrdir)/ruby/backward/2/bool.h
-div.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-div.o: $(hdrdir)/ruby/backward/2/inttypes.h
-div.o: $(hdrdir)/ruby/backward/2/limits.h
-div.o: $(hdrdir)/ruby/backward/2/long_long.h
-div.o: $(hdrdir)/ruby/backward/2/stdalign.h
-div.o: $(hdrdir)/ruby/backward/2/stdarg.h
div.o: $(hdrdir)/ruby/defines.h
div.o: $(hdrdir)/ruby/intern.h
div.o: $(hdrdir)/ruby/missing.h
@@ -486,162 +37,12 @@ div.o: $(hdrdir)/ruby/ruby.h
div.o: $(hdrdir)/ruby/st.h
div.o: $(hdrdir)/ruby/subst.h
div.o: $(top_srcdir)/internal.h
-div.o: $(top_srcdir)/internal/bignum.h
div.o: div.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -652,157 +53,8 @@ init.o: init.c
intpack.o: $(RUBY_EXTCONF_H)
intpack.o: $(arch_hdrdir)/ruby/config.h
intpack.o: $(hdrdir)/ruby.h
-intpack.o: $(hdrdir)/ruby/internal/anyargs.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-intpack.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-intpack.o: $(hdrdir)/ruby/internal/assume.h
-intpack.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-intpack.o: $(hdrdir)/ruby/internal/attr/artificial.h
-intpack.o: $(hdrdir)/ruby/internal/attr/cold.h
-intpack.o: $(hdrdir)/ruby/internal/attr/const.h
-intpack.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-intpack.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-intpack.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-intpack.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-intpack.o: $(hdrdir)/ruby/internal/attr/error.h
-intpack.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-intpack.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-intpack.o: $(hdrdir)/ruby/internal/attr/format.h
-intpack.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-intpack.o: $(hdrdir)/ruby/internal/attr/noalias.h
-intpack.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-intpack.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-intpack.o: $(hdrdir)/ruby/internal/attr/noinline.h
-intpack.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-intpack.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-intpack.o: $(hdrdir)/ruby/internal/attr/pure.h
-intpack.o: $(hdrdir)/ruby/internal/attr/restrict.h
-intpack.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-intpack.o: $(hdrdir)/ruby/internal/attr/warning.h
-intpack.o: $(hdrdir)/ruby/internal/attr/weakref.h
-intpack.o: $(hdrdir)/ruby/internal/cast.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-intpack.o: $(hdrdir)/ruby/internal/compiler_since.h
-intpack.o: $(hdrdir)/ruby/internal/config.h
-intpack.o: $(hdrdir)/ruby/internal/constant_p.h
-intpack.o: $(hdrdir)/ruby/internal/core.h
-intpack.o: $(hdrdir)/ruby/internal/core/rarray.h
-intpack.o: $(hdrdir)/ruby/internal/core/rbasic.h
-intpack.o: $(hdrdir)/ruby/internal/core/rbignum.h
-intpack.o: $(hdrdir)/ruby/internal/core/rclass.h
-intpack.o: $(hdrdir)/ruby/internal/core/rdata.h
-intpack.o: $(hdrdir)/ruby/internal/core/rfile.h
-intpack.o: $(hdrdir)/ruby/internal/core/rhash.h
-intpack.o: $(hdrdir)/ruby/internal/core/robject.h
-intpack.o: $(hdrdir)/ruby/internal/core/rregexp.h
-intpack.o: $(hdrdir)/ruby/internal/core/rstring.h
-intpack.o: $(hdrdir)/ruby/internal/core/rstruct.h
-intpack.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-intpack.o: $(hdrdir)/ruby/internal/ctype.h
-intpack.o: $(hdrdir)/ruby/internal/dllexport.h
-intpack.o: $(hdrdir)/ruby/internal/dosish.h
-intpack.o: $(hdrdir)/ruby/internal/error.h
-intpack.o: $(hdrdir)/ruby/internal/eval.h
-intpack.o: $(hdrdir)/ruby/internal/event.h
-intpack.o: $(hdrdir)/ruby/internal/fl_type.h
-intpack.o: $(hdrdir)/ruby/internal/gc.h
-intpack.o: $(hdrdir)/ruby/internal/glob.h
-intpack.o: $(hdrdir)/ruby/internal/globals.h
-intpack.o: $(hdrdir)/ruby/internal/has/attribute.h
-intpack.o: $(hdrdir)/ruby/internal/has/builtin.h
-intpack.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-intpack.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-intpack.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-intpack.o: $(hdrdir)/ruby/internal/has/extension.h
-intpack.o: $(hdrdir)/ruby/internal/has/feature.h
-intpack.o: $(hdrdir)/ruby/internal/has/warning.h
-intpack.o: $(hdrdir)/ruby/internal/intern/array.h
-intpack.o: $(hdrdir)/ruby/internal/intern/bignum.h
-intpack.o: $(hdrdir)/ruby/internal/intern/class.h
-intpack.o: $(hdrdir)/ruby/internal/intern/compar.h
-intpack.o: $(hdrdir)/ruby/internal/intern/complex.h
-intpack.o: $(hdrdir)/ruby/internal/intern/cont.h
-intpack.o: $(hdrdir)/ruby/internal/intern/dir.h
-intpack.o: $(hdrdir)/ruby/internal/intern/enum.h
-intpack.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-intpack.o: $(hdrdir)/ruby/internal/intern/error.h
-intpack.o: $(hdrdir)/ruby/internal/intern/eval.h
-intpack.o: $(hdrdir)/ruby/internal/intern/file.h
-intpack.o: $(hdrdir)/ruby/internal/intern/gc.h
-intpack.o: $(hdrdir)/ruby/internal/intern/hash.h
-intpack.o: $(hdrdir)/ruby/internal/intern/io.h
-intpack.o: $(hdrdir)/ruby/internal/intern/load.h
-intpack.o: $(hdrdir)/ruby/internal/intern/marshal.h
-intpack.o: $(hdrdir)/ruby/internal/intern/numeric.h
-intpack.o: $(hdrdir)/ruby/internal/intern/object.h
-intpack.o: $(hdrdir)/ruby/internal/intern/parse.h
-intpack.o: $(hdrdir)/ruby/internal/intern/proc.h
-intpack.o: $(hdrdir)/ruby/internal/intern/process.h
-intpack.o: $(hdrdir)/ruby/internal/intern/random.h
-intpack.o: $(hdrdir)/ruby/internal/intern/range.h
-intpack.o: $(hdrdir)/ruby/internal/intern/rational.h
-intpack.o: $(hdrdir)/ruby/internal/intern/re.h
-intpack.o: $(hdrdir)/ruby/internal/intern/ruby.h
-intpack.o: $(hdrdir)/ruby/internal/intern/select.h
-intpack.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-intpack.o: $(hdrdir)/ruby/internal/intern/signal.h
-intpack.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-intpack.o: $(hdrdir)/ruby/internal/intern/string.h
-intpack.o: $(hdrdir)/ruby/internal/intern/struct.h
-intpack.o: $(hdrdir)/ruby/internal/intern/thread.h
-intpack.o: $(hdrdir)/ruby/internal/intern/time.h
-intpack.o: $(hdrdir)/ruby/internal/intern/variable.h
-intpack.o: $(hdrdir)/ruby/internal/intern/vm.h
-intpack.o: $(hdrdir)/ruby/internal/interpreter.h
-intpack.o: $(hdrdir)/ruby/internal/iterator.h
-intpack.o: $(hdrdir)/ruby/internal/memory.h
-intpack.o: $(hdrdir)/ruby/internal/method.h
-intpack.o: $(hdrdir)/ruby/internal/module.h
-intpack.o: $(hdrdir)/ruby/internal/newobj.h
-intpack.o: $(hdrdir)/ruby/internal/rgengc.h
-intpack.o: $(hdrdir)/ruby/internal/scan_args.h
-intpack.o: $(hdrdir)/ruby/internal/special_consts.h
-intpack.o: $(hdrdir)/ruby/internal/static_assert.h
-intpack.o: $(hdrdir)/ruby/internal/stdalign.h
-intpack.o: $(hdrdir)/ruby/internal/stdbool.h
-intpack.o: $(hdrdir)/ruby/internal/symbol.h
-intpack.o: $(hdrdir)/ruby/internal/token_paste.h
-intpack.o: $(hdrdir)/ruby/internal/value.h
-intpack.o: $(hdrdir)/ruby/internal/value_type.h
-intpack.o: $(hdrdir)/ruby/internal/variable.h
-intpack.o: $(hdrdir)/ruby/internal/warning_push.h
-intpack.o: $(hdrdir)/ruby/internal/xmalloc.h
intpack.o: $(hdrdir)/ruby/assert.h
intpack.o: $(hdrdir)/ruby/backward.h
-intpack.o: $(hdrdir)/ruby/backward/2/assume.h
-intpack.o: $(hdrdir)/ruby/backward/2/attributes.h
-intpack.o: $(hdrdir)/ruby/backward/2/bool.h
-intpack.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-intpack.o: $(hdrdir)/ruby/backward/2/inttypes.h
-intpack.o: $(hdrdir)/ruby/backward/2/limits.h
-intpack.o: $(hdrdir)/ruby/backward/2/long_long.h
-intpack.o: $(hdrdir)/ruby/backward/2/stdalign.h
-intpack.o: $(hdrdir)/ruby/backward/2/stdarg.h
intpack.o: $(hdrdir)/ruby/defines.h
intpack.o: $(hdrdir)/ruby/intern.h
intpack.o: $(hdrdir)/ruby/missing.h
@@ -810,162 +62,12 @@ intpack.o: $(hdrdir)/ruby/ruby.h
intpack.o: $(hdrdir)/ruby/st.h
intpack.o: $(hdrdir)/ruby/subst.h
intpack.o: $(top_srcdir)/internal.h
-intpack.o: $(top_srcdir)/internal/bignum.h
intpack.o: intpack.c
mul.o: $(RUBY_EXTCONF_H)
mul.o: $(arch_hdrdir)/ruby/config.h
mul.o: $(hdrdir)/ruby.h
-mul.o: $(hdrdir)/ruby/internal/anyargs.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-mul.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-mul.o: $(hdrdir)/ruby/internal/assume.h
-mul.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-mul.o: $(hdrdir)/ruby/internal/attr/artificial.h
-mul.o: $(hdrdir)/ruby/internal/attr/cold.h
-mul.o: $(hdrdir)/ruby/internal/attr/const.h
-mul.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-mul.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-mul.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-mul.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-mul.o: $(hdrdir)/ruby/internal/attr/error.h
-mul.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-mul.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-mul.o: $(hdrdir)/ruby/internal/attr/format.h
-mul.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-mul.o: $(hdrdir)/ruby/internal/attr/noalias.h
-mul.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-mul.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-mul.o: $(hdrdir)/ruby/internal/attr/noinline.h
-mul.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-mul.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-mul.o: $(hdrdir)/ruby/internal/attr/pure.h
-mul.o: $(hdrdir)/ruby/internal/attr/restrict.h
-mul.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-mul.o: $(hdrdir)/ruby/internal/attr/warning.h
-mul.o: $(hdrdir)/ruby/internal/attr/weakref.h
-mul.o: $(hdrdir)/ruby/internal/cast.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-mul.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-mul.o: $(hdrdir)/ruby/internal/compiler_since.h
-mul.o: $(hdrdir)/ruby/internal/config.h
-mul.o: $(hdrdir)/ruby/internal/constant_p.h
-mul.o: $(hdrdir)/ruby/internal/core.h
-mul.o: $(hdrdir)/ruby/internal/core/rarray.h
-mul.o: $(hdrdir)/ruby/internal/core/rbasic.h
-mul.o: $(hdrdir)/ruby/internal/core/rbignum.h
-mul.o: $(hdrdir)/ruby/internal/core/rclass.h
-mul.o: $(hdrdir)/ruby/internal/core/rdata.h
-mul.o: $(hdrdir)/ruby/internal/core/rfile.h
-mul.o: $(hdrdir)/ruby/internal/core/rhash.h
-mul.o: $(hdrdir)/ruby/internal/core/robject.h
-mul.o: $(hdrdir)/ruby/internal/core/rregexp.h
-mul.o: $(hdrdir)/ruby/internal/core/rstring.h
-mul.o: $(hdrdir)/ruby/internal/core/rstruct.h
-mul.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-mul.o: $(hdrdir)/ruby/internal/ctype.h
-mul.o: $(hdrdir)/ruby/internal/dllexport.h
-mul.o: $(hdrdir)/ruby/internal/dosish.h
-mul.o: $(hdrdir)/ruby/internal/error.h
-mul.o: $(hdrdir)/ruby/internal/eval.h
-mul.o: $(hdrdir)/ruby/internal/event.h
-mul.o: $(hdrdir)/ruby/internal/fl_type.h
-mul.o: $(hdrdir)/ruby/internal/gc.h
-mul.o: $(hdrdir)/ruby/internal/glob.h
-mul.o: $(hdrdir)/ruby/internal/globals.h
-mul.o: $(hdrdir)/ruby/internal/has/attribute.h
-mul.o: $(hdrdir)/ruby/internal/has/builtin.h
-mul.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-mul.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-mul.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-mul.o: $(hdrdir)/ruby/internal/has/extension.h
-mul.o: $(hdrdir)/ruby/internal/has/feature.h
-mul.o: $(hdrdir)/ruby/internal/has/warning.h
-mul.o: $(hdrdir)/ruby/internal/intern/array.h
-mul.o: $(hdrdir)/ruby/internal/intern/bignum.h
-mul.o: $(hdrdir)/ruby/internal/intern/class.h
-mul.o: $(hdrdir)/ruby/internal/intern/compar.h
-mul.o: $(hdrdir)/ruby/internal/intern/complex.h
-mul.o: $(hdrdir)/ruby/internal/intern/cont.h
-mul.o: $(hdrdir)/ruby/internal/intern/dir.h
-mul.o: $(hdrdir)/ruby/internal/intern/enum.h
-mul.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-mul.o: $(hdrdir)/ruby/internal/intern/error.h
-mul.o: $(hdrdir)/ruby/internal/intern/eval.h
-mul.o: $(hdrdir)/ruby/internal/intern/file.h
-mul.o: $(hdrdir)/ruby/internal/intern/gc.h
-mul.o: $(hdrdir)/ruby/internal/intern/hash.h
-mul.o: $(hdrdir)/ruby/internal/intern/io.h
-mul.o: $(hdrdir)/ruby/internal/intern/load.h
-mul.o: $(hdrdir)/ruby/internal/intern/marshal.h
-mul.o: $(hdrdir)/ruby/internal/intern/numeric.h
-mul.o: $(hdrdir)/ruby/internal/intern/object.h
-mul.o: $(hdrdir)/ruby/internal/intern/parse.h
-mul.o: $(hdrdir)/ruby/internal/intern/proc.h
-mul.o: $(hdrdir)/ruby/internal/intern/process.h
-mul.o: $(hdrdir)/ruby/internal/intern/random.h
-mul.o: $(hdrdir)/ruby/internal/intern/range.h
-mul.o: $(hdrdir)/ruby/internal/intern/rational.h
-mul.o: $(hdrdir)/ruby/internal/intern/re.h
-mul.o: $(hdrdir)/ruby/internal/intern/ruby.h
-mul.o: $(hdrdir)/ruby/internal/intern/select.h
-mul.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-mul.o: $(hdrdir)/ruby/internal/intern/signal.h
-mul.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-mul.o: $(hdrdir)/ruby/internal/intern/string.h
-mul.o: $(hdrdir)/ruby/internal/intern/struct.h
-mul.o: $(hdrdir)/ruby/internal/intern/thread.h
-mul.o: $(hdrdir)/ruby/internal/intern/time.h
-mul.o: $(hdrdir)/ruby/internal/intern/variable.h
-mul.o: $(hdrdir)/ruby/internal/intern/vm.h
-mul.o: $(hdrdir)/ruby/internal/interpreter.h
-mul.o: $(hdrdir)/ruby/internal/iterator.h
-mul.o: $(hdrdir)/ruby/internal/memory.h
-mul.o: $(hdrdir)/ruby/internal/method.h
-mul.o: $(hdrdir)/ruby/internal/module.h
-mul.o: $(hdrdir)/ruby/internal/newobj.h
-mul.o: $(hdrdir)/ruby/internal/rgengc.h
-mul.o: $(hdrdir)/ruby/internal/scan_args.h
-mul.o: $(hdrdir)/ruby/internal/special_consts.h
-mul.o: $(hdrdir)/ruby/internal/static_assert.h
-mul.o: $(hdrdir)/ruby/internal/stdalign.h
-mul.o: $(hdrdir)/ruby/internal/stdbool.h
-mul.o: $(hdrdir)/ruby/internal/symbol.h
-mul.o: $(hdrdir)/ruby/internal/token_paste.h
-mul.o: $(hdrdir)/ruby/internal/value.h
-mul.o: $(hdrdir)/ruby/internal/value_type.h
-mul.o: $(hdrdir)/ruby/internal/variable.h
-mul.o: $(hdrdir)/ruby/internal/warning_push.h
-mul.o: $(hdrdir)/ruby/internal/xmalloc.h
mul.o: $(hdrdir)/ruby/assert.h
mul.o: $(hdrdir)/ruby/backward.h
-mul.o: $(hdrdir)/ruby/backward/2/assume.h
-mul.o: $(hdrdir)/ruby/backward/2/attributes.h
-mul.o: $(hdrdir)/ruby/backward/2/bool.h
-mul.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-mul.o: $(hdrdir)/ruby/backward/2/inttypes.h
-mul.o: $(hdrdir)/ruby/backward/2/limits.h
-mul.o: $(hdrdir)/ruby/backward/2/long_long.h
-mul.o: $(hdrdir)/ruby/backward/2/stdalign.h
-mul.o: $(hdrdir)/ruby/backward/2/stdarg.h
mul.o: $(hdrdir)/ruby/defines.h
mul.o: $(hdrdir)/ruby/intern.h
mul.o: $(hdrdir)/ruby/missing.h
@@ -973,162 +75,12 @@ mul.o: $(hdrdir)/ruby/ruby.h
mul.o: $(hdrdir)/ruby/st.h
mul.o: $(hdrdir)/ruby/subst.h
mul.o: $(top_srcdir)/internal.h
-mul.o: $(top_srcdir)/internal/bignum.h
mul.o: mul.c
str2big.o: $(RUBY_EXTCONF_H)
str2big.o: $(arch_hdrdir)/ruby/config.h
str2big.o: $(hdrdir)/ruby.h
-str2big.o: $(hdrdir)/ruby/internal/anyargs.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-str2big.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-str2big.o: $(hdrdir)/ruby/internal/assume.h
-str2big.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-str2big.o: $(hdrdir)/ruby/internal/attr/artificial.h
-str2big.o: $(hdrdir)/ruby/internal/attr/cold.h
-str2big.o: $(hdrdir)/ruby/internal/attr/const.h
-str2big.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-str2big.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-str2big.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-str2big.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-str2big.o: $(hdrdir)/ruby/internal/attr/error.h
-str2big.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-str2big.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-str2big.o: $(hdrdir)/ruby/internal/attr/format.h
-str2big.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-str2big.o: $(hdrdir)/ruby/internal/attr/noalias.h
-str2big.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-str2big.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-str2big.o: $(hdrdir)/ruby/internal/attr/noinline.h
-str2big.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-str2big.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-str2big.o: $(hdrdir)/ruby/internal/attr/pure.h
-str2big.o: $(hdrdir)/ruby/internal/attr/restrict.h
-str2big.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-str2big.o: $(hdrdir)/ruby/internal/attr/warning.h
-str2big.o: $(hdrdir)/ruby/internal/attr/weakref.h
-str2big.o: $(hdrdir)/ruby/internal/cast.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-str2big.o: $(hdrdir)/ruby/internal/compiler_since.h
-str2big.o: $(hdrdir)/ruby/internal/config.h
-str2big.o: $(hdrdir)/ruby/internal/constant_p.h
-str2big.o: $(hdrdir)/ruby/internal/core.h
-str2big.o: $(hdrdir)/ruby/internal/core/rarray.h
-str2big.o: $(hdrdir)/ruby/internal/core/rbasic.h
-str2big.o: $(hdrdir)/ruby/internal/core/rbignum.h
-str2big.o: $(hdrdir)/ruby/internal/core/rclass.h
-str2big.o: $(hdrdir)/ruby/internal/core/rdata.h
-str2big.o: $(hdrdir)/ruby/internal/core/rfile.h
-str2big.o: $(hdrdir)/ruby/internal/core/rhash.h
-str2big.o: $(hdrdir)/ruby/internal/core/robject.h
-str2big.o: $(hdrdir)/ruby/internal/core/rregexp.h
-str2big.o: $(hdrdir)/ruby/internal/core/rstring.h
-str2big.o: $(hdrdir)/ruby/internal/core/rstruct.h
-str2big.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-str2big.o: $(hdrdir)/ruby/internal/ctype.h
-str2big.o: $(hdrdir)/ruby/internal/dllexport.h
-str2big.o: $(hdrdir)/ruby/internal/dosish.h
-str2big.o: $(hdrdir)/ruby/internal/error.h
-str2big.o: $(hdrdir)/ruby/internal/eval.h
-str2big.o: $(hdrdir)/ruby/internal/event.h
-str2big.o: $(hdrdir)/ruby/internal/fl_type.h
-str2big.o: $(hdrdir)/ruby/internal/gc.h
-str2big.o: $(hdrdir)/ruby/internal/glob.h
-str2big.o: $(hdrdir)/ruby/internal/globals.h
-str2big.o: $(hdrdir)/ruby/internal/has/attribute.h
-str2big.o: $(hdrdir)/ruby/internal/has/builtin.h
-str2big.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-str2big.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-str2big.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-str2big.o: $(hdrdir)/ruby/internal/has/extension.h
-str2big.o: $(hdrdir)/ruby/internal/has/feature.h
-str2big.o: $(hdrdir)/ruby/internal/has/warning.h
-str2big.o: $(hdrdir)/ruby/internal/intern/array.h
-str2big.o: $(hdrdir)/ruby/internal/intern/bignum.h
-str2big.o: $(hdrdir)/ruby/internal/intern/class.h
-str2big.o: $(hdrdir)/ruby/internal/intern/compar.h
-str2big.o: $(hdrdir)/ruby/internal/intern/complex.h
-str2big.o: $(hdrdir)/ruby/internal/intern/cont.h
-str2big.o: $(hdrdir)/ruby/internal/intern/dir.h
-str2big.o: $(hdrdir)/ruby/internal/intern/enum.h
-str2big.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-str2big.o: $(hdrdir)/ruby/internal/intern/error.h
-str2big.o: $(hdrdir)/ruby/internal/intern/eval.h
-str2big.o: $(hdrdir)/ruby/internal/intern/file.h
-str2big.o: $(hdrdir)/ruby/internal/intern/gc.h
-str2big.o: $(hdrdir)/ruby/internal/intern/hash.h
-str2big.o: $(hdrdir)/ruby/internal/intern/io.h
-str2big.o: $(hdrdir)/ruby/internal/intern/load.h
-str2big.o: $(hdrdir)/ruby/internal/intern/marshal.h
-str2big.o: $(hdrdir)/ruby/internal/intern/numeric.h
-str2big.o: $(hdrdir)/ruby/internal/intern/object.h
-str2big.o: $(hdrdir)/ruby/internal/intern/parse.h
-str2big.o: $(hdrdir)/ruby/internal/intern/proc.h
-str2big.o: $(hdrdir)/ruby/internal/intern/process.h
-str2big.o: $(hdrdir)/ruby/internal/intern/random.h
-str2big.o: $(hdrdir)/ruby/internal/intern/range.h
-str2big.o: $(hdrdir)/ruby/internal/intern/rational.h
-str2big.o: $(hdrdir)/ruby/internal/intern/re.h
-str2big.o: $(hdrdir)/ruby/internal/intern/ruby.h
-str2big.o: $(hdrdir)/ruby/internal/intern/select.h
-str2big.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-str2big.o: $(hdrdir)/ruby/internal/intern/signal.h
-str2big.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-str2big.o: $(hdrdir)/ruby/internal/intern/string.h
-str2big.o: $(hdrdir)/ruby/internal/intern/struct.h
-str2big.o: $(hdrdir)/ruby/internal/intern/thread.h
-str2big.o: $(hdrdir)/ruby/internal/intern/time.h
-str2big.o: $(hdrdir)/ruby/internal/intern/variable.h
-str2big.o: $(hdrdir)/ruby/internal/intern/vm.h
-str2big.o: $(hdrdir)/ruby/internal/interpreter.h
-str2big.o: $(hdrdir)/ruby/internal/iterator.h
-str2big.o: $(hdrdir)/ruby/internal/memory.h
-str2big.o: $(hdrdir)/ruby/internal/method.h
-str2big.o: $(hdrdir)/ruby/internal/module.h
-str2big.o: $(hdrdir)/ruby/internal/newobj.h
-str2big.o: $(hdrdir)/ruby/internal/rgengc.h
-str2big.o: $(hdrdir)/ruby/internal/scan_args.h
-str2big.o: $(hdrdir)/ruby/internal/special_consts.h
-str2big.o: $(hdrdir)/ruby/internal/static_assert.h
-str2big.o: $(hdrdir)/ruby/internal/stdalign.h
-str2big.o: $(hdrdir)/ruby/internal/stdbool.h
-str2big.o: $(hdrdir)/ruby/internal/symbol.h
-str2big.o: $(hdrdir)/ruby/internal/token_paste.h
-str2big.o: $(hdrdir)/ruby/internal/value.h
-str2big.o: $(hdrdir)/ruby/internal/value_type.h
-str2big.o: $(hdrdir)/ruby/internal/variable.h
-str2big.o: $(hdrdir)/ruby/internal/warning_push.h
-str2big.o: $(hdrdir)/ruby/internal/xmalloc.h
str2big.o: $(hdrdir)/ruby/assert.h
str2big.o: $(hdrdir)/ruby/backward.h
-str2big.o: $(hdrdir)/ruby/backward/2/assume.h
-str2big.o: $(hdrdir)/ruby/backward/2/attributes.h
-str2big.o: $(hdrdir)/ruby/backward/2/bool.h
-str2big.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-str2big.o: $(hdrdir)/ruby/backward/2/inttypes.h
-str2big.o: $(hdrdir)/ruby/backward/2/limits.h
-str2big.o: $(hdrdir)/ruby/backward/2/long_long.h
-str2big.o: $(hdrdir)/ruby/backward/2/stdalign.h
-str2big.o: $(hdrdir)/ruby/backward/2/stdarg.h
str2big.o: $(hdrdir)/ruby/defines.h
str2big.o: $(hdrdir)/ruby/intern.h
str2big.o: $(hdrdir)/ruby/missing.h
@@ -1136,6 +88,5 @@ str2big.o: $(hdrdir)/ruby/ruby.h
str2big.o: $(hdrdir)/ruby/st.h
str2big.o: $(hdrdir)/ruby/subst.h
str2big.o: $(top_srcdir)/internal.h
-str2big.o: $(top_srcdir)/internal/bignum.h
str2big.o: str2big.c
# AUTOGENERATED DEPENDENCIES END
diff --git a/ext/-test-/bignum/div.c b/ext/-test-/bignum/div.c
index 2be0d2d62a..a1db21dc30 100644
--- a/ext/-test-/bignum/div.c
+++ b/ext/-test-/bignum/div.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
big(VALUE x)
diff --git a/ext/-test-/bignum/intpack.c b/ext/-test-/bignum/intpack.c
index 698362f96f..2d19442cf2 100644
--- a/ext/-test-/bignum/intpack.c
+++ b/ext/-test-/bignum/intpack.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
rb_integer_pack_raw_m(VALUE val, VALUE buf, VALUE numwords_arg, VALUE wordsize_arg, VALUE nails, VALUE flags)
diff --git a/ext/-test-/bignum/mul.c b/ext/-test-/bignum/mul.c
index 1b6eb911bd..b922f34437 100644
--- a/ext/-test-/bignum/mul.c
+++ b/ext/-test-/bignum/mul.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
big(VALUE x)
diff --git a/ext/-test-/bignum/str2big.c b/ext/-test-/bignum/str2big.c
index 7dd2da9a07..bc79ef0329 100644
--- a/ext/-test-/bignum/str2big.c
+++ b/ext/-test-/bignum/str2big.c
@@ -1,4 +1,4 @@
-#include "internal/bignum.h"
+#include "internal.h"
static VALUE
str2big_poweroftwo(VALUE str, VALUE vbase, VALUE badcheck)
diff --git a/ext/-test-/bug-14834/depend b/ext/-test-/bug-14834/depend
index dce5a8e5c5..5206f995be 100644
--- a/ext/-test-/bug-14834/depend
+++ b/ext/-test-/bug-14834/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
bug-14384.o: $(RUBY_EXTCONF_H)
bug-14384.o: $(arch_hdrdir)/ruby/config.h
-bug-14384.o: $(hdrdir)/ruby/internal/anyargs.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-bug-14384.o: $(hdrdir)/ruby/internal/assume.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/artificial.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/cold.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/const.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/error.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/format.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/noalias.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/noinline.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/pure.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/restrict.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/warning.h
-bug-14384.o: $(hdrdir)/ruby/internal/attr/weakref.h
-bug-14384.o: $(hdrdir)/ruby/internal/cast.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-bug-14384.o: $(hdrdir)/ruby/internal/compiler_since.h
-bug-14384.o: $(hdrdir)/ruby/internal/config.h
-bug-14384.o: $(hdrdir)/ruby/internal/constant_p.h
-bug-14384.o: $(hdrdir)/ruby/internal/core.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rarray.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rbasic.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rbignum.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rclass.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rdata.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rfile.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rhash.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/robject.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rregexp.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rstring.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rstruct.h
-bug-14384.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-bug-14384.o: $(hdrdir)/ruby/internal/ctype.h
-bug-14384.o: $(hdrdir)/ruby/internal/dllexport.h
-bug-14384.o: $(hdrdir)/ruby/internal/dosish.h
-bug-14384.o: $(hdrdir)/ruby/internal/error.h
-bug-14384.o: $(hdrdir)/ruby/internal/eval.h
-bug-14384.o: $(hdrdir)/ruby/internal/event.h
-bug-14384.o: $(hdrdir)/ruby/internal/fl_type.h
-bug-14384.o: $(hdrdir)/ruby/internal/gc.h
-bug-14384.o: $(hdrdir)/ruby/internal/glob.h
-bug-14384.o: $(hdrdir)/ruby/internal/globals.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/attribute.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/builtin.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/extension.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/feature.h
-bug-14384.o: $(hdrdir)/ruby/internal/has/warning.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/array.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/bignum.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/class.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/compar.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/complex.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/cont.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/dir.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/enum.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/error.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/eval.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/file.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/gc.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/hash.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/io.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/load.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/marshal.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/numeric.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/object.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/parse.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/proc.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/process.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/random.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/range.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/rational.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/re.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/ruby.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/select.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/signal.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/string.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/struct.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/thread.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/time.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/variable.h
-bug-14384.o: $(hdrdir)/ruby/internal/intern/vm.h
-bug-14384.o: $(hdrdir)/ruby/internal/interpreter.h
-bug-14384.o: $(hdrdir)/ruby/internal/iterator.h
-bug-14384.o: $(hdrdir)/ruby/internal/memory.h
-bug-14384.o: $(hdrdir)/ruby/internal/method.h
-bug-14384.o: $(hdrdir)/ruby/internal/module.h
-bug-14384.o: $(hdrdir)/ruby/internal/newobj.h
-bug-14384.o: $(hdrdir)/ruby/internal/rgengc.h
-bug-14384.o: $(hdrdir)/ruby/internal/scan_args.h
-bug-14384.o: $(hdrdir)/ruby/internal/special_consts.h
-bug-14384.o: $(hdrdir)/ruby/internal/static_assert.h
-bug-14384.o: $(hdrdir)/ruby/internal/stdalign.h
-bug-14384.o: $(hdrdir)/ruby/internal/stdbool.h
-bug-14384.o: $(hdrdir)/ruby/internal/symbol.h
-bug-14384.o: $(hdrdir)/ruby/internal/token_paste.h
-bug-14384.o: $(hdrdir)/ruby/internal/value.h
-bug-14384.o: $(hdrdir)/ruby/internal/value_type.h
-bug-14384.o: $(hdrdir)/ruby/internal/variable.h
-bug-14384.o: $(hdrdir)/ruby/internal/warning_push.h
-bug-14384.o: $(hdrdir)/ruby/internal/xmalloc.h
bug-14384.o: $(hdrdir)/ruby/assert.h
bug-14384.o: $(hdrdir)/ruby/backward.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/assume.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/attributes.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/bool.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/inttypes.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/limits.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/long_long.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/stdalign.h
-bug-14384.o: $(hdrdir)/ruby/backward/2/stdarg.h
bug-14384.o: $(hdrdir)/ruby/debug.h
bug-14384.o: $(hdrdir)/ruby/defines.h
bug-14384.o: $(hdrdir)/ruby/intern.h
diff --git a/ext/-test-/bug-3571/depend b/ext/-test-/bug-3571/depend
index a21935558d..74911f0af4 100644
--- a/ext/-test-/bug-3571/depend
+++ b/ext/-test-/bug-3571/depend
@@ -2,157 +2,8 @@
bug.o: $(RUBY_EXTCONF_H)
bug.o: $(arch_hdrdir)/ruby/config.h
bug.o: $(hdrdir)/ruby.h
-bug.o: $(hdrdir)/ruby/internal/anyargs.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-bug.o: $(hdrdir)/ruby/internal/assume.h
-bug.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-bug.o: $(hdrdir)/ruby/internal/attr/artificial.h
-bug.o: $(hdrdir)/ruby/internal/attr/cold.h
-bug.o: $(hdrdir)/ruby/internal/attr/const.h
-bug.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-bug.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-bug.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-bug.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-bug.o: $(hdrdir)/ruby/internal/attr/error.h
-bug.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-bug.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-bug.o: $(hdrdir)/ruby/internal/attr/format.h
-bug.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-bug.o: $(hdrdir)/ruby/internal/attr/noalias.h
-bug.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-bug.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-bug.o: $(hdrdir)/ruby/internal/attr/noinline.h
-bug.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-bug.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-bug.o: $(hdrdir)/ruby/internal/attr/pure.h
-bug.o: $(hdrdir)/ruby/internal/attr/restrict.h
-bug.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-bug.o: $(hdrdir)/ruby/internal/attr/warning.h
-bug.o: $(hdrdir)/ruby/internal/attr/weakref.h
-bug.o: $(hdrdir)/ruby/internal/cast.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-bug.o: $(hdrdir)/ruby/internal/compiler_since.h
-bug.o: $(hdrdir)/ruby/internal/config.h
-bug.o: $(hdrdir)/ruby/internal/constant_p.h
-bug.o: $(hdrdir)/ruby/internal/core.h
-bug.o: $(hdrdir)/ruby/internal/core/rarray.h
-bug.o: $(hdrdir)/ruby/internal/core/rbasic.h
-bug.o: $(hdrdir)/ruby/internal/core/rbignum.h
-bug.o: $(hdrdir)/ruby/internal/core/rclass.h
-bug.o: $(hdrdir)/ruby/internal/core/rdata.h
-bug.o: $(hdrdir)/ruby/internal/core/rfile.h
-bug.o: $(hdrdir)/ruby/internal/core/rhash.h
-bug.o: $(hdrdir)/ruby/internal/core/robject.h
-bug.o: $(hdrdir)/ruby/internal/core/rregexp.h
-bug.o: $(hdrdir)/ruby/internal/core/rstring.h
-bug.o: $(hdrdir)/ruby/internal/core/rstruct.h
-bug.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-bug.o: $(hdrdir)/ruby/internal/ctype.h
-bug.o: $(hdrdir)/ruby/internal/dllexport.h
-bug.o: $(hdrdir)/ruby/internal/dosish.h
-bug.o: $(hdrdir)/ruby/internal/error.h
-bug.o: $(hdrdir)/ruby/internal/eval.h
-bug.o: $(hdrdir)/ruby/internal/event.h
-bug.o: $(hdrdir)/ruby/internal/fl_type.h
-bug.o: $(hdrdir)/ruby/internal/gc.h
-bug.o: $(hdrdir)/ruby/internal/glob.h
-bug.o: $(hdrdir)/ruby/internal/globals.h
-bug.o: $(hdrdir)/ruby/internal/has/attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/builtin.h
-bug.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/extension.h
-bug.o: $(hdrdir)/ruby/internal/has/feature.h
-bug.o: $(hdrdir)/ruby/internal/has/warning.h
-bug.o: $(hdrdir)/ruby/internal/intern/array.h
-bug.o: $(hdrdir)/ruby/internal/intern/bignum.h
-bug.o: $(hdrdir)/ruby/internal/intern/class.h
-bug.o: $(hdrdir)/ruby/internal/intern/compar.h
-bug.o: $(hdrdir)/ruby/internal/intern/complex.h
-bug.o: $(hdrdir)/ruby/internal/intern/cont.h
-bug.o: $(hdrdir)/ruby/internal/intern/dir.h
-bug.o: $(hdrdir)/ruby/internal/intern/enum.h
-bug.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-bug.o: $(hdrdir)/ruby/internal/intern/error.h
-bug.o: $(hdrdir)/ruby/internal/intern/eval.h
-bug.o: $(hdrdir)/ruby/internal/intern/file.h
-bug.o: $(hdrdir)/ruby/internal/intern/gc.h
-bug.o: $(hdrdir)/ruby/internal/intern/hash.h
-bug.o: $(hdrdir)/ruby/internal/intern/io.h
-bug.o: $(hdrdir)/ruby/internal/intern/load.h
-bug.o: $(hdrdir)/ruby/internal/intern/marshal.h
-bug.o: $(hdrdir)/ruby/internal/intern/numeric.h
-bug.o: $(hdrdir)/ruby/internal/intern/object.h
-bug.o: $(hdrdir)/ruby/internal/intern/parse.h
-bug.o: $(hdrdir)/ruby/internal/intern/proc.h
-bug.o: $(hdrdir)/ruby/internal/intern/process.h
-bug.o: $(hdrdir)/ruby/internal/intern/random.h
-bug.o: $(hdrdir)/ruby/internal/intern/range.h
-bug.o: $(hdrdir)/ruby/internal/intern/rational.h
-bug.o: $(hdrdir)/ruby/internal/intern/re.h
-bug.o: $(hdrdir)/ruby/internal/intern/ruby.h
-bug.o: $(hdrdir)/ruby/internal/intern/select.h
-bug.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-bug.o: $(hdrdir)/ruby/internal/intern/signal.h
-bug.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-bug.o: $(hdrdir)/ruby/internal/intern/string.h
-bug.o: $(hdrdir)/ruby/internal/intern/struct.h
-bug.o: $(hdrdir)/ruby/internal/intern/thread.h
-bug.o: $(hdrdir)/ruby/internal/intern/time.h
-bug.o: $(hdrdir)/ruby/internal/intern/variable.h
-bug.o: $(hdrdir)/ruby/internal/intern/vm.h
-bug.o: $(hdrdir)/ruby/internal/interpreter.h
-bug.o: $(hdrdir)/ruby/internal/iterator.h
-bug.o: $(hdrdir)/ruby/internal/memory.h
-bug.o: $(hdrdir)/ruby/internal/method.h
-bug.o: $(hdrdir)/ruby/internal/module.h
-bug.o: $(hdrdir)/ruby/internal/newobj.h
-bug.o: $(hdrdir)/ruby/internal/rgengc.h
-bug.o: $(hdrdir)/ruby/internal/scan_args.h
-bug.o: $(hdrdir)/ruby/internal/special_consts.h
-bug.o: $(hdrdir)/ruby/internal/static_assert.h
-bug.o: $(hdrdir)/ruby/internal/stdalign.h
-bug.o: $(hdrdir)/ruby/internal/stdbool.h
-bug.o: $(hdrdir)/ruby/internal/symbol.h
-bug.o: $(hdrdir)/ruby/internal/token_paste.h
-bug.o: $(hdrdir)/ruby/internal/value.h
-bug.o: $(hdrdir)/ruby/internal/value_type.h
-bug.o: $(hdrdir)/ruby/internal/variable.h
-bug.o: $(hdrdir)/ruby/internal/warning_push.h
-bug.o: $(hdrdir)/ruby/internal/xmalloc.h
bug.o: $(hdrdir)/ruby/assert.h
bug.o: $(hdrdir)/ruby/backward.h
-bug.o: $(hdrdir)/ruby/backward/2/assume.h
-bug.o: $(hdrdir)/ruby/backward/2/attributes.h
-bug.o: $(hdrdir)/ruby/backward/2/bool.h
-bug.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-bug.o: $(hdrdir)/ruby/backward/2/inttypes.h
-bug.o: $(hdrdir)/ruby/backward/2/limits.h
-bug.o: $(hdrdir)/ruby/backward/2/long_long.h
-bug.o: $(hdrdir)/ruby/backward/2/stdalign.h
-bug.o: $(hdrdir)/ruby/backward/2/stdarg.h
bug.o: $(hdrdir)/ruby/defines.h
bug.o: $(hdrdir)/ruby/intern.h
bug.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/bug-5832/depend b/ext/-test-/bug-5832/depend
index a21935558d..74911f0af4 100644
--- a/ext/-test-/bug-5832/depend
+++ b/ext/-test-/bug-5832/depend
@@ -2,157 +2,8 @@
bug.o: $(RUBY_EXTCONF_H)
bug.o: $(arch_hdrdir)/ruby/config.h
bug.o: $(hdrdir)/ruby.h
-bug.o: $(hdrdir)/ruby/internal/anyargs.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-bug.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-bug.o: $(hdrdir)/ruby/internal/assume.h
-bug.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-bug.o: $(hdrdir)/ruby/internal/attr/artificial.h
-bug.o: $(hdrdir)/ruby/internal/attr/cold.h
-bug.o: $(hdrdir)/ruby/internal/attr/const.h
-bug.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-bug.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-bug.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-bug.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-bug.o: $(hdrdir)/ruby/internal/attr/error.h
-bug.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-bug.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-bug.o: $(hdrdir)/ruby/internal/attr/format.h
-bug.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-bug.o: $(hdrdir)/ruby/internal/attr/noalias.h
-bug.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-bug.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-bug.o: $(hdrdir)/ruby/internal/attr/noinline.h
-bug.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-bug.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-bug.o: $(hdrdir)/ruby/internal/attr/pure.h
-bug.o: $(hdrdir)/ruby/internal/attr/restrict.h
-bug.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-bug.o: $(hdrdir)/ruby/internal/attr/warning.h
-bug.o: $(hdrdir)/ruby/internal/attr/weakref.h
-bug.o: $(hdrdir)/ruby/internal/cast.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-bug.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-bug.o: $(hdrdir)/ruby/internal/compiler_since.h
-bug.o: $(hdrdir)/ruby/internal/config.h
-bug.o: $(hdrdir)/ruby/internal/constant_p.h
-bug.o: $(hdrdir)/ruby/internal/core.h
-bug.o: $(hdrdir)/ruby/internal/core/rarray.h
-bug.o: $(hdrdir)/ruby/internal/core/rbasic.h
-bug.o: $(hdrdir)/ruby/internal/core/rbignum.h
-bug.o: $(hdrdir)/ruby/internal/core/rclass.h
-bug.o: $(hdrdir)/ruby/internal/core/rdata.h
-bug.o: $(hdrdir)/ruby/internal/core/rfile.h
-bug.o: $(hdrdir)/ruby/internal/core/rhash.h
-bug.o: $(hdrdir)/ruby/internal/core/robject.h
-bug.o: $(hdrdir)/ruby/internal/core/rregexp.h
-bug.o: $(hdrdir)/ruby/internal/core/rstring.h
-bug.o: $(hdrdir)/ruby/internal/core/rstruct.h
-bug.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-bug.o: $(hdrdir)/ruby/internal/ctype.h
-bug.o: $(hdrdir)/ruby/internal/dllexport.h
-bug.o: $(hdrdir)/ruby/internal/dosish.h
-bug.o: $(hdrdir)/ruby/internal/error.h
-bug.o: $(hdrdir)/ruby/internal/eval.h
-bug.o: $(hdrdir)/ruby/internal/event.h
-bug.o: $(hdrdir)/ruby/internal/fl_type.h
-bug.o: $(hdrdir)/ruby/internal/gc.h
-bug.o: $(hdrdir)/ruby/internal/glob.h
-bug.o: $(hdrdir)/ruby/internal/globals.h
-bug.o: $(hdrdir)/ruby/internal/has/attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/builtin.h
-bug.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-bug.o: $(hdrdir)/ruby/internal/has/extension.h
-bug.o: $(hdrdir)/ruby/internal/has/feature.h
-bug.o: $(hdrdir)/ruby/internal/has/warning.h
-bug.o: $(hdrdir)/ruby/internal/intern/array.h
-bug.o: $(hdrdir)/ruby/internal/intern/bignum.h
-bug.o: $(hdrdir)/ruby/internal/intern/class.h
-bug.o: $(hdrdir)/ruby/internal/intern/compar.h
-bug.o: $(hdrdir)/ruby/internal/intern/complex.h
-bug.o: $(hdrdir)/ruby/internal/intern/cont.h
-bug.o: $(hdrdir)/ruby/internal/intern/dir.h
-bug.o: $(hdrdir)/ruby/internal/intern/enum.h
-bug.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-bug.o: $(hdrdir)/ruby/internal/intern/error.h
-bug.o: $(hdrdir)/ruby/internal/intern/eval.h
-bug.o: $(hdrdir)/ruby/internal/intern/file.h
-bug.o: $(hdrdir)/ruby/internal/intern/gc.h
-bug.o: $(hdrdir)/ruby/internal/intern/hash.h
-bug.o: $(hdrdir)/ruby/internal/intern/io.h
-bug.o: $(hdrdir)/ruby/internal/intern/load.h
-bug.o: $(hdrdir)/ruby/internal/intern/marshal.h
-bug.o: $(hdrdir)/ruby/internal/intern/numeric.h
-bug.o: $(hdrdir)/ruby/internal/intern/object.h
-bug.o: $(hdrdir)/ruby/internal/intern/parse.h
-bug.o: $(hdrdir)/ruby/internal/intern/proc.h
-bug.o: $(hdrdir)/ruby/internal/intern/process.h
-bug.o: $(hdrdir)/ruby/internal/intern/random.h
-bug.o: $(hdrdir)/ruby/internal/intern/range.h
-bug.o: $(hdrdir)/ruby/internal/intern/rational.h
-bug.o: $(hdrdir)/ruby/internal/intern/re.h
-bug.o: $(hdrdir)/ruby/internal/intern/ruby.h
-bug.o: $(hdrdir)/ruby/internal/intern/select.h
-bug.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-bug.o: $(hdrdir)/ruby/internal/intern/signal.h
-bug.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-bug.o: $(hdrdir)/ruby/internal/intern/string.h
-bug.o: $(hdrdir)/ruby/internal/intern/struct.h
-bug.o: $(hdrdir)/ruby/internal/intern/thread.h
-bug.o: $(hdrdir)/ruby/internal/intern/time.h
-bug.o: $(hdrdir)/ruby/internal/intern/variable.h
-bug.o: $(hdrdir)/ruby/internal/intern/vm.h
-bug.o: $(hdrdir)/ruby/internal/interpreter.h
-bug.o: $(hdrdir)/ruby/internal/iterator.h
-bug.o: $(hdrdir)/ruby/internal/memory.h
-bug.o: $(hdrdir)/ruby/internal/method.h
-bug.o: $(hdrdir)/ruby/internal/module.h
-bug.o: $(hdrdir)/ruby/internal/newobj.h
-bug.o: $(hdrdir)/ruby/internal/rgengc.h
-bug.o: $(hdrdir)/ruby/internal/scan_args.h
-bug.o: $(hdrdir)/ruby/internal/special_consts.h
-bug.o: $(hdrdir)/ruby/internal/static_assert.h
-bug.o: $(hdrdir)/ruby/internal/stdalign.h
-bug.o: $(hdrdir)/ruby/internal/stdbool.h
-bug.o: $(hdrdir)/ruby/internal/symbol.h
-bug.o: $(hdrdir)/ruby/internal/token_paste.h
-bug.o: $(hdrdir)/ruby/internal/value.h
-bug.o: $(hdrdir)/ruby/internal/value_type.h
-bug.o: $(hdrdir)/ruby/internal/variable.h
-bug.o: $(hdrdir)/ruby/internal/warning_push.h
-bug.o: $(hdrdir)/ruby/internal/xmalloc.h
bug.o: $(hdrdir)/ruby/assert.h
bug.o: $(hdrdir)/ruby/backward.h
-bug.o: $(hdrdir)/ruby/backward/2/assume.h
-bug.o: $(hdrdir)/ruby/backward/2/attributes.h
-bug.o: $(hdrdir)/ruby/backward/2/bool.h
-bug.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-bug.o: $(hdrdir)/ruby/backward/2/inttypes.h
-bug.o: $(hdrdir)/ruby/backward/2/limits.h
-bug.o: $(hdrdir)/ruby/backward/2/long_long.h
-bug.o: $(hdrdir)/ruby/backward/2/stdalign.h
-bug.o: $(hdrdir)/ruby/backward/2/stdarg.h
bug.o: $(hdrdir)/ruby/defines.h
bug.o: $(hdrdir)/ruby/intern.h
bug.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/bug_reporter/depend b/ext/-test-/bug_reporter/depend
index f49b6147e6..62bac03566 100644
--- a/ext/-test-/bug_reporter/depend
+++ b/ext/-test-/bug_reporter/depend
@@ -2,157 +2,8 @@
bug_reporter.o: $(RUBY_EXTCONF_H)
bug_reporter.o: $(arch_hdrdir)/ruby/config.h
bug_reporter.o: $(hdrdir)/ruby.h
-bug_reporter.o: $(hdrdir)/ruby/internal/anyargs.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-bug_reporter.o: $(hdrdir)/ruby/internal/assume.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/artificial.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/cold.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/const.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/error.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/format.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/noalias.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/noinline.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/pure.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/restrict.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/warning.h
-bug_reporter.o: $(hdrdir)/ruby/internal/attr/weakref.h
-bug_reporter.o: $(hdrdir)/ruby/internal/cast.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-bug_reporter.o: $(hdrdir)/ruby/internal/compiler_since.h
-bug_reporter.o: $(hdrdir)/ruby/internal/config.h
-bug_reporter.o: $(hdrdir)/ruby/internal/constant_p.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rarray.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rbasic.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rbignum.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rclass.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rdata.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rfile.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rhash.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/robject.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rregexp.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rstring.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rstruct.h
-bug_reporter.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-bug_reporter.o: $(hdrdir)/ruby/internal/ctype.h
-bug_reporter.o: $(hdrdir)/ruby/internal/dllexport.h
-bug_reporter.o: $(hdrdir)/ruby/internal/dosish.h
-bug_reporter.o: $(hdrdir)/ruby/internal/error.h
-bug_reporter.o: $(hdrdir)/ruby/internal/eval.h
-bug_reporter.o: $(hdrdir)/ruby/internal/event.h
-bug_reporter.o: $(hdrdir)/ruby/internal/fl_type.h
-bug_reporter.o: $(hdrdir)/ruby/internal/gc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/glob.h
-bug_reporter.o: $(hdrdir)/ruby/internal/globals.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/attribute.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/builtin.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/extension.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/feature.h
-bug_reporter.o: $(hdrdir)/ruby/internal/has/warning.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/array.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/bignum.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/class.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/compar.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/complex.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/cont.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/dir.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/enum.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/error.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/eval.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/file.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/gc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/hash.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/io.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/load.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/marshal.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/numeric.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/object.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/parse.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/proc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/process.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/random.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/range.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/rational.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/re.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/ruby.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/select.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/signal.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/string.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/struct.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/thread.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/time.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/variable.h
-bug_reporter.o: $(hdrdir)/ruby/internal/intern/vm.h
-bug_reporter.o: $(hdrdir)/ruby/internal/interpreter.h
-bug_reporter.o: $(hdrdir)/ruby/internal/iterator.h
-bug_reporter.o: $(hdrdir)/ruby/internal/memory.h
-bug_reporter.o: $(hdrdir)/ruby/internal/method.h
-bug_reporter.o: $(hdrdir)/ruby/internal/module.h
-bug_reporter.o: $(hdrdir)/ruby/internal/newobj.h
-bug_reporter.o: $(hdrdir)/ruby/internal/rgengc.h
-bug_reporter.o: $(hdrdir)/ruby/internal/scan_args.h
-bug_reporter.o: $(hdrdir)/ruby/internal/special_consts.h
-bug_reporter.o: $(hdrdir)/ruby/internal/static_assert.h
-bug_reporter.o: $(hdrdir)/ruby/internal/stdalign.h
-bug_reporter.o: $(hdrdir)/ruby/internal/stdbool.h
-bug_reporter.o: $(hdrdir)/ruby/internal/symbol.h
-bug_reporter.o: $(hdrdir)/ruby/internal/token_paste.h
-bug_reporter.o: $(hdrdir)/ruby/internal/value.h
-bug_reporter.o: $(hdrdir)/ruby/internal/value_type.h
-bug_reporter.o: $(hdrdir)/ruby/internal/variable.h
-bug_reporter.o: $(hdrdir)/ruby/internal/warning_push.h
-bug_reporter.o: $(hdrdir)/ruby/internal/xmalloc.h
bug_reporter.o: $(hdrdir)/ruby/assert.h
bug_reporter.o: $(hdrdir)/ruby/backward.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/assume.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/attributes.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/bool.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/inttypes.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/limits.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/long_long.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/stdalign.h
-bug_reporter.o: $(hdrdir)/ruby/backward/2/stdarg.h
bug_reporter.o: $(hdrdir)/ruby/defines.h
bug_reporter.o: $(hdrdir)/ruby/intern.h
bug_reporter.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/class/depend b/ext/-test-/class/depend
index 95199c5cf4..451256cc75 100644
--- a/ext/-test-/class/depend
+++ b/ext/-test-/class/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
class2name.o: $(RUBY_EXTCONF_H)
class2name.o: $(arch_hdrdir)/ruby/config.h
-class2name.o: $(hdrdir)/ruby/internal/anyargs.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-class2name.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-class2name.o: $(hdrdir)/ruby/internal/assume.h
-class2name.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-class2name.o: $(hdrdir)/ruby/internal/attr/artificial.h
-class2name.o: $(hdrdir)/ruby/internal/attr/cold.h
-class2name.o: $(hdrdir)/ruby/internal/attr/const.h
-class2name.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-class2name.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-class2name.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-class2name.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-class2name.o: $(hdrdir)/ruby/internal/attr/error.h
-class2name.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-class2name.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-class2name.o: $(hdrdir)/ruby/internal/attr/format.h
-class2name.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-class2name.o: $(hdrdir)/ruby/internal/attr/noalias.h
-class2name.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-class2name.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-class2name.o: $(hdrdir)/ruby/internal/attr/noinline.h
-class2name.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-class2name.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-class2name.o: $(hdrdir)/ruby/internal/attr/pure.h
-class2name.o: $(hdrdir)/ruby/internal/attr/restrict.h
-class2name.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-class2name.o: $(hdrdir)/ruby/internal/attr/warning.h
-class2name.o: $(hdrdir)/ruby/internal/attr/weakref.h
-class2name.o: $(hdrdir)/ruby/internal/cast.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-class2name.o: $(hdrdir)/ruby/internal/compiler_since.h
-class2name.o: $(hdrdir)/ruby/internal/config.h
-class2name.o: $(hdrdir)/ruby/internal/constant_p.h
-class2name.o: $(hdrdir)/ruby/internal/core.h
-class2name.o: $(hdrdir)/ruby/internal/core/rarray.h
-class2name.o: $(hdrdir)/ruby/internal/core/rbasic.h
-class2name.o: $(hdrdir)/ruby/internal/core/rbignum.h
-class2name.o: $(hdrdir)/ruby/internal/core/rclass.h
-class2name.o: $(hdrdir)/ruby/internal/core/rdata.h
-class2name.o: $(hdrdir)/ruby/internal/core/rfile.h
-class2name.o: $(hdrdir)/ruby/internal/core/rhash.h
-class2name.o: $(hdrdir)/ruby/internal/core/robject.h
-class2name.o: $(hdrdir)/ruby/internal/core/rregexp.h
-class2name.o: $(hdrdir)/ruby/internal/core/rstring.h
-class2name.o: $(hdrdir)/ruby/internal/core/rstruct.h
-class2name.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-class2name.o: $(hdrdir)/ruby/internal/ctype.h
-class2name.o: $(hdrdir)/ruby/internal/dllexport.h
-class2name.o: $(hdrdir)/ruby/internal/dosish.h
-class2name.o: $(hdrdir)/ruby/internal/error.h
-class2name.o: $(hdrdir)/ruby/internal/eval.h
-class2name.o: $(hdrdir)/ruby/internal/event.h
-class2name.o: $(hdrdir)/ruby/internal/fl_type.h
-class2name.o: $(hdrdir)/ruby/internal/gc.h
-class2name.o: $(hdrdir)/ruby/internal/glob.h
-class2name.o: $(hdrdir)/ruby/internal/globals.h
-class2name.o: $(hdrdir)/ruby/internal/has/attribute.h
-class2name.o: $(hdrdir)/ruby/internal/has/builtin.h
-class2name.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-class2name.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-class2name.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-class2name.o: $(hdrdir)/ruby/internal/has/extension.h
-class2name.o: $(hdrdir)/ruby/internal/has/feature.h
-class2name.o: $(hdrdir)/ruby/internal/has/warning.h
-class2name.o: $(hdrdir)/ruby/internal/intern/array.h
-class2name.o: $(hdrdir)/ruby/internal/intern/bignum.h
-class2name.o: $(hdrdir)/ruby/internal/intern/class.h
-class2name.o: $(hdrdir)/ruby/internal/intern/compar.h
-class2name.o: $(hdrdir)/ruby/internal/intern/complex.h
-class2name.o: $(hdrdir)/ruby/internal/intern/cont.h
-class2name.o: $(hdrdir)/ruby/internal/intern/dir.h
-class2name.o: $(hdrdir)/ruby/internal/intern/enum.h
-class2name.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-class2name.o: $(hdrdir)/ruby/internal/intern/error.h
-class2name.o: $(hdrdir)/ruby/internal/intern/eval.h
-class2name.o: $(hdrdir)/ruby/internal/intern/file.h
-class2name.o: $(hdrdir)/ruby/internal/intern/gc.h
-class2name.o: $(hdrdir)/ruby/internal/intern/hash.h
-class2name.o: $(hdrdir)/ruby/internal/intern/io.h
-class2name.o: $(hdrdir)/ruby/internal/intern/load.h
-class2name.o: $(hdrdir)/ruby/internal/intern/marshal.h
-class2name.o: $(hdrdir)/ruby/internal/intern/numeric.h
-class2name.o: $(hdrdir)/ruby/internal/intern/object.h
-class2name.o: $(hdrdir)/ruby/internal/intern/parse.h
-class2name.o: $(hdrdir)/ruby/internal/intern/proc.h
-class2name.o: $(hdrdir)/ruby/internal/intern/process.h
-class2name.o: $(hdrdir)/ruby/internal/intern/random.h
-class2name.o: $(hdrdir)/ruby/internal/intern/range.h
-class2name.o: $(hdrdir)/ruby/internal/intern/rational.h
-class2name.o: $(hdrdir)/ruby/internal/intern/re.h
-class2name.o: $(hdrdir)/ruby/internal/intern/ruby.h
-class2name.o: $(hdrdir)/ruby/internal/intern/select.h
-class2name.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-class2name.o: $(hdrdir)/ruby/internal/intern/signal.h
-class2name.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-class2name.o: $(hdrdir)/ruby/internal/intern/string.h
-class2name.o: $(hdrdir)/ruby/internal/intern/struct.h
-class2name.o: $(hdrdir)/ruby/internal/intern/thread.h
-class2name.o: $(hdrdir)/ruby/internal/intern/time.h
-class2name.o: $(hdrdir)/ruby/internal/intern/variable.h
-class2name.o: $(hdrdir)/ruby/internal/intern/vm.h
-class2name.o: $(hdrdir)/ruby/internal/interpreter.h
-class2name.o: $(hdrdir)/ruby/internal/iterator.h
-class2name.o: $(hdrdir)/ruby/internal/memory.h
-class2name.o: $(hdrdir)/ruby/internal/method.h
-class2name.o: $(hdrdir)/ruby/internal/module.h
-class2name.o: $(hdrdir)/ruby/internal/newobj.h
-class2name.o: $(hdrdir)/ruby/internal/rgengc.h
-class2name.o: $(hdrdir)/ruby/internal/scan_args.h
-class2name.o: $(hdrdir)/ruby/internal/special_consts.h
-class2name.o: $(hdrdir)/ruby/internal/static_assert.h
-class2name.o: $(hdrdir)/ruby/internal/stdalign.h
-class2name.o: $(hdrdir)/ruby/internal/stdbool.h
-class2name.o: $(hdrdir)/ruby/internal/symbol.h
-class2name.o: $(hdrdir)/ruby/internal/token_paste.h
-class2name.o: $(hdrdir)/ruby/internal/value.h
-class2name.o: $(hdrdir)/ruby/internal/value_type.h
-class2name.o: $(hdrdir)/ruby/internal/variable.h
-class2name.o: $(hdrdir)/ruby/internal/warning_push.h
-class2name.o: $(hdrdir)/ruby/internal/xmalloc.h
class2name.o: $(hdrdir)/ruby/assert.h
class2name.o: $(hdrdir)/ruby/backward.h
-class2name.o: $(hdrdir)/ruby/backward/2/assume.h
-class2name.o: $(hdrdir)/ruby/backward/2/attributes.h
-class2name.o: $(hdrdir)/ruby/backward/2/bool.h
-class2name.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-class2name.o: $(hdrdir)/ruby/backward/2/inttypes.h
-class2name.o: $(hdrdir)/ruby/backward/2/limits.h
-class2name.o: $(hdrdir)/ruby/backward/2/long_long.h
-class2name.o: $(hdrdir)/ruby/backward/2/stdalign.h
-class2name.o: $(hdrdir)/ruby/backward/2/stdarg.h
class2name.o: $(hdrdir)/ruby/defines.h
class2name.o: $(hdrdir)/ruby/intern.h
class2name.o: $(hdrdir)/ruby/missing.h
@@ -162,157 +13,8 @@ class2name.o: class2name.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/cxxanyargs/cxxanyargs.cpp b/ext/-test-/cxxanyargs/cxxanyargs.cpp
index eded13e2ee..efe35fa359 100644
--- a/ext/-test-/cxxanyargs/cxxanyargs.cpp
+++ b/ext/-test-/cxxanyargs/cxxanyargs.cpp
@@ -5,18 +5,12 @@
#elif defined(_MSC_VER)
#pragma warning(disable : 4996)
-#elif defined(__INTEL_COMPILER)
-#pragma warning(disable : 1786)
-
#elif defined(__clang__)
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#elif defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#elif defined(__SUNPRO_CC)
-#pragma error_messages (off,symdeprecated)
-
#else
// :FIXME: improve here for your compiler.
@@ -42,18 +36,6 @@ namespace test_rb_define_virtual_variable {
RUBY_METHOD_FUNC(getter),
reinterpret_cast<void(*)(ANYARGS)>(setter)); // old
rb_define_virtual_variable("test", getter, setter); // new
-
-#ifdef HAVE_NULLPTR
- rb_define_virtual_variable("test", nullptr, reinterpret_cast<void(*)(ANYARGS)>(setter));
- rb_define_virtual_variable("test", nullptr, setter);
-
- rb_define_virtual_variable("test", RUBY_METHOD_FUNC(getter), nullptr);
- rb_define_virtual_variable("test", getter, nullptr);
-
- // It doesn't make any sense for both function pointers be nullptr at
- // the same time.
-#endif
-
return self;
}
}
@@ -80,18 +62,6 @@ struct test_rb_define_hooked_variable {
RUBY_METHOD_FUNC(getter),
reinterpret_cast<void(*)(ANYARGS)>(setter)); // old
rb_define_hooked_variable("test", &v, getter, setter); // new
-
-#ifdef HAVE_NULLPTR
- rb_define_hooked_variable("test", &v, nullptr, reinterpret_cast<void(*)(ANYARGS)>(setter));
- rb_define_hooked_variable("test", &v, nullptr, setter);
-
- rb_define_hooked_variable("test", &v, RUBY_METHOD_FUNC(getter), nullptr);
- rb_define_hooked_variable("test", &v, getter, nullptr);
-
- // It doesn't make any sense for both function pointers be nullptr at
- // the same time.
-#endif
-
return self;
}
};
@@ -113,10 +83,6 @@ namespace test_rb_iterate {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- rb_iterate(iter, self, nullptr, self);
-#endif
-
rb_iterate(iter, self, RUBY_METHOD_FUNC(block), self); // old
return rb_iterate(iter, self, block, self); // new
}
@@ -134,11 +100,6 @@ namespace test_rb_block_call {
{
const ID mid = rb_intern("each");
const VALUE argv[] = { Qundef };
-
-#ifdef HAVE_NULLPTR
- rb_block_call(self, mid, 0, argv, nullptr, self);
-#endif
-
rb_block_call(self, mid, 0, argv, RUBY_METHOD_FUNC(block), self); // old
return rb_block_call(self, mid, 0, argv, block, self); // new
}
@@ -160,11 +121,6 @@ namespace test_rb_rescue {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- rb_rescue(RUBY_METHOD_FUNC(begin), self, nullptr, self);
- rb_rescue(begin, self, nullptr, self);
-#endif
-
rb_rescue(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(rescue), self); // old
return rb_rescue(begin, self, rescue, self); // new
}
@@ -186,14 +142,9 @@ namespace test_rb_rescue2 {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- rb_rescue2(RUBY_METHOD_FUNC(begin), self, nullptr, self, rb_eStandardError, rb_eFatal, (VALUE)0);
- rb_rescue2(begin, self, nullptr, self, rb_eStandardError, rb_eFatal, (VALUE)0);
-#endif
-
rb_rescue2(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(rescue), self,
- rb_eStandardError, rb_eFatal, (VALUE)0); // old
- return rb_rescue2(begin, self, rescue, self, rb_eStandardError, rb_eFatal, (VALUE)0); // new
+ rb_eStandardError, rb_eFatal, 0); // old
+ return rb_rescue2(begin, self, rescue, self, rb_eStandardError, rb_eFatal, 0); // new
}
}
@@ -213,11 +164,6 @@ namespace test_rb_ensure {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- rb_ensure(RUBY_METHOD_FUNC(begin), self, nullptr, self);
- rb_ensure(begin, self, nullptr, self);
-#endif
-
rb_ensure(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(ensure), self); // old
return rb_ensure(begin, self, ensure, self); // new
}
@@ -234,11 +180,6 @@ namespace test_rb_catch {
test(VALUE self)
{
static const char *zero = 0;
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a catcher.
-#endif
-
rb_catch(zero, RUBY_METHOD_FUNC(catcher), self); // old
return rb_catch(zero, catcher, self); // new
}
@@ -254,10 +195,6 @@ namespace test_rb_catch_obj {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a catcher.
-#endif
-
rb_catch_obj(self, RUBY_METHOD_FUNC(catcher), self); // old
return rb_catch_obj(self, catcher, self); // new
}
@@ -273,10 +210,6 @@ namespace test_rb_fiber_new {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a fiber.
-#endif
-
rb_fiber_new(RUBY_METHOD_FUNC(fiber), self); // old
return rb_fiber_new(fiber, self); // new
}
@@ -292,10 +225,6 @@ namespace test_rb_proc_new {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a proc.
-#endif
-
rb_fiber_new(RUBY_METHOD_FUNC(proc), self); // old
return rb_fiber_new(proc, self); // new
}
@@ -315,11 +244,6 @@ struct test_rb_thread_create {
test(VALUE self)
{
v = self;
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a thread.
-#endif
-
rb_thread_create(RUBY_METHOD_FUNC(thread), &v); // old
return rb_thread_create(thread, &v); // new
}
@@ -338,11 +262,6 @@ namespace test_st_foreach {
{
st_data_t data = 0;
st_table *st = st_init_numtable();
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as an iterator.
-#endif
-
st_foreach(st, reinterpret_cast<int(*)(ANYARGS)>(iter), data); // old
st_foreach(st, iter, data); // new
return self;
@@ -361,11 +280,6 @@ namespace test_st_foreach_check {
{
st_data_t data = 0;
st_table *st = st_init_numtable();
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as an iterator.
-#endif
-
st_foreach_check(st, reinterpret_cast<int(*)(ANYARGS)>(iter), data, data); // old
st_foreach_check(st, iter, data, data); // new
return self;
@@ -384,11 +298,6 @@ namespace test_st_foreach_safe {
{
st_data_t data = 0;
st_table *st = st_init_numtable();
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as an iterator.
-#endif
-
st_foreach_safe(st, reinterpret_cast<int(*)(ANYARGS)>(iter), data); // old
st_foreach_safe(st, iter, data); // new
return self;
@@ -406,11 +315,6 @@ namespace test_rb_hash_foreach {
test(VALUE self)
{
VALUE h = rb_hash_new();
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as an iterator.
-#endif
-
rb_hash_foreach(h, reinterpret_cast<int(*)(ANYARGS)>(iter), self); // old
rb_hash_foreach(h, iter, self); // new
return self;
@@ -427,10 +331,6 @@ namespace test_rb_ivar_foreach {
VALUE
test(VALUE self)
{
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as an iterator.
-#endif
-
rb_ivar_foreach(self, reinterpret_cast<int(*)(ANYARGS)>(iter), self); // old
rb_ivar_foreach(self, iter, self); // new
return self;
@@ -462,12 +362,6 @@ namespace test_rb_define_method {
return Qnil;
}
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
VALUE
test(VALUE self)
{
@@ -476,102 +370,18 @@ namespace test_rb_define_method {
rb_define_method(self, "m2", m2, 2);
rb_define_method(self, "ma", ma, -2);
rb_define_method(self, "mv", mv, -1);
- rb_define_method(self, "mc", mc, -1);
// Cast by RUBY_METHOD_FUNC
rb_define_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);
rb_define_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);
rb_define_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);
rb_define_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);
// Explicit cast instead of RUBY_METHOD_FUNC
rb_define_method(self, "m1", (VALUE (*)(...))(m1), 1);
rb_define_method(self, "m2", (VALUE (*)(...))(m2), 2);
rb_define_method(self, "ma", (VALUE (*)(...))(ma), -2);
rb_define_method(self, "mv", (VALUE (*)(...))(mv), -1);
- rb_define_method(self, "mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_method(self, "m1", rb_f_notimplement, 1);
- rb_define_method(self, "m2", rb_f_notimplement, 2);
- rb_define_method(self, "ma", rb_f_notimplement, -2);
- rb_define_method(self, "mv", rb_f_notimplement, -1);
- rb_define_method(self, "mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
-
- return self;
- }
-}
-
-namespace test_rb_define_method_id {
- static VALUE
- m1(VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- m2(VALUE, VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- ma(VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- mv(int, VALUE*, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
- VALUE
- test(VALUE self)
- {
- // No cast
- rb_define_method_id(self, rb_intern("m1"), m1, 1);
- rb_define_method_id(self, rb_intern("m2"), m2, 2);
- rb_define_method_id(self, rb_intern("ma"), ma, -2);
- rb_define_method_id(self, rb_intern("mv"), mv, -1);
- rb_define_method_id(self, rb_intern("mc"), mc, -1);
-
- // Cast by RUBY_METHOD_FUNC
- rb_define_method_id(self, rb_intern("m1"), RUBY_METHOD_FUNC(m1), 1);
- rb_define_method_id(self, rb_intern("m2"), RUBY_METHOD_FUNC(m2), 2);
- rb_define_method_id(self, rb_intern("ma"), RUBY_METHOD_FUNC(ma), -2);
- rb_define_method_id(self, rb_intern("mv"), RUBY_METHOD_FUNC(mv), -1);
- rb_define_method_id(self, rb_intern("mc"), RUBY_METHOD_FUNC(mc), -1);
-
- // Explicit cast instead of RUBY_METHOD_FUNC
- rb_define_method_id(self, rb_intern("m1"), (VALUE (*)(...))(m1), 1);
- rb_define_method_id(self, rb_intern("m2"), (VALUE (*)(...))(m2), 2);
- rb_define_method_id(self, rb_intern("ma"), (VALUE (*)(...))(ma), -2);
- rb_define_method_id(self, rb_intern("mv"), (VALUE (*)(...))(mv), -1);
- rb_define_method_id(self, rb_intern("mc"), (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_method_id(self, rb_intern("m1"), rb_f_notimplement, 1);
- rb_define_method_id(self, rb_intern("m2"), rb_f_notimplement, 2);
- rb_define_method_id(self, rb_intern("ma"), rb_f_notimplement, -2);
- rb_define_method_id(self, rb_intern("mv"), rb_f_notimplement, -1);
- rb_define_method_id(self, rb_intern("mc"), rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
return self;
}
@@ -602,12 +412,6 @@ namespace test_rb_define_module_function {
return Qnil;
}
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
VALUE
test(VALUE self)
{
@@ -616,32 +420,18 @@ namespace test_rb_define_module_function {
rb_define_module_function(self, "m2", m2, 2);
rb_define_module_function(self, "ma", ma, -2);
rb_define_module_function(self, "mv", mv, -1);
- rb_define_module_function(self, "mc", mc, -1);
// Cast by RUBY_METHOD_FUNC
rb_define_module_function(self, "m1", RUBY_METHOD_FUNC(m1), 1);
rb_define_module_function(self, "m2", RUBY_METHOD_FUNC(m2), 2);
rb_define_module_function(self, "ma", RUBY_METHOD_FUNC(ma), -2);
rb_define_module_function(self, "mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_module_function(self, "mc", RUBY_METHOD_FUNC(mc), -1);
// Explicit cast instead of RUBY_METHOD_FUNC
rb_define_module_function(self, "m1", (VALUE (*)(...))(m1), 1);
rb_define_module_function(self, "m2", (VALUE (*)(...))(m2), 2);
rb_define_module_function(self, "ma", (VALUE (*)(...))(ma), -2);
rb_define_module_function(self, "mv", (VALUE (*)(...))(mv), -1);
- rb_define_module_function(self, "mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_module_function(self, "m1", rb_f_notimplement, 1);
- rb_define_module_function(self, "m2", rb_f_notimplement, 2);
- rb_define_module_function(self, "ma", rb_f_notimplement, -2);
- rb_define_module_function(self, "mv", rb_f_notimplement, -1);
- rb_define_module_function(self, "mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
return self;
}
@@ -672,12 +462,6 @@ namespace test_rb_define_singleton_method {
return Qnil;
}
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
VALUE
test(VALUE self)
{
@@ -686,32 +470,18 @@ namespace test_rb_define_singleton_method {
rb_define_singleton_method(self, "m2", m2, 2);
rb_define_singleton_method(self, "ma", ma, -2);
rb_define_singleton_method(self, "mv", mv, -1);
- rb_define_singleton_method(self, "mc", mc, -1);
// Cast by RUBY_METHOD_FUNC
rb_define_singleton_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);
rb_define_singleton_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);
rb_define_singleton_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);
rb_define_singleton_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_singleton_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);
// Explicit cast instead of RUBY_METHOD_FUNC
rb_define_singleton_method(self, "m1", (VALUE (*)(...))(m1), 1);
rb_define_singleton_method(self, "m2", (VALUE (*)(...))(m2), 2);
rb_define_singleton_method(self, "ma", (VALUE (*)(...))(ma), -2);
rb_define_singleton_method(self, "mv", (VALUE (*)(...))(mv), -1);
- rb_define_singleton_method(self, "mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_singleton_method(self, "m1", rb_f_notimplement, 1);
- rb_define_singleton_method(self, "m2", rb_f_notimplement, 2);
- rb_define_singleton_method(self, "ma", rb_f_notimplement, -2);
- rb_define_singleton_method(self, "mv", rb_f_notimplement, -1);
- rb_define_singleton_method(self, "mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
return self;
}
@@ -742,12 +512,6 @@ namespace test_rb_define_protected_method {
return Qnil;
}
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
VALUE
test(VALUE self)
{
@@ -756,32 +520,18 @@ namespace test_rb_define_protected_method {
rb_define_protected_method(self, "m2", m2, 2);
rb_define_protected_method(self, "ma", ma, -2);
rb_define_protected_method(self, "mv", mv, -1);
- rb_define_protected_method(self, "mc", mc, -1);
// Cast by RUBY_METHOD_FUNC
rb_define_protected_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);
rb_define_protected_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);
rb_define_protected_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);
rb_define_protected_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_protected_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);
// Explicit cast instead of RUBY_METHOD_FUNC
rb_define_protected_method(self, "m1", (VALUE (*)(...))(m1), 1);
rb_define_protected_method(self, "m2", (VALUE (*)(...))(m2), 2);
rb_define_protected_method(self, "ma", (VALUE (*)(...))(ma), -2);
rb_define_protected_method(self, "mv", (VALUE (*)(...))(mv), -1);
- rb_define_protected_method(self, "mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_protected_method(self, "m1", rb_f_notimplement, 1);
- rb_define_protected_method(self, "m2", rb_f_notimplement, 2);
- rb_define_protected_method(self, "ma", rb_f_notimplement, -2);
- rb_define_protected_method(self, "mv", rb_f_notimplement, -1);
- rb_define_protected_method(self, "mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
return self;
}
@@ -812,12 +562,6 @@ namespace test_rb_define_private_method {
return Qnil;
}
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
VALUE
test(VALUE self)
{
@@ -826,102 +570,18 @@ namespace test_rb_define_private_method {
rb_define_private_method(self, "m2", m2, 2);
rb_define_private_method(self, "ma", ma, -2);
rb_define_private_method(self, "mv", mv, -1);
- rb_define_private_method(self, "mc", mc, -1);
// Cast by RUBY_METHOD_FUNC
rb_define_private_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);
rb_define_private_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);
rb_define_private_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);
rb_define_private_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_private_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);
// Explicit cast instead of RUBY_METHOD_FUNC
rb_define_private_method(self, "m1", (VALUE (*)(...))(m1), 1);
rb_define_private_method(self, "m2", (VALUE (*)(...))(m2), 2);
rb_define_private_method(self, "ma", (VALUE (*)(...))(ma), -2);
rb_define_private_method(self, "mv", (VALUE (*)(...))(mv), -1);
- rb_define_private_method(self, "mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_private_method(self, "m1", rb_f_notimplement, 1);
- rb_define_private_method(self, "m2", rb_f_notimplement, 2);
- rb_define_private_method(self, "ma", rb_f_notimplement, -2);
- rb_define_private_method(self, "mv", rb_f_notimplement, -1);
- rb_define_private_method(self, "mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
-
- return self;
- }
-}
-
-namespace test_rb_define_global_function {
- static VALUE
- m1(VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- m2(VALUE, VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- ma(VALUE, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- mv(int, VALUE*, VALUE)
- {
- return Qnil;
- }
-
- static VALUE
- mc(int, const VALUE*, VALUE)
- {
- return Qnil;
- }
-
- VALUE
- test(VALUE self)
- {
- // No cast
- rb_define_global_function("m1", m1, 1);
- rb_define_global_function("m2", m2, 2);
- rb_define_global_function("ma", ma, -2);
- rb_define_global_function("mv", mv, -1);
- rb_define_global_function("mc", mc, -1);
-
- // Cast by RUBY_METHOD_FUNC
- rb_define_global_function("m1", RUBY_METHOD_FUNC(m1), 1);
- rb_define_global_function("m2", RUBY_METHOD_FUNC(m2), 2);
- rb_define_global_function("ma", RUBY_METHOD_FUNC(ma), -2);
- rb_define_global_function("mv", RUBY_METHOD_FUNC(mv), -1);
- rb_define_global_function("mc", RUBY_METHOD_FUNC(mc), -1);
-
- // Explicit cast instead of RUBY_METHOD_FUNC
- rb_define_global_function("m1", (VALUE (*)(...))(m1), 1);
- rb_define_global_function("m2", (VALUE (*)(...))(m2), 2);
- rb_define_global_function("ma", (VALUE (*)(...))(ma), -2);
- rb_define_global_function("mv", (VALUE (*)(...))(mv), -1);
- rb_define_global_function("mc", (VALUE (*)(...))(mc), -1);
-
- // rb_f_notimplement
- rb_define_global_function("m1", rb_f_notimplement, 1);
- rb_define_global_function("m2", rb_f_notimplement, 2);
- rb_define_global_function("ma", rb_f_notimplement, -2);
- rb_define_global_function("mv", rb_f_notimplement, -1);
- rb_define_global_function("mc", rb_f_notimplement, -1);
-
-#ifdef HAVE_NULLPTR
- // It doesn't make any sense at all to pass nullptr as a method.
-#endif
return self;
}
@@ -952,10 +612,8 @@ Init_cxxanyargs(void)
test(rb_hash_foreach);
test(rb_ivar_foreach);
test(rb_define_method);
- test(rb_define_method_id);
test(rb_define_module_function);
test(rb_define_singleton_method);
test(rb_define_protected_method);
test(rb_define_private_method);
- test(rb_define_global_function);
}
diff --git a/ext/-test-/cxxanyargs/depend b/ext/-test-/cxxanyargs/depend
index ca821409a2..02113b6c26 100644
--- a/ext/-test-/cxxanyargs/depend
+++ b/ext/-test-/cxxanyargs/depend
@@ -6,7 +6,7 @@ $(TARGET_SO) $(STATIC_LIB): $(FAILURES:.cpp=.failed)
$(Q)$(RUBY) -rfileutils \
-e "t = ARGV.shift" \
-e "err = IO.popen(ARGV, err:[:child, :out], &:read)" \
- -e "abort err unless /rb_define_method/ =~ err.b" \
+ -e "abort err unless /rb_define_method/ =~ err" \
-e "File.write(t, err)" $@ $(MAKE) $(*F).o
# AUTOGENERATED DEPENDENCIES START
diff --git a/ext/-test-/cxxanyargs/extconf.rb b/ext/-test-/cxxanyargs/extconf.rb
index d1d2469209..d2a740b989 100644
--- a/ext/-test-/cxxanyargs/extconf.rb
+++ b/ext/-test-/cxxanyargs/extconf.rb
@@ -2,19 +2,12 @@
cxx = MakeMakefile["C++"]
-# #### have_devel hack ####
-# cxx.try_compile tries to detect compilers, but the try_compile below is
-# trying to detect a compiler in a different way. We need to prevent the
-# default detection routine.
-
-cxx.instance_variable_set(:'@have_devel', true)
-
-ok = cxx.try_link(<<~'begin', "") do |x|
+ok = cxx.try_compile(<<~'begin', "") do |x|
#include "ruby/config.h"
namespace {
- typedef int conftest1[SIZEOF_LONG == sizeof(long) ? 1 : -1];
- typedef int conftest2[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
+ typedef int conftest[SIZEOF_LONG == sizeof(long) ? 1 : -1];
+ typedef int conftest[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
}
int
@@ -28,15 +21,11 @@ begin
x.sub! %<#include "ruby.h">, ''
end
-cxx.instance_variable_set(:'@have_devel', ok)
-
if ok
$srcs = %w[cxxanyargs.cpp]
failures = Dir.glob($srcdir + "/failure*.cpp").map {|n| File.basename(n)}
$cleanfiles << "$(FAILURES:.cpp=.failed)"
create_makefile("-test-/cxxanyargs") do |mk|
mk << "FAILURES #{['=', failures].join(' ')}\n"
- mk << ".IGNORE: $(FAILURES:.cpp=.o)\n" unless $mswin
- mk
end
end
diff --git a/ext/-test-/debug/depend b/ext/-test-/debug/depend
index dad22d46de..662ed87510 100644
--- a/ext/-test-/debug/depend
+++ b/ext/-test-/debug/depend
@@ -2,157 +2,8 @@
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -162,157 +13,8 @@ init.o: $(hdrdir)/ruby/subst.h
init.o: init.c
inspector.o: $(RUBY_EXTCONF_H)
inspector.o: $(arch_hdrdir)/ruby/config.h
-inspector.o: $(hdrdir)/ruby/internal/anyargs.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-inspector.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-inspector.o: $(hdrdir)/ruby/internal/assume.h
-inspector.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-inspector.o: $(hdrdir)/ruby/internal/attr/artificial.h
-inspector.o: $(hdrdir)/ruby/internal/attr/cold.h
-inspector.o: $(hdrdir)/ruby/internal/attr/const.h
-inspector.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-inspector.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-inspector.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-inspector.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-inspector.o: $(hdrdir)/ruby/internal/attr/error.h
-inspector.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-inspector.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-inspector.o: $(hdrdir)/ruby/internal/attr/format.h
-inspector.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-inspector.o: $(hdrdir)/ruby/internal/attr/noalias.h
-inspector.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-inspector.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-inspector.o: $(hdrdir)/ruby/internal/attr/noinline.h
-inspector.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-inspector.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-inspector.o: $(hdrdir)/ruby/internal/attr/pure.h
-inspector.o: $(hdrdir)/ruby/internal/attr/restrict.h
-inspector.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-inspector.o: $(hdrdir)/ruby/internal/attr/warning.h
-inspector.o: $(hdrdir)/ruby/internal/attr/weakref.h
-inspector.o: $(hdrdir)/ruby/internal/cast.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-inspector.o: $(hdrdir)/ruby/internal/compiler_since.h
-inspector.o: $(hdrdir)/ruby/internal/config.h
-inspector.o: $(hdrdir)/ruby/internal/constant_p.h
-inspector.o: $(hdrdir)/ruby/internal/core.h
-inspector.o: $(hdrdir)/ruby/internal/core/rarray.h
-inspector.o: $(hdrdir)/ruby/internal/core/rbasic.h
-inspector.o: $(hdrdir)/ruby/internal/core/rbignum.h
-inspector.o: $(hdrdir)/ruby/internal/core/rclass.h
-inspector.o: $(hdrdir)/ruby/internal/core/rdata.h
-inspector.o: $(hdrdir)/ruby/internal/core/rfile.h
-inspector.o: $(hdrdir)/ruby/internal/core/rhash.h
-inspector.o: $(hdrdir)/ruby/internal/core/robject.h
-inspector.o: $(hdrdir)/ruby/internal/core/rregexp.h
-inspector.o: $(hdrdir)/ruby/internal/core/rstring.h
-inspector.o: $(hdrdir)/ruby/internal/core/rstruct.h
-inspector.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-inspector.o: $(hdrdir)/ruby/internal/ctype.h
-inspector.o: $(hdrdir)/ruby/internal/dllexport.h
-inspector.o: $(hdrdir)/ruby/internal/dosish.h
-inspector.o: $(hdrdir)/ruby/internal/error.h
-inspector.o: $(hdrdir)/ruby/internal/eval.h
-inspector.o: $(hdrdir)/ruby/internal/event.h
-inspector.o: $(hdrdir)/ruby/internal/fl_type.h
-inspector.o: $(hdrdir)/ruby/internal/gc.h
-inspector.o: $(hdrdir)/ruby/internal/glob.h
-inspector.o: $(hdrdir)/ruby/internal/globals.h
-inspector.o: $(hdrdir)/ruby/internal/has/attribute.h
-inspector.o: $(hdrdir)/ruby/internal/has/builtin.h
-inspector.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-inspector.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-inspector.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-inspector.o: $(hdrdir)/ruby/internal/has/extension.h
-inspector.o: $(hdrdir)/ruby/internal/has/feature.h
-inspector.o: $(hdrdir)/ruby/internal/has/warning.h
-inspector.o: $(hdrdir)/ruby/internal/intern/array.h
-inspector.o: $(hdrdir)/ruby/internal/intern/bignum.h
-inspector.o: $(hdrdir)/ruby/internal/intern/class.h
-inspector.o: $(hdrdir)/ruby/internal/intern/compar.h
-inspector.o: $(hdrdir)/ruby/internal/intern/complex.h
-inspector.o: $(hdrdir)/ruby/internal/intern/cont.h
-inspector.o: $(hdrdir)/ruby/internal/intern/dir.h
-inspector.o: $(hdrdir)/ruby/internal/intern/enum.h
-inspector.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-inspector.o: $(hdrdir)/ruby/internal/intern/error.h
-inspector.o: $(hdrdir)/ruby/internal/intern/eval.h
-inspector.o: $(hdrdir)/ruby/internal/intern/file.h
-inspector.o: $(hdrdir)/ruby/internal/intern/gc.h
-inspector.o: $(hdrdir)/ruby/internal/intern/hash.h
-inspector.o: $(hdrdir)/ruby/internal/intern/io.h
-inspector.o: $(hdrdir)/ruby/internal/intern/load.h
-inspector.o: $(hdrdir)/ruby/internal/intern/marshal.h
-inspector.o: $(hdrdir)/ruby/internal/intern/numeric.h
-inspector.o: $(hdrdir)/ruby/internal/intern/object.h
-inspector.o: $(hdrdir)/ruby/internal/intern/parse.h
-inspector.o: $(hdrdir)/ruby/internal/intern/proc.h
-inspector.o: $(hdrdir)/ruby/internal/intern/process.h
-inspector.o: $(hdrdir)/ruby/internal/intern/random.h
-inspector.o: $(hdrdir)/ruby/internal/intern/range.h
-inspector.o: $(hdrdir)/ruby/internal/intern/rational.h
-inspector.o: $(hdrdir)/ruby/internal/intern/re.h
-inspector.o: $(hdrdir)/ruby/internal/intern/ruby.h
-inspector.o: $(hdrdir)/ruby/internal/intern/select.h
-inspector.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-inspector.o: $(hdrdir)/ruby/internal/intern/signal.h
-inspector.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-inspector.o: $(hdrdir)/ruby/internal/intern/string.h
-inspector.o: $(hdrdir)/ruby/internal/intern/struct.h
-inspector.o: $(hdrdir)/ruby/internal/intern/thread.h
-inspector.o: $(hdrdir)/ruby/internal/intern/time.h
-inspector.o: $(hdrdir)/ruby/internal/intern/variable.h
-inspector.o: $(hdrdir)/ruby/internal/intern/vm.h
-inspector.o: $(hdrdir)/ruby/internal/interpreter.h
-inspector.o: $(hdrdir)/ruby/internal/iterator.h
-inspector.o: $(hdrdir)/ruby/internal/memory.h
-inspector.o: $(hdrdir)/ruby/internal/method.h
-inspector.o: $(hdrdir)/ruby/internal/module.h
-inspector.o: $(hdrdir)/ruby/internal/newobj.h
-inspector.o: $(hdrdir)/ruby/internal/rgengc.h
-inspector.o: $(hdrdir)/ruby/internal/scan_args.h
-inspector.o: $(hdrdir)/ruby/internal/special_consts.h
-inspector.o: $(hdrdir)/ruby/internal/static_assert.h
-inspector.o: $(hdrdir)/ruby/internal/stdalign.h
-inspector.o: $(hdrdir)/ruby/internal/stdbool.h
-inspector.o: $(hdrdir)/ruby/internal/symbol.h
-inspector.o: $(hdrdir)/ruby/internal/token_paste.h
-inspector.o: $(hdrdir)/ruby/internal/value.h
-inspector.o: $(hdrdir)/ruby/internal/value_type.h
-inspector.o: $(hdrdir)/ruby/internal/variable.h
-inspector.o: $(hdrdir)/ruby/internal/warning_push.h
-inspector.o: $(hdrdir)/ruby/internal/xmalloc.h
inspector.o: $(hdrdir)/ruby/assert.h
inspector.o: $(hdrdir)/ruby/backward.h
-inspector.o: $(hdrdir)/ruby/backward/2/assume.h
-inspector.o: $(hdrdir)/ruby/backward/2/attributes.h
-inspector.o: $(hdrdir)/ruby/backward/2/bool.h
-inspector.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-inspector.o: $(hdrdir)/ruby/backward/2/inttypes.h
-inspector.o: $(hdrdir)/ruby/backward/2/limits.h
-inspector.o: $(hdrdir)/ruby/backward/2/long_long.h
-inspector.o: $(hdrdir)/ruby/backward/2/stdalign.h
-inspector.o: $(hdrdir)/ruby/backward/2/stdarg.h
inspector.o: $(hdrdir)/ruby/debug.h
inspector.o: $(hdrdir)/ruby/defines.h
inspector.o: $(hdrdir)/ruby/intern.h
@@ -323,157 +25,8 @@ inspector.o: $(hdrdir)/ruby/subst.h
inspector.o: inspector.c
profile_frames.o: $(RUBY_EXTCONF_H)
profile_frames.o: $(arch_hdrdir)/ruby/config.h
-profile_frames.o: $(hdrdir)/ruby/internal/anyargs.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-profile_frames.o: $(hdrdir)/ruby/internal/assume.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/artificial.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/cold.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/const.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/error.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/format.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/noalias.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/noinline.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/pure.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/restrict.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/warning.h
-profile_frames.o: $(hdrdir)/ruby/internal/attr/weakref.h
-profile_frames.o: $(hdrdir)/ruby/internal/cast.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-profile_frames.o: $(hdrdir)/ruby/internal/compiler_since.h
-profile_frames.o: $(hdrdir)/ruby/internal/config.h
-profile_frames.o: $(hdrdir)/ruby/internal/constant_p.h
-profile_frames.o: $(hdrdir)/ruby/internal/core.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rarray.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rbasic.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rbignum.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rclass.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rdata.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rfile.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rhash.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/robject.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rregexp.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rstring.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rstruct.h
-profile_frames.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-profile_frames.o: $(hdrdir)/ruby/internal/ctype.h
-profile_frames.o: $(hdrdir)/ruby/internal/dllexport.h
-profile_frames.o: $(hdrdir)/ruby/internal/dosish.h
-profile_frames.o: $(hdrdir)/ruby/internal/error.h
-profile_frames.o: $(hdrdir)/ruby/internal/eval.h
-profile_frames.o: $(hdrdir)/ruby/internal/event.h
-profile_frames.o: $(hdrdir)/ruby/internal/fl_type.h
-profile_frames.o: $(hdrdir)/ruby/internal/gc.h
-profile_frames.o: $(hdrdir)/ruby/internal/glob.h
-profile_frames.o: $(hdrdir)/ruby/internal/globals.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/attribute.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/builtin.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/extension.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/feature.h
-profile_frames.o: $(hdrdir)/ruby/internal/has/warning.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/array.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/bignum.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/class.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/compar.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/complex.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/cont.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/dir.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/enum.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/error.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/eval.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/file.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/gc.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/hash.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/io.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/load.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/marshal.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/numeric.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/object.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/parse.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/proc.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/process.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/random.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/range.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/rational.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/re.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/ruby.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/select.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/signal.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/string.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/struct.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/thread.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/time.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/variable.h
-profile_frames.o: $(hdrdir)/ruby/internal/intern/vm.h
-profile_frames.o: $(hdrdir)/ruby/internal/interpreter.h
-profile_frames.o: $(hdrdir)/ruby/internal/iterator.h
-profile_frames.o: $(hdrdir)/ruby/internal/memory.h
-profile_frames.o: $(hdrdir)/ruby/internal/method.h
-profile_frames.o: $(hdrdir)/ruby/internal/module.h
-profile_frames.o: $(hdrdir)/ruby/internal/newobj.h
-profile_frames.o: $(hdrdir)/ruby/internal/rgengc.h
-profile_frames.o: $(hdrdir)/ruby/internal/scan_args.h
-profile_frames.o: $(hdrdir)/ruby/internal/special_consts.h
-profile_frames.o: $(hdrdir)/ruby/internal/static_assert.h
-profile_frames.o: $(hdrdir)/ruby/internal/stdalign.h
-profile_frames.o: $(hdrdir)/ruby/internal/stdbool.h
-profile_frames.o: $(hdrdir)/ruby/internal/symbol.h
-profile_frames.o: $(hdrdir)/ruby/internal/token_paste.h
-profile_frames.o: $(hdrdir)/ruby/internal/value.h
-profile_frames.o: $(hdrdir)/ruby/internal/value_type.h
-profile_frames.o: $(hdrdir)/ruby/internal/variable.h
-profile_frames.o: $(hdrdir)/ruby/internal/warning_push.h
-profile_frames.o: $(hdrdir)/ruby/internal/xmalloc.h
profile_frames.o: $(hdrdir)/ruby/assert.h
profile_frames.o: $(hdrdir)/ruby/backward.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/assume.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/attributes.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/bool.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/inttypes.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/limits.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/long_long.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/stdalign.h
-profile_frames.o: $(hdrdir)/ruby/backward/2/stdarg.h
profile_frames.o: $(hdrdir)/ruby/debug.h
profile_frames.o: $(hdrdir)/ruby/defines.h
profile_frames.o: $(hdrdir)/ruby/intern.h
diff --git a/ext/-test-/enumerator_kw/depend b/ext/-test-/enumerator_kw/depend
index 4597e34027..b7489eaf73 100644
--- a/ext/-test-/enumerator_kw/depend
+++ b/ext/-test-/enumerator_kw/depend
@@ -2,157 +2,8 @@
enumerator_kw.o: $(RUBY_EXTCONF_H)
enumerator_kw.o: $(arch_hdrdir)/ruby/config.h
enumerator_kw.o: $(hdrdir)/ruby.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/anyargs.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/assume.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/artificial.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/cold.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/const.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/error.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/format.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noalias.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noinline.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/pure.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/restrict.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/warning.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/attr/weakref.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/cast.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_since.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/config.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/constant_p.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rarray.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rbasic.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rbignum.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rclass.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rdata.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rfile.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rhash.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/robject.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rregexp.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rstring.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rstruct.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/ctype.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/dllexport.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/dosish.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/error.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/eval.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/event.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/fl_type.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/gc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/glob.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/globals.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/attribute.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/builtin.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/extension.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/feature.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/has/warning.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/array.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/bignum.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/class.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/compar.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/complex.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/cont.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/dir.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/enum.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/error.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/eval.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/file.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/gc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/hash.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/io.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/load.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/marshal.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/numeric.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/object.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/parse.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/proc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/process.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/random.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/range.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/rational.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/re.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/ruby.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/select.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/signal.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/string.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/struct.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/thread.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/time.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/variable.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/intern/vm.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/interpreter.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/iterator.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/memory.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/method.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/module.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/newobj.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/rgengc.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/scan_args.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/special_consts.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/static_assert.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/stdalign.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/stdbool.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/symbol.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/token_paste.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/value.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/value_type.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/variable.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/warning_push.h
-enumerator_kw.o: $(hdrdir)/ruby/internal/xmalloc.h
enumerator_kw.o: $(hdrdir)/ruby/assert.h
enumerator_kw.o: $(hdrdir)/ruby/backward.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/assume.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/attributes.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/bool.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/inttypes.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/limits.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/long_long.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/stdalign.h
-enumerator_kw.o: $(hdrdir)/ruby/backward/2/stdarg.h
enumerator_kw.o: $(hdrdir)/ruby/defines.h
enumerator_kw.o: $(hdrdir)/ruby/intern.h
enumerator_kw.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/exception/depend b/ext/-test-/exception/depend
index 47f1ac6a6a..d0958de9b8 100644
--- a/ext/-test-/exception/depend
+++ b/ext/-test-/exception/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
dataerror.o: $(RUBY_EXTCONF_H)
dataerror.o: $(arch_hdrdir)/ruby/config.h
-dataerror.o: $(hdrdir)/ruby/internal/anyargs.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-dataerror.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-dataerror.o: $(hdrdir)/ruby/internal/assume.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/artificial.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/cold.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/const.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/error.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/format.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/noalias.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/noinline.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/pure.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/restrict.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/warning.h
-dataerror.o: $(hdrdir)/ruby/internal/attr/weakref.h
-dataerror.o: $(hdrdir)/ruby/internal/cast.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-dataerror.o: $(hdrdir)/ruby/internal/compiler_since.h
-dataerror.o: $(hdrdir)/ruby/internal/config.h
-dataerror.o: $(hdrdir)/ruby/internal/constant_p.h
-dataerror.o: $(hdrdir)/ruby/internal/core.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rarray.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rbasic.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rbignum.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rclass.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rdata.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rfile.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rhash.h
-dataerror.o: $(hdrdir)/ruby/internal/core/robject.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rregexp.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rstring.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rstruct.h
-dataerror.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-dataerror.o: $(hdrdir)/ruby/internal/ctype.h
-dataerror.o: $(hdrdir)/ruby/internal/dllexport.h
-dataerror.o: $(hdrdir)/ruby/internal/dosish.h
-dataerror.o: $(hdrdir)/ruby/internal/error.h
-dataerror.o: $(hdrdir)/ruby/internal/eval.h
-dataerror.o: $(hdrdir)/ruby/internal/event.h
-dataerror.o: $(hdrdir)/ruby/internal/fl_type.h
-dataerror.o: $(hdrdir)/ruby/internal/gc.h
-dataerror.o: $(hdrdir)/ruby/internal/glob.h
-dataerror.o: $(hdrdir)/ruby/internal/globals.h
-dataerror.o: $(hdrdir)/ruby/internal/has/attribute.h
-dataerror.o: $(hdrdir)/ruby/internal/has/builtin.h
-dataerror.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-dataerror.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-dataerror.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-dataerror.o: $(hdrdir)/ruby/internal/has/extension.h
-dataerror.o: $(hdrdir)/ruby/internal/has/feature.h
-dataerror.o: $(hdrdir)/ruby/internal/has/warning.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/array.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/bignum.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/class.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/compar.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/complex.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/cont.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/dir.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/enum.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/error.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/eval.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/file.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/gc.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/hash.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/io.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/load.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/marshal.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/numeric.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/object.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/parse.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/proc.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/process.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/random.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/range.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/rational.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/re.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/ruby.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/select.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/signal.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/string.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/struct.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/thread.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/time.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/variable.h
-dataerror.o: $(hdrdir)/ruby/internal/intern/vm.h
-dataerror.o: $(hdrdir)/ruby/internal/interpreter.h
-dataerror.o: $(hdrdir)/ruby/internal/iterator.h
-dataerror.o: $(hdrdir)/ruby/internal/memory.h
-dataerror.o: $(hdrdir)/ruby/internal/method.h
-dataerror.o: $(hdrdir)/ruby/internal/module.h
-dataerror.o: $(hdrdir)/ruby/internal/newobj.h
-dataerror.o: $(hdrdir)/ruby/internal/rgengc.h
-dataerror.o: $(hdrdir)/ruby/internal/scan_args.h
-dataerror.o: $(hdrdir)/ruby/internal/special_consts.h
-dataerror.o: $(hdrdir)/ruby/internal/static_assert.h
-dataerror.o: $(hdrdir)/ruby/internal/stdalign.h
-dataerror.o: $(hdrdir)/ruby/internal/stdbool.h
-dataerror.o: $(hdrdir)/ruby/internal/symbol.h
-dataerror.o: $(hdrdir)/ruby/internal/token_paste.h
-dataerror.o: $(hdrdir)/ruby/internal/value.h
-dataerror.o: $(hdrdir)/ruby/internal/value_type.h
-dataerror.o: $(hdrdir)/ruby/internal/variable.h
-dataerror.o: $(hdrdir)/ruby/internal/warning_push.h
-dataerror.o: $(hdrdir)/ruby/internal/xmalloc.h
dataerror.o: $(hdrdir)/ruby/assert.h
dataerror.o: $(hdrdir)/ruby/backward.h
-dataerror.o: $(hdrdir)/ruby/backward/2/assume.h
-dataerror.o: $(hdrdir)/ruby/backward/2/attributes.h
-dataerror.o: $(hdrdir)/ruby/backward/2/bool.h
-dataerror.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-dataerror.o: $(hdrdir)/ruby/backward/2/inttypes.h
-dataerror.o: $(hdrdir)/ruby/backward/2/limits.h
-dataerror.o: $(hdrdir)/ruby/backward/2/long_long.h
-dataerror.o: $(hdrdir)/ruby/backward/2/stdalign.h
-dataerror.o: $(hdrdir)/ruby/backward/2/stdarg.h
dataerror.o: $(hdrdir)/ruby/defines.h
dataerror.o: $(hdrdir)/ruby/intern.h
dataerror.o: $(hdrdir)/ruby/missing.h
@@ -162,157 +13,8 @@ dataerror.o: dataerror.c
enc_raise.o: $(RUBY_EXTCONF_H)
enc_raise.o: $(arch_hdrdir)/ruby/config.h
enc_raise.o: $(hdrdir)/ruby.h
-enc_raise.o: $(hdrdir)/ruby/internal/anyargs.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-enc_raise.o: $(hdrdir)/ruby/internal/assume.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/artificial.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/cold.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/const.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/error.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/format.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/noalias.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/noinline.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/pure.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/restrict.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/warning.h
-enc_raise.o: $(hdrdir)/ruby/internal/attr/weakref.h
-enc_raise.o: $(hdrdir)/ruby/internal/cast.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-enc_raise.o: $(hdrdir)/ruby/internal/compiler_since.h
-enc_raise.o: $(hdrdir)/ruby/internal/config.h
-enc_raise.o: $(hdrdir)/ruby/internal/constant_p.h
-enc_raise.o: $(hdrdir)/ruby/internal/core.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rarray.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rbasic.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rbignum.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rclass.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rdata.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rfile.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rhash.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/robject.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rregexp.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rstring.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rstruct.h
-enc_raise.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-enc_raise.o: $(hdrdir)/ruby/internal/ctype.h
-enc_raise.o: $(hdrdir)/ruby/internal/dllexport.h
-enc_raise.o: $(hdrdir)/ruby/internal/dosish.h
-enc_raise.o: $(hdrdir)/ruby/internal/error.h
-enc_raise.o: $(hdrdir)/ruby/internal/eval.h
-enc_raise.o: $(hdrdir)/ruby/internal/event.h
-enc_raise.o: $(hdrdir)/ruby/internal/fl_type.h
-enc_raise.o: $(hdrdir)/ruby/internal/gc.h
-enc_raise.o: $(hdrdir)/ruby/internal/glob.h
-enc_raise.o: $(hdrdir)/ruby/internal/globals.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/attribute.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/builtin.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/extension.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/feature.h
-enc_raise.o: $(hdrdir)/ruby/internal/has/warning.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/array.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/bignum.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/class.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/compar.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/complex.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/cont.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/dir.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/enum.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/error.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/eval.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/file.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/gc.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/hash.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/io.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/load.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/marshal.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/numeric.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/object.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/parse.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/proc.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/process.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/random.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/range.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/rational.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/re.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/ruby.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/select.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/signal.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/string.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/struct.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/thread.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/time.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/variable.h
-enc_raise.o: $(hdrdir)/ruby/internal/intern/vm.h
-enc_raise.o: $(hdrdir)/ruby/internal/interpreter.h
-enc_raise.o: $(hdrdir)/ruby/internal/iterator.h
-enc_raise.o: $(hdrdir)/ruby/internal/memory.h
-enc_raise.o: $(hdrdir)/ruby/internal/method.h
-enc_raise.o: $(hdrdir)/ruby/internal/module.h
-enc_raise.o: $(hdrdir)/ruby/internal/newobj.h
-enc_raise.o: $(hdrdir)/ruby/internal/rgengc.h
-enc_raise.o: $(hdrdir)/ruby/internal/scan_args.h
-enc_raise.o: $(hdrdir)/ruby/internal/special_consts.h
-enc_raise.o: $(hdrdir)/ruby/internal/static_assert.h
-enc_raise.o: $(hdrdir)/ruby/internal/stdalign.h
-enc_raise.o: $(hdrdir)/ruby/internal/stdbool.h
-enc_raise.o: $(hdrdir)/ruby/internal/symbol.h
-enc_raise.o: $(hdrdir)/ruby/internal/token_paste.h
-enc_raise.o: $(hdrdir)/ruby/internal/value.h
-enc_raise.o: $(hdrdir)/ruby/internal/value_type.h
-enc_raise.o: $(hdrdir)/ruby/internal/variable.h
-enc_raise.o: $(hdrdir)/ruby/internal/warning_push.h
-enc_raise.o: $(hdrdir)/ruby/internal/xmalloc.h
enc_raise.o: $(hdrdir)/ruby/assert.h
enc_raise.o: $(hdrdir)/ruby/backward.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/assume.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/attributes.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/bool.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/inttypes.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/limits.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/long_long.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/stdalign.h
-enc_raise.o: $(hdrdir)/ruby/backward/2/stdarg.h
enc_raise.o: $(hdrdir)/ruby/defines.h
enc_raise.o: $(hdrdir)/ruby/encoding.h
enc_raise.o: $(hdrdir)/ruby/intern.h
@@ -326,157 +28,8 @@ enc_raise.o: enc_raise.c
ensured.o: $(RUBY_EXTCONF_H)
ensured.o: $(arch_hdrdir)/ruby/config.h
ensured.o: $(hdrdir)/ruby.h
-ensured.o: $(hdrdir)/ruby/internal/anyargs.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-ensured.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-ensured.o: $(hdrdir)/ruby/internal/assume.h
-ensured.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-ensured.o: $(hdrdir)/ruby/internal/attr/artificial.h
-ensured.o: $(hdrdir)/ruby/internal/attr/cold.h
-ensured.o: $(hdrdir)/ruby/internal/attr/const.h
-ensured.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-ensured.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-ensured.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-ensured.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-ensured.o: $(hdrdir)/ruby/internal/attr/error.h
-ensured.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-ensured.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-ensured.o: $(hdrdir)/ruby/internal/attr/format.h
-ensured.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-ensured.o: $(hdrdir)/ruby/internal/attr/noalias.h
-ensured.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-ensured.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-ensured.o: $(hdrdir)/ruby/internal/attr/noinline.h
-ensured.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-ensured.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-ensured.o: $(hdrdir)/ruby/internal/attr/pure.h
-ensured.o: $(hdrdir)/ruby/internal/attr/restrict.h
-ensured.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-ensured.o: $(hdrdir)/ruby/internal/attr/warning.h
-ensured.o: $(hdrdir)/ruby/internal/attr/weakref.h
-ensured.o: $(hdrdir)/ruby/internal/cast.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-ensured.o: $(hdrdir)/ruby/internal/compiler_since.h
-ensured.o: $(hdrdir)/ruby/internal/config.h
-ensured.o: $(hdrdir)/ruby/internal/constant_p.h
-ensured.o: $(hdrdir)/ruby/internal/core.h
-ensured.o: $(hdrdir)/ruby/internal/core/rarray.h
-ensured.o: $(hdrdir)/ruby/internal/core/rbasic.h
-ensured.o: $(hdrdir)/ruby/internal/core/rbignum.h
-ensured.o: $(hdrdir)/ruby/internal/core/rclass.h
-ensured.o: $(hdrdir)/ruby/internal/core/rdata.h
-ensured.o: $(hdrdir)/ruby/internal/core/rfile.h
-ensured.o: $(hdrdir)/ruby/internal/core/rhash.h
-ensured.o: $(hdrdir)/ruby/internal/core/robject.h
-ensured.o: $(hdrdir)/ruby/internal/core/rregexp.h
-ensured.o: $(hdrdir)/ruby/internal/core/rstring.h
-ensured.o: $(hdrdir)/ruby/internal/core/rstruct.h
-ensured.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-ensured.o: $(hdrdir)/ruby/internal/ctype.h
-ensured.o: $(hdrdir)/ruby/internal/dllexport.h
-ensured.o: $(hdrdir)/ruby/internal/dosish.h
-ensured.o: $(hdrdir)/ruby/internal/error.h
-ensured.o: $(hdrdir)/ruby/internal/eval.h
-ensured.o: $(hdrdir)/ruby/internal/event.h
-ensured.o: $(hdrdir)/ruby/internal/fl_type.h
-ensured.o: $(hdrdir)/ruby/internal/gc.h
-ensured.o: $(hdrdir)/ruby/internal/glob.h
-ensured.o: $(hdrdir)/ruby/internal/globals.h
-ensured.o: $(hdrdir)/ruby/internal/has/attribute.h
-ensured.o: $(hdrdir)/ruby/internal/has/builtin.h
-ensured.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-ensured.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-ensured.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-ensured.o: $(hdrdir)/ruby/internal/has/extension.h
-ensured.o: $(hdrdir)/ruby/internal/has/feature.h
-ensured.o: $(hdrdir)/ruby/internal/has/warning.h
-ensured.o: $(hdrdir)/ruby/internal/intern/array.h
-ensured.o: $(hdrdir)/ruby/internal/intern/bignum.h
-ensured.o: $(hdrdir)/ruby/internal/intern/class.h
-ensured.o: $(hdrdir)/ruby/internal/intern/compar.h
-ensured.o: $(hdrdir)/ruby/internal/intern/complex.h
-ensured.o: $(hdrdir)/ruby/internal/intern/cont.h
-ensured.o: $(hdrdir)/ruby/internal/intern/dir.h
-ensured.o: $(hdrdir)/ruby/internal/intern/enum.h
-ensured.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-ensured.o: $(hdrdir)/ruby/internal/intern/error.h
-ensured.o: $(hdrdir)/ruby/internal/intern/eval.h
-ensured.o: $(hdrdir)/ruby/internal/intern/file.h
-ensured.o: $(hdrdir)/ruby/internal/intern/gc.h
-ensured.o: $(hdrdir)/ruby/internal/intern/hash.h
-ensured.o: $(hdrdir)/ruby/internal/intern/io.h
-ensured.o: $(hdrdir)/ruby/internal/intern/load.h
-ensured.o: $(hdrdir)/ruby/internal/intern/marshal.h
-ensured.o: $(hdrdir)/ruby/internal/intern/numeric.h
-ensured.o: $(hdrdir)/ruby/internal/intern/object.h
-ensured.o: $(hdrdir)/ruby/internal/intern/parse.h
-ensured.o: $(hdrdir)/ruby/internal/intern/proc.h
-ensured.o: $(hdrdir)/ruby/internal/intern/process.h
-ensured.o: $(hdrdir)/ruby/internal/intern/random.h
-ensured.o: $(hdrdir)/ruby/internal/intern/range.h
-ensured.o: $(hdrdir)/ruby/internal/intern/rational.h
-ensured.o: $(hdrdir)/ruby/internal/intern/re.h
-ensured.o: $(hdrdir)/ruby/internal/intern/ruby.h
-ensured.o: $(hdrdir)/ruby/internal/intern/select.h
-ensured.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-ensured.o: $(hdrdir)/ruby/internal/intern/signal.h
-ensured.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-ensured.o: $(hdrdir)/ruby/internal/intern/string.h
-ensured.o: $(hdrdir)/ruby/internal/intern/struct.h
-ensured.o: $(hdrdir)/ruby/internal/intern/thread.h
-ensured.o: $(hdrdir)/ruby/internal/intern/time.h
-ensured.o: $(hdrdir)/ruby/internal/intern/variable.h
-ensured.o: $(hdrdir)/ruby/internal/intern/vm.h
-ensured.o: $(hdrdir)/ruby/internal/interpreter.h
-ensured.o: $(hdrdir)/ruby/internal/iterator.h
-ensured.o: $(hdrdir)/ruby/internal/memory.h
-ensured.o: $(hdrdir)/ruby/internal/method.h
-ensured.o: $(hdrdir)/ruby/internal/module.h
-ensured.o: $(hdrdir)/ruby/internal/newobj.h
-ensured.o: $(hdrdir)/ruby/internal/rgengc.h
-ensured.o: $(hdrdir)/ruby/internal/scan_args.h
-ensured.o: $(hdrdir)/ruby/internal/special_consts.h
-ensured.o: $(hdrdir)/ruby/internal/static_assert.h
-ensured.o: $(hdrdir)/ruby/internal/stdalign.h
-ensured.o: $(hdrdir)/ruby/internal/stdbool.h
-ensured.o: $(hdrdir)/ruby/internal/symbol.h
-ensured.o: $(hdrdir)/ruby/internal/token_paste.h
-ensured.o: $(hdrdir)/ruby/internal/value.h
-ensured.o: $(hdrdir)/ruby/internal/value_type.h
-ensured.o: $(hdrdir)/ruby/internal/variable.h
-ensured.o: $(hdrdir)/ruby/internal/warning_push.h
-ensured.o: $(hdrdir)/ruby/internal/xmalloc.h
ensured.o: $(hdrdir)/ruby/assert.h
ensured.o: $(hdrdir)/ruby/backward.h
-ensured.o: $(hdrdir)/ruby/backward/2/assume.h
-ensured.o: $(hdrdir)/ruby/backward/2/attributes.h
-ensured.o: $(hdrdir)/ruby/backward/2/bool.h
-ensured.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-ensured.o: $(hdrdir)/ruby/backward/2/inttypes.h
-ensured.o: $(hdrdir)/ruby/backward/2/limits.h
-ensured.o: $(hdrdir)/ruby/backward/2/long_long.h
-ensured.o: $(hdrdir)/ruby/backward/2/stdalign.h
-ensured.o: $(hdrdir)/ruby/backward/2/stdarg.h
ensured.o: $(hdrdir)/ruby/defines.h
ensured.o: $(hdrdir)/ruby/intern.h
ensured.o: $(hdrdir)/ruby/missing.h
@@ -487,157 +40,8 @@ ensured.o: ensured.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/fatal/depend b/ext/-test-/fatal/depend
index bb2e61a51f..c74360fdf9 100644
--- a/ext/-test-/fatal/depend
+++ b/ext/-test-/fatal/depend
@@ -2,157 +2,8 @@
rb_fatal.o: $(RUBY_EXTCONF_H)
rb_fatal.o: $(arch_hdrdir)/ruby/config.h
rb_fatal.o: $(hdrdir)/ruby.h
-rb_fatal.o: $(hdrdir)/ruby/internal/anyargs.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-rb_fatal.o: $(hdrdir)/ruby/internal/assume.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/artificial.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/cold.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/const.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/error.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/format.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/noalias.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/noinline.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/pure.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/restrict.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/warning.h
-rb_fatal.o: $(hdrdir)/ruby/internal/attr/weakref.h
-rb_fatal.o: $(hdrdir)/ruby/internal/cast.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-rb_fatal.o: $(hdrdir)/ruby/internal/compiler_since.h
-rb_fatal.o: $(hdrdir)/ruby/internal/config.h
-rb_fatal.o: $(hdrdir)/ruby/internal/constant_p.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rarray.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rbasic.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rbignum.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rclass.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rdata.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rfile.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rhash.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/robject.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rregexp.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rstring.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rstruct.h
-rb_fatal.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-rb_fatal.o: $(hdrdir)/ruby/internal/ctype.h
-rb_fatal.o: $(hdrdir)/ruby/internal/dllexport.h
-rb_fatal.o: $(hdrdir)/ruby/internal/dosish.h
-rb_fatal.o: $(hdrdir)/ruby/internal/error.h
-rb_fatal.o: $(hdrdir)/ruby/internal/eval.h
-rb_fatal.o: $(hdrdir)/ruby/internal/event.h
-rb_fatal.o: $(hdrdir)/ruby/internal/fl_type.h
-rb_fatal.o: $(hdrdir)/ruby/internal/gc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/glob.h
-rb_fatal.o: $(hdrdir)/ruby/internal/globals.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/attribute.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/builtin.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/extension.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/feature.h
-rb_fatal.o: $(hdrdir)/ruby/internal/has/warning.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/array.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/bignum.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/class.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/compar.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/complex.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/cont.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/dir.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/enum.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/error.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/eval.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/file.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/gc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/hash.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/io.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/load.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/marshal.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/numeric.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/object.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/parse.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/proc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/process.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/random.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/range.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/rational.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/re.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/ruby.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/select.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/signal.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/string.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/struct.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/thread.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/time.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/variable.h
-rb_fatal.o: $(hdrdir)/ruby/internal/intern/vm.h
-rb_fatal.o: $(hdrdir)/ruby/internal/interpreter.h
-rb_fatal.o: $(hdrdir)/ruby/internal/iterator.h
-rb_fatal.o: $(hdrdir)/ruby/internal/memory.h
-rb_fatal.o: $(hdrdir)/ruby/internal/method.h
-rb_fatal.o: $(hdrdir)/ruby/internal/module.h
-rb_fatal.o: $(hdrdir)/ruby/internal/newobj.h
-rb_fatal.o: $(hdrdir)/ruby/internal/rgengc.h
-rb_fatal.o: $(hdrdir)/ruby/internal/scan_args.h
-rb_fatal.o: $(hdrdir)/ruby/internal/special_consts.h
-rb_fatal.o: $(hdrdir)/ruby/internal/static_assert.h
-rb_fatal.o: $(hdrdir)/ruby/internal/stdalign.h
-rb_fatal.o: $(hdrdir)/ruby/internal/stdbool.h
-rb_fatal.o: $(hdrdir)/ruby/internal/symbol.h
-rb_fatal.o: $(hdrdir)/ruby/internal/token_paste.h
-rb_fatal.o: $(hdrdir)/ruby/internal/value.h
-rb_fatal.o: $(hdrdir)/ruby/internal/value_type.h
-rb_fatal.o: $(hdrdir)/ruby/internal/variable.h
-rb_fatal.o: $(hdrdir)/ruby/internal/warning_push.h
-rb_fatal.o: $(hdrdir)/ruby/internal/xmalloc.h
rb_fatal.o: $(hdrdir)/ruby/assert.h
rb_fatal.o: $(hdrdir)/ruby/backward.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/assume.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/attributes.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/bool.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/inttypes.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/limits.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/long_long.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/stdalign.h
-rb_fatal.o: $(hdrdir)/ruby/backward/2/stdarg.h
rb_fatal.o: $(hdrdir)/ruby/defines.h
rb_fatal.o: $(hdrdir)/ruby/intern.h
rb_fatal.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/file/depend b/ext/-test-/file/depend
index 12b0bbd825..afdf116a9d 100644
--- a/ext/-test-/file/depend
+++ b/ext/-test-/file/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
fs.o: $(RUBY_EXTCONF_H)
fs.o: $(arch_hdrdir)/ruby/config.h
-fs.o: $(hdrdir)/ruby/internal/anyargs.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-fs.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-fs.o: $(hdrdir)/ruby/internal/assume.h
-fs.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-fs.o: $(hdrdir)/ruby/internal/attr/artificial.h
-fs.o: $(hdrdir)/ruby/internal/attr/cold.h
-fs.o: $(hdrdir)/ruby/internal/attr/const.h
-fs.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-fs.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-fs.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-fs.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-fs.o: $(hdrdir)/ruby/internal/attr/error.h
-fs.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-fs.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-fs.o: $(hdrdir)/ruby/internal/attr/format.h
-fs.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-fs.o: $(hdrdir)/ruby/internal/attr/noalias.h
-fs.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-fs.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-fs.o: $(hdrdir)/ruby/internal/attr/noinline.h
-fs.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-fs.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-fs.o: $(hdrdir)/ruby/internal/attr/pure.h
-fs.o: $(hdrdir)/ruby/internal/attr/restrict.h
-fs.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-fs.o: $(hdrdir)/ruby/internal/attr/warning.h
-fs.o: $(hdrdir)/ruby/internal/attr/weakref.h
-fs.o: $(hdrdir)/ruby/internal/cast.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-fs.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-fs.o: $(hdrdir)/ruby/internal/compiler_since.h
-fs.o: $(hdrdir)/ruby/internal/config.h
-fs.o: $(hdrdir)/ruby/internal/constant_p.h
-fs.o: $(hdrdir)/ruby/internal/core.h
-fs.o: $(hdrdir)/ruby/internal/core/rarray.h
-fs.o: $(hdrdir)/ruby/internal/core/rbasic.h
-fs.o: $(hdrdir)/ruby/internal/core/rbignum.h
-fs.o: $(hdrdir)/ruby/internal/core/rclass.h
-fs.o: $(hdrdir)/ruby/internal/core/rdata.h
-fs.o: $(hdrdir)/ruby/internal/core/rfile.h
-fs.o: $(hdrdir)/ruby/internal/core/rhash.h
-fs.o: $(hdrdir)/ruby/internal/core/robject.h
-fs.o: $(hdrdir)/ruby/internal/core/rregexp.h
-fs.o: $(hdrdir)/ruby/internal/core/rstring.h
-fs.o: $(hdrdir)/ruby/internal/core/rstruct.h
-fs.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-fs.o: $(hdrdir)/ruby/internal/ctype.h
-fs.o: $(hdrdir)/ruby/internal/dllexport.h
-fs.o: $(hdrdir)/ruby/internal/dosish.h
-fs.o: $(hdrdir)/ruby/internal/error.h
-fs.o: $(hdrdir)/ruby/internal/eval.h
-fs.o: $(hdrdir)/ruby/internal/event.h
-fs.o: $(hdrdir)/ruby/internal/fl_type.h
-fs.o: $(hdrdir)/ruby/internal/gc.h
-fs.o: $(hdrdir)/ruby/internal/glob.h
-fs.o: $(hdrdir)/ruby/internal/globals.h
-fs.o: $(hdrdir)/ruby/internal/has/attribute.h
-fs.o: $(hdrdir)/ruby/internal/has/builtin.h
-fs.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-fs.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-fs.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-fs.o: $(hdrdir)/ruby/internal/has/extension.h
-fs.o: $(hdrdir)/ruby/internal/has/feature.h
-fs.o: $(hdrdir)/ruby/internal/has/warning.h
-fs.o: $(hdrdir)/ruby/internal/intern/array.h
-fs.o: $(hdrdir)/ruby/internal/intern/bignum.h
-fs.o: $(hdrdir)/ruby/internal/intern/class.h
-fs.o: $(hdrdir)/ruby/internal/intern/compar.h
-fs.o: $(hdrdir)/ruby/internal/intern/complex.h
-fs.o: $(hdrdir)/ruby/internal/intern/cont.h
-fs.o: $(hdrdir)/ruby/internal/intern/dir.h
-fs.o: $(hdrdir)/ruby/internal/intern/enum.h
-fs.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-fs.o: $(hdrdir)/ruby/internal/intern/error.h
-fs.o: $(hdrdir)/ruby/internal/intern/eval.h
-fs.o: $(hdrdir)/ruby/internal/intern/file.h
-fs.o: $(hdrdir)/ruby/internal/intern/gc.h
-fs.o: $(hdrdir)/ruby/internal/intern/hash.h
-fs.o: $(hdrdir)/ruby/internal/intern/io.h
-fs.o: $(hdrdir)/ruby/internal/intern/load.h
-fs.o: $(hdrdir)/ruby/internal/intern/marshal.h
-fs.o: $(hdrdir)/ruby/internal/intern/numeric.h
-fs.o: $(hdrdir)/ruby/internal/intern/object.h
-fs.o: $(hdrdir)/ruby/internal/intern/parse.h
-fs.o: $(hdrdir)/ruby/internal/intern/proc.h
-fs.o: $(hdrdir)/ruby/internal/intern/process.h
-fs.o: $(hdrdir)/ruby/internal/intern/random.h
-fs.o: $(hdrdir)/ruby/internal/intern/range.h
-fs.o: $(hdrdir)/ruby/internal/intern/rational.h
-fs.o: $(hdrdir)/ruby/internal/intern/re.h
-fs.o: $(hdrdir)/ruby/internal/intern/ruby.h
-fs.o: $(hdrdir)/ruby/internal/intern/select.h
-fs.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-fs.o: $(hdrdir)/ruby/internal/intern/signal.h
-fs.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-fs.o: $(hdrdir)/ruby/internal/intern/string.h
-fs.o: $(hdrdir)/ruby/internal/intern/struct.h
-fs.o: $(hdrdir)/ruby/internal/intern/thread.h
-fs.o: $(hdrdir)/ruby/internal/intern/time.h
-fs.o: $(hdrdir)/ruby/internal/intern/variable.h
-fs.o: $(hdrdir)/ruby/internal/intern/vm.h
-fs.o: $(hdrdir)/ruby/internal/interpreter.h
-fs.o: $(hdrdir)/ruby/internal/iterator.h
-fs.o: $(hdrdir)/ruby/internal/memory.h
-fs.o: $(hdrdir)/ruby/internal/method.h
-fs.o: $(hdrdir)/ruby/internal/module.h
-fs.o: $(hdrdir)/ruby/internal/newobj.h
-fs.o: $(hdrdir)/ruby/internal/rgengc.h
-fs.o: $(hdrdir)/ruby/internal/scan_args.h
-fs.o: $(hdrdir)/ruby/internal/special_consts.h
-fs.o: $(hdrdir)/ruby/internal/static_assert.h
-fs.o: $(hdrdir)/ruby/internal/stdalign.h
-fs.o: $(hdrdir)/ruby/internal/stdbool.h
-fs.o: $(hdrdir)/ruby/internal/symbol.h
-fs.o: $(hdrdir)/ruby/internal/token_paste.h
-fs.o: $(hdrdir)/ruby/internal/value.h
-fs.o: $(hdrdir)/ruby/internal/value_type.h
-fs.o: $(hdrdir)/ruby/internal/variable.h
-fs.o: $(hdrdir)/ruby/internal/warning_push.h
-fs.o: $(hdrdir)/ruby/internal/xmalloc.h
fs.o: $(hdrdir)/ruby/assert.h
fs.o: $(hdrdir)/ruby/backward.h
-fs.o: $(hdrdir)/ruby/backward/2/assume.h
-fs.o: $(hdrdir)/ruby/backward/2/attributes.h
-fs.o: $(hdrdir)/ruby/backward/2/bool.h
-fs.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-fs.o: $(hdrdir)/ruby/backward/2/inttypes.h
-fs.o: $(hdrdir)/ruby/backward/2/limits.h
-fs.o: $(hdrdir)/ruby/backward/2/long_long.h
-fs.o: $(hdrdir)/ruby/backward/2/stdalign.h
-fs.o: $(hdrdir)/ruby/backward/2/stdarg.h
fs.o: $(hdrdir)/ruby/defines.h
fs.o: $(hdrdir)/ruby/encoding.h
fs.o: $(hdrdir)/ruby/intern.h
@@ -166,157 +17,8 @@ fs.o: fs.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -326,157 +28,8 @@ init.o: $(hdrdir)/ruby/subst.h
init.o: init.c
stat.o: $(RUBY_EXTCONF_H)
stat.o: $(arch_hdrdir)/ruby/config.h
-stat.o: $(hdrdir)/ruby/internal/anyargs.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-stat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-stat.o: $(hdrdir)/ruby/internal/assume.h
-stat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-stat.o: $(hdrdir)/ruby/internal/attr/artificial.h
-stat.o: $(hdrdir)/ruby/internal/attr/cold.h
-stat.o: $(hdrdir)/ruby/internal/attr/const.h
-stat.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-stat.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-stat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-stat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-stat.o: $(hdrdir)/ruby/internal/attr/error.h
-stat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-stat.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-stat.o: $(hdrdir)/ruby/internal/attr/format.h
-stat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-stat.o: $(hdrdir)/ruby/internal/attr/noalias.h
-stat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-stat.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-stat.o: $(hdrdir)/ruby/internal/attr/noinline.h
-stat.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-stat.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-stat.o: $(hdrdir)/ruby/internal/attr/pure.h
-stat.o: $(hdrdir)/ruby/internal/attr/restrict.h
-stat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-stat.o: $(hdrdir)/ruby/internal/attr/warning.h
-stat.o: $(hdrdir)/ruby/internal/attr/weakref.h
-stat.o: $(hdrdir)/ruby/internal/cast.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-stat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-stat.o: $(hdrdir)/ruby/internal/compiler_since.h
-stat.o: $(hdrdir)/ruby/internal/config.h
-stat.o: $(hdrdir)/ruby/internal/constant_p.h
-stat.o: $(hdrdir)/ruby/internal/core.h
-stat.o: $(hdrdir)/ruby/internal/core/rarray.h
-stat.o: $(hdrdir)/ruby/internal/core/rbasic.h
-stat.o: $(hdrdir)/ruby/internal/core/rbignum.h
-stat.o: $(hdrdir)/ruby/internal/core/rclass.h
-stat.o: $(hdrdir)/ruby/internal/core/rdata.h
-stat.o: $(hdrdir)/ruby/internal/core/rfile.h
-stat.o: $(hdrdir)/ruby/internal/core/rhash.h
-stat.o: $(hdrdir)/ruby/internal/core/robject.h
-stat.o: $(hdrdir)/ruby/internal/core/rregexp.h
-stat.o: $(hdrdir)/ruby/internal/core/rstring.h
-stat.o: $(hdrdir)/ruby/internal/core/rstruct.h
-stat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-stat.o: $(hdrdir)/ruby/internal/ctype.h
-stat.o: $(hdrdir)/ruby/internal/dllexport.h
-stat.o: $(hdrdir)/ruby/internal/dosish.h
-stat.o: $(hdrdir)/ruby/internal/error.h
-stat.o: $(hdrdir)/ruby/internal/eval.h
-stat.o: $(hdrdir)/ruby/internal/event.h
-stat.o: $(hdrdir)/ruby/internal/fl_type.h
-stat.o: $(hdrdir)/ruby/internal/gc.h
-stat.o: $(hdrdir)/ruby/internal/glob.h
-stat.o: $(hdrdir)/ruby/internal/globals.h
-stat.o: $(hdrdir)/ruby/internal/has/attribute.h
-stat.o: $(hdrdir)/ruby/internal/has/builtin.h
-stat.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-stat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-stat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-stat.o: $(hdrdir)/ruby/internal/has/extension.h
-stat.o: $(hdrdir)/ruby/internal/has/feature.h
-stat.o: $(hdrdir)/ruby/internal/has/warning.h
-stat.o: $(hdrdir)/ruby/internal/intern/array.h
-stat.o: $(hdrdir)/ruby/internal/intern/bignum.h
-stat.o: $(hdrdir)/ruby/internal/intern/class.h
-stat.o: $(hdrdir)/ruby/internal/intern/compar.h
-stat.o: $(hdrdir)/ruby/internal/intern/complex.h
-stat.o: $(hdrdir)/ruby/internal/intern/cont.h
-stat.o: $(hdrdir)/ruby/internal/intern/dir.h
-stat.o: $(hdrdir)/ruby/internal/intern/enum.h
-stat.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-stat.o: $(hdrdir)/ruby/internal/intern/error.h
-stat.o: $(hdrdir)/ruby/internal/intern/eval.h
-stat.o: $(hdrdir)/ruby/internal/intern/file.h
-stat.o: $(hdrdir)/ruby/internal/intern/gc.h
-stat.o: $(hdrdir)/ruby/internal/intern/hash.h
-stat.o: $(hdrdir)/ruby/internal/intern/io.h
-stat.o: $(hdrdir)/ruby/internal/intern/load.h
-stat.o: $(hdrdir)/ruby/internal/intern/marshal.h
-stat.o: $(hdrdir)/ruby/internal/intern/numeric.h
-stat.o: $(hdrdir)/ruby/internal/intern/object.h
-stat.o: $(hdrdir)/ruby/internal/intern/parse.h
-stat.o: $(hdrdir)/ruby/internal/intern/proc.h
-stat.o: $(hdrdir)/ruby/internal/intern/process.h
-stat.o: $(hdrdir)/ruby/internal/intern/random.h
-stat.o: $(hdrdir)/ruby/internal/intern/range.h
-stat.o: $(hdrdir)/ruby/internal/intern/rational.h
-stat.o: $(hdrdir)/ruby/internal/intern/re.h
-stat.o: $(hdrdir)/ruby/internal/intern/ruby.h
-stat.o: $(hdrdir)/ruby/internal/intern/select.h
-stat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-stat.o: $(hdrdir)/ruby/internal/intern/signal.h
-stat.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-stat.o: $(hdrdir)/ruby/internal/intern/string.h
-stat.o: $(hdrdir)/ruby/internal/intern/struct.h
-stat.o: $(hdrdir)/ruby/internal/intern/thread.h
-stat.o: $(hdrdir)/ruby/internal/intern/time.h
-stat.o: $(hdrdir)/ruby/internal/intern/variable.h
-stat.o: $(hdrdir)/ruby/internal/intern/vm.h
-stat.o: $(hdrdir)/ruby/internal/interpreter.h
-stat.o: $(hdrdir)/ruby/internal/iterator.h
-stat.o: $(hdrdir)/ruby/internal/memory.h
-stat.o: $(hdrdir)/ruby/internal/method.h
-stat.o: $(hdrdir)/ruby/internal/module.h
-stat.o: $(hdrdir)/ruby/internal/newobj.h
-stat.o: $(hdrdir)/ruby/internal/rgengc.h
-stat.o: $(hdrdir)/ruby/internal/scan_args.h
-stat.o: $(hdrdir)/ruby/internal/special_consts.h
-stat.o: $(hdrdir)/ruby/internal/static_assert.h
-stat.o: $(hdrdir)/ruby/internal/stdalign.h
-stat.o: $(hdrdir)/ruby/internal/stdbool.h
-stat.o: $(hdrdir)/ruby/internal/symbol.h
-stat.o: $(hdrdir)/ruby/internal/token_paste.h
-stat.o: $(hdrdir)/ruby/internal/value.h
-stat.o: $(hdrdir)/ruby/internal/value_type.h
-stat.o: $(hdrdir)/ruby/internal/variable.h
-stat.o: $(hdrdir)/ruby/internal/warning_push.h
-stat.o: $(hdrdir)/ruby/internal/xmalloc.h
stat.o: $(hdrdir)/ruby/assert.h
stat.o: $(hdrdir)/ruby/backward.h
-stat.o: $(hdrdir)/ruby/backward/2/assume.h
-stat.o: $(hdrdir)/ruby/backward/2/attributes.h
-stat.o: $(hdrdir)/ruby/backward/2/bool.h
-stat.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-stat.o: $(hdrdir)/ruby/backward/2/inttypes.h
-stat.o: $(hdrdir)/ruby/backward/2/limits.h
-stat.o: $(hdrdir)/ruby/backward/2/long_long.h
-stat.o: $(hdrdir)/ruby/backward/2/stdalign.h
-stat.o: $(hdrdir)/ruby/backward/2/stdarg.h
stat.o: $(hdrdir)/ruby/defines.h
stat.o: $(hdrdir)/ruby/encoding.h
stat.o: $(hdrdir)/ruby/intern.h
diff --git a/ext/-test-/float/depend b/ext/-test-/float/depend
index 066f008783..6007bd3c0b 100644
--- a/ext/-test-/float/depend
+++ b/ext/-test-/float/depend
@@ -5,157 +5,8 @@ nextafter.o: nextafter.c $(top_srcdir)/missing/nextafter.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -166,157 +17,8 @@ init.o: init.c
nextafter.o: $(RUBY_EXTCONF_H)
nextafter.o: $(arch_hdrdir)/ruby/config.h
nextafter.o: $(hdrdir)/ruby.h
-nextafter.o: $(hdrdir)/ruby/internal/anyargs.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-nextafter.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-nextafter.o: $(hdrdir)/ruby/internal/assume.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/artificial.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/cold.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/const.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/error.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/format.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/noalias.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/noinline.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/pure.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/restrict.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/warning.h
-nextafter.o: $(hdrdir)/ruby/internal/attr/weakref.h
-nextafter.o: $(hdrdir)/ruby/internal/cast.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-nextafter.o: $(hdrdir)/ruby/internal/compiler_since.h
-nextafter.o: $(hdrdir)/ruby/internal/config.h
-nextafter.o: $(hdrdir)/ruby/internal/constant_p.h
-nextafter.o: $(hdrdir)/ruby/internal/core.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rarray.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rbasic.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rbignum.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rclass.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rdata.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rfile.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rhash.h
-nextafter.o: $(hdrdir)/ruby/internal/core/robject.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rregexp.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rstring.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rstruct.h
-nextafter.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-nextafter.o: $(hdrdir)/ruby/internal/ctype.h
-nextafter.o: $(hdrdir)/ruby/internal/dllexport.h
-nextafter.o: $(hdrdir)/ruby/internal/dosish.h
-nextafter.o: $(hdrdir)/ruby/internal/error.h
-nextafter.o: $(hdrdir)/ruby/internal/eval.h
-nextafter.o: $(hdrdir)/ruby/internal/event.h
-nextafter.o: $(hdrdir)/ruby/internal/fl_type.h
-nextafter.o: $(hdrdir)/ruby/internal/gc.h
-nextafter.o: $(hdrdir)/ruby/internal/glob.h
-nextafter.o: $(hdrdir)/ruby/internal/globals.h
-nextafter.o: $(hdrdir)/ruby/internal/has/attribute.h
-nextafter.o: $(hdrdir)/ruby/internal/has/builtin.h
-nextafter.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-nextafter.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-nextafter.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-nextafter.o: $(hdrdir)/ruby/internal/has/extension.h
-nextafter.o: $(hdrdir)/ruby/internal/has/feature.h
-nextafter.o: $(hdrdir)/ruby/internal/has/warning.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/array.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/bignum.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/class.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/compar.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/complex.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/cont.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/dir.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/enum.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/error.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/eval.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/file.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/gc.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/hash.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/io.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/load.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/marshal.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/numeric.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/object.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/parse.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/proc.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/process.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/random.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/range.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/rational.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/re.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/ruby.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/select.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/signal.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/string.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/struct.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/thread.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/time.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/variable.h
-nextafter.o: $(hdrdir)/ruby/internal/intern/vm.h
-nextafter.o: $(hdrdir)/ruby/internal/interpreter.h
-nextafter.o: $(hdrdir)/ruby/internal/iterator.h
-nextafter.o: $(hdrdir)/ruby/internal/memory.h
-nextafter.o: $(hdrdir)/ruby/internal/method.h
-nextafter.o: $(hdrdir)/ruby/internal/module.h
-nextafter.o: $(hdrdir)/ruby/internal/newobj.h
-nextafter.o: $(hdrdir)/ruby/internal/rgengc.h
-nextafter.o: $(hdrdir)/ruby/internal/scan_args.h
-nextafter.o: $(hdrdir)/ruby/internal/special_consts.h
-nextafter.o: $(hdrdir)/ruby/internal/static_assert.h
-nextafter.o: $(hdrdir)/ruby/internal/stdalign.h
-nextafter.o: $(hdrdir)/ruby/internal/stdbool.h
-nextafter.o: $(hdrdir)/ruby/internal/symbol.h
-nextafter.o: $(hdrdir)/ruby/internal/token_paste.h
-nextafter.o: $(hdrdir)/ruby/internal/value.h
-nextafter.o: $(hdrdir)/ruby/internal/value_type.h
-nextafter.o: $(hdrdir)/ruby/internal/variable.h
-nextafter.o: $(hdrdir)/ruby/internal/warning_push.h
-nextafter.o: $(hdrdir)/ruby/internal/xmalloc.h
nextafter.o: $(hdrdir)/ruby/assert.h
nextafter.o: $(hdrdir)/ruby/backward.h
-nextafter.o: $(hdrdir)/ruby/backward/2/assume.h
-nextafter.o: $(hdrdir)/ruby/backward/2/attributes.h
-nextafter.o: $(hdrdir)/ruby/backward/2/bool.h
-nextafter.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-nextafter.o: $(hdrdir)/ruby/backward/2/inttypes.h
-nextafter.o: $(hdrdir)/ruby/backward/2/limits.h
-nextafter.o: $(hdrdir)/ruby/backward/2/long_long.h
-nextafter.o: $(hdrdir)/ruby/backward/2/stdalign.h
-nextafter.o: $(hdrdir)/ruby/backward/2/stdarg.h
nextafter.o: $(hdrdir)/ruby/defines.h
nextafter.o: $(hdrdir)/ruby/intern.h
nextafter.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/funcall/depend b/ext/-test-/funcall/depend
index 1fdf867fac..a5f43a8046 100644
--- a/ext/-test-/funcall/depend
+++ b/ext/-test-/funcall/depend
@@ -2,157 +2,8 @@
funcall.o: $(RUBY_EXTCONF_H)
funcall.o: $(arch_hdrdir)/ruby/config.h
funcall.o: $(hdrdir)/ruby.h
-funcall.o: $(hdrdir)/ruby/internal/anyargs.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-funcall.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-funcall.o: $(hdrdir)/ruby/internal/assume.h
-funcall.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-funcall.o: $(hdrdir)/ruby/internal/attr/artificial.h
-funcall.o: $(hdrdir)/ruby/internal/attr/cold.h
-funcall.o: $(hdrdir)/ruby/internal/attr/const.h
-funcall.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-funcall.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-funcall.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-funcall.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-funcall.o: $(hdrdir)/ruby/internal/attr/error.h
-funcall.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-funcall.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-funcall.o: $(hdrdir)/ruby/internal/attr/format.h
-funcall.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-funcall.o: $(hdrdir)/ruby/internal/attr/noalias.h
-funcall.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-funcall.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-funcall.o: $(hdrdir)/ruby/internal/attr/noinline.h
-funcall.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-funcall.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-funcall.o: $(hdrdir)/ruby/internal/attr/pure.h
-funcall.o: $(hdrdir)/ruby/internal/attr/restrict.h
-funcall.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-funcall.o: $(hdrdir)/ruby/internal/attr/warning.h
-funcall.o: $(hdrdir)/ruby/internal/attr/weakref.h
-funcall.o: $(hdrdir)/ruby/internal/cast.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-funcall.o: $(hdrdir)/ruby/internal/compiler_since.h
-funcall.o: $(hdrdir)/ruby/internal/config.h
-funcall.o: $(hdrdir)/ruby/internal/constant_p.h
-funcall.o: $(hdrdir)/ruby/internal/core.h
-funcall.o: $(hdrdir)/ruby/internal/core/rarray.h
-funcall.o: $(hdrdir)/ruby/internal/core/rbasic.h
-funcall.o: $(hdrdir)/ruby/internal/core/rbignum.h
-funcall.o: $(hdrdir)/ruby/internal/core/rclass.h
-funcall.o: $(hdrdir)/ruby/internal/core/rdata.h
-funcall.o: $(hdrdir)/ruby/internal/core/rfile.h
-funcall.o: $(hdrdir)/ruby/internal/core/rhash.h
-funcall.o: $(hdrdir)/ruby/internal/core/robject.h
-funcall.o: $(hdrdir)/ruby/internal/core/rregexp.h
-funcall.o: $(hdrdir)/ruby/internal/core/rstring.h
-funcall.o: $(hdrdir)/ruby/internal/core/rstruct.h
-funcall.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-funcall.o: $(hdrdir)/ruby/internal/ctype.h
-funcall.o: $(hdrdir)/ruby/internal/dllexport.h
-funcall.o: $(hdrdir)/ruby/internal/dosish.h
-funcall.o: $(hdrdir)/ruby/internal/error.h
-funcall.o: $(hdrdir)/ruby/internal/eval.h
-funcall.o: $(hdrdir)/ruby/internal/event.h
-funcall.o: $(hdrdir)/ruby/internal/fl_type.h
-funcall.o: $(hdrdir)/ruby/internal/gc.h
-funcall.o: $(hdrdir)/ruby/internal/glob.h
-funcall.o: $(hdrdir)/ruby/internal/globals.h
-funcall.o: $(hdrdir)/ruby/internal/has/attribute.h
-funcall.o: $(hdrdir)/ruby/internal/has/builtin.h
-funcall.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-funcall.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-funcall.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-funcall.o: $(hdrdir)/ruby/internal/has/extension.h
-funcall.o: $(hdrdir)/ruby/internal/has/feature.h
-funcall.o: $(hdrdir)/ruby/internal/has/warning.h
-funcall.o: $(hdrdir)/ruby/internal/intern/array.h
-funcall.o: $(hdrdir)/ruby/internal/intern/bignum.h
-funcall.o: $(hdrdir)/ruby/internal/intern/class.h
-funcall.o: $(hdrdir)/ruby/internal/intern/compar.h
-funcall.o: $(hdrdir)/ruby/internal/intern/complex.h
-funcall.o: $(hdrdir)/ruby/internal/intern/cont.h
-funcall.o: $(hdrdir)/ruby/internal/intern/dir.h
-funcall.o: $(hdrdir)/ruby/internal/intern/enum.h
-funcall.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-funcall.o: $(hdrdir)/ruby/internal/intern/error.h
-funcall.o: $(hdrdir)/ruby/internal/intern/eval.h
-funcall.o: $(hdrdir)/ruby/internal/intern/file.h
-funcall.o: $(hdrdir)/ruby/internal/intern/gc.h
-funcall.o: $(hdrdir)/ruby/internal/intern/hash.h
-funcall.o: $(hdrdir)/ruby/internal/intern/io.h
-funcall.o: $(hdrdir)/ruby/internal/intern/load.h
-funcall.o: $(hdrdir)/ruby/internal/intern/marshal.h
-funcall.o: $(hdrdir)/ruby/internal/intern/numeric.h
-funcall.o: $(hdrdir)/ruby/internal/intern/object.h
-funcall.o: $(hdrdir)/ruby/internal/intern/parse.h
-funcall.o: $(hdrdir)/ruby/internal/intern/proc.h
-funcall.o: $(hdrdir)/ruby/internal/intern/process.h
-funcall.o: $(hdrdir)/ruby/internal/intern/random.h
-funcall.o: $(hdrdir)/ruby/internal/intern/range.h
-funcall.o: $(hdrdir)/ruby/internal/intern/rational.h
-funcall.o: $(hdrdir)/ruby/internal/intern/re.h
-funcall.o: $(hdrdir)/ruby/internal/intern/ruby.h
-funcall.o: $(hdrdir)/ruby/internal/intern/select.h
-funcall.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-funcall.o: $(hdrdir)/ruby/internal/intern/signal.h
-funcall.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-funcall.o: $(hdrdir)/ruby/internal/intern/string.h
-funcall.o: $(hdrdir)/ruby/internal/intern/struct.h
-funcall.o: $(hdrdir)/ruby/internal/intern/thread.h
-funcall.o: $(hdrdir)/ruby/internal/intern/time.h
-funcall.o: $(hdrdir)/ruby/internal/intern/variable.h
-funcall.o: $(hdrdir)/ruby/internal/intern/vm.h
-funcall.o: $(hdrdir)/ruby/internal/interpreter.h
-funcall.o: $(hdrdir)/ruby/internal/iterator.h
-funcall.o: $(hdrdir)/ruby/internal/memory.h
-funcall.o: $(hdrdir)/ruby/internal/method.h
-funcall.o: $(hdrdir)/ruby/internal/module.h
-funcall.o: $(hdrdir)/ruby/internal/newobj.h
-funcall.o: $(hdrdir)/ruby/internal/rgengc.h
-funcall.o: $(hdrdir)/ruby/internal/scan_args.h
-funcall.o: $(hdrdir)/ruby/internal/special_consts.h
-funcall.o: $(hdrdir)/ruby/internal/static_assert.h
-funcall.o: $(hdrdir)/ruby/internal/stdalign.h
-funcall.o: $(hdrdir)/ruby/internal/stdbool.h
-funcall.o: $(hdrdir)/ruby/internal/symbol.h
-funcall.o: $(hdrdir)/ruby/internal/token_paste.h
-funcall.o: $(hdrdir)/ruby/internal/value.h
-funcall.o: $(hdrdir)/ruby/internal/value_type.h
-funcall.o: $(hdrdir)/ruby/internal/variable.h
-funcall.o: $(hdrdir)/ruby/internal/warning_push.h
-funcall.o: $(hdrdir)/ruby/internal/xmalloc.h
funcall.o: $(hdrdir)/ruby/assert.h
funcall.o: $(hdrdir)/ruby/backward.h
-funcall.o: $(hdrdir)/ruby/backward/2/assume.h
-funcall.o: $(hdrdir)/ruby/backward/2/attributes.h
-funcall.o: $(hdrdir)/ruby/backward/2/bool.h
-funcall.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-funcall.o: $(hdrdir)/ruby/backward/2/inttypes.h
-funcall.o: $(hdrdir)/ruby/backward/2/limits.h
-funcall.o: $(hdrdir)/ruby/backward/2/long_long.h
-funcall.o: $(hdrdir)/ruby/backward/2/stdalign.h
-funcall.o: $(hdrdir)/ruby/backward/2/stdarg.h
funcall.o: $(hdrdir)/ruby/defines.h
funcall.o: $(hdrdir)/ruby/intern.h
funcall.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/gvl/call_without_gvl/depend b/ext/-test-/gvl/call_without_gvl/depend
index 8b606d2eb4..3d4253b977 100644
--- a/ext/-test-/gvl/call_without_gvl/depend
+++ b/ext/-test-/gvl/call_without_gvl/depend
@@ -1,157 +1,8 @@
# AUTOGENERATED DEPENDENCIES START
call_without_gvl.o: $(RUBY_EXTCONF_H)
call_without_gvl.o: $(arch_hdrdir)/ruby/config.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/anyargs.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/assume.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/artificial.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/cold.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/const.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/error.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/format.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noalias.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noinline.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/pure.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/restrict.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/warning.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/attr/weakref.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/cast.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_since.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/config.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/constant_p.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rarray.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rbasic.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rbignum.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rclass.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rdata.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rfile.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rhash.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/robject.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rregexp.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rstring.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rstruct.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/ctype.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/dllexport.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/dosish.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/error.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/eval.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/event.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/fl_type.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/gc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/glob.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/globals.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/attribute.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/builtin.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/extension.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/feature.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/has/warning.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/array.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/bignum.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/class.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/compar.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/complex.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/cont.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/dir.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/enum.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/error.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/eval.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/file.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/gc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/hash.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/io.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/load.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/marshal.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/numeric.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/object.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/parse.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/proc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/process.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/random.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/range.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/rational.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/re.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/ruby.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/select.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/signal.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/string.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/struct.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/thread.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/time.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/variable.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/intern/vm.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/interpreter.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/iterator.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/memory.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/method.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/module.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/newobj.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/rgengc.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/scan_args.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/special_consts.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/static_assert.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/stdalign.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/stdbool.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/symbol.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/token_paste.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/value.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/value_type.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/variable.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/warning_push.h
-call_without_gvl.o: $(hdrdir)/ruby/internal/xmalloc.h
call_without_gvl.o: $(hdrdir)/ruby/assert.h
call_without_gvl.o: $(hdrdir)/ruby/backward.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/assume.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/attributes.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/bool.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/inttypes.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/limits.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/long_long.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/stdalign.h
-call_without_gvl.o: $(hdrdir)/ruby/backward/2/stdarg.h
call_without_gvl.o: $(hdrdir)/ruby/defines.h
call_without_gvl.o: $(hdrdir)/ruby/intern.h
call_without_gvl.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/hash/depend b/ext/-test-/hash/depend
index f4ea9ae5c3..5e2b8056c8 100644
--- a/ext/-test-/hash/depend
+++ b/ext/-test-/hash/depend
@@ -2,157 +2,8 @@
delete.o: $(RUBY_EXTCONF_H)
delete.o: $(arch_hdrdir)/ruby/config.h
delete.o: $(hdrdir)/ruby.h
-delete.o: $(hdrdir)/ruby/internal/anyargs.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-delete.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-delete.o: $(hdrdir)/ruby/internal/assume.h
-delete.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-delete.o: $(hdrdir)/ruby/internal/attr/artificial.h
-delete.o: $(hdrdir)/ruby/internal/attr/cold.h
-delete.o: $(hdrdir)/ruby/internal/attr/const.h
-delete.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-delete.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-delete.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-delete.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-delete.o: $(hdrdir)/ruby/internal/attr/error.h
-delete.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-delete.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-delete.o: $(hdrdir)/ruby/internal/attr/format.h
-delete.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-delete.o: $(hdrdir)/ruby/internal/attr/noalias.h
-delete.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-delete.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-delete.o: $(hdrdir)/ruby/internal/attr/noinline.h
-delete.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-delete.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-delete.o: $(hdrdir)/ruby/internal/attr/pure.h
-delete.o: $(hdrdir)/ruby/internal/attr/restrict.h
-delete.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-delete.o: $(hdrdir)/ruby/internal/attr/warning.h
-delete.o: $(hdrdir)/ruby/internal/attr/weakref.h
-delete.o: $(hdrdir)/ruby/internal/cast.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-delete.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-delete.o: $(hdrdir)/ruby/internal/compiler_since.h
-delete.o: $(hdrdir)/ruby/internal/config.h
-delete.o: $(hdrdir)/ruby/internal/constant_p.h
-delete.o: $(hdrdir)/ruby/internal/core.h
-delete.o: $(hdrdir)/ruby/internal/core/rarray.h
-delete.o: $(hdrdir)/ruby/internal/core/rbasic.h
-delete.o: $(hdrdir)/ruby/internal/core/rbignum.h
-delete.o: $(hdrdir)/ruby/internal/core/rclass.h
-delete.o: $(hdrdir)/ruby/internal/core/rdata.h
-delete.o: $(hdrdir)/ruby/internal/core/rfile.h
-delete.o: $(hdrdir)/ruby/internal/core/rhash.h
-delete.o: $(hdrdir)/ruby/internal/core/robject.h
-delete.o: $(hdrdir)/ruby/internal/core/rregexp.h
-delete.o: $(hdrdir)/ruby/internal/core/rstring.h
-delete.o: $(hdrdir)/ruby/internal/core/rstruct.h
-delete.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-delete.o: $(hdrdir)/ruby/internal/ctype.h
-delete.o: $(hdrdir)/ruby/internal/dllexport.h
-delete.o: $(hdrdir)/ruby/internal/dosish.h
-delete.o: $(hdrdir)/ruby/internal/error.h
-delete.o: $(hdrdir)/ruby/internal/eval.h
-delete.o: $(hdrdir)/ruby/internal/event.h
-delete.o: $(hdrdir)/ruby/internal/fl_type.h
-delete.o: $(hdrdir)/ruby/internal/gc.h
-delete.o: $(hdrdir)/ruby/internal/glob.h
-delete.o: $(hdrdir)/ruby/internal/globals.h
-delete.o: $(hdrdir)/ruby/internal/has/attribute.h
-delete.o: $(hdrdir)/ruby/internal/has/builtin.h
-delete.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-delete.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-delete.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-delete.o: $(hdrdir)/ruby/internal/has/extension.h
-delete.o: $(hdrdir)/ruby/internal/has/feature.h
-delete.o: $(hdrdir)/ruby/internal/has/warning.h
-delete.o: $(hdrdir)/ruby/internal/intern/array.h
-delete.o: $(hdrdir)/ruby/internal/intern/bignum.h
-delete.o: $(hdrdir)/ruby/internal/intern/class.h
-delete.o: $(hdrdir)/ruby/internal/intern/compar.h
-delete.o: $(hdrdir)/ruby/internal/intern/complex.h
-delete.o: $(hdrdir)/ruby/internal/intern/cont.h
-delete.o: $(hdrdir)/ruby/internal/intern/dir.h
-delete.o: $(hdrdir)/ruby/internal/intern/enum.h
-delete.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-delete.o: $(hdrdir)/ruby/internal/intern/error.h
-delete.o: $(hdrdir)/ruby/internal/intern/eval.h
-delete.o: $(hdrdir)/ruby/internal/intern/file.h
-delete.o: $(hdrdir)/ruby/internal/intern/gc.h
-delete.o: $(hdrdir)/ruby/internal/intern/hash.h
-delete.o: $(hdrdir)/ruby/internal/intern/io.h
-delete.o: $(hdrdir)/ruby/internal/intern/load.h
-delete.o: $(hdrdir)/ruby/internal/intern/marshal.h
-delete.o: $(hdrdir)/ruby/internal/intern/numeric.h
-delete.o: $(hdrdir)/ruby/internal/intern/object.h
-delete.o: $(hdrdir)/ruby/internal/intern/parse.h
-delete.o: $(hdrdir)/ruby/internal/intern/proc.h
-delete.o: $(hdrdir)/ruby/internal/intern/process.h
-delete.o: $(hdrdir)/ruby/internal/intern/random.h
-delete.o: $(hdrdir)/ruby/internal/intern/range.h
-delete.o: $(hdrdir)/ruby/internal/intern/rational.h
-delete.o: $(hdrdir)/ruby/internal/intern/re.h
-delete.o: $(hdrdir)/ruby/internal/intern/ruby.h
-delete.o: $(hdrdir)/ruby/internal/intern/select.h
-delete.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-delete.o: $(hdrdir)/ruby/internal/intern/signal.h
-delete.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-delete.o: $(hdrdir)/ruby/internal/intern/string.h
-delete.o: $(hdrdir)/ruby/internal/intern/struct.h
-delete.o: $(hdrdir)/ruby/internal/intern/thread.h
-delete.o: $(hdrdir)/ruby/internal/intern/time.h
-delete.o: $(hdrdir)/ruby/internal/intern/variable.h
-delete.o: $(hdrdir)/ruby/internal/intern/vm.h
-delete.o: $(hdrdir)/ruby/internal/interpreter.h
-delete.o: $(hdrdir)/ruby/internal/iterator.h
-delete.o: $(hdrdir)/ruby/internal/memory.h
-delete.o: $(hdrdir)/ruby/internal/method.h
-delete.o: $(hdrdir)/ruby/internal/module.h
-delete.o: $(hdrdir)/ruby/internal/newobj.h
-delete.o: $(hdrdir)/ruby/internal/rgengc.h
-delete.o: $(hdrdir)/ruby/internal/scan_args.h
-delete.o: $(hdrdir)/ruby/internal/special_consts.h
-delete.o: $(hdrdir)/ruby/internal/static_assert.h
-delete.o: $(hdrdir)/ruby/internal/stdalign.h
-delete.o: $(hdrdir)/ruby/internal/stdbool.h
-delete.o: $(hdrdir)/ruby/internal/symbol.h
-delete.o: $(hdrdir)/ruby/internal/token_paste.h
-delete.o: $(hdrdir)/ruby/internal/value.h
-delete.o: $(hdrdir)/ruby/internal/value_type.h
-delete.o: $(hdrdir)/ruby/internal/variable.h
-delete.o: $(hdrdir)/ruby/internal/warning_push.h
-delete.o: $(hdrdir)/ruby/internal/xmalloc.h
delete.o: $(hdrdir)/ruby/assert.h
delete.o: $(hdrdir)/ruby/backward.h
-delete.o: $(hdrdir)/ruby/backward/2/assume.h
-delete.o: $(hdrdir)/ruby/backward/2/attributes.h
-delete.o: $(hdrdir)/ruby/backward/2/bool.h
-delete.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-delete.o: $(hdrdir)/ruby/backward/2/inttypes.h
-delete.o: $(hdrdir)/ruby/backward/2/limits.h
-delete.o: $(hdrdir)/ruby/backward/2/long_long.h
-delete.o: $(hdrdir)/ruby/backward/2/stdalign.h
-delete.o: $(hdrdir)/ruby/backward/2/stdarg.h
delete.o: $(hdrdir)/ruby/defines.h
delete.o: $(hdrdir)/ruby/intern.h
delete.o: $(hdrdir)/ruby/missing.h
@@ -163,157 +14,8 @@ delete.o: delete.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/integer/core_ext.c b/ext/-test-/integer/core_ext.c
index 2062fa3afa..510ba4a1e6 100644
--- a/ext/-test-/integer/core_ext.c
+++ b/ext/-test-/integer/core_ext.c
@@ -1,4 +1,4 @@
-#include "internal/numeric.h"
+#include "internal.h"
static VALUE
int_bignum_p(VALUE self)
diff --git a/ext/-test-/integer/depend b/ext/-test-/integer/depend
index c68651d07c..5c9d581389 100644
--- a/ext/-test-/integer/depend
+++ b/ext/-test-/integer/depend
@@ -2,157 +2,8 @@
core_ext.o: $(RUBY_EXTCONF_H)
core_ext.o: $(arch_hdrdir)/ruby/config.h
core_ext.o: $(hdrdir)/ruby.h
-core_ext.o: $(hdrdir)/ruby/internal/anyargs.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-core_ext.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-core_ext.o: $(hdrdir)/ruby/internal/assume.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/artificial.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/cold.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/const.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/error.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/format.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/noalias.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/noinline.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/pure.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/restrict.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/warning.h
-core_ext.o: $(hdrdir)/ruby/internal/attr/weakref.h
-core_ext.o: $(hdrdir)/ruby/internal/cast.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-core_ext.o: $(hdrdir)/ruby/internal/compiler_since.h
-core_ext.o: $(hdrdir)/ruby/internal/config.h
-core_ext.o: $(hdrdir)/ruby/internal/constant_p.h
-core_ext.o: $(hdrdir)/ruby/internal/core.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rarray.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rbasic.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rbignum.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rclass.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rdata.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rfile.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rhash.h
-core_ext.o: $(hdrdir)/ruby/internal/core/robject.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rregexp.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rstring.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rstruct.h
-core_ext.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-core_ext.o: $(hdrdir)/ruby/internal/ctype.h
-core_ext.o: $(hdrdir)/ruby/internal/dllexport.h
-core_ext.o: $(hdrdir)/ruby/internal/dosish.h
-core_ext.o: $(hdrdir)/ruby/internal/error.h
-core_ext.o: $(hdrdir)/ruby/internal/eval.h
-core_ext.o: $(hdrdir)/ruby/internal/event.h
-core_ext.o: $(hdrdir)/ruby/internal/fl_type.h
-core_ext.o: $(hdrdir)/ruby/internal/gc.h
-core_ext.o: $(hdrdir)/ruby/internal/glob.h
-core_ext.o: $(hdrdir)/ruby/internal/globals.h
-core_ext.o: $(hdrdir)/ruby/internal/has/attribute.h
-core_ext.o: $(hdrdir)/ruby/internal/has/builtin.h
-core_ext.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-core_ext.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-core_ext.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-core_ext.o: $(hdrdir)/ruby/internal/has/extension.h
-core_ext.o: $(hdrdir)/ruby/internal/has/feature.h
-core_ext.o: $(hdrdir)/ruby/internal/has/warning.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/array.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/bignum.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/class.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/compar.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/complex.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/cont.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/dir.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/enum.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/error.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/eval.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/file.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/gc.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/hash.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/io.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/load.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/marshal.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/numeric.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/object.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/parse.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/proc.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/process.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/random.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/range.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/rational.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/re.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/ruby.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/select.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/signal.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/string.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/struct.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/thread.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/time.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/variable.h
-core_ext.o: $(hdrdir)/ruby/internal/intern/vm.h
-core_ext.o: $(hdrdir)/ruby/internal/interpreter.h
-core_ext.o: $(hdrdir)/ruby/internal/iterator.h
-core_ext.o: $(hdrdir)/ruby/internal/memory.h
-core_ext.o: $(hdrdir)/ruby/internal/method.h
-core_ext.o: $(hdrdir)/ruby/internal/module.h
-core_ext.o: $(hdrdir)/ruby/internal/newobj.h
-core_ext.o: $(hdrdir)/ruby/internal/rgengc.h
-core_ext.o: $(hdrdir)/ruby/internal/scan_args.h
-core_ext.o: $(hdrdir)/ruby/internal/special_consts.h
-core_ext.o: $(hdrdir)/ruby/internal/static_assert.h
-core_ext.o: $(hdrdir)/ruby/internal/stdalign.h
-core_ext.o: $(hdrdir)/ruby/internal/stdbool.h
-core_ext.o: $(hdrdir)/ruby/internal/symbol.h
-core_ext.o: $(hdrdir)/ruby/internal/token_paste.h
-core_ext.o: $(hdrdir)/ruby/internal/value.h
-core_ext.o: $(hdrdir)/ruby/internal/value_type.h
-core_ext.o: $(hdrdir)/ruby/internal/variable.h
-core_ext.o: $(hdrdir)/ruby/internal/warning_push.h
-core_ext.o: $(hdrdir)/ruby/internal/xmalloc.h
core_ext.o: $(hdrdir)/ruby/assert.h
core_ext.o: $(hdrdir)/ruby/backward.h
-core_ext.o: $(hdrdir)/ruby/backward/2/assume.h
-core_ext.o: $(hdrdir)/ruby/backward/2/attributes.h
-core_ext.o: $(hdrdir)/ruby/backward/2/bool.h
-core_ext.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-core_ext.o: $(hdrdir)/ruby/backward/2/inttypes.h
-core_ext.o: $(hdrdir)/ruby/backward/2/limits.h
-core_ext.o: $(hdrdir)/ruby/backward/2/long_long.h
-core_ext.o: $(hdrdir)/ruby/backward/2/stdalign.h
-core_ext.o: $(hdrdir)/ruby/backward/2/stdarg.h
core_ext.o: $(hdrdir)/ruby/defines.h
core_ext.o: $(hdrdir)/ruby/intern.h
core_ext.o: $(hdrdir)/ruby/missing.h
@@ -160,169 +11,12 @@ core_ext.o: $(hdrdir)/ruby/ruby.h
core_ext.o: $(hdrdir)/ruby/st.h
core_ext.o: $(hdrdir)/ruby/subst.h
core_ext.o: $(top_srcdir)/internal.h
-core_ext.o: $(top_srcdir)/internal/bignum.h
-core_ext.o: $(top_srcdir)/internal/bits.h
-core_ext.o: $(top_srcdir)/internal/compilers.h
-core_ext.o: $(top_srcdir)/internal/fixnum.h
-core_ext.o: $(top_srcdir)/internal/numeric.h
-core_ext.o: $(top_srcdir)/internal/serial.h
-core_ext.o: $(top_srcdir)/internal/static_assert.h
-core_ext.o: $(top_srcdir)/internal/vm.h
core_ext.o: core_ext.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -333,157 +27,8 @@ init.o: init.c
my_integer.o: $(RUBY_EXTCONF_H)
my_integer.o: $(arch_hdrdir)/ruby/config.h
my_integer.o: $(hdrdir)/ruby.h
-my_integer.o: $(hdrdir)/ruby/internal/anyargs.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-my_integer.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-my_integer.o: $(hdrdir)/ruby/internal/assume.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/artificial.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/cold.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/const.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/error.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/format.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/noalias.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/noinline.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/pure.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/restrict.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/warning.h
-my_integer.o: $(hdrdir)/ruby/internal/attr/weakref.h
-my_integer.o: $(hdrdir)/ruby/internal/cast.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-my_integer.o: $(hdrdir)/ruby/internal/compiler_since.h
-my_integer.o: $(hdrdir)/ruby/internal/config.h
-my_integer.o: $(hdrdir)/ruby/internal/constant_p.h
-my_integer.o: $(hdrdir)/ruby/internal/core.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rarray.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rbasic.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rbignum.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rclass.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rdata.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rfile.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rhash.h
-my_integer.o: $(hdrdir)/ruby/internal/core/robject.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rregexp.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rstring.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rstruct.h
-my_integer.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-my_integer.o: $(hdrdir)/ruby/internal/ctype.h
-my_integer.o: $(hdrdir)/ruby/internal/dllexport.h
-my_integer.o: $(hdrdir)/ruby/internal/dosish.h
-my_integer.o: $(hdrdir)/ruby/internal/error.h
-my_integer.o: $(hdrdir)/ruby/internal/eval.h
-my_integer.o: $(hdrdir)/ruby/internal/event.h
-my_integer.o: $(hdrdir)/ruby/internal/fl_type.h
-my_integer.o: $(hdrdir)/ruby/internal/gc.h
-my_integer.o: $(hdrdir)/ruby/internal/glob.h
-my_integer.o: $(hdrdir)/ruby/internal/globals.h
-my_integer.o: $(hdrdir)/ruby/internal/has/attribute.h
-my_integer.o: $(hdrdir)/ruby/internal/has/builtin.h
-my_integer.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-my_integer.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-my_integer.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-my_integer.o: $(hdrdir)/ruby/internal/has/extension.h
-my_integer.o: $(hdrdir)/ruby/internal/has/feature.h
-my_integer.o: $(hdrdir)/ruby/internal/has/warning.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/array.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/bignum.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/class.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/compar.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/complex.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/cont.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/dir.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/enum.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/error.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/eval.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/file.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/gc.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/hash.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/io.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/load.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/marshal.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/numeric.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/object.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/parse.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/proc.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/process.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/random.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/range.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/rational.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/re.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/ruby.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/select.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/signal.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/string.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/struct.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/thread.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/time.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/variable.h
-my_integer.o: $(hdrdir)/ruby/internal/intern/vm.h
-my_integer.o: $(hdrdir)/ruby/internal/interpreter.h
-my_integer.o: $(hdrdir)/ruby/internal/iterator.h
-my_integer.o: $(hdrdir)/ruby/internal/memory.h
-my_integer.o: $(hdrdir)/ruby/internal/method.h
-my_integer.o: $(hdrdir)/ruby/internal/module.h
-my_integer.o: $(hdrdir)/ruby/internal/newobj.h
-my_integer.o: $(hdrdir)/ruby/internal/rgengc.h
-my_integer.o: $(hdrdir)/ruby/internal/scan_args.h
-my_integer.o: $(hdrdir)/ruby/internal/special_consts.h
-my_integer.o: $(hdrdir)/ruby/internal/static_assert.h
-my_integer.o: $(hdrdir)/ruby/internal/stdalign.h
-my_integer.o: $(hdrdir)/ruby/internal/stdbool.h
-my_integer.o: $(hdrdir)/ruby/internal/symbol.h
-my_integer.o: $(hdrdir)/ruby/internal/token_paste.h
-my_integer.o: $(hdrdir)/ruby/internal/value.h
-my_integer.o: $(hdrdir)/ruby/internal/value_type.h
-my_integer.o: $(hdrdir)/ruby/internal/variable.h
-my_integer.o: $(hdrdir)/ruby/internal/warning_push.h
-my_integer.o: $(hdrdir)/ruby/internal/xmalloc.h
my_integer.o: $(hdrdir)/ruby/assert.h
my_integer.o: $(hdrdir)/ruby/backward.h
-my_integer.o: $(hdrdir)/ruby/backward/2/assume.h
-my_integer.o: $(hdrdir)/ruby/backward/2/attributes.h
-my_integer.o: $(hdrdir)/ruby/backward/2/bool.h
-my_integer.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-my_integer.o: $(hdrdir)/ruby/backward/2/inttypes.h
-my_integer.o: $(hdrdir)/ruby/backward/2/limits.h
-my_integer.o: $(hdrdir)/ruby/backward/2/long_long.h
-my_integer.o: $(hdrdir)/ruby/backward/2/stdalign.h
-my_integer.o: $(hdrdir)/ruby/backward/2/stdarg.h
my_integer.o: $(hdrdir)/ruby/defines.h
my_integer.o: $(hdrdir)/ruby/intern.h
my_integer.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/iseq_load/depend b/ext/-test-/iseq_load/depend
index 007790a02e..ac549546ec 100644
--- a/ext/-test-/iseq_load/depend
+++ b/ext/-test-/iseq_load/depend
@@ -2,157 +2,8 @@
iseq_load.o: $(RUBY_EXTCONF_H)
iseq_load.o: $(arch_hdrdir)/ruby/config.h
iseq_load.o: $(hdrdir)/ruby.h
-iseq_load.o: $(hdrdir)/ruby/internal/anyargs.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-iseq_load.o: $(hdrdir)/ruby/internal/assume.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/artificial.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/cold.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/const.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/error.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/format.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/noalias.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/noinline.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/pure.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/restrict.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/warning.h
-iseq_load.o: $(hdrdir)/ruby/internal/attr/weakref.h
-iseq_load.o: $(hdrdir)/ruby/internal/cast.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-iseq_load.o: $(hdrdir)/ruby/internal/compiler_since.h
-iseq_load.o: $(hdrdir)/ruby/internal/config.h
-iseq_load.o: $(hdrdir)/ruby/internal/constant_p.h
-iseq_load.o: $(hdrdir)/ruby/internal/core.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rarray.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rbasic.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rbignum.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rclass.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rdata.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rfile.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rhash.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/robject.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rregexp.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rstring.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rstruct.h
-iseq_load.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-iseq_load.o: $(hdrdir)/ruby/internal/ctype.h
-iseq_load.o: $(hdrdir)/ruby/internal/dllexport.h
-iseq_load.o: $(hdrdir)/ruby/internal/dosish.h
-iseq_load.o: $(hdrdir)/ruby/internal/error.h
-iseq_load.o: $(hdrdir)/ruby/internal/eval.h
-iseq_load.o: $(hdrdir)/ruby/internal/event.h
-iseq_load.o: $(hdrdir)/ruby/internal/fl_type.h
-iseq_load.o: $(hdrdir)/ruby/internal/gc.h
-iseq_load.o: $(hdrdir)/ruby/internal/glob.h
-iseq_load.o: $(hdrdir)/ruby/internal/globals.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/attribute.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/builtin.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/extension.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/feature.h
-iseq_load.o: $(hdrdir)/ruby/internal/has/warning.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/array.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/bignum.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/class.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/compar.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/complex.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/cont.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/dir.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/enum.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/error.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/eval.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/file.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/gc.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/hash.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/io.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/load.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/marshal.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/numeric.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/object.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/parse.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/proc.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/process.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/random.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/range.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/rational.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/re.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/ruby.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/select.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/signal.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/string.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/struct.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/thread.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/time.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/variable.h
-iseq_load.o: $(hdrdir)/ruby/internal/intern/vm.h
-iseq_load.o: $(hdrdir)/ruby/internal/interpreter.h
-iseq_load.o: $(hdrdir)/ruby/internal/iterator.h
-iseq_load.o: $(hdrdir)/ruby/internal/memory.h
-iseq_load.o: $(hdrdir)/ruby/internal/method.h
-iseq_load.o: $(hdrdir)/ruby/internal/module.h
-iseq_load.o: $(hdrdir)/ruby/internal/newobj.h
-iseq_load.o: $(hdrdir)/ruby/internal/rgengc.h
-iseq_load.o: $(hdrdir)/ruby/internal/scan_args.h
-iseq_load.o: $(hdrdir)/ruby/internal/special_consts.h
-iseq_load.o: $(hdrdir)/ruby/internal/static_assert.h
-iseq_load.o: $(hdrdir)/ruby/internal/stdalign.h
-iseq_load.o: $(hdrdir)/ruby/internal/stdbool.h
-iseq_load.o: $(hdrdir)/ruby/internal/symbol.h
-iseq_load.o: $(hdrdir)/ruby/internal/token_paste.h
-iseq_load.o: $(hdrdir)/ruby/internal/value.h
-iseq_load.o: $(hdrdir)/ruby/internal/value_type.h
-iseq_load.o: $(hdrdir)/ruby/internal/variable.h
-iseq_load.o: $(hdrdir)/ruby/internal/warning_push.h
-iseq_load.o: $(hdrdir)/ruby/internal/xmalloc.h
iseq_load.o: $(hdrdir)/ruby/assert.h
iseq_load.o: $(hdrdir)/ruby/backward.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/assume.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/attributes.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/bool.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/inttypes.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/limits.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/long_long.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/stdalign.h
-iseq_load.o: $(hdrdir)/ruby/backward/2/stdarg.h
iseq_load.o: $(hdrdir)/ruby/defines.h
iseq_load.o: $(hdrdir)/ruby/intern.h
iseq_load.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/iter/depend b/ext/-test-/iter/depend
index d00638e78f..5e754950c1 100644
--- a/ext/-test-/iter/depend
+++ b/ext/-test-/iter/depend
@@ -2,157 +2,8 @@
break.o: $(RUBY_EXTCONF_H)
break.o: $(arch_hdrdir)/ruby/config.h
break.o: $(hdrdir)/ruby.h
-break.o: $(hdrdir)/ruby/internal/anyargs.h
-break.o: $(hdrdir)/ruby/internal/arithmetic.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-break.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-break.o: $(hdrdir)/ruby/internal/assume.h
-break.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-break.o: $(hdrdir)/ruby/internal/attr/artificial.h
-break.o: $(hdrdir)/ruby/internal/attr/cold.h
-break.o: $(hdrdir)/ruby/internal/attr/const.h
-break.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-break.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-break.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-break.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-break.o: $(hdrdir)/ruby/internal/attr/error.h
-break.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-break.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-break.o: $(hdrdir)/ruby/internal/attr/format.h
-break.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-break.o: $(hdrdir)/ruby/internal/attr/noalias.h
-break.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-break.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-break.o: $(hdrdir)/ruby/internal/attr/noinline.h
-break.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-break.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-break.o: $(hdrdir)/ruby/internal/attr/pure.h
-break.o: $(hdrdir)/ruby/internal/attr/restrict.h
-break.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-break.o: $(hdrdir)/ruby/internal/attr/warning.h
-break.o: $(hdrdir)/ruby/internal/attr/weakref.h
-break.o: $(hdrdir)/ruby/internal/cast.h
-break.o: $(hdrdir)/ruby/internal/compiler_is.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-break.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-break.o: $(hdrdir)/ruby/internal/compiler_since.h
-break.o: $(hdrdir)/ruby/internal/config.h
-break.o: $(hdrdir)/ruby/internal/constant_p.h
-break.o: $(hdrdir)/ruby/internal/core.h
-break.o: $(hdrdir)/ruby/internal/core/rarray.h
-break.o: $(hdrdir)/ruby/internal/core/rbasic.h
-break.o: $(hdrdir)/ruby/internal/core/rbignum.h
-break.o: $(hdrdir)/ruby/internal/core/rclass.h
-break.o: $(hdrdir)/ruby/internal/core/rdata.h
-break.o: $(hdrdir)/ruby/internal/core/rfile.h
-break.o: $(hdrdir)/ruby/internal/core/rhash.h
-break.o: $(hdrdir)/ruby/internal/core/robject.h
-break.o: $(hdrdir)/ruby/internal/core/rregexp.h
-break.o: $(hdrdir)/ruby/internal/core/rstring.h
-break.o: $(hdrdir)/ruby/internal/core/rstruct.h
-break.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-break.o: $(hdrdir)/ruby/internal/ctype.h
-break.o: $(hdrdir)/ruby/internal/dllexport.h
-break.o: $(hdrdir)/ruby/internal/dosish.h
-break.o: $(hdrdir)/ruby/internal/error.h
-break.o: $(hdrdir)/ruby/internal/eval.h
-break.o: $(hdrdir)/ruby/internal/event.h
-break.o: $(hdrdir)/ruby/internal/fl_type.h
-break.o: $(hdrdir)/ruby/internal/gc.h
-break.o: $(hdrdir)/ruby/internal/glob.h
-break.o: $(hdrdir)/ruby/internal/globals.h
-break.o: $(hdrdir)/ruby/internal/has/attribute.h
-break.o: $(hdrdir)/ruby/internal/has/builtin.h
-break.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-break.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-break.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-break.o: $(hdrdir)/ruby/internal/has/extension.h
-break.o: $(hdrdir)/ruby/internal/has/feature.h
-break.o: $(hdrdir)/ruby/internal/has/warning.h
-break.o: $(hdrdir)/ruby/internal/intern/array.h
-break.o: $(hdrdir)/ruby/internal/intern/bignum.h
-break.o: $(hdrdir)/ruby/internal/intern/class.h
-break.o: $(hdrdir)/ruby/internal/intern/compar.h
-break.o: $(hdrdir)/ruby/internal/intern/complex.h
-break.o: $(hdrdir)/ruby/internal/intern/cont.h
-break.o: $(hdrdir)/ruby/internal/intern/dir.h
-break.o: $(hdrdir)/ruby/internal/intern/enum.h
-break.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-break.o: $(hdrdir)/ruby/internal/intern/error.h
-break.o: $(hdrdir)/ruby/internal/intern/eval.h
-break.o: $(hdrdir)/ruby/internal/intern/file.h
-break.o: $(hdrdir)/ruby/internal/intern/gc.h
-break.o: $(hdrdir)/ruby/internal/intern/hash.h
-break.o: $(hdrdir)/ruby/internal/intern/io.h
-break.o: $(hdrdir)/ruby/internal/intern/load.h
-break.o: $(hdrdir)/ruby/internal/intern/marshal.h
-break.o: $(hdrdir)/ruby/internal/intern/numeric.h
-break.o: $(hdrdir)/ruby/internal/intern/object.h
-break.o: $(hdrdir)/ruby/internal/intern/parse.h
-break.o: $(hdrdir)/ruby/internal/intern/proc.h
-break.o: $(hdrdir)/ruby/internal/intern/process.h
-break.o: $(hdrdir)/ruby/internal/intern/random.h
-break.o: $(hdrdir)/ruby/internal/intern/range.h
-break.o: $(hdrdir)/ruby/internal/intern/rational.h
-break.o: $(hdrdir)/ruby/internal/intern/re.h
-break.o: $(hdrdir)/ruby/internal/intern/ruby.h
-break.o: $(hdrdir)/ruby/internal/intern/select.h
-break.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-break.o: $(hdrdir)/ruby/internal/intern/signal.h
-break.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-break.o: $(hdrdir)/ruby/internal/intern/string.h
-break.o: $(hdrdir)/ruby/internal/intern/struct.h
-break.o: $(hdrdir)/ruby/internal/intern/thread.h
-break.o: $(hdrdir)/ruby/internal/intern/time.h
-break.o: $(hdrdir)/ruby/internal/intern/variable.h
-break.o: $(hdrdir)/ruby/internal/intern/vm.h
-break.o: $(hdrdir)/ruby/internal/interpreter.h
-break.o: $(hdrdir)/ruby/internal/iterator.h
-break.o: $(hdrdir)/ruby/internal/memory.h
-break.o: $(hdrdir)/ruby/internal/method.h
-break.o: $(hdrdir)/ruby/internal/module.h
-break.o: $(hdrdir)/ruby/internal/newobj.h
-break.o: $(hdrdir)/ruby/internal/rgengc.h
-break.o: $(hdrdir)/ruby/internal/scan_args.h
-break.o: $(hdrdir)/ruby/internal/special_consts.h
-break.o: $(hdrdir)/ruby/internal/static_assert.h
-break.o: $(hdrdir)/ruby/internal/stdalign.h
-break.o: $(hdrdir)/ruby/internal/stdbool.h
-break.o: $(hdrdir)/ruby/internal/symbol.h
-break.o: $(hdrdir)/ruby/internal/token_paste.h
-break.o: $(hdrdir)/ruby/internal/value.h
-break.o: $(hdrdir)/ruby/internal/value_type.h
-break.o: $(hdrdir)/ruby/internal/variable.h
-break.o: $(hdrdir)/ruby/internal/warning_push.h
-break.o: $(hdrdir)/ruby/internal/xmalloc.h
break.o: $(hdrdir)/ruby/assert.h
break.o: $(hdrdir)/ruby/backward.h
-break.o: $(hdrdir)/ruby/backward/2/assume.h
-break.o: $(hdrdir)/ruby/backward/2/attributes.h
-break.o: $(hdrdir)/ruby/backward/2/bool.h
-break.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-break.o: $(hdrdir)/ruby/backward/2/inttypes.h
-break.o: $(hdrdir)/ruby/backward/2/limits.h
-break.o: $(hdrdir)/ruby/backward/2/long_long.h
-break.o: $(hdrdir)/ruby/backward/2/stdalign.h
-break.o: $(hdrdir)/ruby/backward/2/stdarg.h
break.o: $(hdrdir)/ruby/defines.h
break.o: $(hdrdir)/ruby/intern.h
break.o: $(hdrdir)/ruby/missing.h
@@ -163,157 +14,8 @@ break.o: break.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
-init.o: $(hdrdir)/ruby/internal/anyargs.h
-init.o: $(hdrdir)/ruby/internal/arithmetic.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-init.o: $(hdrdir)/ruby/internal/assume.h
-init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-init.o: $(hdrdir)/ruby/internal/attr/artificial.h
-init.o: $(hdrdir)/ruby/internal/attr/cold.h
-init.o: $(hdrdir)/ruby/internal/attr/const.h
-init.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-init.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-init.o: $(hdrdir)/ruby/internal/attr/error.h
-init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-init.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-init.o: $(hdrdir)/ruby/internal/attr/format.h
-init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-init.o: $(hdrdir)/ruby/internal/attr/noalias.h
-init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-init.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-init.o: $(hdrdir)/ruby/internal/attr/noinline.h
-init.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-init.o: $(hdrdir)/ruby/internal/attr/pure.h
-init.o: $(hdrdir)/ruby/internal/attr/restrict.h
-init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-init.o: $(hdrdir)/ruby/internal/attr/warning.h
-init.o: $(hdrdir)/ruby/internal/attr/weakref.h
-init.o: $(hdrdir)/ruby/internal/cast.h
-init.o: $(hdrdir)/ruby/internal/compiler_is.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-init.o: $(hdrdir)/ruby/internal/compiler_since.h
-init.o: $(hdrdir)/ruby/internal/config.h
-init.o: $(hdrdir)/ruby/internal/constant_p.h
-init.o: $(hdrdir)/ruby/internal/core.h
-init.o: $(hdrdir)/ruby/internal/core/rarray.h
-init.o: $(hdrdir)/ruby/internal/core/rbasic.h
-init.o: $(hdrdir)/ruby/internal/core/rbignum.h
-init.o: $(hdrdir)/ruby/internal/core/rclass.h
-init.o: $(hdrdir)/ruby/internal/core/rdata.h
-init.o: $(hdrdir)/ruby/internal/core/rfile.h
-init.o: $(hdrdir)/ruby/internal/core/rhash.h
-init.o: $(hdrdir)/ruby/internal/core/robject.h
-init.o: $(hdrdir)/ruby/internal/core/rregexp.h
-init.o: $(hdrdir)/ruby/internal/core/rstring.h
-init.o: $(hdrdir)/ruby/internal/core/rstruct.h
-init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-init.o: $(hdrdir)/ruby/internal/ctype.h
-init.o: $(hdrdir)/ruby/internal/dllexport.h
-init.o: $(hdrdir)/ruby/internal/dosish.h
-init.o: $(hdrdir)/ruby/internal/error.h
-init.o: $(hdrdir)/ruby/internal/eval.h
-init.o: $(hdrdir)/ruby/internal/event.h
-init.o: $(hdrdir)/ruby/internal/fl_type.h
-init.o: $(hdrdir)/ruby/internal/gc.h
-init.o: $(hdrdir)/ruby/internal/glob.h
-init.o: $(hdrdir)/ruby/internal/globals.h
-init.o: $(hdrdir)/ruby/internal/has/attribute.h
-init.o: $(hdrdir)/ruby/internal/has/builtin.h
-init.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-init.o: $(hdrdir)/ruby/internal/has/extension.h
-init.o: $(hdrdir)/ruby/internal/has/feature.h
-init.o: $(hdrdir)/ruby/internal/has/warning.h
-init.o: $(hdrdir)/ruby/internal/intern/array.h
-init.o: $(hdrdir)/ruby/internal/intern/bignum.h
-init.o: $(hdrdir)/ruby/internal/intern/class.h
-init.o: $(hdrdir)/ruby/internal/intern/compar.h
-init.o: $(hdrdir)/ruby/internal/intern/complex.h
-init.o: $(hdrdir)/ruby/internal/intern/cont.h
-init.o: $(hdrdir)/ruby/internal/intern/dir.h
-init.o: $(hdrdir)/ruby/internal/intern/enum.h
-init.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-init.o: $(hdrdir)/ruby/internal/intern/error.h
-init.o: $(hdrdir)/ruby/internal/intern/eval.h
-init.o: $(hdrdir)/ruby/internal/intern/file.h
-init.o: $(hdrdir)/ruby/internal/intern/gc.h
-init.o: $(hdrdir)/ruby/internal/intern/hash.h
-init.o: $(hdrdir)/ruby/internal/intern/io.h
-init.o: $(hdrdir)/ruby/internal/intern/load.h
-init.o: $(hdrdir)/ruby/internal/intern/marshal.h
-init.o: $(hdrdir)/ruby/internal/intern/numeric.h
-init.o: $(hdrdir)/ruby/internal/intern/object.h
-init.o: $(hdrdir)/ruby/internal/intern/parse.h
-init.o: $(hdrdir)/ruby/internal/intern/proc.h
-init.o: $(hdrdir)/ruby/internal/intern/process.h
-init.o: $(hdrdir)/ruby/internal/intern/random.h
-init.o: $(hdrdir)/ruby/internal/intern/range.h
-init.o: $(hdrdir)/ruby/internal/intern/rational.h
-init.o: $(hdrdir)/ruby/internal/intern/re.h
-init.o: $(hdrdir)/ruby/internal/intern/ruby.h
-init.o: $(hdrdir)/ruby/internal/intern/select.h
-init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-init.o: $(hdrdir)/ruby/internal/intern/signal.h
-init.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-init.o: $(hdrdir)/ruby/internal/intern/string.h
-init.o: $(hdrdir)/ruby/internal/intern/struct.h
-init.o: $(hdrdir)/ruby/internal/intern/thread.h
-init.o: $(hdrdir)/ruby/internal/intern/time.h
-init.o: $(hdrdir)/ruby/internal/intern/variable.h
-init.o: $(hdrdir)/ruby/internal/intern/vm.h
-init.o: $(hdrdir)/ruby/internal/interpreter.h
-init.o: $(hdrdir)/ruby/internal/iterator.h
-init.o: $(hdrdir)/ruby/internal/memory.h
-init.o: $(hdrdir)/ruby/internal/method.h
-init.o: $(hdrdir)/ruby/internal/module.h
-init.o: $(hdrdir)/ruby/internal/newobj.h
-init.o: $(hdrdir)/ruby/internal/rgengc.h
-init.o: $(hdrdir)/ruby/internal/scan_args.h
-init.o: $(hdrdir)/ruby/internal/special_consts.h
-init.o: $(hdrdir)/ruby/internal/static_assert.h
-init.o: $(hdrdir)/ruby/internal/stdalign.h
-init.o: $(hdrdir)/ruby/internal/stdbool.h
-init.o: $(hdrdir)/ruby/internal/symbol.h
-init.o: $(hdrdir)/ruby/internal/token_paste.h
-init.o: $(hdrdir)/ruby/internal/value.h
-init.o: $(hdrdir)/ruby/internal/value_type.h
-init.o: $(hdrdir)/ruby/internal/variable.h
-init.o: $(hdrdir)/ruby/internal/warning_push.h
-init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
@@ -324,157 +26,8 @@ init.o: init.c
yield.o: $(RUBY_EXTCONF_H)
yield.o: $(arch_hdrdir)/ruby/config.h
yield.o: $(hdrdir)/ruby.h
-yield.o: $(hdrdir)/ruby/internal/anyargs.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-yield.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-yield.o: $(hdrdir)/ruby/internal/assume.h
-yield.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-yield.o: $(hdrdir)/ruby/internal/attr/artificial.h
-yield.o: $(hdrdir)/ruby/internal/attr/cold.h
-yield.o: $(hdrdir)/ruby/internal/attr/const.h
-yield.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-yield.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-yield.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-yield.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-yield.o: $(hdrdir)/ruby/internal/attr/error.h
-yield.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-yield.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-yield.o: $(hdrdir)/ruby/internal/attr/format.h
-yield.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-yield.o: $(hdrdir)/ruby/internal/attr/noalias.h
-yield.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-yield.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-yield.o: $(hdrdir)/ruby/internal/attr/noinline.h
-yield.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-yield.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-yield.o: $(hdrdir)/ruby/internal/attr/pure.h
-yield.o: $(hdrdir)/ruby/internal/attr/restrict.h
-yield.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-yield.o: $(hdrdir)/ruby/internal/attr/warning.h
-yield.o: $(hdrdir)/ruby/internal/attr/weakref.h
-yield.o: $(hdrdir)/ruby/internal/cast.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-yield.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-yield.o: $(hdrdir)/ruby/internal/compiler_since.h
-yield.o: $(hdrdir)/ruby/internal/config.h
-yield.o: $(hdrdir)/ruby/internal/constant_p.h
-yield.o: $(hdrdir)/ruby/internal/core.h
-yield.o: $(hdrdir)/ruby/internal/core/rarray.h
-yield.o: $(hdrdir)/ruby/internal/core/rbasic.h
-yield.o: $(hdrdir)/ruby/internal/core/rbignum.h
-yield.o: $(hdrdir)/ruby/internal/core/rclass.h
-yield.o: $(hdrdir)/ruby/internal/core/rdata.h
-yield.o: $(hdrdir)/ruby/internal/core/rfile.h
-yield.o: $(hdrdir)/ruby/internal/core/rhash.h
-yield.o: $(hdrdir)/ruby/internal/core/robject.h
-yield.o: $(hdrdir)/ruby/internal/core/rregexp.h
-yield.o: $(hdrdir)/ruby/internal/core/rstring.h
-yield.o: $(hdrdir)/ruby/internal/core/rstruct.h
-yield.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-yield.o: $(hdrdir)/ruby/internal/ctype.h
-yield.o: $(hdrdir)/ruby/internal/dllexport.h
-yield.o: $(hdrdir)/ruby/internal/dosish.h
-yield.o: $(hdrdir)/ruby/internal/error.h
-yield.o: $(hdrdir)/ruby/internal/eval.h
-yield.o: $(hdrdir)/ruby/internal/event.h
-yield.o: $(hdrdir)/ruby/internal/fl_type.h
-yield.o: $(hdrdir)/ruby/internal/gc.h
-yield.o: $(hdrdir)/ruby/internal/glob.h
-yield.o: $(hdrdir)/ruby/internal/globals.h
-yield.o: $(hdrdir)/ruby/internal/has/attribute.h
-yield.o: $(hdrdir)/ruby/internal/has/builtin.h
-yield.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-yield.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-yield.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-yield.o: $(hdrdir)/ruby/internal/has/extension.h
-yield.o: $(hdrdir)/ruby/internal/has/feature.h
-yield.o: $(hdrdir)/ruby/internal/has/warning.h
-yield.o: $(hdrdir)/ruby/internal/intern/array.h
-yield.o: $(hdrdir)/ruby/internal/intern/bignum.h
-yield.o: $(hdrdir)/ruby/internal/intern/class.h
-yield.o: $(hdrdir)/ruby/internal/intern/compar.h
-yield.o: $(hdrdir)/ruby/internal/intern/complex.h
-yield.o: $(hdrdir)/ruby/internal/intern/cont.h
-yield.o: $(hdrdir)/ruby/internal/intern/dir.h
-yield.o: $(hdrdir)/ruby/internal/intern/enum.h
-yield.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-yield.o: $(hdrdir)/ruby/internal/intern/error.h
-yield.o: $(hdrdir)/ruby/internal/intern/eval.h
-yield.o: $(hdrdir)/ruby/internal/intern/file.h
-yield.o: $(hdrdir)/ruby/internal/intern/gc.h
-yield.o: $(hdrdir)/ruby/internal/intern/hash.h
-yield.o: $(hdrdir)/ruby/internal/intern/io.h
-yield.o: $(hdrdir)/ruby/internal/intern/load.h
-yield.o: $(hdrdir)/ruby/internal/intern/marshal.h
-yield.o: $(hdrdir)/ruby/internal/intern/numeric.h
-yield.o: $(hdrdir)/ruby/internal/intern/object.h
-yield.o: $(hdrdir)/ruby/internal/intern/parse.h
-yield.o: $(hdrdir)/ruby/internal/intern/proc.h
-yield.o: $(hdrdir)/ruby/internal/intern/process.h
-yield.o: $(hdrdir)/ruby/internal/intern/random.h
-yield.o: $(hdrdir)/ruby/internal/intern/range.h
-yield.o: $(hdrdir)/ruby/internal/intern/rational.h
-yield.o: $(hdrdir)/ruby/internal/intern/re.h
-yield.o: $(hdrdir)/ruby/internal/intern/ruby.h
-yield.o: $(hdrdir)/ruby/internal/intern/select.h
-yield.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-yield.o: $(hdrdir)/ruby/internal/intern/signal.h
-yield.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-yield.o: $(hdrdir)/ruby/internal/intern/string.h
-yield.o: $(hdrdir)/ruby/internal/intern/struct.h
-yield.o: $(hdrdir)/ruby/internal/intern/thread.h
-yield.o: $(hdrdir)/ruby/internal/intern/time.h
-yield.o: $(hdrdir)/ruby/internal/intern/variable.h
-yield.o: $(hdrdir)/ruby/internal/intern/vm.h
-yield.o: $(hdrdir)/ruby/internal/interpreter.h
-yield.o: $(hdrdir)/ruby/internal/iterator.h
-yield.o: $(hdrdir)/ruby/internal/memory.h
-yield.o: $(hdrdir)/ruby/internal/method.h
-yield.o: $(hdrdir)/ruby/internal/module.h
-yield.o: $(hdrdir)/ruby/internal/newobj.h
-yield.o: $(hdrdir)/ruby/internal/rgengc.h
-yield.o: $(hdrdir)/ruby/internal/scan_args.h
-yield.o: $(hdrdir)/ruby/internal/special_consts.h
-yield.o: $(hdrdir)/ruby/internal/static_assert.h
-yield.o: $(hdrdir)/ruby/internal/stdalign.h
-yield.o: $(hdrdir)/ruby/internal/stdbool.h
-yield.o: $(hdrdir)/ruby/internal/symbol.h
-yield.o: $(hdrdir)/ruby/internal/token_paste.h
-yield.o: $(hdrdir)/ruby/internal/value.h
-yield.o: $(hdrdir)/ruby/internal/value_type.h
-yield.o: $(hdrdir)/ruby/internal/variable.h
-yield.o: $(hdrdir)/ruby/internal/warning_push.h
-yield.o: $(hdrdir)/ruby/internal/xmalloc.h
yield.o: $(hdrdir)/ruby/assert.h
yield.o: $(hdrdir)/ruby/backward.h
-yield.o: $(hdrdir)/ruby/backward/2/assume.h
-yield.o: $(hdrdir)/ruby/backward/2/attributes.h
-yield.o: $(hdrdir)/ruby/backward/2/bool.h
-yield.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-yield.o: $(hdrdir)/ruby/backward/2/inttypes.h
-yield.o: $(hdrdir)/ruby/backward/2/limits.h
-yield.o: $(hdrdir)/ruby/backward/2/long_long.h
-yield.o: $(hdrdir)/ruby/backward/2/stdalign.h
-yield.o: $(hdrdir)/ruby/backward/2/stdarg.h
yield.o: $(hdrdir)/ruby/defines.h
yield.o: $(hdrdir)/ruby/intern.h
yield.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/load/protect/depend b/ext/-test-/load/protect/depend
index 99c02e1f25..b62393f1cb 100644
--- a/ext/-test-/load/protect/depend
+++ b/ext/-test-/load/protect/depend
@@ -2,157 +2,8 @@
protect.o: $(RUBY_EXTCONF_H)
protect.o: $(arch_hdrdir)/ruby/config.h
protect.o: $(hdrdir)/ruby.h
-protect.o: $(hdrdir)/ruby/internal/anyargs.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-protect.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-protect.o: $(hdrdir)/ruby/internal/assume.h
-protect.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-protect.o: $(hdrdir)/ruby/internal/attr/artificial.h
-protect.o: $(hdrdir)/ruby/internal/attr/cold.h
-protect.o: $(hdrdir)/ruby/internal/attr/const.h
-protect.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-protect.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-protect.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-protect.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-protect.o: $(hdrdir)/ruby/internal/attr/error.h
-protect.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-protect.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-protect.o: $(hdrdir)/ruby/internal/attr/format.h
-protect.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-protect.o: $(hdrdir)/ruby/internal/attr/noalias.h
-protect.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-protect.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-protect.o: $(hdrdir)/ruby/internal/attr/noinline.h
-protect.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-protect.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-protect.o: $(hdrdir)/ruby/internal/attr/pure.h
-protect.o: $(hdrdir)/ruby/internal/attr/restrict.h
-protect.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-protect.o: $(hdrdir)/ruby/internal/attr/warning.h
-protect.o: $(hdrdir)/ruby/internal/attr/weakref.h
-protect.o: $(hdrdir)/ruby/internal/cast.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-protect.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-protect.o: $(hdrdir)/ruby/internal/compiler_since.h
-protect.o: $(hdrdir)/ruby/internal/config.h
-protect.o: $(hdrdir)/ruby/internal/constant_p.h
-protect.o: $(hdrdir)/ruby/internal/core.h
-protect.o: $(hdrdir)/ruby/internal/core/rarray.h
-protect.o: $(hdrdir)/ruby/internal/core/rbasic.h
-protect.o: $(hdrdir)/ruby/internal/core/rbignum.h
-protect.o: $(hdrdir)/ruby/internal/core/rclass.h
-protect.o: $(hdrdir)/ruby/internal/core/rdata.h
-protect.o: $(hdrdir)/ruby/internal/core/rfile.h
-protect.o: $(hdrdir)/ruby/internal/core/rhash.h
-protect.o: $(hdrdir)/ruby/internal/core/robject.h
-protect.o: $(hdrdir)/ruby/internal/core/rregexp.h
-protect.o: $(hdrdir)/ruby/internal/core/rstring.h
-protect.o: $(hdrdir)/ruby/internal/core/rstruct.h
-protect.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-protect.o: $(hdrdir)/ruby/internal/ctype.h
-protect.o: $(hdrdir)/ruby/internal/dllexport.h
-protect.o: $(hdrdir)/ruby/internal/dosish.h
-protect.o: $(hdrdir)/ruby/internal/error.h
-protect.o: $(hdrdir)/ruby/internal/eval.h
-protect.o: $(hdrdir)/ruby/internal/event.h
-protect.o: $(hdrdir)/ruby/internal/fl_type.h
-protect.o: $(hdrdir)/ruby/internal/gc.h
-protect.o: $(hdrdir)/ruby/internal/glob.h
-protect.o: $(hdrdir)/ruby/internal/globals.h
-protect.o: $(hdrdir)/ruby/internal/has/attribute.h
-protect.o: $(hdrdir)/ruby/internal/has/builtin.h
-protect.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-protect.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-protect.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-protect.o: $(hdrdir)/ruby/internal/has/extension.h
-protect.o: $(hdrdir)/ruby/internal/has/feature.h
-protect.o: $(hdrdir)/ruby/internal/has/warning.h
-protect.o: $(hdrdir)/ruby/internal/intern/array.h
-protect.o: $(hdrdir)/ruby/internal/intern/bignum.h
-protect.o: $(hdrdir)/ruby/internal/intern/class.h
-protect.o: $(hdrdir)/ruby/internal/intern/compar.h
-protect.o: $(hdrdir)/ruby/internal/intern/complex.h
-protect.o: $(hdrdir)/ruby/internal/intern/cont.h
-protect.o: $(hdrdir)/ruby/internal/intern/dir.h
-protect.o: $(hdrdir)/ruby/internal/intern/enum.h
-protect.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-protect.o: $(hdrdir)/ruby/internal/intern/error.h
-protect.o: $(hdrdir)/ruby/internal/intern/eval.h
-protect.o: $(hdrdir)/ruby/internal/intern/file.h
-protect.o: $(hdrdir)/ruby/internal/intern/gc.h
-protect.o: $(hdrdir)/ruby/internal/intern/hash.h
-protect.o: $(hdrdir)/ruby/internal/intern/io.h
-protect.o: $(hdrdir)/ruby/internal/intern/load.h
-protect.o: $(hdrdir)/ruby/internal/intern/marshal.h
-protect.o: $(hdrdir)/ruby/internal/intern/numeric.h
-protect.o: $(hdrdir)/ruby/internal/intern/object.h
-protect.o: $(hdrdir)/ruby/internal/intern/parse.h
-protect.o: $(hdrdir)/ruby/internal/intern/proc.h
-protect.o: $(hdrdir)/ruby/internal/intern/process.h
-protect.o: $(hdrdir)/ruby/internal/intern/random.h
-protect.o: $(hdrdir)/ruby/internal/intern/range.h
-protect.o: $(hdrdir)/ruby/internal/intern/rational.h
-protect.o: $(hdrdir)/ruby/internal/intern/re.h
-protect.o: $(hdrdir)/ruby/internal/intern/ruby.h
-protect.o: $(hdrdir)/ruby/internal/intern/select.h
-protect.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-protect.o: $(hdrdir)/ruby/internal/intern/signal.h
-protect.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-protect.o: $(hdrdir)/ruby/internal/intern/string.h
-protect.o: $(hdrdir)/ruby/internal/intern/struct.h
-protect.o: $(hdrdir)/ruby/internal/intern/thread.h
-protect.o: $(hdrdir)/ruby/internal/intern/time.h
-protect.o: $(hdrdir)/ruby/internal/intern/variable.h
-protect.o: $(hdrdir)/ruby/internal/intern/vm.h
-protect.o: $(hdrdir)/ruby/internal/interpreter.h
-protect.o: $(hdrdir)/ruby/internal/iterator.h
-protect.o: $(hdrdir)/ruby/internal/memory.h
-protect.o: $(hdrdir)/ruby/internal/method.h
-protect.o: $(hdrdir)/ruby/internal/module.h
-protect.o: $(hdrdir)/ruby/internal/newobj.h
-protect.o: $(hdrdir)/ruby/internal/rgengc.h
-protect.o: $(hdrdir)/ruby/internal/scan_args.h
-protect.o: $(hdrdir)/ruby/internal/special_consts.h
-protect.o: $(hdrdir)/ruby/internal/static_assert.h
-protect.o: $(hdrdir)/ruby/internal/stdalign.h
-protect.o: $(hdrdir)/ruby/internal/stdbool.h
-protect.o: $(hdrdir)/ruby/internal/symbol.h
-protect.o: $(hdrdir)/ruby/internal/token_paste.h
-protect.o: $(hdrdir)/ruby/internal/value.h
-protect.o: $(hdrdir)/ruby/internal/value_type.h
-protect.o: $(hdrdir)/ruby/internal/variable.h
-protect.o: $(hdrdir)/ruby/internal/warning_push.h
-protect.o: $(hdrdir)/ruby/internal/xmalloc.h
protect.o: $(hdrdir)/ruby/assert.h
protect.o: $(hdrdir)/ruby/backward.h
-protect.o: $(hdrdir)/ruby/backward/2/assume.h
-protect.o: $(hdrdir)/ruby/backward/2/attributes.h
-protect.o: $(hdrdir)/ruby/backward/2/bool.h
-protect.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-protect.o: $(hdrdir)/ruby/backward/2/inttypes.h
-protect.o: $(hdrdir)/ruby/backward/2/limits.h
-protect.o: $(hdrdir)/ruby/backward/2/long_long.h
-protect.o: $(hdrdir)/ruby/backward/2/stdalign.h
-protect.o: $(hdrdir)/ruby/backward/2/stdarg.h
protect.o: $(hdrdir)/ruby/defines.h
protect.o: $(hdrdir)/ruby/intern.h
protect.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/marshal/compat/depend b/ext/-test-/marshal/compat/depend
index 017a555852..f159506960 100644
--- a/ext/-test-/marshal/compat/depend
+++ b/ext/-test-/marshal/compat/depend
@@ -2,157 +2,8 @@
usrcompat.o: $(RUBY_EXTCONF_H)
usrcompat.o: $(arch_hdrdir)/ruby/config.h
usrcompat.o: $(hdrdir)/ruby.h
-usrcompat.o: $(hdrdir)/ruby/internal/anyargs.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-usrcompat.o: $(hdrdir)/ruby/internal/assume.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/artificial.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/cold.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/const.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/error.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/format.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/noalias.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/noinline.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/pure.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/restrict.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/warning.h
-usrcompat.o: $(hdrdir)/ruby/internal/attr/weakref.h
-usrcompat.o: $(hdrdir)/ruby/internal/cast.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-usrcompat.o: $(hdrdir)/ruby/internal/compiler_since.h
-usrcompat.o: $(hdrdir)/ruby/internal/config.h
-usrcompat.o: $(hdrdir)/ruby/internal/constant_p.h
-usrcompat.o: $(hdrdir)/ruby/internal/core.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rarray.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rbasic.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rbignum.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rclass.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rdata.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rfile.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rhash.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/robject.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rregexp.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rstring.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rstruct.h
-usrcompat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-usrcompat.o: $(hdrdir)/ruby/internal/ctype.h
-usrcompat.o: $(hdrdir)/ruby/internal/dllexport.h
-usrcompat.o: $(hdrdir)/ruby/internal/dosish.h
-usrcompat.o: $(hdrdir)/ruby/internal/error.h
-usrcompat.o: $(hdrdir)/ruby/internal/eval.h
-usrcompat.o: $(hdrdir)/ruby/internal/event.h
-usrcompat.o: $(hdrdir)/ruby/internal/fl_type.h
-usrcompat.o: $(hdrdir)/ruby/internal/gc.h
-usrcompat.o: $(hdrdir)/ruby/internal/glob.h
-usrcompat.o: $(hdrdir)/ruby/internal/globals.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/attribute.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/builtin.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/extension.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/feature.h
-usrcompat.o: $(hdrdir)/ruby/internal/has/warning.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/array.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/bignum.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/class.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/compar.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/complex.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/cont.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/dir.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/enum.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/error.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/eval.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/file.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/gc.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/hash.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/io.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/load.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/marshal.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/numeric.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/object.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/parse.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/proc.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/process.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/random.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/range.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/rational.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/re.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/ruby.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/select.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/signal.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/string.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/struct.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/thread.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/time.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/variable.h
-usrcompat.o: $(hdrdir)/ruby/internal/intern/vm.h
-usrcompat.o: $(hdrdir)/ruby/internal/interpreter.h
-usrcompat.o: $(hdrdir)/ruby/internal/iterator.h
-usrcompat.o: $(hdrdir)/ruby/internal/memory.h
-usrcompat.o: $(hdrdir)/ruby/internal/method.h
-usrcompat.o: $(hdrdir)/ruby/internal/module.h
-usrcompat.o: $(hdrdir)/ruby/internal/newobj.h
-usrcompat.o: $(hdrdir)/ruby/internal/rgengc.h
-usrcompat.o: $(hdrdir)/ruby/internal/scan_args.h
-usrcompat.o: $(hdrdir)/ruby/internal/special_consts.h
-usrcompat.o: $(hdrdir)/ruby/internal/static_assert.h
-usrcompat.o: $(hdrdir)/ruby/internal/stdalign.h
-usrcompat.o: $(hdrdir)/ruby/internal/stdbool.h
-usrcompat.o: $(hdrdir)/ruby/internal/symbol.h
-usrcompat.o: $(hdrdir)/ruby/internal/token_paste.h
-usrcompat.o: $(hdrdir)/ruby/internal/value.h
-usrcompat.o: $(hdrdir)/ruby/internal/value_type.h
-usrcompat.o: $(hdrdir)/ruby/internal/variable.h
-usrcompat.o: $(hdrdir)/ruby/internal/warning_push.h
-usrcompat.o: $(hdrdir)/ruby/internal/xmalloc.h
usrcompat.o: $(hdrdir)/ruby/assert.h
usrcompat.o: $(hdrdir)/ruby/backward.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/assume.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/attributes.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/bool.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/inttypes.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/limits.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/long_long.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/stdalign.h
-usrcompat.o: $(hdrdir)/ruby/backward/2/stdarg.h
usrcompat.o: $(hdrdir)/ruby/defines.h
usrcompat.o: $(hdrdir)/ruby/intern.h
usrcompat.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/marshal/internal_ivar/depend b/ext/-test-/marshal/internal_ivar/depend
index 73b76c9080..f280347c01 100644
--- a/ext/-test-/marshal/internal_ivar/depend
+++ b/ext/-test-/marshal/internal_ivar/depend
@@ -2,157 +2,8 @@
internal_ivar.o: $(RUBY_EXTCONF_H)
internal_ivar.o: $(arch_hdrdir)/ruby/config.h
internal_ivar.o: $(hdrdir)/ruby.h
-internal_ivar.o: $(hdrdir)/ruby/internal/anyargs.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-internal_ivar.o: $(hdrdir)/ruby/internal/assume.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/artificial.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/cold.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/const.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/error.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/format.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/noalias.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/noinline.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/pure.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/restrict.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/warning.h
-internal_ivar.o: $(hdrdir)/ruby/internal/attr/weakref.h
-internal_ivar.o: $(hdrdir)/ruby/internal/cast.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-internal_ivar.o: $(hdrdir)/ruby/internal/compiler_since.h
-internal_ivar.o: $(hdrdir)/ruby/internal/config.h
-internal_ivar.o: $(hdrdir)/ruby/internal/constant_p.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rarray.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rbasic.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rbignum.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rclass.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rdata.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rfile.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rhash.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/robject.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rregexp.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rstring.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rstruct.h
-internal_ivar.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-internal_ivar.o: $(hdrdir)/ruby/internal/ctype.h
-internal_ivar.o: $(hdrdir)/ruby/internal/dllexport.h
-internal_ivar.o: $(hdrdir)/ruby/internal/dosish.h
-internal_ivar.o: $(hdrdir)/ruby/internal/error.h
-internal_ivar.o: $(hdrdir)/ruby/internal/eval.h
-internal_ivar.o: $(hdrdir)/ruby/internal/event.h
-internal_ivar.o: $(hdrdir)/ruby/internal/fl_type.h
-internal_ivar.o: $(hdrdir)/ruby/internal/gc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/glob.h
-internal_ivar.o: $(hdrdir)/ruby/internal/globals.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/attribute.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/builtin.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/extension.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/feature.h
-internal_ivar.o: $(hdrdir)/ruby/internal/has/warning.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/array.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/bignum.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/class.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/compar.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/complex.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/cont.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/dir.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/enum.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/error.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/eval.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/file.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/gc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/hash.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/io.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/load.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/marshal.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/numeric.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/object.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/parse.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/proc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/process.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/random.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/range.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/rational.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/re.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/ruby.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/select.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/signal.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/string.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/struct.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/thread.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/time.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/variable.h
-internal_ivar.o: $(hdrdir)/ruby/internal/intern/vm.h
-internal_ivar.o: $(hdrdir)/ruby/internal/interpreter.h
-internal_ivar.o: $(hdrdir)/ruby/internal/iterator.h
-internal_ivar.o: $(hdrdir)/ruby/internal/memory.h
-internal_ivar.o: $(hdrdir)/ruby/internal/method.h
-internal_ivar.o: $(hdrdir)/ruby/internal/module.h
-internal_ivar.o: $(hdrdir)/ruby/internal/newobj.h
-internal_ivar.o: $(hdrdir)/ruby/internal/rgengc.h
-internal_ivar.o: $(hdrdir)/ruby/internal/scan_args.h
-internal_ivar.o: $(hdrdir)/ruby/internal/special_consts.h
-internal_ivar.o: $(hdrdir)/ruby/internal/static_assert.h
-internal_ivar.o: $(hdrdir)/ruby/internal/stdalign.h
-internal_ivar.o: $(hdrdir)/ruby/internal/stdbool.h
-internal_ivar.o: $(hdrdir)/ruby/internal/symbol.h
-internal_ivar.o: $(hdrdir)/ruby/internal/token_paste.h
-internal_ivar.o: $(hdrdir)/ruby/internal/value.h
-internal_ivar.o: $(hdrdir)/ruby/internal/value_type.h
-internal_ivar.o: $(hdrdir)/ruby/internal/variable.h
-internal_ivar.o: $(hdrdir)/ruby/internal/warning_push.h
-internal_ivar.o: $(hdrdir)/ruby/internal/xmalloc.h
internal_ivar.o: $(hdrdir)/ruby/assert.h
internal_ivar.o: $(hdrdir)/ruby/backward.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/assume.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/attributes.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/bool.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/inttypes.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/limits.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/long_long.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/stdalign.h
-internal_ivar.o: $(hdrdir)/ruby/backward/2/stdarg.h
internal_ivar.o: $(hdrdir)/ruby/defines.h
internal_ivar.o: $(hdrdir)/ruby/intern.h
internal_ivar.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/marshal/usr/depend b/ext/-test-/marshal/usr/depend
index bf96e44d02..21c0c2d744 100644
--- a/ext/-test-/marshal/usr/depend
+++ b/ext/-test-/marshal/usr/depend
@@ -2,157 +2,8 @@
usrmarshal.o: $(RUBY_EXTCONF_H)
usrmarshal.o: $(arch_hdrdir)/ruby/config.h
usrmarshal.o: $(hdrdir)/ruby.h
-usrmarshal.o: $(hdrdir)/ruby/internal/anyargs.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-usrmarshal.o: $(hdrdir)/ruby/internal/assume.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/artificial.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/cold.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/const.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/error.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/format.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/noalias.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/noinline.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/pure.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/restrict.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/warning.h
-usrmarshal.o: $(hdrdir)/ruby/internal/attr/weakref.h
-usrmarshal.o: $(hdrdir)/ruby/internal/cast.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-usrmarshal.o: $(hdrdir)/ruby/internal/compiler_since.h
-usrmarshal.o: $(hdrdir)/ruby/internal/config.h
-usrmarshal.o: $(hdrdir)/ruby/internal/constant_p.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rarray.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rbasic.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rbignum.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rclass.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rdata.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rfile.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rhash.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/robject.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rregexp.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rstring.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rstruct.h
-usrmarshal.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-usrmarshal.o: $(hdrdir)/ruby/internal/ctype.h
-usrmarshal.o: $(hdrdir)/ruby/internal/dllexport.h
-usrmarshal.o: $(hdrdir)/ruby/internal/dosish.h
-usrmarshal.o: $(hdrdir)/ruby/internal/error.h
-usrmarshal.o: $(hdrdir)/ruby/internal/eval.h
-usrmarshal.o: $(hdrdir)/ruby/internal/event.h
-usrmarshal.o: $(hdrdir)/ruby/internal/fl_type.h
-usrmarshal.o: $(hdrdir)/ruby/internal/gc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/glob.h
-usrmarshal.o: $(hdrdir)/ruby/internal/globals.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/attribute.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/builtin.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/extension.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/feature.h
-usrmarshal.o: $(hdrdir)/ruby/internal/has/warning.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/array.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/bignum.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/class.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/compar.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/complex.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/cont.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/dir.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/enum.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/error.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/eval.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/file.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/gc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/hash.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/io.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/load.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/marshal.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/numeric.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/object.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/parse.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/proc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/process.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/random.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/range.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/rational.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/re.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/ruby.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/select.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/signal.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/string.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/struct.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/thread.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/time.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/variable.h
-usrmarshal.o: $(hdrdir)/ruby/internal/intern/vm.h
-usrmarshal.o: $(hdrdir)/ruby/internal/interpreter.h
-usrmarshal.o: $(hdrdir)/ruby/internal/iterator.h
-usrmarshal.o: $(hdrdir)/ruby/internal/memory.h
-usrmarshal.o: $(hdrdir)/ruby/internal/method.h
-usrmarshal.o: $(hdrdir)/ruby/internal/module.h
-usrmarshal.o: $(hdrdir)/ruby/internal/newobj.h
-usrmarshal.o: $(hdrdir)/ruby/internal/rgengc.h
-usrmarshal.o: $(hdrdir)/ruby/internal/scan_args.h
-usrmarshal.o: $(hdrdir)/ruby/internal/special_consts.h
-usrmarshal.o: $(hdrdir)/ruby/internal/static_assert.h
-usrmarshal.o: $(hdrdir)/ruby/internal/stdalign.h
-usrmarshal.o: $(hdrdir)/ruby/internal/stdbool.h
-usrmarshal.o: $(hdrdir)/ruby/internal/symbol.h
-usrmarshal.o: $(hdrdir)/ruby/internal/token_paste.h
-usrmarshal.o: $(hdrdir)/ruby/internal/value.h
-usrmarshal.o: $(hdrdir)/ruby/internal/value_type.h
-usrmarshal.o: $(hdrdir)/ruby/internal/variable.h
-usrmarshal.o: $(hdrdir)/ruby/internal/warning_push.h
-usrmarshal.o: $(hdrdir)/ruby/internal/xmalloc.h
usrmarshal.o: $(hdrdir)/ruby/assert.h
usrmarshal.o: $(hdrdir)/ruby/backward.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/assume.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/attributes.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/bool.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/inttypes.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/limits.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/long_long.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/stdalign.h
-usrmarshal.o: $(hdrdir)/ruby/backward/2/stdarg.h
usrmarshal.o: $(hdrdir)/ruby/defines.h
usrmarshal.o: $(hdrdir)/ruby/intern.h
usrmarshal.o: $(hdrdir)/ruby/missing.h
diff --git a/ext/-test-/memory_status/depend b/ext/-test-/memory_status/depend
index 96a7821451..657ef59c35 100644
--- a/ext/-test-/memory_status/depend
+++ b/ext/-test-/memory_status/depend
@@ -4,157 +4,8 @@ memory_status.o: $(arch_hdrdir)/ruby/config.h
memory_status.o: $(hdrdir)/ruby.h
memory_status.o: $(hdrdir)/ruby/assert.h
memory_status.o: $(hdrdir)/ruby/backward.h
-memory_status.o: $(hdrdir)/ruby/backward/2/assume.h
-memory_status.o: $(hdrdir)/ruby/backward/2/attributes.h
-memory_status.o: $(hdrdir)/ruby/backward/2/bool.h
-memory_status.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-memory_status.o: $(hdrdir)/ruby/backward/2/inttypes.h
-memory_status.o: $(hdrdir)/ruby/backward/2/limits.h
-memory_status.o: $(hdrdir)/ruby/backward/2/long_long.h
-memory_status.o: $(hdrdir)/ruby/backward/2/stdalign.h
-memory_status.o: $(hdrdir)/ruby/backward/2/stdarg.h
memory_status.o: $(hdrdir)/ruby/defines.h
memory_status.o: $(hdrdir)/ruby/intern.h
-memory_status.o: $(hdrdir)/ruby/internal/anyargs.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-memory_status.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-memory_status.o: $(hdrdir)/ruby/internal/assume.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/artificial.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/cold.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/const.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/error.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/format.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/noalias.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/noinline.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/pure.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/restrict.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/warning.h
-memory_status.o: $(hdrdir)/ruby/internal/attr/weakref.h
-memory_status.o: $(hdrdir)/ruby/internal/cast.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-memory_status.o: $(hdrdir)/ruby/internal/compiler_since.h
-memory_status.o: $(hdrdir)/ruby/internal/config.h
-memory_status.o: $(hdrdir)/ruby/internal/constant_p.h
-memory_status.o: $(hdrdir)/ruby/internal/core.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rarray.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rbasic.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rbignum.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rclass.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rdata.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rfile.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rhash.h
-memory_status.o: $(hdrdir)/ruby/internal/core/robject.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rregexp.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rstring.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rstruct.h
-memory_status.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-memory_status.o: $(hdrdir)/ruby/internal/ctype.h
-memory_status.o: $(hdrdir)/ruby/internal/dllexport.h
-memory_status.o: $(hdrdir)/ruby/internal/dosish.h
-memory_status.o: $(hdrdir)/ruby/internal/error.h
-memory_status.o: $(hdrdir)/ruby/internal/eval.h
-memory_status.o: $(hdrdir)/ruby/internal/event.h
-memory_status.o: $(hdrdir)/ruby/internal/fl_type.h
-memory_status.o: $(hdrdir)/ruby/internal/gc.h
-memory_status.o: $(hdrdir)/ruby/internal/glob.h
-memory_status.o: $(hdrdir)/ruby/internal/globals.h
-memory_status.o: $(hdrdir)/ruby/internal/has/attribute.h
-memory_status.o: $(hdrdir)/ruby/internal/has/builtin.h
-memory_status.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-memory_status.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-memory_status.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-memory_status.o: $(hdrdir)/ruby/internal/has/extension.h
-memory_status.o: $(hdrdir)/ruby/internal/has/feature.h
-memory_status.o: $(hdrdir)/ruby/internal/has/warning.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/array.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/bignum.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/class.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/compar.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/complex.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/cont.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/dir.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/enum.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/error.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/eval.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/file.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/gc.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/hash.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/io.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/load.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/marshal.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/numeric.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/object.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/parse.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/proc.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/process.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/random.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/range.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/rational.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/re.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/ruby.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/select.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/signal.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/string.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/struct.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/thread.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/time.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/variable.h
-memory_status.o: $(hdrdir)/ruby/internal/intern/vm.h
-memory_status.o: $(hdrdir)/ruby/internal/interpreter.h
-memory_status.o: $(hdrdir)/ruby/internal/iterator.h
-memory_status.o: $(hdrdir)/ruby/internal/memory.h
-memory_status.o: $(hdrdir)/ruby/internal/method.h
-memory_status.o: $(hdrdir)/ruby/internal/module.h
-memory_status.o: $(hdrdir)/ruby/internal/newobj.h
-memory_status.o: $(hdrdir)/ruby/internal/rgengc.h
-memory_status.o: $(hdrdir)/ruby/internal/scan_args.h
-memory_status.o: $(hdrdir)/ruby/internal/special_consts.h
-memory_status.o: $(hdrdir)/ruby/internal/static_assert.h
-memory_status.o: $(hdrdir)/ruby/internal/stdalign.h
-memory_status.o: $(hdrdir)/ruby/internal/stdbool.h
-memory_status.o: $(hdrdir)/ruby/internal/symbol.h
-memory_status.o: $(hdrdir)/ruby/internal/token_paste.h
-memory_status.o: $(hdrdir)/ruby/internal/value.h
-memory_status.o: $(hdrdir)/ruby/internal/value_type.h
-memory_status.o: $(hdrdir)/ruby/internal/variable.h
-memory_status.o: $(hdrdir)/ruby/internal/warning_push.h
-memory_status.o: $(hdrdir)/ruby/internal/xmalloc.h
memory_status.o: $(hdrdir)/ruby/missing.h
memory_status.o: $(hdrdir)/ruby/ruby.h
memory_status.o: $(hdrdir)/ruby/st.h
diff --git a/ext/-test-/memory_view/depend b/ext/-test-/memory_view/depend
deleted file mode 100644
index bcbd98d41f..0000000000
--- a/ext/-test-/memory_view/depend
+++ /dev/null
@@ -1,164 +0,0 @@
-# AUTOGENERATED DEPENDENCIES START
-memory_view.o: $(RUBY_EXTCONF_H)
-memory_view.o: $(arch_hdrdir)/ruby/config.h
-memory_view.o: $(hdrdir)/ruby.h
-memory_view.o: $(hdrdir)/ruby/assert.h
-memory_view.o: $(hdrdir)/ruby/backward.h
-memory_view.o: $(hdrdir)/ruby/backward/2/assume.h
-memory_view.o: $(hdrdir)/ruby/backward/2/attributes.h
-memory_view.o: $(hdrdir)/ruby/backward/2/bool.h
-memory_view.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-memory_view.o: $(hdrdir)/ruby/backward/2/inttypes.h
-memory_view.o: $(hdrdir)/ruby/backward/2/limits.h
-memory_view.o: $(hdrdir)/ruby/backward/2/long_long.h
-memory_view.o: $(hdrdir)/ruby/backward/2/stdalign.h
-memory_view.o: $(hdrdir)/ruby/backward/2/stdarg.h
-memory_view.o: $(hdrdir)/ruby/defines.h
-memory_view.o: $(hdrdir)/ruby/intern.h
-memory_view.o: $(hdrdir)/ruby/internal/anyargs.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/char.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/double.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/int.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/short.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
-memory_view.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
-memory_view.o: $(hdrdir)/ruby/internal/assume.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/artificial.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/cold.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/const.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/constexpr.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/deprecated.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/error.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/forceinline.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/format.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/noalias.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/noexcept.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/noinline.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/nonnull.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/noreturn.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/pure.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/restrict.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/warning.h
-memory_view.o: $(hdrdir)/ruby/internal/attr/weakref.h
-memory_view.o: $(hdrdir)/ruby/internal/cast.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
-memory_view.o: $(hdrdir)/ruby/internal/compiler_since.h
-memory_view.o: $(hdrdir)/ruby/internal/config.h
-memory_view.o: $(hdrdir)/ruby/internal/constant_p.h
-memory_view.o: $(hdrdir)/ruby/internal/core.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rarray.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rbasic.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rbignum.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rclass.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rdata.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rfile.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rhash.h
-memory_view.o: $(hdrdir)/ruby/internal/core/robject.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rregexp.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rstring.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rstruct.h
-memory_view.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
-memory_view.o: $(hdrdir)/ruby/internal/ctype.h
-memory_view.o: $(hdrdir)/ruby/internal/dllexport.h
-memory_view.o: $(hdrdir)/ruby/internal/dosish.h
-memory_view.o: $(hdrdir)/ruby/internal/error.h
-memory_view.o: $(hdrdir)/ruby/internal/eval.h
-memory_view.o: $(hdrdir)/ruby/internal/event.h
-memory_view.o: $(hdrdir)/ruby/internal/fl_type.h
-memory_view.o: $(hdrdir)/ruby/internal/gc.h
-memory_view.o: $(hdrdir)/ruby/internal/glob.h
-memory_view.o: $(hdrdir)/ruby/internal/globals.h
-memory_view.o: $(hdrdir)/ruby/internal/has/attribute.h
-memory_view.o: $(hdrdir)/ruby/internal/has/builtin.h
-memory_view.o: $(hdrdir)/ruby/internal/has/c_attribute.h
-memory_view.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
-memory_view.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
-memory_view.o: $(hdrdir)/ruby/internal/has/extension.h
-memory_view.o: $(hdrdir)/ruby/internal/has/feature.h
-memory_view.o: $(hdrdir)/ruby/internal/has/warning.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/array.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/bignum.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/class.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/compar.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/complex.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/cont.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/dir.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/enum.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/enumerator.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/error.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/eval.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/file.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/gc.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/hash.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/io.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/load.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/marshal.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/numeric.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/object.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/parse.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/proc.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/process.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/random.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/range.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/rational.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/re.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/ruby.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/select.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/signal.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/sprintf.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/string.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/struct.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/thread.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/time.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/variable.h
-memory_view.o: $(hdrdir)/ruby/internal/intern/vm.h
-memory_view.o: $(hdrdir)/ruby/internal/interpreter.h
-memory_view.o: $(hdrdir)/ruby/internal/iterator.h
-memory_view.o: $(hdrdir)/ruby/internal/memory.h
-memory_view.o: $(hdrdir)/ruby/internal/method.h
-memory_view.o: $(hdrdir)/ruby/internal/module.h
-memory_view.o: $(hdrdir)/ruby/internal/newobj.h
-memory_view.o: $(hdrdir)/ruby/internal/rgengc.h
-memory_view.o: $(hdrdir)/ruby/internal/scan_args.h
-memory_view.o: $(hdrdir)/ruby/internal/special_consts.h
-memory_view.o: $(hdrdir)/ruby/internal/static_assert.h
-memory_view.o: $(hdrdir)/ruby/internal/stdalign.h
-memory_view.o: $(hdrdir)/ruby/internal/stdbool.h
-memory_view.o: $(hdrdir)/ruby/internal/symbol.h
-memory_view.o: $(hdrdir)/ruby/internal/token_paste.h
-memory_view.o: $(hdrdir)/ruby/internal/value.h
-memory_view.o: $(hdrdir)/ruby/internal/value_type.h
-memory_view.o: $(hdrdir)/ruby/internal/variable.h
-memory_view.o: $(hdrdir)/ruby/internal/warning_push.h
-memory_view.o: $(hdrdir)/ruby/internal/xmalloc.h
-memory_view.o: $(hdrdir)/ruby/memory_view.h
-memory_view.o: $(hdrdir)/ruby/missing.h
-memory_view.o: $(hdrdir)/ruby/ruby.h
-memory_view.o: $(hdrdir)/ruby/st.h
-memory_view.o: $(hdrdir)/ruby/subst.h
-memory_view.o: memory_view.c
-# AUTOGENERATED DEPENDENCIES END
diff --git a/ext/-test-/memory_view/extconf.rb b/ext/-test-/memory_view/extconf.rb
deleted file mode 100644
index d786b15db9..0000000000
--- a/ext/-test-/memory_view/extconf.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# frozen_string_literal: false
-require_relative "../auto_ext.rb"
-auto_ext(inc: true)
diff --git a/ext/-test-/memory_view/memory_view.c b/ext/-test-/memory_view/memory_view.c
deleted file mode 100644