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
@@ -0,0 +1,30 @@
1
+ #ifndef INTERNAL_RE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_RE_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for Regexp.
10
+ */
11
+ #include "ruby/internal/stdbool.h" /* for bool */
12
+ #include "ruby/ruby.h" /* for VALUE */
13
+
14
+ /* re.c */
15
+ VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);
16
+ VALUE rb_reg_check_preprocess(VALUE);
17
+ long rb_reg_search0(VALUE, VALUE, long, int, int);
18
+ VALUE rb_reg_match_p(VALUE re, VALUE str, long pos);
19
+ bool rb_reg_start_with_p(VALUE re, VALUE str);
20
+ VALUE rb_reg_hash(VALUE re);
21
+ VALUE rb_reg_equal(VALUE re1, VALUE re2);
22
+ void rb_backref_set_string(VALUE string, long pos, long len);
23
+ void rb_match_unbusy(VALUE);
24
+ int rb_match_count(VALUE match);
25
+ int rb_match_nth_defined(int nth, VALUE match);
26
+ MJIT_SYMBOL_EXPORT_BEGIN
27
+ VALUE rb_reg_new_ary(VALUE ary, int options);
28
+ MJIT_SYMBOL_EXPORT_END
29
+
30
+ #endif /* INTERNAL_RE_H */
@@ -0,0 +1,190 @@
1
+ #ifndef INTERNAL_SANITIZERS_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_SANITIZERS_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for ASAN / MSAN / etc.
10
+ */
11
+ #include "ruby/internal/config.h"
12
+ #include "internal/compilers.h" /* for __has_feature */
13
+
14
+ #ifdef HAVE_VALGRIND_MEMCHECK_H
15
+ # include <valgrind/memcheck.h>
16
+ #endif
17
+
18
+ #ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
19
+ # include <sanitizer/asan_interface.h>
20
+ #endif
21
+
22
+ #ifdef HAVE_SANITIZER_MSAN_INTERFACE_H
23
+ # if __has_feature(memory_sanitizer)
24
+ # include <sanitizer/msan_interface.h>
25
+ # endif
26
+ #endif
27
+
28
+ #include "ruby/internal/stdbool.h" /* for bool */
29
+ #include "ruby/ruby.h" /* for VALUE */
30
+
31
+ #if 0
32
+ #elif __has_feature(memory_sanitizer) && __has_feature(address_sanitizer)
33
+ # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
34
+ __attribute__((__no_sanitize__("memory, address"), __noinline__)) x
35
+ #elif __has_feature(address_sanitizer)
36
+ # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
37
+ __attribute__((__no_sanitize__("address"), __noinline__)) x
38
+ #elif defined(NO_SANITIZE_ADDRESS)
39
+ # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
40
+ NO_SANITIZE_ADDRESS(NOINLINE(x))
41
+ #elif defined(NO_ADDRESS_SAFETY_ANALYSIS)
42
+ # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
43
+ NO_ADDRESS_SAFETY_ANALYSIS(NOINLINE(x))
44
+ #else
45
+ # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x
46
+ #endif
47
+
48
+ #if defined(NO_SANITIZE) && RBIMPL_COMPILER_IS(GCC)
49
+ /* GCC warns about unknown sanitizer, which is annoying. */
50
+ # include "internal/warnings.h"
51
+ # undef NO_SANITIZE
52
+ # define NO_SANITIZE(x, y) \
53
+ COMPILER_WARNING_PUSH; \
54
+ COMPILER_WARNING_IGNORED(-Wattributes); \
55
+ __attribute__((__no_sanitize__(x))) y; \
56
+ COMPILER_WARNING_POP
57
+ #endif
58
+
59
+ #ifndef NO_SANITIZE
60
+ # define NO_SANITIZE(x, y) y
61
+ #endif
62
+
63
+ #if !__has_feature(address_sanitizer)
64
+ # define __asan_poison_memory_region(x, y)
65
+ # define __asan_unpoison_memory_region(x, y)
66
+ # define __asan_region_is_poisoned(x, y) 0
67
+ #endif
68
+
69
+ #if !__has_feature(memory_sanitizer)
70
+ # define __msan_allocated_memory(x, y) ((void)(x), (void)(y))
71
+ # define __msan_poison(x, y) ((void)(x), (void)(y))
72
+ # define __msan_unpoison(x, y) ((void)(x), (void)(y))
73
+ # define __msan_unpoison_string(x) ((void)(x))
74
+ #endif
75
+
76
+ #ifdef VALGRIND_MAKE_READABLE
77
+ # define VALGRIND_MAKE_MEM_DEFINED(p, n) VALGRIND_MAKE_READABLE((p), (n))
78
+ #endif
79
+
80
+ #ifdef VALGRIND_MAKE_WRITABLE
81
+ # define VALGRIND_MAKE_MEM_UNDEFINED(p, n) VALGRIND_MAKE_WRITABLE((p), (n))
82
+ #endif
83
+
84
+ #ifndef VALGRIND_MAKE_MEM_DEFINED
85
+ # define VALGRIND_MAKE_MEM_DEFINED(p, n) 0
86
+ #endif
87
+
88
+ #ifndef VALGRIND_MAKE_MEM_UNDEFINED
89
+ # define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0
90
+ #endif
91
+
92
+ #ifndef MJIT_HEADER
93
+
94
+ /*!
95
+ * This function asserts that a (continuous) memory region from ptr to size
96
+ * being "poisoned". Both read / write access to such memory region are
97
+ * prohibited until properly unpoisoned. The region must be previously
98
+ * allocated (do not pass a freed pointer here), but not necessarily be an
99
+ * entire object that the malloc returns. You can punch hole a part of a
100
+ * gigantic heap arena. This is handy when you do not free an allocated memory
101
+ * region to reuse later: poison when you keep it unused, and unpoison when you
102
+ * reuse.
103
+ *
104
+ * \param[in] ptr pointer to the beginning of the memory region to poison.
105
+ * \param[in] size the length of the memory region to poison.
106
+ */
107
+ static inline void
108
+ asan_poison_memory_region(const volatile void *ptr, size_t size)
109
+ {
110
+ __msan_poison(ptr, size);
111
+ __asan_poison_memory_region(ptr, size);
112
+ }
113
+
114
+ /*!
115
+ * This is a variant of asan_poison_memory_region that takes a VALUE.
116
+ *
117
+ * \param[in] obj target object.
118
+ */
119
+ static inline void
120
+ asan_poison_object(VALUE obj)
121
+ {
122
+ MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
123
+ asan_poison_memory_region(ptr, SIZEOF_VALUE);
124
+ }
125
+
126
+ #if !__has_feature(address_sanitizer)
127
+ #define asan_poison_object_if(ptr, obj) ((void)(ptr), (void)(obj))
128
+ #else
129
+ #define asan_poison_object_if(ptr, obj) do { \
130
+ if (ptr) asan_poison_object(obj); \
131
+ } while (0)
132
+ #endif
133
+
134
+ /*!
135
+ * This function predicates if the given object is fully addressable or not.
136
+ *
137
+ * \param[in] obj target object.
138
+ * \retval 0 the given object is fully addressable.
139
+ * \retval otherwise pointer to first such byte who is poisoned.
140
+ */
141
+ static inline void *
142
+ asan_poisoned_object_p(VALUE obj)
143
+ {
144
+ MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
145
+ return __asan_region_is_poisoned(ptr, SIZEOF_VALUE);
146
+ }
147
+
148
+ /*!
149
+ * This function asserts that a (formally poisoned) memory region from ptr to
150
+ * size is now addressable. Write access to such memory region gets allowed.
151
+ * However read access might or might not be possible depending on situations,
152
+ * because the region can have contents of previous usages. That information
153
+ * should be passed by the malloc_p flag. If that is true, the contents of the
154
+ * region is _not_ fully defined (like the return value of malloc behaves).
155
+ * Reading from there is NG; write something first. If malloc_p is false on
156
+ * the other hand, that memory region is fully defined and can be read
157
+ * immediately.
158
+ *
159
+ * \param[in] ptr pointer to the beginning of the memory region to unpoison.
160
+ * \param[in] size the length of the memory region.
161
+ * \param[in] malloc_p if the memory region is like a malloc's return value or not.
162
+ */
163
+ static inline void
164
+ asan_unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p)
165
+ {
166
+ __asan_unpoison_memory_region(ptr, size);
167
+ if (malloc_p) {
168
+ __msan_allocated_memory(ptr, size);
169
+ }
170
+ else {
171
+ __msan_unpoison(ptr, size);
172
+ }
173
+ }
174
+
175
+ /*!
176
+ * This is a variant of asan_unpoison_memory_region that takes a VALUE.
177
+ *
178
+ * \param[in] obj target object.
179
+ * \param[in] malloc_p if the memory region is like a malloc's return value or not.
180
+ */
181
+ static inline void
182
+ asan_unpoison_object(VALUE obj, bool newobj_p)
183
+ {
184
+ MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
185
+ asan_unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);
186
+ }
187
+
188
+ #endif /* MJIT_HEADER */
189
+
190
+ #endif /* INTERNAL_SANITIZERS_H */
@@ -0,0 +1,23 @@
1
+ #ifndef INTERNAL_SERIAL_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_SERIAL_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for rb_serial_t.
10
+ */
11
+ #include "ruby/internal/config.h" /* for HAVE_LONG_LONG */
12
+ #include "ruby/defines.h" /* for LONG_LONG */
13
+
14
+ #ifndef HAVE_LONG_LONG
15
+ # error need C99+
16
+ #endif
17
+
18
+ typedef unsigned LONG_LONG rb_serial_t;
19
+ #define SERIALT2NUM ULL2NUM
20
+ #define PRI_SERIALT_PREFIX PRI_LL_PREFIX
21
+ #define SIZEOF_SERIAL_T SIZEOF_LONG_LONG
22
+
23
+ #endif /* INTERNAL_SERIAL_H */
@@ -0,0 +1,21 @@
1
+ #ifndef INTERNAL_SIGNAL_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_SIGNAL_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for SignalException.
10
+ */
11
+
12
+ /* signal.c */
13
+ extern int ruby_enable_coredump;
14
+ int rb_get_next_signal(void);
15
+
16
+ RUBY_SYMBOL_EXPORT_BEGIN
17
+ /* signal.c (export) */
18
+ int rb_grantpt(int fd);
19
+ RUBY_SYMBOL_EXPORT_END
20
+
21
+ #endif /* INTERNAL_SIGNAL_H */
@@ -0,0 +1,16 @@
1
+ #ifndef INTERNAL_STATIC_ASSERT_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_STATIC_ASSERT_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief C11 shim for _Static_assert.
10
+ */
11
+ #include "ruby/internal/static_assert.h"
12
+ #ifndef STATIC_ASSERT
13
+ # define STATIC_ASSERT RBIMPL_STATIC_ASSERT
14
+ #endif
15
+
16
+ #endif /* INTERNAL_STATIC_ASSERT_H */
@@ -0,0 +1,141 @@
1
+ #ifndef INTERNAL_STRING_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_STRING_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for String.
10
+ */
11
+ #include "ruby/internal/config.h"
12
+ #include <stddef.h> /* for size_t */
13
+ #include "internal/compilers.h" /* for __has_builtin */
14
+ #include "ruby/internal/stdbool.h" /* for bool */
15
+ #include "ruby/encoding.h" /* for rb_encoding */
16
+ #include "ruby/ruby.h" /* for VALUE */
17
+
18
+ #define STR_NOEMBED FL_USER1
19
+ #define STR_SHARED FL_USER2 /* = ELTS_SHARED */
20
+
21
+ #ifdef rb_fstring_cstr
22
+ # undef rb_fstring_cstr
23
+ #endif
24
+
25
+ /* string.c */
26
+ VALUE rb_fstring(VALUE);
27
+ VALUE rb_fstring_cstr(const char *str);
28
+ VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc);
29
+ int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);
30
+ int rb_str_symname_p(VALUE);
31
+ VALUE rb_str_quote_unprintable(VALUE);
32
+ char *rb_str_fill_terminator(VALUE str, const int termlen);
33
+ void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen);
34
+ VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg);
35
+ VALUE rb_str_chomp_string(VALUE str, VALUE chomp);
36
+ VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc);
37
+ VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len,
38
+ rb_encoding *from, int ecflags, VALUE ecopts);
39
+ VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl);
40
+ VALUE rb_str_escape(VALUE str);
41
+ size_t rb_str_memsize(VALUE);
42
+ char *rb_str_to_cstr(VALUE str);
43
+ const char *ruby_escaped_char(int c);
44
+ void rb_str_make_independent(VALUE str);
45
+ int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc);
46
+
47
+ static inline bool STR_EMBED_P(VALUE str);
48
+ static inline bool STR_SHARED_P(VALUE str);
49
+ static inline VALUE QUOTE(VALUE v);
50
+ static inline VALUE QUOTE_ID(ID v);
51
+ static inline bool is_ascii_string(VALUE str);
52
+ static inline bool is_broken_string(VALUE str);
53
+ static inline VALUE rb_str_eql_internal(const VALUE str1, const VALUE str2);
54
+
55
+ RUBY_SYMBOL_EXPORT_BEGIN
56
+ /* string.c (export) */
57
+ VALUE rb_str_tmp_frozen_acquire(VALUE str);
58
+ void rb_str_tmp_frozen_release(VALUE str, VALUE tmp);
59
+ VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc);
60
+ VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);
61
+ VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);
62
+ RUBY_SYMBOL_EXPORT_END
63
+
64
+ MJIT_SYMBOL_EXPORT_BEGIN
65
+ VALUE rb_fstring_new(const char *ptr, long len);
66
+ VALUE rb_obj_as_string_result(VALUE str, VALUE obj);
67
+ VALUE rb_str_opt_plus(VALUE x, VALUE y);
68
+ VALUE rb_str_concat_literals(size_t num, const VALUE *strary);
69
+ VALUE rb_str_eql(VALUE str1, VALUE str2);
70
+ VALUE rb_id_quote_unprintable(ID);
71
+ VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc);
72
+
73
+ struct rb_execution_context_struct;
74
+ VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str);
75
+ MJIT_SYMBOL_EXPORT_END
76
+
77
+ #define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))
78
+ #define rb_fstring_literal(str) rb_fstring_lit(str)
79
+ #define rb_fstring_enc_lit(str, enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc))
80
+ #define rb_fstring_enc_literal(str, enc) rb_fstring_enc_lit(str, enc)
81
+
82
+ static inline VALUE
83
+ QUOTE(VALUE v)
84
+ {
85
+ return rb_str_quote_unprintable(v);
86
+ }
87
+
88
+ static inline VALUE
89
+ QUOTE_ID(ID i)
90
+ {
91
+ return rb_id_quote_unprintable(i);
92
+ }
93
+
94
+ static inline bool
95
+ STR_EMBED_P(VALUE str)
96
+ {
97
+ return ! FL_TEST_RAW(str, STR_NOEMBED);
98
+ }
99
+
100
+ static inline bool
101
+ STR_SHARED_P(VALUE str)
102
+ {
103
+ return FL_ALL_RAW(str, STR_NOEMBED | ELTS_SHARED);
104
+ }
105
+
106
+ static inline bool
107
+ is_ascii_string(VALUE str)
108
+ {
109
+ return rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT;
110
+ }
111
+
112
+ static inline bool
113
+ is_broken_string(VALUE str)
114
+ {
115
+ return rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN;
116
+ }
117
+
118
+ /* expect tail call optimization */
119
+ // YJIT needs this function to never allocate and never raise
120
+ static inline VALUE
121
+ rb_str_eql_internal(const VALUE str1, const VALUE str2)
122
+ {
123
+ const long len = RSTRING_LEN(str1);
124
+ const char *ptr1, *ptr2;
125
+
126
+ if (len != RSTRING_LEN(str2)) return Qfalse;
127
+ if (!rb_str_comparable(str1, str2)) return Qfalse;
128
+ if ((ptr1 = RSTRING_PTR(str1)) == (ptr2 = RSTRING_PTR(str2)))
129
+ return Qtrue;
130
+ if (memcmp(ptr1, ptr2, len) == 0)
131
+ return Qtrue;
132
+ return Qfalse;
133
+ }
134
+
135
+ #if __has_builtin(__builtin_constant_p)
136
+ # define rb_fstring_cstr(str) \
137
+ (__builtin_constant_p(str) ? \
138
+ rb_fstring_new((str), (long)strlen(str)) : \
139
+ (rb_fstring_cstr)(str))
140
+ #endif
141
+ #endif /* INTERNAL_STRING_H */
@@ -0,0 +1,153 @@
1
+ #ifndef INTERNAL_STRUCT_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_STRUCT_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for Struct.
10
+ */
11
+ #include "ruby/internal/stdbool.h" /* for bool */
12
+ #include "internal/gc.h" /* for RB_OBJ_WRITE */
13
+ #include "ruby/ruby.h" /* for struct RBasic */
14
+
15
+ enum {
16
+ RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
17
+ RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),
18
+ RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),
19
+ RSTRUCT_TRANSIENT_FLAG = FL_USER3,
20
+ };
21
+
22
+ struct RStruct {
23
+ struct RBasic basic;
24
+ union {
25
+ struct {
26
+ long len;
27
+ const VALUE *ptr;
28
+ } heap;
29
+ const VALUE ary[RSTRUCT_EMBED_LEN_MAX];
30
+ } as;
31
+ };
32
+
33
+ #define RSTRUCT(obj) ((struct RStruct *)(obj))
34
+
35
+ #ifdef RSTRUCT_LEN
36
+ # undef RSTRUCT_LEN
37
+ #endif
38
+
39
+ #ifdef RSTRUCT_PTR
40
+ # undef RSTRUCT_PTR
41
+ #endif
42
+
43
+ #ifdef RSTRUCT_SET
44
+ # undef RSTRUCT_SET
45
+ #endif
46
+
47
+ #ifdef RSTRUCT_GET
48
+ # undef RSTRUCT_GET
49
+ #endif
50
+
51
+ #define RSTRUCT_LEN internal_RSTRUCT_LEN
52
+ #define RSTRUCT_SET internal_RSTRUCT_SET
53
+ #define RSTRUCT_GET internal_RSTRUCT_GET
54
+
55
+ /* struct.c */
56
+ VALUE rb_struct_init_copy(VALUE copy, VALUE s);
57
+ VALUE rb_struct_lookup(VALUE s, VALUE idx);
58
+ VALUE rb_struct_s_keyword_init(VALUE klass);
59
+ static inline const VALUE *rb_struct_const_heap_ptr(VALUE st);
60
+ static inline bool RSTRUCT_TRANSIENT_P(VALUE st);
61
+ static inline void RSTRUCT_TRANSIENT_SET(VALUE st);
62
+ static inline void RSTRUCT_TRANSIENT_UNSET(VALUE st);
63
+ static inline long RSTRUCT_EMBED_LEN(VALUE st);
64
+ static inline long RSTRUCT_LEN(VALUE st);
65
+ static inline int RSTRUCT_LENINT(VALUE st);
66
+ static inline const VALUE *RSTRUCT_CONST_PTR(VALUE st);
67
+ static inline void RSTRUCT_SET(VALUE st, long k, VALUE v);
68
+ static inline VALUE RSTRUCT_GET(VALUE st, long k);
69
+
70
+ static inline bool
71
+ RSTRUCT_TRANSIENT_P(VALUE st)
72
+ {
73
+ #if USE_TRANSIENT_HEAP
74
+ return FL_TEST_RAW(st, RSTRUCT_TRANSIENT_FLAG);
75
+ #else
76
+ return false;
77
+ #endif
78
+ }
79
+
80
+ static inline void
81
+ RSTRUCT_TRANSIENT_SET(VALUE st)
82
+ {
83
+ #if USE_TRANSIENT_HEAP
84
+ FL_SET_RAW(st, RSTRUCT_TRANSIENT_FLAG);
85
+ #endif
86
+ }
87
+
88
+ static inline void
89
+ RSTRUCT_TRANSIENT_UNSET(VALUE st)
90
+ {
91
+ #if USE_TRANSIENT_HEAP
92
+ FL_UNSET_RAW(st, RSTRUCT_TRANSIENT_FLAG);
93
+ #endif
94
+ }
95
+
96
+ static inline long
97
+ RSTRUCT_EMBED_LEN(VALUE st)
98
+ {
99
+ long ret = FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK);
100
+ ret >>= RSTRUCT_EMBED_LEN_SHIFT;
101
+ return ret;
102
+ }
103
+
104
+ static inline long
105
+ RSTRUCT_LEN(VALUE st)
106
+ {
107
+ if (FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) {
108
+ return RSTRUCT_EMBED_LEN(st);
109
+ }
110
+ else {
111
+ return RSTRUCT(st)->as.heap.len;
112
+ }
113
+ }
114
+
115
+ static inline int
116
+ RSTRUCT_LENINT(VALUE st)
117
+ {
118
+ return rb_long2int(RSTRUCT_LEN(st));
119
+ }
120
+
121
+ static inline const VALUE *
122
+ RSTRUCT_CONST_PTR(VALUE st)
123
+ {
124
+ const struct RStruct *p = RSTRUCT(st);
125
+
126
+ if (FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) {
127
+ return p->as.ary;
128
+ }
129
+ else {
130
+ return p->as.heap.ptr;
131
+ }
132
+ }
133
+
134
+ static inline void
135
+ RSTRUCT_SET(VALUE st, long k, VALUE v)
136
+ {
137
+ RB_OBJ_WRITE(st, &RSTRUCT_CONST_PTR(st)[k], v);
138
+ }
139
+
140
+ static inline VALUE
141
+ RSTRUCT_GET(VALUE st, long k)
142
+ {
143
+ return RSTRUCT_CONST_PTR(st)[k];
144
+ }
145
+
146
+ static inline const VALUE *
147
+ rb_struct_const_heap_ptr(VALUE st)
148
+ {
149
+ /* TODO: check embed on debug mode */
150
+ return RSTRUCT(st)->as.heap.ptr;
151
+ }
152
+
153
+ #endif /* INTERNAL_STRUCT_H */
@@ -0,0 +1,41 @@
1
+ #ifndef INTERNAL_SYMBOL_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_SYMBOL_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for Symbol.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+ #include "ruby/encoding.h" /* for rb_encoding */
13
+ #include "internal/compilers.h" /* for __has_builtin */
14
+
15
+ #ifdef rb_sym_intern_ascii_cstr
16
+ # undef rb_sym_intern_ascii_cstr
17
+ #endif
18
+
19
+ /* symbol.c */
20
+ VALUE rb_to_symbol_type(VALUE obj);
21
+ VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc);
22
+ VALUE rb_sym_intern_ascii(const char *ptr, long len);
23
+ VALUE rb_sym_intern_ascii_cstr(const char *ptr);
24
+ int rb_is_const_name(VALUE name);
25
+ int rb_is_class_name(VALUE name);
26
+ int rb_is_instance_name(VALUE name);
27
+ int rb_is_local_name(VALUE name);
28
+ PUREFUNC(int rb_is_const_sym(VALUE sym));
29
+ PUREFUNC(int rb_is_attrset_sym(VALUE sym));
30
+ ID rb_make_internal_id(void);
31
+ ID rb_make_temporary_id(size_t n);
32
+ void rb_gc_free_dsymbol(VALUE);
33
+
34
+ #if __has_builtin(__builtin_constant_p)
35
+ #define rb_sym_intern_ascii_cstr(ptr) \
36
+ (__builtin_constant_p(ptr) ? \
37
+ rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : \
38
+ rb_sym_intern_ascii_cstr(ptr))
39
+ #endif
40
+
41
+ #endif /* INTERNAL_SYMBOL_H */
@@ -0,0 +1,53 @@
1
+ #ifndef INTERNAL_THREAD_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_THREAD_H
3
+ /**
4
+ * @author Ruby developers <ruby-core@ruby-lang.org>
5
+ * @copyright This file is a part of the programming language Ruby.
6
+ * Permission is hereby granted, to either redistribute and/or
7
+ * modify this file, provided that the conditions mentioned in the
8
+ * file COPYING are met. Consult the file for details.
9
+ * @brief Internal header for Thread.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+ #include "ruby/intern.h" /* for rb_blocking_function_t */
13
+
14
+ struct rb_thread_struct; /* in vm_core.h */
15
+
16
+ /* thread.c */
17
+ #define COVERAGE_INDEX_LINES 0
18
+ #define COVERAGE_INDEX_BRANCHES 1
19
+ #define COVERAGE_TARGET_LINES 1
20
+ #define COVERAGE_TARGET_BRANCHES 2
21
+ #define COVERAGE_TARGET_METHODS 4
22
+ #define COVERAGE_TARGET_ONESHOT_LINES 8
23
+
24
+ VALUE rb_obj_is_mutex(VALUE obj);
25
+ VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);
26
+ void rb_thread_execute_interrupts(VALUE th);
27
+ VALUE rb_get_coverages(void);
28
+ int rb_get_coverage_mode(void);
29
+ VALUE rb_default_coverage(int);
30
+ VALUE rb_thread_shield_new(void);
31
+ VALUE rb_thread_shield_wait(VALUE self);
32
+ VALUE rb_thread_shield_release(VALUE self);
33
+ VALUE rb_thread_shield_destroy(VALUE self);
34
+ int rb_thread_to_be_killed(VALUE thread);
35
+ void rb_mutex_allow_trap(VALUE self, int val);
36
+ VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);
37
+ VALUE rb_mutex_owned_p(VALUE self);
38
+
39
+ int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);
40
+
41
+ RUBY_SYMBOL_EXPORT_BEGIN
42
+ /* Temporary. This API will be removed (renamed). */
43
+ VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
44
+
45
+ /* thread.c (export) */
46
+ int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */
47
+ RUBY_SYMBOL_EXPORT_END
48
+
49
+ MJIT_SYMBOL_EXPORT_BEGIN
50
+ int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
51
+ MJIT_SYMBOL_EXPORT_END
52
+
53
+ #endif /* INTERNAL_THREAD_H */