debase-ruby_core_source 4.0.1 → 4.1.0.preview1

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 (200) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/addr2line.h +22 -0
  4. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/builtin.h +127 -0
  5. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/list/list.h +791 -0
  9. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/str/str.h +17 -0
  10. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/constant.h +53 -0
  11. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/darray.h +295 -0
  12. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/debug_counter.h +428 -0
  13. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/dln.h +33 -0
  14. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/encindex.h +70 -0
  15. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/eval_intern.h +356 -0
  16. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/hrtime.h +237 -0
  17. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/id.h +365 -0
  18. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/id_table.h +74 -0
  19. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/insns.inc +315 -0
  20. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/insns_info.inc +11637 -0
  21. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/array.h +158 -0
  22. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/basic_operators.h +67 -0
  23. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/bignum.h +249 -0
  24. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/bits.h +647 -0
  25. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/box.h +103 -0
  26. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/class.h +797 -0
  27. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/cmdlineopt.h +64 -0
  28. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compar.h +30 -0
  29. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compile.h +34 -0
  30. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compilers.h +104 -0
  31. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/complex.h +29 -0
  32. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/concurrent_set.h +21 -0
  33. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/cont.h +33 -0
  34. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/coverage.h +51 -0
  35. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/dir.h +16 -0
  36. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enc.h +19 -0
  37. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/encoding.h +40 -0
  38. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enum.h +18 -0
  39. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enumerator.h +21 -0
  40. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/error.h +287 -0
  41. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/eval.h +43 -0
  42. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/file.h +40 -0
  43. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/fixnum.h +185 -0
  44. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/gc.h +411 -0
  45. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/hash.h +220 -0
  46. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/imemo.h +302 -0
  47. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/inits.h +54 -0
  48. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/io.h +167 -0
  49. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/io_buffer.h +36 -0
  50. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/jit.h +23 -0
  51. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/load.h +20 -0
  52. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/loadpath.h +16 -0
  53. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/marshal.h +17 -0
  54. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/math.h +23 -0
  55. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/missing.h +19 -0
  56. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/numeric.h +326 -0
  57. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/object.h +88 -0
  58. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/objspace.h +24 -0
  59. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/parse.h +131 -0
  60. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/proc.h +34 -0
  61. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/process.h +124 -0
  62. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/ractor.h +9 -0
  63. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/random.h +17 -0
  64. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/range.h +46 -0
  65. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/rational.h +92 -0
  66. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/re.h +87 -0
  67. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/ruby_parser.h +109 -0
  68. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/sanitizers.h +346 -0
  69. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/scheduler.h +7 -0
  70. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/serial.h +23 -0
  71. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/set.h +20 -0
  72. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/set_table.h +77 -0
  73. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/signal.h +25 -0
  74. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/simd.h +18 -0
  75. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/st.h +32 -0
  76. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/static_assert.h +16 -0
  77. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/string.h +240 -0
  78. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/struct.h +120 -0
  79. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/symbol.h +46 -0
  80. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/thread.h +108 -0
  81. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/time.h +34 -0
  82. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/transcode.h +23 -0
  83. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/util.h +27 -0
  84. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/variable.h +81 -0
  85. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/vm.h +144 -0
  86. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/vm_map.h +95 -0
  87. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/warnings.h +16 -0
  88. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal.h +106 -0
  89. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/iseq.h +439 -0
  90. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/known_errors.inc +1419 -0
  91. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/method.h +279 -0
  92. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/node.h +122 -0
  93. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/node_name.inc +224 -0
  94. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/optinsn.inc +128 -0
  95. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/optunifs.inc +41 -0
  96. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parse.h +246 -0
  97. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_bits.h +647 -0
  98. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_node.h +32 -0
  99. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_st.h +161 -0
  100. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_value.h +116 -0
  101. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/arena.h +37 -0
  102. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/ast.h +10371 -0
  103. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/buffer.h +52 -0
  104. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/comments.h +43 -0
  105. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/accel.h +19 -0
  106. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/align.h +36 -0
  107. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/assume.h +25 -0
  108. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/exported.h +24 -0
  109. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/fallthrough.h +22 -0
  110. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/filesystem.h +32 -0
  111. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/flex_array.h +19 -0
  112. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/force_inline.h +21 -0
  113. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/format.h +25 -0
  114. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/inline.h +17 -0
  115. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/nodiscard.h +22 -0
  116. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/nonnull.h +18 -0
  117. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/unused.h +18 -0
  118. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/constant_pool.h +81 -0
  119. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/diagnostic.h +93 -0
  120. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/errors_format.h +53 -0
  121. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/excludes.h +29 -0
  122. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/extension.h +19 -0
  123. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/integer.h +41 -0
  124. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/allocator.h +68 -0
  125. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/allocator_debug.h +88 -0
  126. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/arena.h +108 -0
  127. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/bit.h +42 -0
  128. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/buffer.h +91 -0
  129. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/char.h +139 -0
  130. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/comments.h +20 -0
  131. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/constant_pool.h +152 -0
  132. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/diagnostic.h +389 -0
  133. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/encoding.h +242 -0
  134. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/integer.h +68 -0
  135. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/isinf.h +16 -0
  136. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/line_offset_list.h +34 -0
  137. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/list.h +62 -0
  138. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/magic_comments.h +23 -0
  139. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/memchr.h +15 -0
  140. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/node.h +32 -0
  141. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/options.h +224 -0
  142. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/parser.h +971 -0
  143. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/regexp.h +42 -0
  144. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/serialize.h +39 -0
  145. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/source.h +72 -0
  146. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/static_literals.h +100 -0
  147. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/stringy.h +35 -0
  148. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/strncasecmp.h +18 -0
  149. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/strpbrk.h +33 -0
  150. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/tokens.h +11 -0
  151. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/json.h +32 -0
  152. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/line_offset_list.h +61 -0
  153. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/magic_comments.h +35 -0
  154. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/node.h +94 -0
  155. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/options.h +335 -0
  156. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/parser.h +348 -0
  157. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/prettyprint.h +31 -0
  158. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/prism.h +131 -0
  159. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/serialize.h +115 -0
  160. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/source.h +155 -0
  161. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/stream.h +28 -0
  162. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/string_query.h +63 -0
  163. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/stringy.h +72 -0
  164. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/version.h +38 -0
  165. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism_compile.h +204 -0
  166. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism_xallocator.h +6 -0
  167. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/probes_helper.h +42 -0
  168. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ractor_core.h +421 -0
  169. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regenc.h +261 -0
  170. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regint.h +983 -0
  171. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regparse.h +371 -0
  172. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/revision.h +5 -0
  173. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ruby_assert.h +14 -0
  174. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ruby_atomic.h +115 -0
  175. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/rubyparser.h +1389 -0
  176. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/shape.h +733 -0
  177. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/siphash.h +48 -0
  178. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/symbol.h +116 -0
  179. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_none.h +25 -0
  180. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_pthread.h +63 -0
  181. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_sched.h +271 -0
  182. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_win32.h +48 -0
  183. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/timev.h +58 -0
  184. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/transcode_data.h +138 -0
  185. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/variable.h +26 -0
  186. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/version.h +69 -0
  187. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm.inc +6457 -0
  188. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_call_iseq_optimized.inc +244 -0
  189. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_callinfo.h +688 -0
  190. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_core.h +2509 -0
  191. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_debug.h +124 -0
  192. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_exec.h +202 -0
  193. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_insnhelper.h +280 -0
  194. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_opts.h +65 -0
  195. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_sync.h +160 -0
  196. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vmtc.inc +302 -0
  197. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/yjit.h +87 -0
  198. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/zjit.h +221 -0
  199. data/lib/debase/ruby_core_source/version.rb +1 -1
  200. metadata +2930 -2724
