debase-ruby_core_source 3.3.6 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/builtin.h +7 -1
  5. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/darray.h +1 -3
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/id.h +5 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns.inc +2 -0
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns_info.inc +310 -175
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/basic_operators.h +1 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/bits.h +82 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/encoding.h +2 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/error.h +26 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/fixnum.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/gc.h +14 -6
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/imemo.h +6 -1
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/io.h +1 -1
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/parse.h +2 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/proc.h +1 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/ractor.h +4 -0
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/sanitizers.h +31 -39
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/string.h +22 -10
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/thread.h +23 -0
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/vm.h +1 -1
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/method.h +1 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/optunifs.inc +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/parse.h +2 -2
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/ast.h +427 -3
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/defines.h +8 -7
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/diagnostic.h +1 -0
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/extension.h +1 -1
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prism.h +47 -11
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/version.h +2 -2
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism_compile.h +5 -5
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/ractor_core.h +6 -6
  35. data/lib/debase/ruby_core_source/ruby-3.4.0/revision.h +5 -0
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/rubyparser.h +3 -2
  37. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/thread_pthread.h +0 -1
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/version.h +1 -1
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm.inc +151 -88
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_core.h +40 -12
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_sync.h +3 -3
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vmtc.inc +2 -0
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/yjit.h +1 -0
  44. data/lib/debase/ruby_core_source/version.rb +1 -1
  45. metadata +147 -293
  46. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  47. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  48. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  49. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +0 -343
  50. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  51. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  52. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +0 -151
  53. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +0 -63
  54. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +0 -568
  55. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  56. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +0 -216
  57. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +0 -184
  58. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +0 -334
  59. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +0 -191
  60. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +0 -260
  61. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +0 -140
  62. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +0 -117
  63. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +0 -6
  64. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +0 -297
  65. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +0 -182
  66. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +0 -79
  67. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +0 -137
  68. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  69. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +0 -255
  70. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  71. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  72. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +0 -6245
  73. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +0 -206
  74. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +0 -433
  75. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +0 -19
  76. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +0 -150
  77. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +0 -305
  78. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +0 -891
  79. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  80. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +0 -120
  81. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +0 -205
  82. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +0 -226
  83. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +0 -119
  84. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +0 -102
  85. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +0 -174
  86. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  87. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +0 -29
  88. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +0 -88
  89. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +0 -393
  90. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  91. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  92. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +0 -1430
  93. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  94. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  95. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +0 -166
  96. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  97. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  98. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  99. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +0 -2236
  100. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  101. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  102. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  103. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  104. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  105. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +0 -40
  106. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +0 -63
  107. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +0 -142
  108. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +0 -791
  109. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +0 -17
  110. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  111. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  112. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  113. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  114. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +0 -39
  115. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +0 -244
  116. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +0 -65
  117. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +0 -29
  118. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +0 -34
  119. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +0 -107
  120. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +0 -29
  121. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +0 -35
  122. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +0 -16
  123. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +0 -19
  124. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +0 -36
  125. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +0 -18
  126. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +0 -21
  127. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +0 -33
  128. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +0 -38
  129. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +0 -47
  130. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +0 -18
  131. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +0 -16
  132. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +0 -23
  133. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +0 -19
  134. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +0 -274
  135. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +0 -63
  136. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +0 -30
  137. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +0 -124
  138. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +0 -17
  139. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +0 -40
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +0 -71
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +0 -28
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +0 -102
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +0 -23
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +0 -24
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +0 -11
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +0 -16
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +0 -127
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +0 -45
  149. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +0 -34
  150. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +0 -23
  151. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +0 -27
  152. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +0 -72
  153. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +0 -16
  154. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +0 -108
  155. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +0 -340
  156. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +0 -111
  157. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  158. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  159. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  160. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  161. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +0 -162
  162. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +0 -106
  163. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +0 -283
  164. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +0 -163
  165. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +0 -34
  166. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +0 -336
  167. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +0 -218
  168. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +0 -97
  169. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +0 -29
  170. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +0 -32
  171. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +0 -46
  172. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  173. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  174. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  175. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  176. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  177. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  178. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +0 -14
  179. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  180. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  181. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +0 -21
  182. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  183. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  184. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  185. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  186. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  187. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +0 -124
  188. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  189. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +0 -67
  190. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  191. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/addr2line.h +0 -0
  192. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/build_assert/build_assert.h +0 -0
  193. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/check_type/check_type.h +0 -0
  194. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/container_of/container_of.h +0 -0
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/list/list.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/str/str.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/constant.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/debug_counter.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/dln.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/encindex.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/eval_intern.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/hrtime.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/id_table.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/array.h +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/bignum.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/class.h +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cmdlineopt.h +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compar.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compile.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compilers.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/complex.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cont.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/dir.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enc.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enum.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enumerator.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/eval.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/file.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/hash.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/inits.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/load.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/loadpath.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/math.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/missing.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/numeric.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/object.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/process.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/random.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/range.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/rational.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/re.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/ruby_parser.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/serial.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/signal.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/st.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/static_assert.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/struct.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/symbol.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/time.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/transcode.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/util.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/variable.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/warnings.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/iseq.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/known_errors.inc +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node_name.inc +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/optinsn.inc +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_bits.h +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_node.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_st.h +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_value.h +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/encoding.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/node.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/options.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/pack.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/parser.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prettyprint.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/regexp.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/static_literals.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_buffer.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_char.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_constant_pool.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_integer.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_list.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_memchr.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_newline_list.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_string.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strncasecmp.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strpbrk.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/probes_helper.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regenc.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/regint.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regparse.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit_c.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_assert.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_atomic.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/shape.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/siphash.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/symbol.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_none.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_win32.h +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/timev.h +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/transcode_data.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/variable.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_call_iseq_optimized.inc +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_callinfo.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_debug.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_exec.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_insnhelper.h +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_opts.h +0 -0
@@ -1,564 +0,0 @@
1
- #ifndef INTERNAL_BITS2_H /*-*-C-*-vi:se ft=c:*/
2
- #define INTERNAL_BITS2_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 bitwise integer algorithms.
10
- * @see Henry S. Warren Jr., "Hacker's Delight" (2nd ed.), 2013.
11
- * @see SEI CERT C Coding Standard INT32-C. "Ensure that operations on
12
- * signed integers do not result in overflow"
13
- * @see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
14
- * @see https://clang.llvm.org/docs/LanguageExtensions.html#builtin-rotateleft
15
- * @see https://clang.llvm.org/docs/LanguageExtensions.html#builtin-rotateright
16
- * @see https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/byteswap-uint64-byteswap-ulong-byteswap-ushort
17
- * @see https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/rotl-rotl64-rotr-rotr64
18
- * @see https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanforward-bitscanforward64
19
- * @see https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanreverse-bitscanreverse64
20
- * @see https://docs.microsoft.com/en-us/cpp/intrinsics/lzcnt16-lzcnt-lzcnt64
21
- * @see https://docs.microsoft.com/en-us/cpp/intrinsics/popcnt16-popcnt-popcnt64
22
- * @see https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_lzcnt_u32
23
- * @see https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_tzcnt_u32
24
- * @see https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_rotl64
25
- * @see https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_rotr64
26
- * @see https://stackoverflow.com/a/776523
27
- */
28
- #include "ruby/internal/config.h"
29
- #include <limits.h> /* for CHAR_BITS */
30
- #include <stdint.h> /* for uintptr_t */
31
- #include "internal/compilers.h" /* for MSC_VERSION_SINCE */
32
-
33
- #if MSC_VERSION_SINCE(1310)
34
- # include <stdlib.h> /* for _byteswap_uint64 */
35
- #endif
36
-
37
- #if defined(HAVE_X86INTRIN_H)
38
- # include <x86intrin.h> /* for _lzcnt_u64 */
39
- #elif MSC_VERSION_SINCE(1310)
40
- # include <intrin.h> /* for the following intrinsics */
41
- #endif
42
-
43
- #if defined(_MSC_VER) && defined(__AVX__)
44
- # pragma intrinsic(__popcnt)
45
- # pragma intrinsic(__popcnt64)
46
- #endif
47
-
48
- #if defined(_MSC_VER) && defined(__AVX2__)
49
- # pragma intrinsic(__lzcnt)
50
- # pragma intrinsic(__lzcnt64)
51
- #endif
52
-
53
- #if MSC_VERSION_SINCE(1310)
54
- # pragma intrinsic(_rotl)
55
- # pragma intrinsic(_rotr)
56
- # ifdef _WIN64
57
- # pragma intrinsic(_rotl64)
58
- # pragma intrinsic(_rotr64)
59
- # endif
60
- #endif
61
-
62
- #if MSC_VERSION_SINCE(1400)
63
- # pragma intrinsic(_BitScanForward)
64
- # pragma intrinsic(_BitScanReverse)
65
- # ifdef _WIN64
66
- # pragma intrinsic(_BitScanForward64)
67
- # pragma intrinsic(_BitScanReverse64)
68
- # endif
69
- #endif
70
-
71
- #include "parser_value.h" /* for VALUE */
72
- #include "internal/static_assert.h" /* for STATIC_ASSERT */
73
-
74
- /* The most significant bit of the lower part of half-long integer.
75
- * If sizeof(long) == 4, this is 0x8000.
76
- * If sizeof(long) == 8, this is 0x80000000.
77
- */
78
- #define HALF_LONG_MSB ((SIGNED_VALUE)1<<((SIZEOF_LONG*CHAR_BIT-1)/2))
79
-
80
- #define SIGNED_INTEGER_TYPE_P(T) (0 > ((T)0)-1)
81
-
82
- #define SIGNED_INTEGER_MIN(T) \
83
- ((sizeof(T) == sizeof(int8_t)) ? ((T)INT8_MIN) : \
84
- ((sizeof(T) == sizeof(int16_t)) ? ((T)INT16_MIN) : \
85
- ((sizeof(T) == sizeof(int32_t)) ? ((T)INT32_MIN) : \
86
- ((sizeof(T) == sizeof(int64_t)) ? ((T)INT64_MIN) : \
87
- 0))))
88
-
89
- #define SIGNED_INTEGER_MAX(T) ((T)(SIGNED_INTEGER_MIN(T) ^ ((T)~(T)0)))
90
-
91
- #define UNSIGNED_INTEGER_MAX(T) ((T)~(T)0)
92
-
93
- #if __has_builtin(__builtin_mul_overflow_p)
94
- # define MUL_OVERFLOW_P(a, b) \
95
- __builtin_mul_overflow_p((a), (b), (__typeof__(a * b))0)
96
- #elif __has_builtin(__builtin_mul_overflow)
97
- # define MUL_OVERFLOW_P(a, b) \
98
- __extension__ ({ __typeof__(a) c; __builtin_mul_overflow((a), (b), &c); })
99
- #endif
100
-
101
- #define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \
102
- (a) == 0 ? 0 : \
103
- (a) == -1 ? (b) < -(max) : \
104
- (a) > 0 ? \
105
- ((b) > 0 ? (max) / (a) < (b) : (min) / (a) > (b)) : \
106
- ((b) > 0 ? (min) / (a) < (b) : (max) / (a) > (b)))
107
-
108
- #if __has_builtin(__builtin_mul_overflow_p)
109
- /* __builtin_mul_overflow_p can take bitfield */
110
- /* and GCC permits bitfields for integers other than int */
111
- # define MUL_OVERFLOW_FIXNUM_P(a, b) \
112
- __extension__ ({ \
113
- struct { long fixnum : sizeof(long) * CHAR_BIT - 1; } c = { 0 }; \
114
- __builtin_mul_overflow_p((a), (b), c.fixnum); \
115
- })
116
- #else
117
- # define MUL_OVERFLOW_FIXNUM_P(a, b) \
118
- MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX)
119
- #endif
120
-
121
- #ifdef MUL_OVERFLOW_P
122
- # define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_P(a, b)
123
- # define MUL_OVERFLOW_LONG_P(a, b) MUL_OVERFLOW_P(a, b)
124
- # define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_P(a, b)
125
- #else
126
- # define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX)
127
- # define MUL_OVERFLOW_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)
128
- # define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)
129
- #endif
130
-
131
- #ifdef HAVE_UINT128_T
132
- # define bit_length(x) \
133
- (unsigned int) \
134
- (sizeof(x) <= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \
135
- sizeof(x) <= sizeof(int64_t) ? 64 - nlz_int64((uint64_t)(x)) : \
136
- 128 - nlz_int128((uint128_t)(x)))
137
- #else
138
- # define bit_length(x) \
139
- (unsigned int) \
140
- (sizeof(x) <= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \
141
- 64 - nlz_int64((uint64_t)(x)))
142
- #endif
143
-
144
- #ifndef swap16
145
- # define swap16 ruby_swap16
146
- #endif
147
-
148
- #ifndef swap32
149
- # define swap32 ruby_swap32
150
- #endif
151
-
152
- #ifndef swap64
153
- # define swap64 ruby_swap64
154
- #endif
155
-
156
- static inline uint16_t ruby_swap16(uint16_t);
157
- static inline uint32_t ruby_swap32(uint32_t);
158
- static inline uint64_t ruby_swap64(uint64_t);
159
- static inline unsigned nlz_int(unsigned x);
160
- static inline unsigned nlz_long(unsigned long x);
161
- static inline unsigned nlz_long_long(unsigned long long x);
162
- static inline unsigned nlz_intptr(uintptr_t x);
163
- static inline unsigned nlz_int32(uint32_t x);
164
- static inline unsigned nlz_int64(uint64_t x);
165
- #ifdef HAVE_UINT128_T
166
- static inline unsigned nlz_int128(uint128_t x);
167
- #endif
168
- static inline unsigned rb_popcount32(uint32_t x);
169
- static inline unsigned rb_popcount64(uint64_t x);
170
- static inline unsigned rb_popcount_intptr(uintptr_t x);
171
- static inline int ntz_int32(uint32_t x);
172
- static inline int ntz_int64(uint64_t x);
173
- static inline int ntz_intptr(uintptr_t x);
174
- static inline VALUE RUBY_BIT_ROTL(VALUE, int);
175
- static inline VALUE RUBY_BIT_ROTR(VALUE, int);
176
-
177
- static inline uint16_t
178
- ruby_swap16(uint16_t x)
179
- {
180
- #if __has_builtin(__builtin_bswap16)
181
- return __builtin_bswap16(x);
182
-
183
- #elif MSC_VERSION_SINCE(1310)
184
- return _byteswap_ushort(x);
185
-
186
- #else
187
- return (x << 8) | (x >> 8);
188
-
189
- #endif
190
- }
191
-
192
- static inline uint32_t
193
- ruby_swap32(uint32_t x)
194
- {
195
- #if __has_builtin(__builtin_bswap32)
196
- return __builtin_bswap32(x);
197
-
198
- #elif MSC_VERSION_SINCE(1310)
199
- return _byteswap_ulong(x);
200
-
201
- #else
202
- x = ((x & 0x0000FFFF) << 16) | ((x & 0xFFFF0000) >> 16);
203
- x = ((x & 0x00FF00FF) << 8) | ((x & 0xFF00FF00) >> 8);
204
- return x;
205
-
206
- #endif
207
- }
208
-
209
- static inline uint64_t
210
- ruby_swap64(uint64_t x)
211
- {
212
- #if __has_builtin(__builtin_bswap64)
213
- return __builtin_bswap64(x);
214
-
215
- #elif MSC_VERSION_SINCE(1310)
216
- return _byteswap_uint64(x);
217
-
218
- #else
219
- x = ((x & 0x00000000FFFFFFFFULL) << 32) | ((x & 0xFFFFFFFF00000000ULL) >> 32);
220
- x = ((x & 0x0000FFFF0000FFFFULL) << 16) | ((x & 0xFFFF0000FFFF0000ULL) >> 16);
221
- x = ((x & 0x00FF00FF00FF00FFULL) << 8) | ((x & 0xFF00FF00FF00FF00ULL) >> 8);
222
- return x;
223
-
224
- #endif
225
- }
226
-
227
- static inline unsigned int
228
- nlz_int32(uint32_t x)
229
- {
230
- #if defined(_MSC_VER) && defined(__AVX2__)
231
- /* Note: It seems there is no such thing like __LZCNT__ predefined in MSVC.
232
- * AMD CPUs have had this instruction for decades (since K10) but for
233
- * Intel, Haswell is the oldest one. We need to use __AVX2__ for maximum
234
- * safety. */
235
- return (unsigned int)__lzcnt(x);
236
-
237
- #elif defined(__x86_64__) && defined(__LZCNT__)
238
- return (unsigned int)_lzcnt_u32(x);
239
-
240
- #elif MSC_VERSION_SINCE(1400) /* &&! defined(__AVX2__) */
241
- unsigned long r;
242
- return _BitScanReverse(&r, x) ? (31 - (int)r) : 32;
243
-
244
- #elif __has_builtin(__builtin_clz)
245
- STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT == 32);
246
- return x ? (unsigned int)__builtin_clz(x) : 32;
247
-
248
- #else
249
- uint32_t y;
250
- unsigned n = 32;
251
- y = x >> 16; if (y) {n -= 16; x = y;}
252
- y = x >> 8; if (y) {n -= 8; x = y;}
253
- y = x >> 4; if (y) {n -= 4; x = y;}
254
- y = x >> 2; if (y) {n -= 2; x = y;}
255
- y = x >> 1; if (y) {return n - 2;}
256
- return (unsigned int)(n - x);
257
- #endif
258
- }
259
-
260
- static inline unsigned int
261
- nlz_int64(uint64_t x)
262
- {
263
- #if defined(_MSC_VER) && defined(__AVX2__)
264
- return (unsigned int)__lzcnt64(x);
265
-
266
- #elif defined(__x86_64__) && defined(__LZCNT__)
267
- return (unsigned int)_lzcnt_u64(x);
268
-
269
- #elif defined(_WIN64) && MSC_VERSION_SINCE(1400) /* &&! defined(__AVX2__) */
270
- unsigned long r;
271
- return _BitScanReverse64(&r, x) ? (63u - (unsigned int)r) : 64;
272
-
273
- #elif __has_builtin(__builtin_clzl)
274
- if (x == 0) {
275
- return 64;
276
- }
277
- else if (sizeof(long) * CHAR_BIT == 64) {
278
- return (unsigned int)__builtin_clzl((unsigned long)x);
279
- }
280
- else if (sizeof(long long) * CHAR_BIT == 64) {
281
- return (unsigned int)__builtin_clzll((unsigned long long)x);
282
- }
283
- else {
284
- /* :FIXME: Is there a way to make this branch a compile-time error? */
285
- UNREACHABLE_RETURN(~0);
286
- }
287
-
288
- #else
289
- uint64_t y;
290
- unsigned int n = 64;
291
- y = x >> 32; if (y) {n -= 32; x = y;}
292
- y = x >> 16; if (y) {n -= 16; x = y;}
293
- y = x >> 8; if (y) {n -= 8; x = y;}
294
- y = x >> 4; if (y) {n -= 4; x = y;}
295
- y = x >> 2; if (y) {n -= 2; x = y;}
296
- y = x >> 1; if (y) {return n - 2;}
297
- return (unsigned int)(n - x);
298
-
299
- #endif
300
- }
301
-
302
- #ifdef HAVE_UINT128_T
303
- static inline unsigned int
304
- nlz_int128(uint128_t x)
305
- {
306
- uint64_t y = (uint64_t)(x >> 64);
307
-
308
- if (x == 0) {
309
- return 128;
310
- }
311
- else if (y == 0) {
312
- return (unsigned int)nlz_int64(x) + 64;
313
- }
314
- else {
315
- return (unsigned int)nlz_int64(y);
316
- }
317
- }
318
- #endif
319
-
320
- static inline unsigned int
321
- nlz_int(unsigned int x)
322
- {
323
- if (sizeof(unsigned int) * CHAR_BIT == 32) {
324
- return nlz_int32((uint32_t)x);
325
- }
326
- else if (sizeof(unsigned int) * CHAR_BIT == 64) {
327
- return nlz_int64((uint64_t)x);
328
- }
329
- else {
330
- UNREACHABLE_RETURN(~0);
331
- }
332
- }
333
-
334
- static inline unsigned int
335
- nlz_long(unsigned long x)
336
- {
337
- if (sizeof(unsigned long) * CHAR_BIT == 32) {
338
- return nlz_int32((uint32_t)x);
339
- }
340
- else if (sizeof(unsigned long) * CHAR_BIT == 64) {
341
- return nlz_int64((uint64_t)x);
342
- }
343
- else {
344
- UNREACHABLE_RETURN(~0);
345
- }
346
- }
347
-
348
- static inline unsigned int
349
- nlz_long_long(unsigned long long x)
350
- {
351
- if (sizeof(unsigned long long) * CHAR_BIT == 64) {
352
- return nlz_int64((uint64_t)x);
353
- }
354
- #ifdef HAVE_UINT128_T
355
- else if (sizeof(unsigned long long) * CHAR_BIT == 128) {
356
- return nlz_int128((uint128_t)x);
357
- }
358
- #endif
359
- else {
360
- UNREACHABLE_RETURN(~0);
361
- }
362
- }
363
-
364
- static inline unsigned int
365
- nlz_intptr(uintptr_t x)
366
- {
367
- if (sizeof(uintptr_t) == sizeof(unsigned int)) {
368
- return nlz_int((unsigned int)x);
369
- }
370
- if (sizeof(uintptr_t) == sizeof(unsigned long)) {
371
- return nlz_long((unsigned long)x);
372
- }
373
- if (sizeof(uintptr_t) == sizeof(unsigned long long)) {
374
- return nlz_long_long((unsigned long long)x);
375
- }
376
- else {
377
- UNREACHABLE_RETURN(~0);
378
- }
379
- }
380
-
381
- static inline unsigned int
382
- rb_popcount32(uint32_t x)
383
- {
384
- #if defined(_MSC_VER) && defined(__AVX__)
385
- /* Note: CPUs since Nehalem and Barcelona have had this instruction so SSE
386
- * 4.2 should suffice, but it seems there is no such thing like __SSE_4_2__
387
- * predefined macro in MSVC. They do have __AVX__ so use it instead. */
388
- return (unsigned int)__popcnt(x);
389
-
390
- #elif __has_builtin(__builtin_popcount)
391
- STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT >= 32);
392
- return (unsigned int)__builtin_popcount(x);
393
-
394
- #else
395
- x = (x & 0x55555555) + (x >> 1 & 0x55555555);
396
- x = (x & 0x33333333) + (x >> 2 & 0x33333333);
397
- x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
398
- x = (x & 0x001f001f) + (x >> 8 & 0x001f001f);
399
- x = (x & 0x0000003f) + (x >>16 & 0x0000003f);
400
- return (unsigned int)x;
401
-
402
- #endif
403
- }
404
-
405
- static inline unsigned int
406
- rb_popcount64(uint64_t x)
407
- {
408
- #if defined(_MSC_VER) && defined(__AVX__)
409
- return (unsigned int)__popcnt64(x);
410
-
411
- #elif __has_builtin(__builtin_popcount)
412
- if (sizeof(long) * CHAR_BIT == 64) {
413
- return (unsigned int)__builtin_popcountl((unsigned long)x);
414
- }
415
- else if (sizeof(long long) * CHAR_BIT == 64) {
416
- return (unsigned int)__builtin_popcountll((unsigned long long)x);
417
- }
418
- else {
419
- /* :FIXME: Is there a way to make this branch a compile-time error? */
420
- UNREACHABLE_RETURN(~0);
421
- }
422
-
423
- #else
424
- x = (x & 0x5555555555555555) + (x >> 1 & 0x5555555555555555);
425
- x = (x & 0x3333333333333333) + (x >> 2 & 0x3333333333333333);
426
- x = (x & 0x0707070707070707) + (x >> 4 & 0x0707070707070707);
427
- x = (x & 0x001f001f001f001f) + (x >> 8 & 0x001f001f001f001f);
428
- x = (x & 0x0000003f0000003f) + (x >>16 & 0x0000003f0000003f);
429
- x = (x & 0x000000000000007f) + (x >>32 & 0x000000000000007f);
430
- return (unsigned int)x;
431
-
432
- #endif
433
- }
434
-
435
- static inline unsigned int
436
- rb_popcount_intptr(uintptr_t x)
437
- {
438
- if (sizeof(uintptr_t) * CHAR_BIT == 64) {
439
- return rb_popcount64((uint64_t)x);
440
- }
441
- else if (sizeof(uintptr_t) * CHAR_BIT == 32) {
442
- return rb_popcount32((uint32_t)x);
443
- }
444
- else {
445
- UNREACHABLE_RETURN(~0);
446
- }
447
- }
448
-
449
- static inline int
450
- ntz_int32(uint32_t x)
451
- {
452
- #if defined(__x86_64__) && defined(__BMI__)
453
- return (unsigned)_tzcnt_u32(x);
454
-
455
- #elif MSC_VERSION_SINCE(1400)
456
- /* :FIXME: Is there any way to issue TZCNT instead of BSF, apart from using
457
- * assembly? Because issuing LZCNT seems possible (see nlz.h). */
458
- unsigned long r;
459
- return _BitScanForward(&r, x) ? (int)r : 32;
460
-
461
- #elif __has_builtin(__builtin_ctz)
462
- STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT == 32);
463
- return x ? (unsigned)__builtin_ctz(x) : 32;
464
-
465
- #else
466
- return rb_popcount32((~x) & (x-1));
467
-
468
- #endif
469
- }
470
-
471
- static inline int
472
- ntz_int64(uint64_t x)
473
- {
474
- #if defined(__x86_64__) && defined(__BMI__)
475
- return (unsigned)_tzcnt_u64(x);
476
-
477
- #elif defined(_WIN64) && MSC_VERSION_SINCE(1400)
478
- unsigned long r;
479
- return _BitScanForward64(&r, x) ? (int)r : 64;
480
-
481
- #elif __has_builtin(__builtin_ctzl)
482
- if (x == 0) {
483
- return 64;
484
- }
485
- else if (sizeof(long) * CHAR_BIT == 64) {
486
- return (unsigned)__builtin_ctzl((unsigned long)x);
487
- }
488
- else if (sizeof(long long) * CHAR_BIT == 64) {
489
- return (unsigned)__builtin_ctzll((unsigned long long)x);
490
- }
491
- else {
492
- /* :FIXME: Is there a way to make this branch a compile-time error? */
493
- UNREACHABLE_RETURN(~0);
494
- }
495
-
496
- #else
497
- return rb_popcount64((~x) & (x-1));
498
-
499
- #endif
500
- }
501
-
502
- static inline int
503
- ntz_intptr(uintptr_t x)
504
- {
505
- if (sizeof(uintptr_t) * CHAR_BIT == 64) {
506
- return ntz_int64((uint64_t)x);
507
- }
508
- else if (sizeof(uintptr_t) * CHAR_BIT == 32) {
509
- return ntz_int32((uint32_t)x);
510
- }
511
- else {
512
- UNREACHABLE_RETURN(~0);
513
- }
514
- }
515
-
516
- static inline VALUE
517
- RUBY_BIT_ROTL(VALUE v, int n)
518
- {
519
- #if __has_builtin(__builtin_rotateleft32) && (SIZEOF_VALUE * CHAR_BIT == 32)
520
- return __builtin_rotateleft32(v, n);
521
-
522
- #elif __has_builtin(__builtin_rotateleft64) && (SIZEOF_VALUE * CHAR_BIT == 64)
523
- return __builtin_rotateleft64(v, n);
524
-
525
- #elif MSC_VERSION_SINCE(1310) && (SIZEOF_VALUE * CHAR_BIT == 32)
526
- return _rotl(v, n);
527
-
528
- #elif MSC_VERSION_SINCE(1310) && (SIZEOF_VALUE * CHAR_BIT == 64)
529
- return _rotl64(v, n);
530
-
531
- #elif defined(_lrotl) && (SIZEOF_VALUE == SIZEOF_LONG)
532
- return _lrotl(v, n);
533
-
534
- #else
535
- const int m = (sizeof(VALUE) * CHAR_BIT) - 1;
536
- return (v << (n & m)) | (v >> (-n & m));
537
- #endif
538
- }
539
-
540
- static inline VALUE
541
- RUBY_BIT_ROTR(VALUE v, int n)
542
- {
543
- #if __has_builtin(__builtin_rotateright32) && (SIZEOF_VALUE * CHAR_BIT == 32)
544
- return __builtin_rotateright32(v, n);
545
-
546
- #elif __has_builtin(__builtin_rotateright64) && (SIZEOF_VALUE * CHAR_BIT == 64)
547
- return __builtin_rotateright64(v, n);
548
-
549
- #elif MSC_VERSION_SINCE(1310) && (SIZEOF_VALUE * CHAR_BIT == 32)
550
- return _rotr(v, n);
551
-
552
- #elif MSC_VERSION_SINCE(1310) && (SIZEOF_VALUE * CHAR_BIT == 64)
553
- return _rotr64(v, n);
554
-
555
- #elif defined(_lrotr) && (SIZEOF_VALUE == SIZEOF_LONG)
556
- return _lrotr(v, n);
557
-
558
- #else
559
- const int m = (sizeof(VALUE) * CHAR_BIT) - 1;
560
- return (v << (-n & m)) | (v >> (n & m));
561
- #endif
562
- }
563
-
564
- #endif /* INTERNAL_BITS2_H */
@@ -1,32 +0,0 @@
1
- #ifndef RUBY_PARSER_NODE_H
2
- #define RUBY_PARSER_NODE_H 1
3
- /*
4
- * This is a header file used by only "parse.y"
5
- */
6
- #include "rubyparser.h"
7
- #include "internal/compilers.h"
8
-
9
- #if defined(__cplusplus)
10
- extern "C" {
11
- #if 0
12
- } /* satisfy cc-mode */
13
- #endif
14
- #endif
15
-
16
- static inline rb_code_location_t
17
- code_loc_gen(const rb_code_location_t *loc1, const rb_code_location_t *loc2)
18
- {
19
- rb_code_location_t loc;
20
- loc.beg_pos = loc1->beg_pos;
21
- loc.end_pos = loc2->end_pos;
22
- return loc;
23
- }
24
-
25
- #if defined(__cplusplus)
26
- #if 0
27
- { /* satisfy cc-mode */
28
- #endif
29
- } /* extern "C" { */
30
- #endif
31
-
32
- #endif /* RUBY_PARSER_NODE_H */