debase-ruby_core_source 3.3.6 → 3.4.0

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.

Potentially problematic release.


This version of debase-ruby_core_source might be problematic. Click here for more details.

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 */