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,271 @@
1
+ #ifndef INTERNAL_NUMERIC_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_NUMERIC_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 Numeric.
10
+ */
11
+ #include "internal/bignum.h" /* for BIGNUM_POSITIVE_P */
12
+ #include "internal/bits.h" /* for RUBY_BIT_ROTL */
13
+ #include "internal/fixnum.h" /* for FIXNUM_POSITIVE_P */
14
+ #include "internal/vm.h" /* for rb_method_basic_definition_p */
15
+ #include "ruby/intern.h" /* for rb_cmperr */
16
+ #include "ruby/ruby.h" /* for USE_FLONUM */
17
+
18
+ #define ROUND_TO(mode, even, up, down) \
19
+ ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : \
20
+ (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down)
21
+ #define ROUND_FUNC(mode, name) \
22
+ ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down)
23
+ #define ROUND_CALL(mode, name, args) \
24
+ ROUND_TO(mode, name##_half_even args, \
25
+ name##_half_up args, name##_half_down args)
26
+
27
+ #ifndef ROUND_DEFAULT
28
+ # define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP
29
+ #endif
30
+
31
+ enum ruby_num_rounding_mode {
32
+ RUBY_NUM_ROUND_HALF_UP,
33
+ RUBY_NUM_ROUND_HALF_EVEN,
34
+ RUBY_NUM_ROUND_HALF_DOWN,
35
+ RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT,
36
+ };
37
+
38
+ #if SIZEOF_DOUBLE <= SIZEOF_VALUE
39
+ typedef double rb_float_value_type;
40
+ #else
41
+ typedef struct {
42
+ VALUE values[(SIZEOF_DOUBLE + SIZEOF_VALUE - 1) / SIZEOF_VALUE];
43
+ /* roomof() needs internal.h, and the order of some macros may matter */
44
+ } rb_float_value_type;
45
+ #endif
46
+
47
+ struct RFloat {
48
+ struct RBasic basic;
49
+ rb_float_value_type float_value;
50
+ };
51
+
52
+ #define RFLOAT(obj) ((struct RFloat *)(obj))
53
+
54
+ /* numeric.c */
55
+ int rb_num_to_uint(VALUE val, unsigned int *ret);
56
+ VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl);
57
+ double ruby_float_step_size(double beg, double end, double unit, int excl);
58
+ int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless);
59
+ int rb_num_negative_p(VALUE);
60
+ VALUE rb_int_succ(VALUE num);
61
+ VALUE rb_float_uminus(VALUE num);
62
+ VALUE rb_int_plus(VALUE x, VALUE y);
63
+ VALUE rb_float_plus(VALUE x, VALUE y);
64
+ VALUE rb_int_minus(VALUE x, VALUE y);
65
+ VALUE rb_float_minus(VALUE x, VALUE y);
66
+ VALUE rb_int_mul(VALUE x, VALUE y);
67
+ VALUE rb_float_mul(VALUE x, VALUE y);
68
+ VALUE rb_float_div(VALUE x, VALUE y);
69
+ VALUE rb_int_idiv(VALUE x, VALUE y);
70
+ VALUE rb_int_modulo(VALUE x, VALUE y);
71
+ VALUE rb_int2str(VALUE num, int base);
72
+ VALUE rb_fix_plus(VALUE x, VALUE y);
73
+ VALUE rb_int_gt(VALUE x, VALUE y);
74
+ VALUE rb_float_gt(VALUE x, VALUE y);
75
+ VALUE rb_int_ge(VALUE x, VALUE y);
76
+ enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts);
77
+ double rb_int_fdiv_double(VALUE x, VALUE y);
78
+ VALUE rb_int_pow(VALUE x, VALUE y);
79
+ VALUE rb_float_pow(VALUE x, VALUE y);
80
+ VALUE rb_int_cmp(VALUE x, VALUE y);
81
+ VALUE rb_int_equal(VALUE x, VALUE y);
82
+ VALUE rb_int_divmod(VALUE x, VALUE y);
83
+ VALUE rb_int_and(VALUE x, VALUE y);
84
+ VALUE rb_int_lshift(VALUE x, VALUE y);
85
+ VALUE rb_int_div(VALUE x, VALUE y);
86
+ int rb_int_positive_p(VALUE num);
87
+ int rb_int_negative_p(VALUE num);
88
+ VALUE rb_check_integer_type(VALUE);
89
+ VALUE rb_num_pow(VALUE x, VALUE y);
90
+ VALUE rb_float_ceil(VALUE num, int ndigits);
91
+ VALUE rb_float_floor(VALUE x, int ndigits);
92
+ VALUE rb_float_abs(VALUE flt);
93
+ static inline VALUE rb_num_compare_with_zero(VALUE num, ID mid);
94
+ static inline int rb_num_positive_int_p(VALUE num);
95
+ static inline int rb_num_negative_int_p(VALUE num);
96
+ static inline double rb_float_flonum_value(VALUE v);
97
+ static inline double rb_float_noflonum_value(VALUE v);
98
+ static inline double rb_float_value_inline(VALUE v);
99
+ static inline VALUE rb_float_new_inline(double d);
100
+ static inline bool INT_POSITIVE_P(VALUE num);
101
+ static inline bool INT_NEGATIVE_P(VALUE num);
102
+ static inline bool FLOAT_ZERO_P(VALUE num);
103
+ #define rb_float_value rb_float_value_inline
104
+ #define rb_float_new rb_float_new_inline
105
+
106
+ RUBY_SYMBOL_EXPORT_BEGIN
107
+ /* numeric.c (export) */
108
+ RUBY_SYMBOL_EXPORT_END
109
+
110
+ MJIT_SYMBOL_EXPORT_BEGIN
111
+ VALUE rb_flo_div_flo(VALUE x, VALUE y);
112
+ double ruby_float_mod(double x, double y);
113
+ VALUE rb_float_equal(VALUE x, VALUE y);
114
+ int rb_float_cmp(VALUE x, VALUE y);
115
+ VALUE rb_float_eql(VALUE x, VALUE y);
116
+ VALUE rb_fix_aref(VALUE fix, VALUE idx);
117
+ VALUE rb_int_zero_p(VALUE num);
118
+ VALUE rb_int_even_p(VALUE num);
119
+ VALUE rb_int_odd_p(VALUE num);
120
+ VALUE rb_int_abs(VALUE num);
121
+ VALUE rb_int_bit_length(VALUE num);
122
+ VALUE rb_int_uminus(VALUE num);
123
+ VALUE rb_int_comp(VALUE num);
124
+ MJIT_SYMBOL_EXPORT_END
125
+
126
+ static inline bool
127
+ INT_POSITIVE_P(VALUE num)
128
+ {
129
+ if (FIXNUM_P(num)) {
130
+ return FIXNUM_POSITIVE_P(num);
131
+ }
132
+ else {
133
+ return BIGNUM_POSITIVE_P(num);
134
+ }
135
+ }
136
+
137
+ static inline bool
138
+ INT_NEGATIVE_P(VALUE num)
139
+ {
140
+ if (FIXNUM_P(num)) {
141
+ return FIXNUM_NEGATIVE_P(num);
142
+ }
143
+ else {
144
+ return BIGNUM_NEGATIVE_P(num);
145
+ }
146
+ }
147
+
148
+ static inline bool
149
+ FLOAT_ZERO_P(VALUE num)
150
+ {
151
+ return RFLOAT_VALUE(num) == 0.0;
152
+ }
153
+
154
+ static inline VALUE
155
+ rb_num_compare_with_zero(VALUE num, ID mid)
156
+ {
157
+ VALUE zero = INT2FIX(0);
158
+ VALUE r = rb_check_funcall(num, mid, 1, &zero);
159
+ if (r == Qundef) {
160
+ rb_cmperr(num, zero);
161
+ }
162
+ return r;
163
+ }
164
+
165
+ static inline int
166
+ rb_num_positive_int_p(VALUE num)
167
+ {
168
+ const ID mid = '>';
169
+
170
+ if (FIXNUM_P(num)) {
171
+ if (rb_method_basic_definition_p(rb_cInteger, mid))
172
+ return FIXNUM_POSITIVE_P(num);
173
+ }
174
+ else if (RB_TYPE_P(num, T_BIGNUM)) {
175
+ if (rb_method_basic_definition_p(rb_cInteger, mid))
176
+ return BIGNUM_POSITIVE_P(num);
177
+ }
178
+ return RTEST(rb_num_compare_with_zero(num, mid));
179
+ }
180
+
181
+ static inline int
182
+ rb_num_negative_int_p(VALUE num)
183
+ {
184
+ const ID mid = '<';
185
+
186
+ if (FIXNUM_P(num)) {
187
+ if (rb_method_basic_definition_p(rb_cInteger, mid))
188
+ return FIXNUM_NEGATIVE_P(num);
189
+ }
190
+ else if (RB_TYPE_P(num, T_BIGNUM)) {
191
+ if (rb_method_basic_definition_p(rb_cInteger, mid))
192
+ return BIGNUM_NEGATIVE_P(num);
193
+ }
194
+ return RTEST(rb_num_compare_with_zero(num, mid));
195
+ }
196
+
197
+ static inline double
198
+ rb_float_flonum_value(VALUE v)
199
+ {
200
+ #if USE_FLONUM
201
+ if (v != (VALUE)0x8000000000000002) { /* LIKELY */
202
+ union {
203
+ double d;
204
+ VALUE v;
205
+ } t;
206
+
207
+ VALUE b63 = (v >> 63);
208
+ /* e: xx1... -> 011... */
209
+ /* xx0... -> 100... */
210
+ /* ^b63 */
211
+ t.v = RUBY_BIT_ROTR((2 - b63) | (v & ~(VALUE)0x03), 3);
212
+ return t.d;
213
+ }
214
+ #endif
215
+ return 0.0;
216
+ }
217
+
218
+ static inline double
219
+ rb_float_noflonum_value(VALUE v)
220
+ {
221
+ #if SIZEOF_DOUBLE <= SIZEOF_VALUE
222
+ return RFLOAT(v)->float_value;
223
+ #else
224
+ union {
225
+ rb_float_value_type v;
226
+ double d;
227
+ } u = {RFLOAT(v)->float_value};
228
+ return u.d;
229
+ #endif
230
+ }
231
+
232
+ static inline double
233
+ rb_float_value_inline(VALUE v)
234
+ {
235
+ if (FLONUM_P(v)) {
236
+ return rb_float_flonum_value(v);
237
+ }
238
+ return rb_float_noflonum_value(v);
239
+ }
240
+
241
+ static inline VALUE
242
+ rb_float_new_inline(double d)
243
+ {
244
+ #if USE_FLONUM
245
+ union {
246
+ double d;
247
+ VALUE v;
248
+ } t;
249
+ int bits;
250
+
251
+ t.d = d;
252
+ bits = (int)((VALUE)(t.v >> 60) & 0x7);
253
+ /* bits contains 3 bits of b62..b60. */
254
+ /* bits - 3 = */
255
+ /* b011 -> b000 */
256
+ /* b100 -> b001 */
257
+
258
+ if (t.v != 0x3000000000000000 /* 1.72723e-77 */ &&
259
+ !((bits-3) & ~0x01)) {
260
+ return (RUBY_BIT_ROTL(t.v, 3) & ~(VALUE)0x01) | 0x02;
261
+ }
262
+ else if (t.v == (VALUE)0) {
263
+ /* +0.0 */
264
+ return 0x8000000000000002;
265
+ }
266
+ /* out of range */
267
+ #endif
268
+ return rb_float_new_in_heap(d);
269
+ }
270
+
271
+ #endif /* INTERNAL_NUMERIC_H */
@@ -0,0 +1,83 @@
1
+ #ifndef INTERNAL_OBJECT_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_OBJECT_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 Object.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+ #include "internal/class.h" /* for RCLASS_IV_INDEX_TBL */
13
+
14
+ #ifdef ROBJECT_IV_INDEX_TBL
15
+ # undef ROBJECT_IV_INDEX_TBL
16
+ #endif
17
+
18
+ /* object.c */
19
+ VALUE rb_class_search_ancestor(VALUE klass, VALUE super);
20
+ NORETURN(void rb_undefined_alloc(VALUE klass));
21
+ double rb_num_to_dbl(VALUE val);
22
+ VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound);
23
+ VALUE rb_immutable_obj_clone(int, VALUE *, VALUE);
24
+ VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID);
25
+ int rb_bool_expected(VALUE, const char *);
26
+ static inline void RBASIC_CLEAR_CLASS(VALUE obj);
27
+ static inline void RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass);
28
+ static inline void RBASIC_SET_CLASS(VALUE obj, VALUE klass);
29
+ static inline struct st_table *ROBJECT_IV_INDEX_TBL_inline(VALUE obj);
30
+
31
+ RUBY_SYMBOL_EXPORT_BEGIN
32
+ /* object.c (export) */
33
+ int rb_opts_exception_p(VALUE opts, int default_value);
34
+ RUBY_SYMBOL_EXPORT_END
35
+
36
+ MJIT_SYMBOL_EXPORT_BEGIN
37
+ CONSTFUNC(VALUE rb_obj_equal(VALUE obj1, VALUE obj2));
38
+ CONSTFUNC(VALUE rb_obj_not(VALUE obj));
39
+ VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2);
40
+ void rb_obj_copy_ivar(VALUE dest, VALUE obj);
41
+ VALUE rb_false(VALUE obj);
42
+ VALUE rb_convert_type_with_id(VALUE v, int t, const char* nam, ID mid);
43
+ VALUE rb_obj_size(VALUE self, VALUE args, VALUE obj);
44
+ VALUE rb_get_freeze_opt(int argc, VALUE *argv);
45
+ MJIT_SYMBOL_EXPORT_END
46
+
47
+ static inline void
48
+ RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass)
49
+ {
50
+ const VALUE *ptr = &RBASIC(obj)->klass;
51
+ *(VALUE *)ptr = klass;
52
+ }
53
+
54
+ static inline void
55
+ RBASIC_CLEAR_CLASS(VALUE obj)
56
+ {
57
+ RBASIC_SET_CLASS_RAW(obj, 0);
58
+ }
59
+
60
+ static inline void
61
+ RBASIC_SET_CLASS(VALUE obj, VALUE klass)
62
+ {
63
+ VALUE oldv = RBASIC_CLASS(obj);
64
+ RBASIC_SET_CLASS_RAW(obj, klass);
65
+ RB_OBJ_WRITTEN(obj, oldv, klass);
66
+ }
67
+
68
+ RBIMPL_ATTR_PURE()
69
+ static inline struct st_table *
70
+ ROBJECT_IV_INDEX_TBL_inline(VALUE obj)
71
+ {
72
+ if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) {
73
+ VALUE klass = rb_obj_class(obj);
74
+ return RCLASS_IV_INDEX_TBL(klass);
75
+ }
76
+ else {
77
+ const struct RObject *const ptr = ROBJECT(obj);
78
+ return ptr->as.heap.iv_index_tbl;
79
+ }
80
+ }
81
+ #define ROBJECT_IV_INDEX_TBL ROBJECT_IV_INDEX_TBL_inline
82
+
83
+ #endif /* INTERNAL_OBJECT_H */
@@ -0,0 +1,23 @@
1
+ #ifndef INTERNAL_PARSE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_PARSE_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 the parser.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+ struct rb_iseq_struct; /* in vm_core.h */
13
+
14
+ /* parse.y */
15
+ VALUE rb_parser_set_yydebug(VALUE, VALUE);
16
+ void *rb_parser_load_file(VALUE parser, VALUE name);
17
+ void rb_parser_keep_script_lines(VALUE vparser);
18
+
19
+ RUBY_SYMBOL_EXPORT_BEGIN
20
+ VALUE rb_parser_set_context(VALUE, const struct rb_iseq_struct *, int);
21
+ RUBY_SYMBOL_EXPORT_END
22
+
23
+ #endif /* INTERNAL_PARSE_H */
@@ -0,0 +1,32 @@
1
+ #ifndef INTERNAL_PROC_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_PROC_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 Proc.
10
+ */
11
+ #include "ruby/ruby.h" /* for rb_block_call_func_t */
12
+ #include "ruby/st.h" /* for st_index_t */
13
+ struct rb_block; /* in vm_core.h */
14
+ struct rb_iseq_struct; /* in vm_core.h */
15
+
16
+ /* proc.c */
17
+ VALUE rb_proc_location(VALUE self);
18
+ st_index_t rb_hash_proc(st_index_t hash, VALUE proc);
19
+ int rb_block_pair_yield_optimizable(void);
20
+ int rb_block_arity(void);
21
+ int rb_block_min_max_arity(int *max);
22
+ VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);
23
+ VALUE rb_callable_receiver(VALUE);
24
+
25
+ MJIT_SYMBOL_EXPORT_BEGIN
26
+ VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);
27
+ VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc);
28
+ VALUE rb_iseq_location(const struct rb_iseq_struct *iseq);
29
+ VALUE rb_sym_to_proc(VALUE sym);
30
+ MJIT_SYMBOL_EXPORT_END
31
+
32
+ #endif /* INTERNAL_PROC_H */
@@ -0,0 +1,137 @@
1
+ #ifndef INTERNAL_PROCESS_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_PROCESS_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 Process.
10
+ */
11
+ #include "ruby/internal/config.h" /* for rb_pid_t */
12
+ #include <stddef.h> /* for size_t */
13
+
14
+ #ifdef HAVE_SYS_TYPES_H
15
+ # include <sys/types.h> /* for mode_t */
16
+ #endif
17
+
18
+ #ifdef _WIN32
19
+ # include "ruby/win32.h" /* for mode_t */
20
+ #endif
21
+
22
+ #include "ruby/ruby.h" /* for VALUE */
23
+ #include "internal/imemo.h" /* for RB_IMEMO_TMPBUF_PTR */
24
+ #include "internal/warnings.h" /* for COMPILER_WARNING_PUSH */
25
+
26
+ #define RB_MAX_GROUPS (65536)
27
+
28
+ struct waitpid_state;
29
+ struct rb_process_status;
30
+ struct rb_execarg {
31
+ union {
32
+ struct {
33
+ VALUE shell_script;
34
+ } sh;
35
+ struct {
36
+ VALUE command_name;
37
+ VALUE command_abspath; /* full path string or nil */
38
+ VALUE argv_str;
39
+ VALUE argv_buf;
40
+ } cmd;
41
+ } invoke;
42
+ VALUE redirect_fds;
43
+ VALUE envp_str;
44
+ VALUE envp_buf;
45
+ VALUE dup2_tmpbuf;
46
+ unsigned use_shell : 1;
47
+ unsigned pgroup_given : 1;
48
+ unsigned umask_given : 1;
49
+ unsigned unsetenv_others_given : 1;
50
+ unsigned unsetenv_others_do : 1;
51
+ unsigned close_others_given : 1;
52
+ unsigned close_others_do : 1;
53
+ unsigned chdir_given : 1;
54
+ unsigned new_pgroup_given : 1;
55
+ unsigned new_pgroup_flag : 1;
56
+ unsigned uid_given : 1;
57
+ unsigned gid_given : 1;
58
+ unsigned exception : 1;
59
+ unsigned exception_given : 1;
60
+ struct rb_process_status *status;
61
+ struct waitpid_state *waitpid_state; /* for async process management */
62
+ rb_pid_t pgroup_pgid; /* asis(-1), new pgroup(0), specified pgroup (0<V). */
63
+ VALUE rlimit_limits; /* Qfalse or [[rtype, softlim, hardlim], ...] */
64
+ mode_t umask_mask;
65
+ rb_uid_t uid;
66
+ rb_gid_t gid;
67
+ int close_others_maxhint;
68
+ VALUE fd_dup2;
69
+ VALUE fd_close;
70
+ VALUE fd_open;
71
+ VALUE fd_dup2_child;
72
+ VALUE env_modification; /* Qfalse or [[k1,v1], ...] */
73
+ VALUE path_env;
74
+ VALUE chdir_dir;
75
+ };
76
+
77
+ /* process.c */
78
+ rb_pid_t rb_call_proc__fork(void);
79
+ void rb_last_status_clear(void);
80
+ static inline char **ARGVSTR2ARGV(VALUE argv_str);
81
+ static inline size_t ARGVSTR2ARGC(VALUE argv_str);
82
+
83
+ #ifdef HAVE_PWD_H
84
+ VALUE rb_getlogin(void);
85
+ VALUE rb_getpwdirnam_for_login(VALUE login); /* read as: "get pwd db home dir by username for login" */
86
+ VALUE rb_getpwdiruid(void); /* read as: "get pwd db home dir for getuid()" */
87
+ #endif
88
+
89
+ RUBY_SYMBOL_EXPORT_BEGIN
90
+ /* process.c (export) */
91
+ int rb_exec_async_signal_safe(const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen);
92
+ rb_pid_t rb_fork_async_signal_safe(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALUE fds, char *errmsg, size_t errmsg_buflen);
93
+ VALUE rb_execarg_new(int argc, const VALUE *argv, int accept_shell, int allow_exc_opt);
94
+ struct rb_execarg *rb_execarg_get(VALUE execarg_obj); /* dangerous. needs GC guard. */
95
+ int rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val);
96
+ void rb_execarg_parent_start(VALUE execarg_obj);
97
+ void rb_execarg_parent_end(VALUE execarg_obj);
98
+ int rb_execarg_run_options(const struct rb_execarg *e, struct rb_execarg *s, char* errmsg, size_t errmsg_buflen);
99
+ VALUE rb_execarg_extract_options(VALUE execarg_obj, VALUE opthash);
100
+ void rb_execarg_setenv(VALUE execarg_obj, VALUE env);
101
+ RUBY_SYMBOL_EXPORT_END
102
+
103
+ /* argv_str contains extra two elements.
104
+ * The beginning one is for /bin/sh used by exec_with_sh.
105
+ * The last one for terminating NULL used by execve.
106
+ * See rb_exec_fillarg() in process.c. */
107
+ static inline char **
108
+ ARGVSTR2ARGV(VALUE argv_str)
109
+ {
110
+ char **buf = RB_IMEMO_TMPBUF_PTR(argv_str);
111
+ return &buf[1];
112
+ }
113
+
114
+ static inline size_t
115
+ ARGVSTR2ARGC(VALUE argv_str)
116
+ {
117
+ size_t i = 0;
118
+ char *const *p = ARGVSTR2ARGV(argv_str);
119
+ while (p[i++])
120
+ ;
121
+ return i - 1;
122
+ }
123
+
124
+ #ifdef HAVE_WORKING_FORK
125
+ COMPILER_WARNING_PUSH
126
+ #if __has_warning("-Wdeprecated-declarations") || RBIMPL_COMPILER_IS(GCC)
127
+ COMPILER_WARNING_IGNORED(-Wdeprecated-declarations)
128
+ #endif
129
+ static inline rb_pid_t
130
+ rb_fork(void)
131
+ {
132
+ return fork();
133
+ }
134
+ COMPILER_WARNING_POP
135
+ #endif
136
+
137
+ #endif /* INTERNAL_PROCESS_H */
@@ -0,0 +1,6 @@
1
+ #ifndef INTERNAL_RACTOR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_RACTOR_H
3
+
4
+ void rb_ractor_ensure_main_ractor(const char *msg);
5
+
6
+ #endif /* INTERNAL_RACTOR_H */
@@ -0,0 +1,16 @@
1
+ #ifndef INTERNAL_RANDOM_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_RANDOM_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 Random.
10
+ */
11
+ #include <stddef.h> /* for size_t */
12
+
13
+ /* random.c */
14
+ int ruby_fill_random_bytes(void *, size_t, int);
15
+
16
+ #endif /* INTERNAL_RANDOM_H */
@@ -0,0 +1,40 @@
1
+ #ifndef INTERNAL_RANGE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_RANGE_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 Range.
10
+ */
11
+ #include "internal/struct.h" /* for RSTRUCT */
12
+
13
+ /* range.c */
14
+ static inline VALUE RANGE_BEG(VALUE r);
15
+ static inline VALUE RANGE_END(VALUE r);
16
+ static inline VALUE RANGE_EXCL(VALUE r);
17
+
18
+ static inline VALUE
19
+ RANGE_BEG(VALUE r)
20
+ {
21
+ return RSTRUCT(r)->as.ary[0];
22
+ }
23
+
24
+ static inline VALUE
25
+ RANGE_END(VALUE r)
26
+ {
27
+ return RSTRUCT(r)->as.ary[1];
28
+ }
29
+
30
+ static inline VALUE
31
+ RANGE_EXCL(VALUE r)
32
+ {
33
+ return RSTRUCT(r)->as.ary[2];
34
+ }
35
+
36
+ VALUE
37
+ rb_range_component_beg_len(VALUE b, VALUE e, int excl,
38
+ long *begp, long *lenp, long len, int err);
39
+
40
+ #endif /* INTERNAL_RANGE_H */
@@ -0,0 +1,72 @@
1
+ #ifndef INTERNAL_RATIONAL_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_RATIONAL_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 Rational.
10
+ */
11
+ #include "ruby/internal/config.h" /* for HAVE_LIBGMP */
12
+ #include "ruby/ruby.h" /* for struct RBasic */
13
+ #include "internal/gc.h" /* for RB_OBJ_WRITE */
14
+ #include "internal/numeric.h" /* for INT_POSITIVE_P */
15
+ #include "ruby_assert.h" /* for assert */
16
+
17
+ struct RRational {
18
+ struct RBasic basic;
19
+ VALUE num;
20
+ VALUE den;
21
+ };
22
+
23
+ #define RRATIONAL(obj) ((struct RRational *)(obj))
24
+
25
+ /* rational.c */
26
+ VALUE rb_rational_canonicalize(VALUE x);
27
+ VALUE rb_rational_uminus(VALUE self);
28
+ VALUE rb_rational_plus(VALUE self, VALUE other);
29
+ VALUE rb_rational_minus(VALUE self, VALUE other);
30
+ VALUE rb_rational_mul(VALUE self, VALUE other);
31
+ VALUE rb_rational_div(VALUE self, VALUE other);
32
+ VALUE rb_lcm(VALUE x, VALUE y);
33
+ VALUE rb_rational_reciprocal(VALUE x);
34
+ VALUE rb_cstr_to_rat(const char *, int);
35
+ VALUE rb_rational_hash(VALUE self);
36
+ VALUE rb_rational_abs(VALUE self);
37
+ VALUE rb_rational_cmp(VALUE self, VALUE other);
38
+ VALUE rb_rational_pow(VALUE self, VALUE other);
39
+ VALUE rb_rational_floor(VALUE self, int ndigits);
40
+ VALUE rb_numeric_quo(VALUE x, VALUE y);
41
+ VALUE rb_flo_round_by_rational(int argc, VALUE *argv, VALUE num);
42
+ VALUE rb_float_numerator(VALUE x);
43
+ VALUE rb_float_denominator(VALUE x);
44
+
45
+ static inline void RATIONAL_SET_NUM(VALUE r, VALUE n);
46
+ static inline void RATIONAL_SET_DEN(VALUE r, VALUE d);
47
+
48
+ RUBY_SYMBOL_EXPORT_BEGIN
49
+ /* rational.c (export) */
50
+ VALUE rb_gcd(VALUE x, VALUE y);
51
+ VALUE rb_gcd_normal(VALUE self, VALUE other);
52
+ #if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H)
53
+ VALUE rb_gcd_gmp(VALUE x, VALUE y);
54
+ #endif
55
+ RUBY_SYMBOL_EXPORT_END
56
+
57
+ static inline void
58
+ RATIONAL_SET_NUM(VALUE r, VALUE n)
59
+ {
60
+ assert(RB_INTEGER_TYPE_P(n));
61
+ RB_OBJ_WRITE(r, &RRATIONAL(r)->num, n);
62
+ }
63
+
64
+ static inline void
65
+ RATIONAL_SET_DEN(VALUE r, VALUE d)
66
+ {
67
+ assert(RB_INTEGER_TYPE_P(d));
68
+ assert(INT_POSITIVE_P(d));
69
+ RB_OBJ_WRITE(r, &RRATIONAL(r)->den, d);
70
+ }
71
+
72
+ #endif /* INTERNAL_RATIONAL_H */