debase-ruby_core_source 0.10.13 → 0.10.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/debase-ruby_core_source.gemspec +3 -3
  4. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/addr2line.h +1 -1
  5. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/build_assert/build_assert.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/check_type/check_type.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/container_of/container_of.h +0 -0
  8. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/list/list.h +773 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-2.5.4-p155}/ccan/str/str.h +0 -0
  10. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/constant.h +51 -0
  11. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +109 -0
  12. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/dln.h +10 -9
  13. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/encindex.h +69 -0
  14. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +334 -0
  15. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/gc.h +27 -10
  16. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id.h +250 -0
  17. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id_table.h +31 -0
  18. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns.inc +217 -0
  19. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +1570 -0
  20. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/internal.h +2036 -0
  21. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/iseq.h +308 -0
  22. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/known_errors.inc +16 -1
  23. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/method.h +218 -0
  24. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node.h +115 -79
  25. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node_name.inc +12 -22
  26. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +1601 -0
  27. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +103 -0
  28. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/optunifs.inc +28 -83
  29. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/parse.h +74 -60
  30. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +43 -0
  31. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/regenc.h +254 -0
  32. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regint.h +299 -211
  33. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regparse.h +45 -37
  34. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/revision.h +1 -0
  35. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ruby_assert.h +54 -0
  36. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/ruby_atomic.h +84 -26
  37. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/siphash.h +1 -1
  38. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/symbol.h +108 -0
  39. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_pthread.h +14 -11
  40. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_win32.h +2 -6
  41. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/timev.h +42 -0
  42. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/transcode_data.h +34 -12
  43. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/version.h +73 -0
  44. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm.inc +3667 -0
  45. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +213 -0
  46. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_core.h +1768 -0
  47. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550/debug.h → ruby-2.5.4-p155/vm_debug.h} +4 -8
  48. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_exec.h +38 -30
  49. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +255 -0
  50. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_opts.h +14 -9
  51. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +214 -0
  52. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/addr2line.h +0 -0
  53. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/builtin.h +1 -0
  54. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/build_assert/build_assert.h +40 -0
  55. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/check_type/check_type.h +63 -0
  56. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/container_of/container_of.h +142 -0
  57. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ccan/list/list.h +0 -0
  58. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/ccan/str/str.h +16 -0
  59. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/constant.h +0 -0
  60. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/darray.h +0 -0
  61. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/debug_counter.h +2 -0
  62. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/dln.h +0 -0
  63. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/encindex.h +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/eval_intern.h +32 -1
  65. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/gc.h +0 -1
  66. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/hrtime.h +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id.h +0 -0
  68. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/id_table.h +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns.inc +4 -2
  70. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/insns_info.inc +309 -224
  71. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/array.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bignum.h +0 -0
  73. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/bits.h +0 -0
  74. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/class.h +13 -5
  75. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compar.h +0 -0
  76. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compile.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/compilers.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/complex.h +0 -0
  79. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/cont.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/dir.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enc.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/encoding.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enum.h +0 -0
  84. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/enumerator.h +0 -0
  85. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/error.h +0 -0
  86. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/eval.h +0 -0
  87. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/file.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/fixnum.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/gc.h +12 -1
  90. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/hash.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/imemo.h +0 -0
  92. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/inits.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/io.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/load.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/loadpath.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/math.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/missing.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/numeric.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/object.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/parse.h +0 -0
  101. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/proc.h +0 -0
  102. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/process.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/random.h +0 -0
  104. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/range.h +0 -0
  105. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/rational.h +0 -0
  106. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/re.h +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/sanitizers.h +0 -0
  108. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/serial.h +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/signal.h +0 -0
  110. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/static_assert.h +0 -0
  111. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/string.h +0 -0
  112. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/struct.h +0 -0
  113. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/symbol.h +1 -0
  114. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/thread.h +0 -0
  115. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/time.h +0 -0
  116. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/transcode.h +0 -0
  117. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/util.h +0 -0
  118. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/variable.h +0 -0
  119. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/vm.h +2 -1
  120. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal/warnings.h +0 -0
  121. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/internal.h +0 -0
  122. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/iseq.h +3 -1
  123. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/known_errors.inc +0 -0
  124. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/method.h +14 -6
  125. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit.h +0 -0
  126. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/mjit_compile.inc +64 -7
  127. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node.h +28 -17
  128. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/node_name.inc +0 -2
  129. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/opt_sc.inc +2 -0
  130. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optinsn.inc +0 -0
  131. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/optunifs.inc +1 -1
  132. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/parse.h +0 -0
  133. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/probes_helper.h +0 -0
  134. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ractor_core.h +0 -0
  135. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regenc.h +0 -0
  136. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regint.h +0 -0
  137. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/regparse.h +0 -0
  138. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/revision.h +2 -0
  139. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_assert.h +0 -0
  140. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/ruby_atomic.h +0 -0
  141. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/siphash.h +0 -0
  142. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/symbol.h +0 -0
  143. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_pthread.h +0 -0
  144. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/thread_win32.h +0 -0
  145. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/timev.h +0 -0
  146. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transcode_data.h +0 -0
  147. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/transient_heap.h +0 -0
  148. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/variable.h +0 -0
  149. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/version.h +4 -4
  150. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm.inc +338 -283
  151. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_call_iseq_optimized.inc +0 -0
  152. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_callinfo.h +41 -8
  153. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_core.h +6 -2
  154. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_debug.h +8 -3
  155. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_exec.h +0 -0
  156. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_insnhelper.h +0 -0
  157. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vm_opts.h +0 -0
  158. data/lib/debase/ruby_core_source/ruby-3.1.0-p0/vm_sync.h +137 -0
  159. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/vmtc.inc +4 -2
  160. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit.h +11 -1
  161. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_asm.h +21 -5
  162. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_codegen.h +5 -1
  163. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_core.h +11 -6
  164. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.1.0-p0}/yjit_iface.h +0 -0
  165. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/addr2line.h +20 -0
  166. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/builtin.h +84 -0
  167. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h +40 -0
  168. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/check_type/check_type.h +63 -0
  169. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/container_of/container_of.h +142 -0
  170. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/list/list.h +789 -0
  171. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/str/str.h +17 -0
  172. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/constant.h +55 -0
  173. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/darray.h +226 -0
  174. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/debug_counter.h +469 -0
  175. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/dln.h +31 -0
  176. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/encindex.h +70 -0
  177. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/eval_intern.h +339 -0
  178. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/gc.h +143 -0
  179. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/hrtime.h +216 -0
  180. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id.h +295 -0
  181. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id_table.h +36 -0
  182. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns.inc +249 -0
  183. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns_info.inc +9064 -0
  184. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/array.h +113 -0
  185. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bignum.h +246 -0
  186. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bits.h +565 -0
  187. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/class.h +211 -0
  188. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cmdlineopt.h +61 -0
  189. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compar.h +49 -0
  190. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compile.h +35 -0
  191. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compilers.h +107 -0
  192. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/complex.h +29 -0
  193. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cont.h +24 -0
  194. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/dir.h +16 -0
  195. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enc.h +19 -0
  196. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/encoding.h +30 -0
  197. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enum.h +18 -0
  198. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enumerator.h +21 -0
  199. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/error.h +191 -0
  200. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/eval.h +32 -0
  201. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/file.h +38 -0
  202. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/fixnum.h +184 -0
  203. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/gc.h +188 -0
  204. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/hash.h +243 -0
  205. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/imemo.h +243 -0
  206. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/inits.h +50 -0
  207. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/io.h +38 -0
  208. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/load.h +18 -0
  209. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/loadpath.h +16 -0
  210. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/math.h +23 -0
  211. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/missing.h +18 -0
  212. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/numeric.h +271 -0
  213. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/object.h +83 -0
  214. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/parse.h +23 -0
  215. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/proc.h +32 -0
  216. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/process.h +137 -0
  217. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/ractor.h +6 -0
  218. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/random.h +16 -0
  219. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/range.h +40 -0
  220. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/rational.h +72 -0
  221. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/re.h +30 -0
  222. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/sanitizers.h +190 -0
  223. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/serial.h +23 -0
  224. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/signal.h +21 -0
  225. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/static_assert.h +16 -0
  226. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/string.h +141 -0
  227. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/struct.h +153 -0
  228. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/symbol.h +41 -0
  229. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/thread.h +53 -0
  230. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/time.h +34 -0
  231. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/transcode.h +20 -0
  232. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/util.h +27 -0
  233. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/variable.h +83 -0
  234. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/vm.h +134 -0
  235. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/warnings.h +16 -0
  236. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal.h +109 -0
  237. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/iseq.h +325 -0
  238. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/known_errors.inc +791 -0
  239. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/method.h +254 -0
  240. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit.h +231 -0
  241. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit_compile.inc +8333 -0
  242. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node.h +510 -0
  243. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node_name.inc +208 -0
  244. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/opt_sc.inc +109 -0
  245. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optinsn.inc +128 -0
  246. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optunifs.inc +43 -0
  247. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/parse.h +214 -0
  248. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/probes_helper.h +44 -0
  249. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ractor_core.h +346 -0
  250. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regenc.h +255 -0
  251. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regint.h +957 -0
  252. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regparse.h +370 -0
  253. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/revision.h +2 -0
  254. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_assert.h +14 -0
  255. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_atomic.h +23 -0
  256. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/siphash.h +48 -0
  257. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/symbol.h +119 -0
  258. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_none.h +17 -0
  259. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_pthread.h +115 -0
  260. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_win32.h +61 -0
  261. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/timev.h +57 -0
  262. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transcode_data.h +138 -0
  263. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transient_heap.h +65 -0
  264. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/variable.h +21 -0
  265. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/version.h +91 -0
  266. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm.inc +5481 -0
  267. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_call_iseq_optimized.inc +244 -0
  268. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_callinfo.h +502 -0
  269. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_core.h +2089 -0
  270. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_debug.h +113 -0
  271. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_exec.h +197 -0
  272. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_insnhelper.h +262 -0
  273. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_opts.h +73 -0
  274. data/lib/debase/ruby_core_source/{ruby-3.1.0-preview1 → ruby-3.2.0-preview1}/vm_sync.h +0 -0
  275. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vmtc.inc +243 -0
  276. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit.h +73 -0
  277. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_asm.h +408 -0
  278. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_codegen.h +23 -0
  279. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_core.h +307 -0
  280. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_iface.h +38 -0
  281. data/lib/debase/ruby_core_source/version.rb +1 -1
  282. metadata +284 -158
  283. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/constant.h +0 -34
  284. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/encdb.h +0 -167
  285. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/eval_intern.h +0 -234
  286. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/id.h +0 -177
  287. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns.inc +0 -179
  288. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns_info.inc +0 -695
  289. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/internal.h +0 -242
  290. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/iseq.h +0 -126
  291. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/method.h +0 -105
  292. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/opt_sc.inc +0 -670
  293. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/optinsn.inc +0 -30
  294. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/regenc.h +0 -219
  295. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/revision.h +0 -1
  296. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/timev.h +0 -21
  297. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/transdb.h +0 -189
  298. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/version.h +0 -52
  299. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm.inc +0 -3054
  300. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_core.h +0 -763
  301. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_insnhelper.h +0 -220
  302. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vmtc.inc +0 -97
  303. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/revision.h +0 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  node.h -
