debase-ruby_core_source 0.10.6 → 0.10.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/Rakefile +6 -3
  5. data/debase-ruby_core_source.gemspec +2 -1
  6. data/lib/debase/ruby_core_source.rb +1 -1
  7. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/addr2line.h +21 -0
  8. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/builtin.h +78 -0
  9. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/build_assert/build_assert.h +40 -0
  10. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/check_type/check_type.h +63 -0
  11. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/container_of/container_of.h +142 -0
  12. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/list/list.h +788 -0
  13. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/str/str.h +16 -0
  14. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/constant.h +50 -0
  15. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/debug_counter.h +390 -0
  16. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/dln.h +51 -0
  17. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/encindex.h +69 -0
  18. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/eval_intern.h +312 -0
  19. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/gc.h +131 -0
  20. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/hrtime.h +168 -0
  21. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id.h +290 -0
  22. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id_table.h +34 -0
  23. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns.inc +253 -0
  24. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns_info.inc +9197 -0
  25. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/internal.h +2697 -0
  26. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/iseq.h +312 -0
  27. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/known_errors.inc +791 -0
  28. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/method.h +229 -0
  29. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit.h +177 -0
  30. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit_compile.inc +7779 -0
  31. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node.h +476 -0
  32. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node_name.inc +208 -0
  33. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/opt_sc.inc +109 -0
  34. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optinsn.inc +128 -0
  35. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optunifs.inc +43 -0
  36. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/parse.h +210 -0
  37. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/probes_helper.h +42 -0
  38. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regenc.h +254 -0
  39. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regint.h +938 -0
  40. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regparse.h +370 -0
  41. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/revision.h +2 -0
  42. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_assert.h +15 -0
  43. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_atomic.h +244 -0
  44. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/siphash.h +48 -0
  45. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/symbol.h +119 -0
  46. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_pthread.h +75 -0
  47. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_win32.h +36 -0
  48. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/timev.h +56 -0
  49. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transcode_data.h +139 -0
  50. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transient_heap.h +62 -0
  51. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/variable.h +9 -0
  52. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/version.h +77 -0
  53. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm.inc +5466 -0
  54. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_call_iseq_optimized.inc +237 -0
  55. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_core.h +1968 -0
  56. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_debug.h +34 -0
  57. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_exec.h +193 -0
  58. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_insnhelper.h +267 -0
  59. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_opts.h +72 -0
  60. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vmtc.inc +247 -0
  61. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/addr2line.h +20 -0
  62. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/builtin.h +83 -0
  63. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/build_assert/build_assert.h +40 -0
  64. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/check_type/check_type.h +63 -0
  65. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/container_of/container_of.h +142 -0
  66. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/list/list.h +788 -0
  67. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/str/str.h +16 -0
  68. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/constant.h +55 -0
  69. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/debug_counter.h +423 -0
  70. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/dln.h +36 -0
  71. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/encindex.h +70 -0
  72. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/eval_intern.h +312 -0
  73. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/gc.h +140 -0
  74. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/hrtime.h +168 -0
  75. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/id.h +290 -0
  76. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/id_table.h +36 -0
  77. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/insns.inc +249 -0
  78. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/insns_info.inc +8979 -0
  79. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal.h +107 -0
  80. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/array.h +114 -0
  81. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/bignum.h +246 -0
  82. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/bits.h +566 -0
  83. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/class.h +168 -0
  84. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compar.h +50 -0
  85. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compile.h +32 -0
  86. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compilers.h +108 -0
  87. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/complex.h +29 -0
  88. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/cont.h +25 -0
  89. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/dir.h +17 -0
  90. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enc.h +20 -0
  91. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/encoding.h +28 -0
  92. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enum.h +19 -0
  93. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enumerator.h +22 -0
  94. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/error.h +131 -0
  95. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/eval.h +33 -0
  96. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/file.h +39 -0
  97. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/fixnum.h +185 -0
  98. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/gc.h +154 -0
  99. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/hash.h +240 -0
  100. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/imemo.h +243 -0
  101. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/inits.h +51 -0
  102. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/io.h +35 -0
  103. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/load.h +19 -0
  104. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/loadpath.h +17 -0
  105. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/math.h +24 -0
  106. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/missing.h +19 -0
  107. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/mjit.h +29 -0
  108. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/numeric.h +252 -0
  109. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/object.h +83 -0
  110. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/parse.h +23 -0
  111. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/proc.h +32 -0
  112. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/process.h +136 -0
  113. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/random.h +17 -0
  114. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/range.h +37 -0
  115. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/rational.h +69 -0
  116. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/re.h +29 -0
  117. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/sanitizers.h +191 -0
  118. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/scheduler.h +35 -0
  119. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/serial.h +24 -0
  120. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/signal.h +22 -0
  121. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/static_assert.h +17 -0
  122. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/string.h +135 -0
  123. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/struct.h +154 -0
  124. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/symbol.h +41 -0
  125. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/thread.h +60 -0
  126. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/time.h +35 -0
  127. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/transcode.h +21 -0
  128. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/util.h +31 -0
  129. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/variable.h +83 -0
  130. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/vm.h +135 -0
  131. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/warnings.h +17 -0
  132. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/iseq.h +304 -0
  133. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/known_errors.inc +791 -0
  134. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/method.h +245 -0
  135. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/mjit.h +197 -0
  136. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/mjit_compile.inc +8082 -0
  137. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/node.h +484 -0
  138. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/node_name.inc +210 -0
  139. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/opt_sc.inc +109 -0
  140. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/optinsn.inc +128 -0
  141. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/optunifs.inc +43 -0
  142. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/parse.h +211 -0
  143. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/probes_helper.h +44 -0
  144. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor.h +271 -0
  145. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor_pub.h +50 -0
  146. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regenc.h +254 -0
  147. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regint.h +938 -0
  148. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regparse.h +370 -0
  149. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/revision.h +2 -0
  150. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_assert.h +15 -0
  151. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_atomic.h +236 -0
  152. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/siphash.h +48 -0
  153. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/symbol.h +119 -0
  154. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/thread_pthread.h +106 -0
  155. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/thread_win32.h +66 -0
  156. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/timev.h +57 -0
  157. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/transcode_data.h +138 -0
  158. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/transient_heap.h +61 -0
  159. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/variable.h +21 -0
  160. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/version.h +89 -0
  161. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm.inc +5360 -0
  162. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_call_iseq_optimized.inc +244 -0
  163. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_callinfo.h +457 -0
  164. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_core.h +1952 -0
  165. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_debug.h +116 -0
  166. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_exec.h +196 -0
  167. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_insnhelper.h +260 -0
  168. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_opts.h +73 -0
  169. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_sync.h +97 -0
  170. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vmtc.inc +243 -0
  171. data/lib/debase/ruby_core_source/version.rb +1 -1
  172. metadata +183 -5