@@ -0,0 +1,64 @@
1
+ #ifndef INTERNAL_CMDLINEOPT_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_CMDLINEOPT_H
3
+
4
+ #include "yjit.h"
5
+
6
+ typedef struct {
7
+ unsigned int mask;
8
+ unsigned int set;
9
+ } ruby_features_t;
10
+
11
+ typedef struct ruby_cmdline_options {
12
+ const char *script;
13
+ VALUE script_name;
14
+ VALUE e_script;
15
+ struct {
16
+ struct {
17
+ VALUE name;
18
+ int index;
19
+ } enc;
20
+ } src, ext, intern;
21
+ VALUE req_list;
22
+ ruby_features_t features;
23
+ ruby_features_t warn;
24
+ unsigned int dump;
25
+ long backtrace_length_limit;
26
+
27
+ const char *crash_report;
28
+
29
+ signed int sflag: 2;
30
+ unsigned int xflag: 1;
31
+ unsigned int warning: 1;
32
+ unsigned int verbose: 1;
33
+ unsigned int do_loop: 1;
34
+ unsigned int do_print: 1;
35
+ unsigned int do_line: 1;
36
+ unsigned int do_split: 1;
37
+ unsigned int do_search: 1;
38
+ unsigned int setids: 2;
39
+ #if USE_YJIT
40
+ unsigned int yjit: 1;
41
+ #endif
42
+ #if USE_ZJIT
43
+ unsigned int zjit: 1;
44
+ #endif
45
+ } ruby_cmdline_options_t;
46
+
47
+ struct ruby_opt_message {
48
+ const char *str;
49
+ unsigned short namelen, secondlen;
50
+ };
51
+
52
+ #define RUBY_OPT_MESSAGE(shortopt, longopt, desc) { \
53
+ shortopt " " longopt " " desc, \
54
+ (unsigned short)sizeof(shortopt), \
55
+ (unsigned short)sizeof(longopt), \
56
+ }
57
+
58
+ #define opt_match(s, l, name) \
59
+ ((((l) > rb_strlen_lit(name)) ? (s)[rb_strlen_lit(name)] == '=' : \
60
+ (l) == rb_strlen_lit(name)) && \
61
+ memcmp((s), name, rb_strlen_lit(name)) == 0 && \
62
+ (((s) += rb_strlen_lit(name)), 1))
63
+
64
+ #endif
@@ -0,0 +1,30 @@
1
+ #ifndef INTERNAL_COMPAR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_COMPAR_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 Comparable.
10
+ */
11
+ #include "internal/basic_operators.h"
12
+
13
+ #define STRING_P(s) (RB_TYPE_P((s), T_STRING) && CLASS_OF(s) == rb_cString)
14
+
15
+ #define CMP_OPTIMIZABLE(type) BASIC_OP_UNREDEFINED_P(BOP_CMP, type##_REDEFINED_OP_FLAG)
16
+
17
+ #define OPTIMIZED_CMP(a, b) \
18
+ ((FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(INTEGER)) ? \
19
+ (((long)a > (long)b) ? 1 : ((long)a < (long)b) ? -1 : 0) : \
20
+ (STRING_P(a) && STRING_P(b) && CMP_OPTIMIZABLE(STRING)) ? \
21
+ rb_str_cmp(a, b) : \
22
+ (RB_FLOAT_TYPE_P(a) && RB_FLOAT_TYPE_P(b) && CMP_OPTIMIZABLE(FLOAT)) ? \
23
+ rb_float_cmp(a, b) : \
24
+ rb_cmpint(rb_funcallv(a, id_cmp, 1, &b), a, b))
25
+
26
+ /* compar.c */
27
+ VALUE rb_invcmp(VALUE, VALUE);
28
+ NORETURN(void rb_cmperr_reason(VALUE, VALUE, const char*));
29
+
30
+ #endif /* INTERNAL_COMPAR_H */
@@ -0,0 +1,34 @@
1
+ #ifndef INTERNAL_COMPILE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_COMPILE_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 compiler.
10
+ */
11
+ #include "ruby/internal/config.h"
12
+ #include <stddef.h> /* for size_t */
13
+ #include "ruby/ruby.h" /* for rb_event_flag_t */
14
+
15
+ struct rb_iseq_struct; /* in vm_core.h */
16
+
17
+ /* compile.c */
18
+ int rb_dvar_defined(ID, const struct rb_iseq_struct *);
19
+ int rb_local_defined(ID, const struct rb_iseq_struct *);
20
+ int rb_insn_len(VALUE insn);
21
+ const char *rb_insns_name(int i);
22
+ VALUE rb_insns_name_array(void);
23
+ int rb_iseq_cdhash_cmp(VALUE val, VALUE lit);
24
+ st_index_t rb_iseq_cdhash_hash(VALUE a);
25
+
26
+ /* iseq.c */
27
+ int rb_vm_insn_addr2insn(const void *);
28
+ int rb_vm_insn_decode(const VALUE encoded);
29
+ extern bool ruby_vm_keep_script_lines;
30
+
31
+ /* iseq.c (export) */
32
+ rb_event_flag_t rb_iseq_event_flags(const struct rb_iseq_struct *iseq, size_t pos);
33
+
34
+ #endif /* INTERNAL_COMPILE_H */
@@ -0,0 +1,104 @@
1
+ #ifndef INTERNAL_COMPILERS_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_COMPILERS_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 absorbing C compiler differences.
10
+ */
11
+ #include "ruby/internal/compiler_since.h"
12
+ #include "ruby/internal/has/attribute.h"
13
+ #include "ruby/internal/has/builtin.h"
14
+ #include "ruby/internal/has/c_attribute.h"
15
+ #include "ruby/internal/has/declspec_attribute.h"
16
+ #include "ruby/internal/has/extension.h"
17
+ #include "ruby/internal/has/feature.h"
18
+ #include "ruby/internal/has/warning.h"
19
+ #include "ruby/backward/2/gcc_version_since.h"
20
+
21
+ #ifndef __has_attribute
22
+ # define __has_attribute(...) RBIMPL_HAS_ATTRIBUTE(__VA_ARGS__)
23
+ #endif
24
+
25
+ #ifndef __has_c_attribute
26
+ # /* As of writing everything that lacks __has_c_attribute also completely
27
+ # * lacks C2x attributes as well. Might change in future? */
28
+ # define __has_c_attribute(...) 0
29
+ #endif
30
+
31
+ #ifndef __has_declspec_attribute
32
+ # define __has_declspec_attribute(...) RBIMPL_HAS_DECLSPEC_ATTRIBUTE(__VA_ARGS__)
33
+ #endif
34
+
35
+ #ifndef __has_builtin
36
+ # define __has_builtin(...) RBIMPL_HAS_BUILTIN(__VA_ARGS__)
37
+ #endif
38
+
39
+ #ifndef __has_feature
40
+ # define __has_feature(...) RBIMPL_HAS_FEATURE(__VA_ARGS__)
41
+ #endif
42
+
43
+ #ifndef __has_extension
44
+ # define __has_extension(...) RBIMPL_HAS_EXTENSION(__VA_ARGS__)
45
+ #endif
46
+
47
+ #ifndef __has_warning
48
+ # define __has_warning(...) RBIMPL_HAS_WARNING(__VA_ARGS__)
49
+ #endif
50
+
51
+ #ifndef __GNUC__
52
+ # define __extension__ /* void */
53
+ #endif
54
+
55
+ #ifndef MAYBE_UNUSED
56
+ # define MAYBE_UNUSED(x) x
57
+ #endif
58
+
59
+ #ifndef WARN_UNUSED_RESULT
60
+ # define WARN_UNUSED_RESULT(x) x
61
+ #endif
62
+
63
+ #define RB_OBJ_BUILTIN_TYPE(obj) rb_obj_builtin_type(obj)
64
+ #define OBJ_BUILTIN_TYPE(obj) RB_OBJ_BUILTIN_TYPE(obj)
65
+ #ifdef __GNUC__
66
+ #define rb_obj_builtin_type(obj) \
67
+ __extension__({ \
68
+ VALUE arg_obj = (obj); \
69
+ RB_SPECIAL_CONST_P(arg_obj) ? -1 : \
70
+ (int)RB_BUILTIN_TYPE(arg_obj); \
71
+ })
72
+ #else
73
+ # include "ruby/ruby.h"
74
+ static inline int
75
+ rb_obj_builtin_type(VALUE obj)
76
+ {
77
+ return RB_SPECIAL_CONST_P(obj) ? -1 :
78
+ (int)RB_BUILTIN_TYPE(obj);
79
+ }
80
+ #endif
81
+
82
+ /* A macro for defining a flexible array, like: VALUE ary[FLEX_ARY_LEN]; */
83
+ #if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || defined(_MSC_VER)
84
+ # define FLEX_ARY_LEN /* VALUE ary[]; */
85
+ #elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
86
+ # define FLEX_ARY_LEN 0 /* VALUE ary[0]; */
87
+ #else
88
+ # define FLEX_ARY_LEN 1 /* VALUE ary[1]; */
89
+ #endif
90
+
91
+ /*
92
+ * For declaring bitfields out of non-unsigned int types:
93
+ * struct date {
94
+ * BITFIELD(enum months, month, 4);
95
+ * ...
96
+ * };
97
+ */
98
+ #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(_MSC_VER)
99
+ # define BITFIELD(type, name, size) type name : size
100
+ #else
101
+ # define BITFIELD(type, name, size) unsigned int name : size
102
+ #endif
103
+
104
+ #endif /* INTERNAL_COMPILERS_H */
@@ -0,0 +1,29 @@
1
+ #ifndef INTERNAL_COMPLEX_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_COMPLEX_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 Complex.
10
+ */
11
+ #include "ruby/internal/value.h" /* for struct RBasic */
12
+
13
+ struct RComplex {
14
+ struct RBasic basic;
15
+ VALUE real;
16
+ VALUE imag;
17
+ };
18
+
19
+ #define RCOMPLEX(obj) ((struct RComplex *)(obj))
20
+
21
+ /* shortcut macro for internal only */
22
+ #define RCOMPLEX_SET_REAL(cmp, r) RB_OBJ_WRITE((cmp), &RCOMPLEX(cmp)->real, (r))
23
+ #define RCOMPLEX_SET_IMAG(cmp, i) RB_OBJ_WRITE((cmp), &RCOMPLEX(cmp)->imag, (i))
24
+
25
+ /* complex.c */
26
+ VALUE rb_dbl_complex_new_polar_pi(double abs, double ang);
27
+ st_index_t rb_complex_hash(VALUE comp);
28
+
29
+ #endif /* INTERNAL_COMPLEX_H */
@@ -0,0 +1,21 @@
1
+ #ifndef RUBY_RACTOR_SAFE_TABLE_H
2
+ #define RUBY_RACTOR_SAFE_TABLE_H
3
+
4
+ #include "ruby/atomic.h"
5
+ #include "ruby/ruby.h"
6
+
7
+ struct rb_concurrent_set_funcs {
8
+ VALUE (*hash)(VALUE key);
9
+ bool (*cmp)(VALUE a, VALUE b);
10
+ VALUE (*create)(VALUE key, void *data);
11
+ void (*free)(VALUE key);
12
+ };
13
+
14
+ VALUE rb_concurrent_set_new(const struct rb_concurrent_set_funcs *funcs, int capacity);
15
+ rb_atomic_t rb_concurrent_set_size(VALUE set_obj);
16
+ VALUE rb_concurrent_set_find(VALUE *set_obj_ptr, VALUE key);
17
+ VALUE rb_concurrent_set_find_or_insert(VALUE *set_obj_ptr, VALUE key, void *data);
18
+ VALUE rb_concurrent_set_delete_by_identity(VALUE set_obj, VALUE key);
19
+ void rb_concurrent_set_foreach_with_replace(VALUE set_obj, int (*callback)(VALUE *key, void *data), void *data);
20
+
21
+ #endif
@@ -0,0 +1,33 @@
1
+ #ifndef INTERNAL_CONT_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_CONT_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 Fiber.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+
13
+ struct rb_thread_struct; /* in vm_core.h */
14
+ struct rb_fiber_struct; /* in cont.c */
15
+ struct rb_execution_context_struct; /* in vm_core.c */
16
+
17
+ /* cont.c */
18
+ void rb_fiber_reset_root_local_storage(struct rb_thread_struct *);
19
+ void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(VALUE), VALUE (*rollback_func)(VALUE));
20
+
21
+ /* vm.c */
22
+ void rb_free_shared_fiber_pool(void);
23
+ /* thread.c */
24
+ void rb_fiber_pool_lock_atfork(void);
25
+
26
+ // Copy locals from the current execution to the specified fiber.
27
+ VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber);
28
+
29
+ VALUE rb_fiberptr_self(struct rb_fiber_struct *fiber);
30
+ unsigned int rb_fiberptr_blocking(struct rb_fiber_struct *fiber);
31
+ struct rb_execution_context_struct * rb_fiberptr_get_ec(struct rb_fiber_struct *fiber);
32
+ void rb_fiber_free_body(void *fiber); /* cont.c */
33
+ #endif /* INTERNAL_CONT_H */
@@ -0,0 +1,51 @@
1
+ #ifndef INTERNAL_COVERAGE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_COVERAGE_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 Coverage.
10
+ */
11
+ #include "ruby/ruby.h"
12
+
13
+ #define COVERAGE_INDEX_LINES 0
14
+ #define COVERAGE_INDEX_BRANCHES 1
15
+
16
+ #define COVERAGE_TARGET_LINES 1
17
+ #define COVERAGE_TARGET_BRANCHES 2
18
+ #define COVERAGE_TARGET_METHODS 4
19
+ #define COVERAGE_TARGET_ONESHOT_LINES 8
20
+ #define COVERAGE_TARGET_EVAL 16
21
+
22
+ struct rb_coverage_method_data {
23
+ VALUE owner;
24
+ VALUE method_id;
25
+ VALUE path;
26
+ VALUE first_lineno;
27
+ VALUE first_column;
28
+ VALUE last_lineno;
29
+ VALUE last_column;
30
+ VALUE count;
31
+ };
32
+
33
+ typedef void rb_coverage_method_callback(const struct rb_coverage_method_data *, void *);
34
+
35
+ RUBY_SYMBOL_EXPORT_BEGIN
36
+
37
+ VALUE rb_get_coverages(void);
38
+ void rb_set_coverages(VALUE coverages, int mode, VALUE cme2counter, VALUE me_set);
39
+ void rb_clear_coverages(void);
40
+ void rb_reset_coverages(void);
41
+ void rb_resume_coverages(void);
42
+ void rb_suspend_coverages(void);
43
+ void rb_coverage_each_method(rb_coverage_method_callback callback, void *data);
44
+ bool rb_coverage_method_data_of(VALUE me, VALUE count, struct rb_coverage_method_data *out);
45
+
46
+ RUBY_SYMBOL_EXPORT_END
47
+
48
+ int rb_get_coverage_mode(void);
49
+ VALUE rb_default_coverage(int n);
50
+
51
+ #endif /* INTERNAL_COVERAGE_H */
@@ -0,0 +1,16 @@
1
+ #ifndef INTERNAL_DIR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_DIR_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 Dir.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+
13
+ /* dir.c */
14
+ VALUE rb_dir_getwd_ospath(void);
15
+
16
+ #endif /* INTERNAL_DIR_H */
@@ -0,0 +1,19 @@
1
+ #ifndef INTERNAL_ENC_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENC_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 Encoding.
10
+ */
11
+ #include "ruby/encoding.h" /* for rb_encoding */
12
+
13
+ /* us_ascii.c */
14
+ extern rb_encoding OnigEncodingUS_ASCII;
15
+
16
+ /* utf_8.c */
17
+ extern rb_encoding OnigEncodingUTF_8;
18
+
19
+ #endif /* INTERNAL_ENC_H */
@@ -0,0 +1,40 @@
1
+ #ifndef INTERNAL_ENCODING_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENCODING_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 Encoding.
10
+ */
11
+ #include "ruby/ruby.h" /* for ID */
12
+ #include "ruby/encoding.h" /* for rb_encoding */
13
+
14
+ #define rb_is_usascii_enc(enc) ((enc) == rb_usascii_encoding())
15
+ #define rb_is_ascii8bit_enc(enc) ((enc) == rb_ascii8bit_encoding())
16
+ #define rb_is_locale_enc(enc) ((enc) == rb_locale_encoding())
17
+
18
+ /* encoding.c */
19
+ ID rb_id_encoding(void);
20
+ const char * rb_enc_inspect_name(rb_encoding *enc);
21
+ rb_encoding *rb_enc_get_from_index(int index);
22
+ rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2);
23
+ int rb_encdb_replicate(const char *alias, const char *orig);
24
+ int rb_encdb_alias(const char *alias, const char *orig);
25
+ int rb_enc_autoload(rb_encoding *enc);
26
+ bool rb_enc_autoload_p(rb_encoding *enc);
27
+ int rb_encdb_dummy(const char *name);
28
+ void rb_encdb_declare(const char *name);
29
+ void rb_enc_set_base(const char *name, const char *orig);
30
+ int rb_enc_set_dummy(int index);
31
+ void rb_enc_raw_set(VALUE obj, rb_encoding *enc);
32
+ int rb_enc_registered(const char *name);
33
+ rb_encoding *rb_enc_check_multi_str(rb_encoding *enc1, int *cr, VALUE str2);
34
+
35
+ PUREFUNC(int rb_data_is_encoding(VALUE obj));
36
+
37
+ /* vm.c */
38
+ void rb_free_global_enc_table(void);
39
+
40
+ #endif /* INTERNAL_ENCODING_H */
@@ -0,0 +1,18 @@
1
+ #ifndef INTERNAL_ENUM_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENUM_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 Enumerable.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+
13
+ /* enum.c */
14
+ extern VALUE rb_cArithSeq;
15
+ VALUE rb_f_send(int argc, VALUE *argv, VALUE recv);
16
+ VALUE rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary);
17
+
18
+ #endif /* INTERNAL_ENUM_H */
@@ -0,0 +1,21 @@
1
+ #ifndef INTERNAL_ENUMERATOR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENUMERATOR_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 Enumerator.
10
+ */
11
+ #include "ruby/ruby.h" /* for VALUE */
12
+ #include "ruby/intern.h" /* for rb_enumerator_size_func */
13
+
14
+ RUBY_SYMBOL_EXPORT_BEGIN
15
+ /* enumerator.c (export) */
16
+ VALUE rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,
17
+ rb_enumerator_size_func *size_fn,
18
+ VALUE beg, VALUE end, VALUE step, int excl);
19
+ RUBY_SYMBOL_EXPORT_END
20
+
21
+ #endif /* INTERNAL_ENUMERATOR_H */