4
4
 
5
- $Author: usa $
5
+ $Author: mame $
6
6
  created at: Fri May 28 15:14:02 JST 1993
7
7
 
8
8
  Copyright (C) 1993-2007 Yukihiro Matsumoto
@@ -26,12 +26,14 @@ enum node_type {
26
26
  #define NODE_BLOCK NODE_BLOCK
27
27
  NODE_IF,
28
28
  #define NODE_IF NODE_IF
29
+ NODE_UNLESS,
30
+ #define NODE_UNLESS NODE_UNLESS
29
31
  NODE_CASE,
30
32
  #define NODE_CASE NODE_CASE
33
+ NODE_CASE2,
34
+ #define NODE_CASE2 NODE_CASE2
31
35
  NODE_WHEN,
32
36
  #define NODE_WHEN NODE_WHEN
33
- NODE_OPT_N,
34
- #define NODE_OPT_N NODE_OPT_N
35
37
  NODE_WHILE,
36
38
  #define NODE_WHILE NODE_WHILE
37
39
  NODE_UNTIL,
@@ -72,14 +74,10 @@ enum node_type {
72
74
  #define NODE_GASGN NODE_GASGN
73
75
  NODE_IASGN,
74
76
  #define NODE_IASGN NODE_IASGN
75
- NODE_IASGN2,
76
- #define NODE_IASGN2 NODE_IASGN2
77
77
  NODE_CDECL,
78
78
  #define NODE_CDECL NODE_CDECL
79
79
  NODE_CVASGN,
80
80
  #define NODE_CVASGN NODE_CVASGN
81
- NODE_CVDECL,
82
- #define NODE_CVDECL NODE_CVDECL
83
81
  NODE_OP_ASGN1,
84
82
  #define NODE_OP_ASGN1 NODE_OP_ASGN1
85
83
  NODE_OP_ASGN2,
@@ -88,12 +86,18 @@ enum node_type {
88
86
  #define NODE_OP_ASGN_AND NODE_OP_ASGN_AND
89
87
  NODE_OP_ASGN_OR,
90
88
  #define NODE_OP_ASGN_OR NODE_OP_ASGN_OR
89
+ NODE_OP_CDECL,
90
+ #define NODE_OP_CDECL NODE_OP_CDECL
91
91
  NODE_CALL,
92
92
  #define NODE_CALL NODE_CALL
93
+ NODE_OPCALL,
94
+ #define NODE_OPCALL NODE_OPCALL
93
95
  NODE_FCALL,
94
96
  #define NODE_FCALL NODE_FCALL
95
97
  NODE_VCALL,
96
98
  #define NODE_VCALL NODE_VCALL
99
+ NODE_QCALL,
100
+ #define NODE_QCALL NODE_QCALL
97
101
  NODE_SUPER,
98
102
  #define NODE_SUPER NODE_SUPER
99
103
  NODE_ZSUPER,
@@ -146,14 +150,14 @@ enum node_type {
146
150
  #define NODE_EVSTR NODE_EVSTR
147
151
  NODE_DREGX,
148
152
  #define NODE_DREGX NODE_DREGX
149
- NODE_DREGX_ONCE,
150
- #define NODE_DREGX_ONCE NODE_DREGX_ONCE
151
153
  NODE_ARGS,
152
154
  #define NODE_ARGS NODE_ARGS
153
155
  NODE_ARGS_AUX,
154
156
  #define NODE_ARGS_AUX NODE_ARGS_AUX
155
157
  NODE_OPT_ARG,
156
158
  #define NODE_OPT_ARG NODE_OPT_ARG
159
+ NODE_KW_ARG,
160
+ #define NODE_KW_ARG NODE_KW_ARG
157
161
  NODE_POSTARG,
158
162
  #define NODE_POSTARG NODE_POSTARG
159
163
  NODE_ARGSCAT,
@@ -162,10 +166,6 @@ enum node_type {
162
166
  #define NODE_ARGSPUSH NODE_ARGSPUSH
163
167
  NODE_SPLAT,
164
168
  #define NODE_SPLAT NODE_SPLAT
165
- NODE_TO_ARY,
166
- #define NODE_TO_ARY NODE_TO_ARY
167
- NODE_BLOCK_ARG,
168
- #define NODE_BLOCK_ARG NODE_BLOCK_ARG
169
169
  NODE_BLOCK_PASS,
170
170
  #define NODE_BLOCK_PASS NODE_BLOCK_PASS
171
171
  NODE_DEFN,
@@ -210,14 +210,6 @@ enum node_type {
210
210
  #define NODE_DEFINED NODE_DEFINED
211
211
  NODE_POSTEXE,
212
212
  #define NODE_POSTEXE NODE_POSTEXE
213
- NODE_ALLOCA,
214
- #define NODE_ALLOCA NODE_ALLOCA
215
- NODE_BMETHOD,
216
- #define NODE_BMETHOD NODE_BMETHOD
217
- NODE_MEMO,
218
- #define NODE_MEMO NODE_MEMO
219
- NODE_IFUNC,
220
- #define NODE_IFUNC NODE_IFUNC
221
213
  NODE_DSYM,
222
214
  #define NODE_DSYM NODE_DSYM
223
215
  NODE_ATTRASGN,
@@ -226,15 +218,22 @@ enum node_type {
226
218
  #define NODE_PRELUDE NODE_PRELUDE
227
219
  NODE_LAMBDA,
228
220
  #define NODE_LAMBDA NODE_LAMBDA
229
- NODE_OPTBLOCK,
230
- #define NODE_OPTBLOCK NODE_OPTBLOCK
231
221
  NODE_LAST
232
222
  #define NODE_LAST NODE_LAST
233
223
  };
234
224
 
225
+ typedef struct rb_code_location_struct {
226
+ int lineno;
227
+ int column;
228
+ } rb_code_location_t;
229
+
230
+ typedef struct rb_code_range_struct {
231
+ rb_code_location_t first_loc;
232
+ rb_code_location_t last_loc;
233
+ } rb_code_range_t;
234
+
235
235
  typedef struct RNode {
236
236
  VALUE flags;
237
- VALUE nd_reserved; /* ex nd_file */
238
237
  union {
239
238
  struct RNode *node;
240
239
  ID id;
@@ -253,29 +252,46 @@ typedef struct RNode {
253
252
  ID id;
254
253
  long state;
255
254
  struct rb_global_entry *entry;
255
+ struct rb_args_info *args;
256
256
  long cnt;
257
257
  VALUE value;
258
258
  } u3;
259
+ rb_code_range_t nd_loc;
259
260
  } NODE;
260
261
 
261
262
  #define RNODE(obj) (R_CAST(RNode)(obj))
262
263
 
263
- /* 0..4:T_TYPES, 5:FL_MARK, 6:reserved, 7:NODE_FL_NEWLINE */
264
- #define NODE_FL_NEWLINE (((VALUE)1)<<7)
265
- #define NODE_FL_CREF_PUSHED_BY_EVAL NODE_FL_NEWLINE
264
+ /* FL : 0..4: T_TYPES, 5: KEEP_WB, 6: PROMOTED, 7: FINALIZE, 8: TAINT, 9: UNTRUSTED, 10: EXIVAR, 11: FREEZE */
265
+ /* NODE_FL: 0..4: T_TYPES, 5: KEEP_WB, 6: PROMOTED, 7: NODE_FL_NEWLINE,
266
+ * 8..14: nd_type,
267
+ * 15..: nd_line
268
+ */
269
+ #define NODE_FL_NEWLINE (((VALUE)1)<<7)
266
270
 
267
271
  #define NODE_TYPESHIFT 8
268
272
  #define NODE_TYPEMASK (((VALUE)0x7f)<<NODE_TYPESHIFT)
269
273
 
270
- #define nd_type(n) ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
274
+ #define nd_type(n) ((int) (((n)->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
271
275
  #define nd_set_type(n,t) \
272
- RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
276
+ (n)->flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
273
277
 
274
278
  #define NODE_LSHIFT (NODE_TYPESHIFT+7)
275
279
  #define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
276
- #define nd_line(n) (int)(RNODE(n)->flags>>NODE_LSHIFT)
280
+ #define nd_line(n) (int)(((SIGNED_VALUE)(n)->flags)>>NODE_LSHIFT)
277
281
  #define nd_set_line(n,l) \
278
- RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
282
+ (n)->flags=(((n)->flags&~((VALUE)(-1)<<NODE_LSHIFT))|((VALUE)((l)&NODE_LMASK)<<NODE_LSHIFT))
283
+
284
+ #define nd_first_column(n) ((int)((n)->nd_loc.first_loc.column))
285
+ #define nd_set_first_column(n, v) ((n)->nd_loc.first_loc.column = (v))
286
+ #define nd_first_lineno(n) ((int)((n)->nd_loc.first_loc.lineno))
287
+ #define nd_set_first_lineno(n, v) ((n)->nd_loc.first_loc.lineno = (v))
288
+
289
+ #define nd_last_column(n) ((int)((n)->nd_loc.last_loc.column))
290
+ #define nd_set_last_column(n, v) ((n)->nd_loc.last_loc.column = (v))
291
+ #define nd_last_lineno(n) ((int)((n)->nd_loc.last_loc.lineno))
292
+ #define nd_set_last_lineno(n, v) ((n)->nd_loc.last_loc.lineno = (v))
293
+ #define nd_last_loc(n) ((n)->nd_loc.last_loc)
294
+ #define nd_set_last_loc(n, v) (nd_last_loc(n) = (v))
279
295
 
280
296
  #define nd_head u1.node
281
297
  #define nd_alen u2.argc
@@ -285,8 +301,6 @@ typedef struct RNode {
285
301
  #define nd_body u2.node
286
302
  #define nd_else u3.node
287
303
 
288
- #define nd_orig u3.value
289
-
290
304
  #define nd_resq u2.node
291
305
  #define nd_ensr u3.node
292
306
 
@@ -321,6 +335,7 @@ typedef struct RNode {
321
335
  #define nd_recv u1.node
322
336
  #define nd_mid u2.id
323
337
  #define nd_args u3.node
338
+ #define nd_ainfo u3.args
324
339
 
325
340
  #define nd_noex u3.id
326
341
  #define nd_defn u3.node
@@ -331,9 +346,6 @@ typedef struct RNode {
331
346
  #define nd_cpath u1.node
332
347
  #define nd_super u3.node
333
348
 
334
- #define nd_modl u1.id
335
- #define nd_clss u1.value
336
-
337
349
  #define nd_beg u1.node
338
350
  #define nd_end u2.node
339
351
  #define nd_state u3.state
@@ -342,27 +354,29 @@ typedef struct RNode {
342
354
  #define nd_nth u2.argc
343
355
 
344
356
  #define nd_tag u1.id
345
- #define nd_tval u2.value
346
357
 
347
- #define nd_visi u2.argc
358
+ #define nd_alias u1.id
359
+ #define nd_orig u2.id
360
+ #define nd_undef u2.node
361
+
362
+ #define nd_compile_option u3.value
348
363
 
349
364
  #define NEW_NODE(t,a0,a1,a2) rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
350
365
 
351
366
  #define NEW_DEFN(i,a,d,p) NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))
352
367
  #define NEW_DEFS(r,i,a,d) NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))
353
- #define NEW_IFUNC(f,c) NEW_NODE(NODE_IFUNC,f,c,0)
354
368
  #define NEW_SCOPE(a,b) NEW_NODE(NODE_SCOPE,local_tbl(),b,a)
355
369
  #define NEW_BLOCK(a) NEW_NODE(NODE_BLOCK,a,0,0)
356
370
  #define NEW_IF(c,t,e) NEW_NODE(NODE_IF,c,t,e)
357
- #define NEW_UNLESS(c,t,e) NEW_IF(c,e,t)
371
+ #define NEW_UNLESS(c,t,e) NEW_NODE(NODE_UNLESS,c,t,e)
358
372
  #define NEW_CASE(h,b) NEW_NODE(NODE_CASE,h,b,0)
373
+ #define NEW_CASE2(b) NEW_NODE(NODE_CASE2,0,b,0)
359
374
  #define NEW_WHEN(c,t,e) NEW_NODE(NODE_WHEN,c,t,e)
360
- #define NEW_OPT_N(b) NEW_NODE(NODE_OPT_N,0,b,0)
361
375
  #define NEW_WHILE(c,b,n) NEW_NODE(NODE_WHILE,c,b,n)
362
376
  #define NEW_UNTIL(c,b,n) NEW_NODE(NODE_UNTIL,c,b,n)
363
377
  #define NEW_FOR(v,i,b) NEW_NODE(NODE_FOR,v,b,i)
364
378
  #define NEW_ITER(a,b) NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)
365
- #define NEW_LAMBDA(a) NEW_NODE(NODE_LAMBDA,a,0,0)
379
+ #define NEW_LAMBDA(a,b) NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)
366
380
  #define NEW_BREAK(s) NEW_NODE(NODE_BREAK,s,0,0)
367
381
  #define NEW_NEXT(s) NEW_NODE(NODE_NEXT,s,0,0)
368
382
  #define NEW_REDO() NEW_NODE(NODE_REDO,0,0,0)
@@ -372,7 +386,7 @@ typedef struct RNode {
372
386
  #define NEW_RESBODY(a,ex,n) NEW_NODE(NODE_RESBODY,n,ex,a)
373
387
  #define NEW_ENSURE(b,en) NEW_NODE(NODE_ENSURE,b,0,en)
374
388
  #define NEW_RETURN(s) NEW_NODE(NODE_RETURN,s,0,0)
375
- #define NEW_YIELD(a,s) NEW_NODE(NODE_YIELD,a,0,s)
389
+ #define NEW_YIELD(a) NEW_NODE(NODE_YIELD,a,0,0)
376
390
  #define NEW_LIST(a) NEW_ARRAY(a)
377
391
  #define NEW_ARRAY(a) NEW_NODE(NODE_ARRAY,a,1,0)
378
392
  #define NEW_ZARRAY() NEW_NODE(NODE_ZARRAY,0,0,0)
@@ -383,15 +397,14 @@ typedef struct RNode {
383
397
  #define NEW_DASGN(v,val) NEW_NODE(NODE_DASGN,v,val,0)
384
398
  #define NEW_DASGN_CURR(v,val) NEW_NODE(NODE_DASGN_CURR,v,val,0)
385
399
  #define NEW_IASGN(v,val) NEW_NODE(NODE_IASGN,v,val,0)
386
- #define NEW_IASGN2(v,val) NEW_NODE(NODE_IASGN2,v,val,0)
387
400
  #define NEW_CDECL(v,val,path) NEW_NODE(NODE_CDECL,v,val,path)
388
401
  #define NEW_CVASGN(v,val) NEW_NODE(NODE_CVASGN,v,val,0)
389
- #define NEW_CVDECL(v,val) NEW_NODE(NODE_CVDECL,v,val,0)
390
402
  #define NEW_OP_ASGN1(p,id,a) NEW_NODE(NODE_OP_ASGN1,p,id,a)
391
- #define NEW_OP_ASGN2(r,i,o,val) NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))
392
- #define NEW_OP_ASGN22(i,o) NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
403
+ #define NEW_OP_ASGN2(r,t,i,o,val) NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o,t))
404
+ #define NEW_OP_ASGN22(i,o,t) NEW_NODE(NODE_OP_ASGN2,i,o,t)
393
405
  #define NEW_OP_ASGN_OR(i,val) NEW_NODE(NODE_OP_ASGN_OR,i,val,0)
394
406
  #define NEW_OP_ASGN_AND(i,val) NEW_NODE(NODE_OP_ASGN_AND,i,val,0)
407
+ #define NEW_OP_CDECL(v,op,val) NEW_NODE(NODE_OP_CDECL,v,val,op)
395
408
  #define NEW_GVAR(v) NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
396
409
  #define NEW_LVAR(v) NEW_NODE(NODE_LVAR,v,0,0)
397
410
  #define NEW_DVAR(v) NEW_NODE(NODE_DVAR,v,0,0)
@@ -411,19 +424,18 @@ typedef struct RNode {
411
424
  #define NEW_DSYM(s) NEW_NODE(NODE_DSYM,s,0,0)
412
425
  #define NEW_EVSTR(n) NEW_NODE(NODE_EVSTR,0,(n),0)
413
426
  #define NEW_CALL(r,m,a) NEW_NODE(NODE_CALL,r,m,a)
427
+ #define NEW_OPCALL(r,m,a) NEW_NODE(NODE_OPCALL,r,m,a)
414
428
  #define NEW_FCALL(m,a) NEW_NODE(NODE_FCALL,0,m,a)
415
429
  #define NEW_VCALL(m) NEW_NODE(NODE_VCALL,0,m,0)
416
430
  #define NEW_SUPER(a) NEW_NODE(NODE_SUPER,0,0,a)
417
431
  #define NEW_ZSUPER() NEW_NODE(NODE_ZSUPER,0,0,0)
418
- #define NEW_ARGS(m,o) NEW_NODE(NODE_ARGS,o,m,0)
419
432
  #define NEW_ARGS_AUX(r,b) NEW_NODE(NODE_ARGS_AUX,r,b,0)
420
433
  #define NEW_OPT_ARG(i,v) NEW_NODE(NODE_OPT_ARG,i,v,0)
434
+ #define NEW_KW_ARG(i,v) NEW_NODE(NODE_KW_ARG,i,v,0)
421
435
  #define NEW_POSTARG(i,v) NEW_NODE(NODE_POSTARG,i,v,0)
422
436
  #define NEW_ARGSCAT(a,b) NEW_NODE(NODE_ARGSCAT,a,b,0)
423
437
  #define NEW_ARGSPUSH(a,b) NEW_NODE(NODE_ARGSPUSH,a,b,0)
424
438
  #define NEW_SPLAT(a) NEW_NODE(NODE_SPLAT,a,0,0)
425
- #define NEW_TO_ARY(a) NEW_NODE(NODE_TO_ARY,a,0,0)
426
- #define NEW_BLOCK_ARG(v) NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
427
439
  #define NEW_BLOCK_PASS(b) NEW_NODE(NODE_BLOCK_PASS,0,b,0)
428
440
  #define NEW_ALIAS(n,o) NEW_NODE(NODE_ALIAS,n,o,0)
429
441
  #define NEW_VALIAS(n,o) NEW_NODE(NODE_VALIAS,n,o,0)
@@ -443,15 +455,31 @@ typedef struct RNode {
443
455
  #define NEW_DEFINED(e) NEW_NODE(NODE_DEFINED,e,0,0)
444
456
  #define NEW_PREEXE(b) NEW_SCOPE(b)
445
457
  #define NEW_POSTEXE(b) NEW_NODE(NODE_POSTEXE,0,b,0)
446
- #define NEW_BMETHOD(b) NEW_NODE(NODE_BMETHOD,0,0,b)
447
458
  #define NEW_ATTRASGN(r,m,a) NEW_NODE(NODE_ATTRASGN,r,m,a)
448
- #define NEW_PRELUDE(p,b) NEW_NODE(NODE_PRELUDE,p,b,0)
449
- #define NEW_OPTBLOCK(a) NEW_NODE(NODE_OPTBLOCK,a,0,0)
450
- #define NEW_MEMO(a,b,c) NEW_NODE(NODE_MEMO,a,b,c)
459
+ #define NEW_PRELUDE(p,b,o) NEW_NODE(NODE_PRELUDE,p,b,o)
451
460
 
452
- #if defined __GNUC__ && __GNUC__ >= 4
453
- #pragma GCC visibility push(default)
454
- #endif
461
+ #define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1)
462
+ #define NODE_SPECIAL_NO_NAME_REST ((NODE *)-1)
463
+
464
+ RUBY_SYMBOL_EXPORT_BEGIN
465
+
466
+ typedef struct node_buffer_struct node_buffer_t;
467
+ /* T_IMEMO/ast */
468
+ typedef struct rb_ast_struct {
469
+ VALUE flags;
470
+ VALUE reserved1;
471
+ NODE *root;
472
+ node_buffer_t *node_buffer;
473
+ VALUE mark_ary;
474
+ } rb_ast_t;
475
+ rb_ast_t *rb_ast_new();
476
+ void rb_ast_mark(rb_ast_t*);
477
+ void rb_ast_dispose(rb_ast_t*);
478
+ void rb_ast_free(rb_ast_t*);
479
+ void rb_ast_add_mark_object(rb_ast_t*, VALUE);
480
+ void rb_ast_delete_mark_object(rb_ast_t*, VALUE);
481
+ NODE *rb_ast_newnode(rb_ast_t*);
482
+ void rb_ast_delete_node(rb_ast_t*, NODE *n);
455
483
 
456
484
  VALUE rb_parser_new(void);
457
485
  VALUE rb_parser_end_seen_p(VALUE);
@@ -459,40 +487,48 @@ VALUE rb_parser_encoding(VALUE);
459
487
  VALUE rb_parser_get_yydebug(VALUE);
460
488
  VALUE rb_parser_set_yydebug(VALUE, VALUE);
461
489
  VALUE rb_parser_dump_tree(NODE *node, int comment);
462
- NODE *rb_parser_append_print(VALUE, NODE *);
463
- NODE *rb_parser_while_loop(VALUE, NODE *, int, int);
490
+ void rb_parser_set_options(VALUE, int, int, int, int);
464
491
 
465
- NODE *rb_parser_compile_cstr(volatile VALUE, const char*, const char*, int, int);
466
- NODE *rb_parser_compile_string(volatile VALUE, const char*, VALUE, int);
467
- NODE *rb_parser_compile_file(volatile VALUE, const char*, VALUE, int);
492
+ rb_ast_t *rb_parser_compile_cstr(VALUE, const char*, const char*, int, int);
493
+ rb_ast_t *rb_parser_compile_string(VALUE, const char*, VALUE, int);
494
+ rb_ast_t *rb_parser_compile_file(VALUE, const char*, VALUE, int);
495
+ rb_ast_t *rb_parser_compile_string_path(VALUE vparser, VALUE fname, VALUE src, int line);
496
+ rb_ast_t *rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE input, int line);
468
497
 
469
- NODE *rb_compile_cstr(const char*, const char*, int, int);
470
- NODE *rb_compile_string(const char*, VALUE, int);
471
- NODE *rb_compile_file(const char*, VALUE, int);
498
+ rb_ast_t *rb_compile_cstr(const char*, const char*, int, int);
499
+ rb_ast_t *rb_compile_string(const char*, VALUE, int);
500
+ rb_ast_t *rb_compile_file(const char*, VALUE, int);
472
501
 
473
- NODE *rb_node_newnode(enum node_type,VALUE,VALUE,VALUE);
474
- NODE *rb_node_newnode_longlife(enum node_type,VALUE,VALUE,VALUE);
502
+ void rb_node_init(NODE *n, enum node_type type, VALUE a0, VALUE a1, VALUE a2);
475
503
 
476
- struct rb_global_entry {
477
- struct rb_global_variable *var;
478
- ID id;
479
- };
480
-
481
- struct rb_global_entry *rb_global_entry(ID);
482
- VALUE rb_gvar_get(struct rb_global_entry *);
483
- VALUE rb_gvar_set(struct rb_global_entry *, VALUE);
484
- VALUE rb_gvar_defined(struct rb_global_entry *);
485
504
  const struct kwtable *rb_reserved_word(const char *, unsigned int);
486
505
 
506
+ struct rb_args_info {
507
+ NODE *pre_init;
508
+ NODE *post_init;
509
+
510
+ int pre_args_num; /* count of mandatory pre-arguments */
511
+ int post_args_num; /* count of mandatory post-arguments */
512
+
513
+ ID first_post_arg;
514
+
515
+ ID rest_arg;
516
+ ID block_arg;
517
+
518
+ NODE *kw_args;
519
+ NODE *kw_rest_arg;
520
+
521
+ NODE *opt_args;
522
+ };
523
+
487
524
  struct parser_params;
488
525
  void *rb_parser_malloc(struct parser_params *, size_t);
489
526
  void *rb_parser_realloc(struct parser_params *, void *, size_t);
490
527
  void *rb_parser_calloc(struct parser_params *, size_t, size_t);
491
528
  void rb_parser_free(struct parser_params *, void *);
529
+ void rb_parser_printf(struct parser_params *parser, const char *fmt, ...);
492
530
 
493
- #if defined __GNUC__ && __GNUC__ >= 4
494
- #pragma GCC visibility pop
495
- #endif
531
+ RUBY_SYMBOL_EXPORT_END
496
532
 
497
533
  #if defined(__cplusplus)
498
534
  #if 0
@@ -4,12 +4,14 @@
4
4
  return "NODE_BLOCK";
5
5
  case NODE_IF:
6
6
  return "NODE_IF";
7
+ case NODE_UNLESS:
8
+ return "NODE_UNLESS";
7
9
  case NODE_CASE:
8
10
  return "NODE_CASE";
11
+ case NODE_CASE2:
12
+ return "NODE_CASE2";
9
13
  case NODE_WHEN:
10
14
  return "NODE_WHEN";
11
- case NODE_OPT_N:
12
- return "NODE_OPT_N";
13
15
  case NODE_WHILE:
14
16
  return "NODE_WHILE";
15
17
  case NODE_UNTIL:
@@ -50,14 +52,10 @@
50
52
  return "NODE_GASGN";
51
53
  case NODE_IASGN:
52
54
  return "NODE_IASGN";
53
- case NODE_IASGN2:
54
- return "NODE_IASGN2";
55
55
  case NODE_CDECL:
56
56
  return "NODE_CDECL";
57
57
  case NODE_CVASGN:
58
58
  return "NODE_CVASGN";
59
- case NODE_CVDECL:
60
- return "NODE_CVDECL";
61
59
  case NODE_OP_ASGN1:
62
60
  return "NODE_OP_ASGN1";
63
61
  case NODE_OP_ASGN2:
@@ -66,12 +64,18 @@
66
64
  return "NODE_OP_ASGN_AND";
67
65
  case NODE_OP_ASGN_OR:
68
66
  return "NODE_OP_ASGN_OR";
67
+ case NODE_OP_CDECL:
68
+ return "NODE_OP_CDECL";
69
69
  case NODE_CALL:
70
70
  return "NODE_CALL";
71
+ case NODE_OPCALL:
72
+ return "NODE_OPCALL";
71
73
  case NODE_FCALL:
72
74
  return "NODE_FCALL";
73
75
  case NODE_VCALL:
74
76
  return "NODE_VCALL";
77
+ case NODE_QCALL:
78
+ return "NODE_QCALL";
75
79
  case NODE_SUPER:
76
80
  return "NODE_SUPER";
77
81
  case NODE_ZSUPER:
@@ -124,14 +128,14 @@
124
128
  return "NODE_EVSTR";
125
129
  case NODE_DREGX:
126
130
  return "NODE_DREGX";
127
- case NODE_DREGX_ONCE:
128
- return "NODE_DREGX_ONCE";
129
131
  case NODE_ARGS:
130
132
  return "NODE_ARGS";
131
133
  case NODE_ARGS_AUX:
132
134
  return "NODE_ARGS_AUX";
133
135
  case NODE_OPT_ARG:
134
136
  return "NODE_OPT_ARG";
137
+ case NODE_KW_ARG:
138
+ return "NODE_KW_ARG";
135
139
  case NODE_POSTARG:
136
140
  return "NODE_POSTARG";
137
141
  case NODE_ARGSCAT:
@@ -140,10 +144,6 @@
140
144
  return "NODE_ARGSPUSH";
141
145
  case NODE_SPLAT:
142
146
  return "NODE_SPLAT";
143
- case NODE_TO_ARY:
144
- return "NODE_TO_ARY";
145
- case NODE_BLOCK_ARG:
146
- return "NODE_BLOCK_ARG";
147
147
  case NODE_BLOCK_PASS:
148
148
  return "NODE_BLOCK_PASS";
149
149
  case NODE_DEFN:
@@ -188,14 +188,6 @@
188
188
  return "NODE_DEFINED";
189
189
  case NODE_POSTEXE:
190
190
  return "NODE_POSTEXE";
191
- case NODE_ALLOCA:
192
- return "NODE_ALLOCA";
193
- case NODE_BMETHOD:
194
- return "NODE_BMETHOD";
195
- case NODE_MEMO:
196
- return "NODE_MEMO";
197
- case NODE_IFUNC:
198
- return "NODE_IFUNC";
199
191
  case NODE_DSYM:
200
192
  return "NODE_DSYM";
201
193
  case NODE_ATTRASGN:
@@ -204,5 +196,3 @@
204
196
  return "NODE_PRELUDE";
205
197
  case NODE_LAMBDA:
206
198
  return "NODE_LAMBDA";
207
- case NODE_OPTBLOCK:
208
- return "NODE_OPTBLOCK";