@@ -0,0 +1,28 @@
1
+ #ifndef INTERNAL_ENCODING_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENCODING_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for Encoding.
11
+ */
12
+ #include "ruby/ruby.h" /* for ID */
13
+ #include "ruby/encoding.h" /* for rb_encoding */
14
+
15
+ /* encoding.c */
16
+ ID rb_id_encoding(void);
17
+ rb_encoding *rb_enc_get_from_index(int index);
18
+ rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2);
19
+ int rb_encdb_replicate(const char *alias, const char *orig);
20
+ int rb_encdb_alias(const char *alias, const char *orig);
21
+ int rb_encdb_dummy(const char *name);
22
+ void rb_encdb_declare(const char *name);
23
+ void rb_enc_set_base(const char *name, const char *orig);
24
+ int rb_enc_set_dummy(int index);
25
+ void rb_encdb_set_unicode(int index);
26
+ PUREFUNC(int rb_data_is_encoding(VALUE obj));
27
+
28
+ #endif /* INTERNAL_ENCODING_H */
@@ -0,0 +1,19 @@
1
+ #ifndef INTERNAL_ENUM_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENUM_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for Enumerable.
11
+ */
12
+ #include "ruby/ruby.h" /* for VALUE */
13
+
14
+ /* enum.c */
15
+ extern VALUE rb_cArithSeq;
16
+ VALUE rb_f_send(int argc, VALUE *argv, VALUE recv);
17
+ VALUE rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary);
18
+
19
+ #endif /* INTERNAL_ENUM_H */
@@ -0,0 +1,22 @@
1
+ #ifndef INTERNAL_ENUMERATOR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ENUMERATOR_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for Enumerator.
11
+ */
12
+ #include "ruby/ruby.h" /* for VALUE */
13
+ #include "ruby/intern.h" /* for rb_enumerator_size_func */
14
+
15
+ RUBY_SYMBOL_EXPORT_BEGIN
16
+ /* enumerator.c (export) */
17
+ VALUE rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,
18
+ rb_enumerator_size_func *size_fn,
19
+ VALUE beg, VALUE end, VALUE step, int excl);
20
+ RUBY_SYMBOL_EXPORT_END
21
+
22
+ #endif /* INTERNAL_ENUMERATOR_H */
@@ -0,0 +1,131 @@
1
+ #ifndef INTERNAL_ERROR_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_ERROR_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for Exception.
11
+ */
12
+ #include "ruby/internal/config.h"
13
+ #include <stdarg.h> /* for va_list */
14
+ #include "internal/string.h" /* for rb_fstring_cstr */
15
+ #include "ruby/internal/stdbool.h" /* for bool */
16
+ #include "ruby/encoding.h" /* for rb_encoding */
17
+ #include "ruby/intern.h" /* for rb_exc_raise */
18
+ #include "ruby/ruby.h" /* for enum ruby_value_type */
19
+
20
+ #ifdef Check_Type
21
+ # undef Check_Type /* in ruby/ruby.h */
22
+ #endif
23
+
24
+ #ifdef rb_raise_static
25
+ # undef rb_raise_static
26
+ # undef rb_sys_fail_path
27
+ # undef rb_syserr_fail_path
28
+ #endif
29
+
30
+ #define rb_raise_static(e, m) \
31
+ rb_raise_cstr_i((e), rb_str_new_static((m), rb_strlen_lit(m)))
32
+ #ifdef RUBY_FUNCTION_NAME_STRING
33
+ # define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path)
34
+ # define rb_syserr_fail_path(err, path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))
35
+ # define rb_syserr_new_path(err, path) rb_syserr_new_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))
36
+ #else
37
+ # define rb_sys_fail_path(path) rb_sys_fail_str(path)
38
+ # define rb_syserr_fail_path(err, path) rb_syserr_fail_str((err), (path))
39
+ # define rb_syserr_new_path(err, path) rb_syserr_new_str((err), (path))
40
+ #endif
41
+
42
+ /* error.c */
43
+ typedef enum {
44
+ RB_WARN_CATEGORY_NONE,
45
+ RB_WARN_CATEGORY_DEPRECATED,
46
+ RB_WARN_CATEGORY_EXPERIMENTAL,
47
+ RB_WARN_CATEGORY_ALL_BITS = 0x6, /* no RB_WARN_CATEGORY_NONE bit */
48
+ } rb_warning_category_t;
49
+
50
+ extern long rb_backtrace_length_limit;
51
+ extern VALUE rb_eEAGAIN;
52
+ extern VALUE rb_eEWOULDBLOCK;
53
+ extern VALUE rb_eEINPROGRESS;
54
+ void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args);
55
+ NORETURN(void rb_async_bug_errno(const char *,int));
56
+ const char *rb_builtin_type_name(int t);
57
+ const char *rb_builtin_class_name(VALUE x);
58
+ PRINTF_ARGS(void rb_warn_deprecated(const char *fmt, const char *suggest, ...), 1, 3);
59
+ PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *fmt, const char *removal, ...), 1, 3);
60
+ VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list);
61
+ PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);
62
+ PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);
63
+ PRINTF_ARGS(void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...), 3, 4);
64
+ rb_warning_category_t rb_warning_category_from_name(VALUE category);
65
+ bool rb_warning_category_enabled_p(rb_warning_category_t category);
66
+ VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method);
67
+ VALUE rb_nomethod_err_new(VALUE mesg, VALUE recv, VALUE method, VALUE args, int priv);
68
+ VALUE rb_key_err_new(VALUE mesg, VALUE recv, VALUE name);
69
+ PRINTF_ARGS(VALUE rb_warning_string(const char *fmt, ...), 1, 2);
70
+ NORETURN(void rb_vraise(VALUE, const char *, va_list));
71
+ NORETURN(static inline void rb_raise_cstr(VALUE etype, const char *mesg));
72
+ NORETURN(static inline void rb_raise_cstr_i(VALUE etype, VALUE mesg));
73
+ NORETURN(static inline void rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name));
74
+ NORETURN(static inline void rb_name_err_raise(const char *mesg, VALUE recv, VALUE name));
75
+ NORETURN(static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name));
76
+ static inline void Check_Type(VALUE v, enum ruby_value_type t);
77
+ static inline bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type);
78
+ #define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline
79
+
80
+ RUBY_SYMBOL_EXPORT_BEGIN
81
+ /* error.c (export) */
82
+ int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data);
83
+ #ifdef RUBY_FUNCTION_NAME_STRING
84
+ NORETURN(void rb_sys_fail_path_in(const char *func_name, VALUE path));
85
+ NORETURN(void rb_syserr_fail_path_in(const char *func_name, int err, VALUE path));
86
+ VALUE rb_syserr_new_path_in(const char *func_name, int n, VALUE path);
87
+ #endif
88
+ RUBY_SYMBOL_EXPORT_END
89
+
90
+ static inline void
91
+ rb_raise_cstr_i(VALUE etype, VALUE mesg)
92
+ {
93
+ VALUE exc = rb_exc_new_str(etype, mesg);
94
+ rb_exc_raise(exc);
95
+ }
96
+
97
+ static inline void
98
+ rb_raise_cstr(VALUE etype, const char *mesg)
99
+ {
100
+ VALUE str = rb_str_new_cstr(mesg);
101
+ rb_raise_cstr_i(etype, str);
102
+ }
103
+
104
+ static inline void
105
+ rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name)
106
+ {
107
+ VALUE exc = rb_name_err_new(mesg, recv, name);
108
+ rb_exc_raise(exc);
109
+ }
110
+
111
+ static inline void
112
+ rb_name_err_raise(const char *mesg, VALUE recv, VALUE name)
113
+ {
114
+ VALUE str = rb_fstring_cstr(mesg);
115
+ rb_name_err_raise_str(str, recv, name);
116
+ }
117
+
118
+ static inline void
119
+ rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name)
120
+ {
121
+ VALUE exc = rb_key_err_new(mesg, recv, name);
122
+ rb_exc_raise(exc);
123
+ }
124
+
125
+ static inline bool
126
+ rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type)
127
+ {
128
+ return RB_TYPE_P(obj, T_DATA) && RTYPEDDATA_P(obj) && (RTYPEDDATA_TYPE(obj) == data_type);
129
+ }
130
+
131
+ #endif /* INTERNAL_ERROR_H */
@@ -0,0 +1,33 @@
1
+ #ifndef INTERNAL_EVAL_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_EVAL_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for the evaluator.
11
+ * @note There also is eval_intern.h, which is evaluator's internal
12
+ * header (related to this file, but not the same role).
13
+ */
14
+ #include "ruby/ruby.h" /* for ID */
15
+
16
+ #define id_signo ruby_static_id_signo
17
+ #define id_status ruby_static_id_status
18
+
19
+ /* eval.c */
20
+ extern ID ruby_static_id_signo;
21
+ extern ID ruby_static_id_status;
22
+ VALUE rb_refinement_module_get_refined_class(VALUE module);
23
+ void rb_class_modify_check(VALUE);
24
+ NORETURN(VALUE rb_f_raise(int argc, VALUE *argv));
25
+
26
+ /* eval_error.c */
27
+ VALUE rb_get_backtrace(VALUE info);
28
+
29
+ /* eval_jump.c */
30
+ void rb_call_end_proc(VALUE data);
31
+ void rb_mark_end_proc(void);
32
+
33
+ #endif /* INTERNAL_EVAL_H */
@@ -0,0 +1,39 @@
1
+ #ifndef INTERNAL_FILE_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_FILE_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for File.
11
+ */
12
+ #include "ruby/ruby.h" /* for VALUE */
13
+ #include "ruby/encoding.h" /* for rb_encodinng */
14
+
15
+ /* file.c */
16
+ extern const char ruby_null_device[];
17
+ VALUE rb_home_dir_of(VALUE user, VALUE result);
18
+ VALUE rb_default_home_dir(VALUE result);
19
+ VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);
20
+ VALUE rb_check_realpath(VALUE basedir, VALUE path, rb_encoding *origenc);
21
+ void rb_file_const(const char*, VALUE);
22
+ int rb_file_load_ok(const char *);
23
+ VALUE rb_file_expand_path_fast(VALUE, VALUE);
24
+ VALUE rb_file_expand_path_internal(VALUE, VALUE, int, int, VALUE);
25
+ VALUE rb_get_path_check_to_string(VALUE);
26
+ VALUE rb_get_path_check_convert(VALUE);
27
+ int ruby_is_fd_loadable(int fd);
28
+
29
+ RUBY_SYMBOL_EXPORT_BEGIN
30
+ /* file.c (export) */
31
+ #ifdef HAVE_READLINK
32
+ VALUE rb_readlink(VALUE path, rb_encoding *enc);
33
+ #endif
34
+ #ifdef __APPLE__
35
+ VALUE rb_str_normalize_ospath(const char *ptr, long len);
36
+ #endif
37
+ RUBY_SYMBOL_EXPORT_END
38
+
39
+ #endif /* INTERNAL_FILE_H */
@@ -0,0 +1,185 @@
1
+ #ifndef INTERNAL_FIXNUM_H /*-*-C-*-vi:se ft=c:*/
2
+ #define INTERNAL_FIXNUM_H
3
+ /**
4
+ * @file
5
+ * @author Ruby developers <ruby-core@ruby-lang.org>
6
+ * @copyright This file is a part of the programming language Ruby.
7
+ * Permission is hereby granted, to either redistribute and/or
8
+ * modify this file, provided that the conditions mentioned in the
9
+ * file COPYING are met. Consult the file for details.
10
+ * @brief Internal header for Fixnums.
11
+ */
12
+ #include "ruby/internal/config.h" /* for HAVE_LONG_LONG */
13
+ #include <limits.h> /* for CHAR_BIT */
14
+ #include "internal/compilers.h" /* for __has_builtin */
15
+ #include "ruby/internal/stdbool.h" /* for bool */
16
+ #include "ruby/intern.h" /* for rb_big_mul */
17
+ #include "ruby/ruby.h" /* for RB_FIXABLE */
18
+
19
+ #if HAVE_LONG_LONG && SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
20
+ # define DLONG LONG_LONG
21
+ # define DL2NUM(x) LL2NUM(x)
22
+ #elif defined(HAVE_INT128_T)
23
+ # define DLONG int128_t
24
+ # define DL2NUM(x) (RB_FIXABLE(x) ? LONG2FIX(x) : rb_int128t2big(x))
25
+ VALUE rb_int128t2big(int128_t n); /* in bignum.c */
26
+ #endif
27
+
28
+ static inline long rb_overflowed_fix_to_int(long x);
29
+ static inline VALUE rb_fix_plus_fix(VALUE x, VALUE y);
30
+ static inline VALUE rb_fix_minus_fix(VALUE x, VALUE y);
31
+ static inline VALUE rb_fix_mul_fix(VALUE x, VALUE y);
32
+ static inline void rb_fix_divmod_fix(VALUE x, VALUE y, VALUE *divp, VALUE *modp);
33
+ static inline VALUE rb_fix_div_fix(VALUE x, VALUE y);
34
+ static inline VALUE rb_fix_mod_fix(VALUE x, VALUE y);
35
+ static inline bool FIXNUM_POSITIVE_P(VALUE num);
36
+ static inline bool FIXNUM_NEGATIVE_P(VALUE num);
37
+ static inline bool FIXNUM_ZERO_P(VALUE num);
38
+
39
+ static inline long
40
+ rb_overflowed_fix_to_int(long x)
41
+ {
42
+ return (long)((unsigned long)(x >> 1) ^ (1LU << (SIZEOF_LONG * CHAR_BIT - 1)));
43
+ }
44
+
45
+ static inline VALUE
46
+ rb_fix_plus_fix(VALUE x, VALUE y)
47
+ {
48
+ #if !__has_builtin(__builtin_add_overflow)
49
+ long lz = FIX2LONG(x) + FIX2LONG(y);
50
+ return LONG2NUM(lz);
51
+ #else
52
+ long lz;
53
+ /* NOTE
54
+ * (1) `LONG2FIX(FIX2LONG(x)+FIX2LONG(y))`
55
+ + = `((lx*2+1)/2 + (ly*2+1)/2)*2+1`
56
+ + = `lx*2 + ly*2 + 1`
57
+ + = `(lx*2+1) + (ly*2+1) - 1`
58
+ + = `x + y - 1`
59
+ * (2) Fixnum's LSB is always 1.
60
+ * It means you can always run `x - 1` without overflow.
61
+ * (3) Of course `z = x + (y-1)` may overflow.
62
+ * At that time true value is
63
+ * * positive: 0b0 1xxx...1, and z = 0b1xxx...1
64
+ * * nevative: 0b1 0xxx...1, and z = 0b0xxx...1
65
+ * To convert this true value to long,
66
+ * (a) Use arithmetic shift
67
+ * * positive: 0b11xxx...
68
+ * * negative: 0b00xxx...
69
+ * (b) invert MSB
70
+ * * positive: 0b01xxx...
71
+ * * negative: 0b10xxx...
72
+ */
73
+ if (__builtin_add_overflow((long)x, (long)y-1, &lz)) {
74
+ return rb_int2big(rb_overflowed_fix_to_int(lz));
75
+ }
76
+ else {
77
+ return (VALUE)lz;
78
+ }
79
+ #endif
80
+ }
81
+
82
+ static inline VALUE
83
+ rb_fix_minus_fix(VALUE x, VALUE y)
84
+ {
85
+ #if !__has_builtin(__builtin_sub_overflow)
86
+ long lz = FIX2LONG(x) - FIX2LONG(y);
87
+ return LONG2NUM(lz);
88
+ #else
89
+ long lz;
90
+ if (__builtin_sub_overflow((long)x, (long)y-1, &lz)) {
91
+ return rb_int2big(rb_overflowed_fix_to_int(lz));
92
+ }
93
+ else {
94
+ return (VALUE)lz;
95
+ }
96
+ #endif
97
+ }
98
+
99
+ /* arguments must be Fixnum */
100
+ static inline VALUE
101
+ rb_fix_mul_fix(VALUE x, VALUE y)
102
+ {
103
+ long lx = FIX2LONG(x);
104
+ long ly = FIX2LONG(y);
105
+ #ifdef DLONG
106
+ return DL2NUM((DLONG)lx * (DLONG)ly);
107
+ #else
108
+ if (MUL_OVERFLOW_FIXNUM_P(lx, ly)) {
109
+ return rb_big_mul(rb_int2big(lx), rb_int2big(ly));
110
+ }
111
+ else {
112
+ return LONG2FIX(lx * ly);
113
+ }
114
+ #endif
115
+ }
116
+
117
+ /*
118
+ * This behaves different from C99 for negative arguments.
119
+ * Note that div may overflow fixnum.
120
+ */
121
+ static inline void
122
+ rb_fix_divmod_fix(VALUE a, VALUE b, VALUE *divp, VALUE *modp)
123
+ {
124
+ /* assume / and % comply C99.
125
+ * ldiv(3) won't be inlined by GCC and clang.
126
+ * I expect / and % are compiled as single idiv.
127
+ */
128
+ long x = FIX2LONG(a);
129
+ long y = FIX2LONG(b);
130
+ long div, mod;
131
+ if (x == FIXNUM_MIN && y == -1) {
132
+ if (divp) *divp = LONG2NUM(-FIXNUM_MIN);
133
+ if (modp) *modp = LONG2FIX(0);
134
+ return;
135
+ }
136
+ div = x / y;
137
+ mod = x % y;
138
+ if (y > 0 ? mod < 0 : mod > 0) {
139
+ mod += y;
140
+ div -= 1;
141
+ }
142
+ if (divp) *divp = LONG2FIX(div);
143
+ if (modp) *modp = LONG2FIX(mod);
144
+ }
145
+
146
+ /* div() for Ruby
147
+ * This behaves different from C99 for negative arguments.
148
+ */
149
+ static inline VALUE
150
+ rb_fix_div_fix(VALUE x, VALUE y)
151
+ {
152
+ VALUE div;
153
+ rb_fix_divmod_fix(x, y, &div, NULL);
154
+ return div;
155
+ }
156
+
157
+ /* mod() for Ruby
158
+ * This behaves different from C99 for negative arguments.
159
+ */
160
+ static inline VALUE
161
+ rb_fix_mod_fix(VALUE x, VALUE y)
162
+ {
163
+ VALUE mod;
164
+ rb_fix_divmod_fix(x, y, NULL, &mod);
165
+ return mod;
166
+ }
167
+
168
+ static inline bool
169
+ FIXNUM_POSITIVE_P(VALUE num)
170
+ {
171
+ return (SIGNED_VALUE)num > (SIGNED_VALUE)INT2FIX(0);
172
+ }
173
+
174
+ static inline bool
175
+ FIXNUM_NEGATIVE_P(VALUE num)
176
+ {
177
+ return (SIGNED_VALUE)num < 0;
178
+ }
179
+
180
+ static inline bool
181
+ FIXNUM_ZERO_P(VALUE num)
182
+ {
183
+ return num == INT2FIX(0);
184
+ }
185
+ #endif /* INTERNAL_FIXNUM_H */