debase-ruby_core_source 0.9.9 → 0.9.10

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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/addr2line.h +0 -0
  4. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/build_assert/build_assert.h +0 -0
  5. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/check_type/check_type.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/container_of/container_of.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ccan/list/list.h +28 -166
  8. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/str/str.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/constant.h +3 -10
  10. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/dln.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/eval_intern.h +49 -89
  12. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/gc.h +1 -8
  13. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/id.h +5 -15
  14. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/insns.inc +107 -0
  15. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/insns_info.inc +45 -89
  16. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/internal.h +164 -666
  17. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/iseq.h +158 -0
  18. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/known_errors.inc +0 -0
  19. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/method.h +144 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/node.h +42 -18
  21. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/node_name.inc +6 -2
  22. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/opt_sc.inc +0 -40
  23. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/optinsn.inc +0 -0
  24. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/optunifs.inc +0 -5
  25. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/parse.h +8 -28
  26. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/probes_helper.h +67 -0
  27. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regenc.h +16 -16
  28. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regint.h +10 -33
  29. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regparse.h +1 -5
  30. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/revision.h +1 -0
  31. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ruby_atomic.h +5 -68
  32. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/siphash.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/symbol.h +13 -33
  34. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/thread_pthread.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/thread_win32.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/timev.h +0 -0
  37. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/transcode_data.h +7 -23
  38. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/version.h +10 -31
  39. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm.inc +497 -542
  40. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_core.h +305 -784
  41. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_debug.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_exec.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_insnhelper.h +56 -50
  44. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vm_opts.h +7 -8
  45. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vmtc.inc +0 -5
  46. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/addr2line.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/build_assert/build_assert.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/check_type/check_type.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/container_of/container_of.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ccan/list/list.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/str/str.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/constant.h +1 -1
  53. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/dln.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/encindex.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/eval_intern.h +3 -4
  56. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/gc.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/id.h +0 -9
  58. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/id_table.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns.inc +46 -48
  60. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns_info.inc +0 -20
  61. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/internal.h +58 -290
  62. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/iseq.h +15 -18
  63. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/known_errors.inc +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/method.h +2 -2
  65. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/node.h +2 -2
  66. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/node_name.inc +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/opt_sc.inc +0 -16
  68. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/optinsn.inc +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/optunifs.inc +0 -2
  70. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/parse.h +8 -27
  71. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/probes_helper.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regenc.h +14 -14
  73. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regint.h +0 -8
  74. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/regparse.h +0 -0
  75. data/lib/debase/ruby_core_source/ruby-2.3.5-p376/revision.h +1 -0
  76. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ruby_atomic.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/siphash.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/symbol.h +3 -3
  79. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/thread_pthread.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/thread_win32.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/timev.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/transcode_data.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/version.h +9 -27
  84. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm.inc +255 -264
  85. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_call_iseq_optimized.inc +5 -5
  86. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_core.h +37 -28
  87. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_debug.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_exec.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_insnhelper.h +32 -16
  90. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_opts.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vmtc.inc +0 -2
  92. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/addr2line.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/build_assert/build_assert.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/check_type/check_type.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/container_of/container_of.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ccan/list/list.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/str/str.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/constant.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/dln.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/encindex.h +0 -0
  101. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/eval_intern.h +0 -0
  102. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/gc.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/id.h +0 -0
  104. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/id_table.h +0 -0
  105. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns.inc +0 -0
  106. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns_info.inc +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/internal.h +116 -51
  108. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/iseq.h +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/known_errors.inc +0 -0
  110. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/method.h +0 -0
  111. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node.h +2 -2
  112. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node_name.inc +0 -0
  113. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/opt_sc.inc +0 -0
  114. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/optinsn.inc +0 -0
  115. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/optunifs.inc +0 -0
  116. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/parse.h +8 -27
  117. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/probes_helper.h +0 -0
  118. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regenc.h +79 -67
  119. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regint.h +187 -244
  120. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/regparse.h +30 -27
  121. data/lib/debase/ruby_core_source/ruby-2.4.2-p198/revision.h +1 -0
  122. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/ruby_assert.h +0 -0
  123. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ruby_atomic.h +0 -0
  124. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/siphash.h +0 -0
  125. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/symbol.h +0 -0
  126. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/thread_pthread.h +0 -0
  127. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/thread_win32.h +0 -0
  128. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/timev.h +0 -0
  129. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/transcode_data.h +0 -0
  130. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/version.h +6 -6
  131. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm.inc +37 -34
  132. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_call_iseq_optimized.inc +0 -0
  133. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_core.h +9 -7
  134. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_debug.h +0 -0
  135. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_exec.h +0 -0
  136. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_insnhelper.h +30 -14
  137. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_opts.h +0 -0
  138. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/vmtc.inc +0 -0
  139. data/lib/debase/ruby_core_source/version.rb +1 -1
  140. metadata +138 -143
  141. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/method.h +0 -213
  142. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/revision.h +0 -1
  143. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/revision.h +0 -1
  144. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/ruby_assert.h +0 -54
  145. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/encindex.h +0 -67
  146. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/id_table.h +0 -31
  147. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/insns.inc +0 -112
  148. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/iseq.h +0 -252
  149. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/probes_helper.h +0 -43
  150. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/revision.h +0 -1
  151. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/ruby_assert.h +0 -54
  152. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/vm_call_iseq_optimized.inc +0 -212
@@ -1,11 +1,11 @@
1
- #ifndef ONIGURUMA_REGPARSE_H
2
- #define ONIGURUMA_REGPARSE_H
1
+ #ifndef ONIGMO_REGPARSE_H
2
+ #define ONIGMO_REGPARSE_H
3
3
  /**********************************************************************
4
4
  regparse.h - Onigmo (Oniguruma-mod) (regular expression library)
5
5
  **********************************************************************/
6
6
  /*-
7
7
  * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8
- * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp>
8
+ * Copyright (c) 2011-2016 K.Takata <kentkt AT csc DOT jp>
9
9
  * All rights reserved.
10
10
  *
11
11
  * Redistribution and use in source and binary forms, with or without
@@ -95,6 +95,7 @@ RUBY_SYMBOL_EXPORT_BEGIN
95
95
  #define ENCLOSE_OPTION (1<<1)
96
96
  #define ENCLOSE_STOP_BACKTRACK (1<<2)
97
97
  #define ENCLOSE_CONDITION (1<<3)
98
+ #define ENCLOSE_ABSENT (1<<4)
98
99
 
99
100
  #define NODE_STR_MARGIN 16
100
101
  #define NODE_STR_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */
@@ -317,9 +318,12 @@ typedef struct {
317
318
  int curr_max_regnum;
318
319
  int has_recursion;
319
320
  #endif
321
+ unsigned int parse_depth;
320
322
  int warnings_flag;
323
+ #ifdef RUBY
321
324
  const char* sourcefile;
322
325
  int sourceline;
326
+ #endif
323
327
  } ScanEnv;
324
328
 
325
329
 
@@ -332,36 +336,35 @@ typedef struct {
332
336
  int new_val;
333
337
  } GroupNumRemap;
334
338
 
335
- extern int onig_renumber_name_table P_((regex_t* reg, GroupNumRemap* map));
339
+ extern int onig_renumber_name_table(regex_t* reg, GroupNumRemap* map);
336
340
  #endif
337
341
 
338
- extern int onig_strncmp P_((const UChar* s1, const UChar* s2, int n));
339
- extern void onig_strcpy P_((UChar* dest, const UChar* src, const UChar* end));
340
- extern void onig_scan_env_set_error_string P_((ScanEnv* env, int ecode, UChar* arg, UChar* arg_end));
341
- extern int onig_scan_unsigned_number P_((UChar** src, const UChar* end, OnigEncoding enc));
342
- extern void onig_reduce_nested_quantifier P_((Node* pnode, Node* cnode));
343
- extern void onig_node_conv_to_str_node P_((Node* node, int raw));
344
- extern int onig_node_str_cat P_((Node* node, const UChar* s, const UChar* end));
345
- extern int onig_node_str_set P_((Node* node, const UChar* s, const UChar* end));
346
- extern void onig_node_free P_((Node* node));
347
- extern Node* onig_node_new_enclose P_((int type));
348
- extern Node* onig_node_new_anchor P_((int type));
349
- extern Node* onig_node_new_str P_((const UChar* s, const UChar* end));
350
- extern Node* onig_node_new_list P_((Node* left, Node* right));
351
- extern Node* onig_node_list_add P_((Node* list, Node* x));
352
- extern Node* onig_node_new_alt P_((Node* left, Node* right));
353
- extern void onig_node_str_clear P_((Node* node));
354
- extern int onig_free_node_list P_((void));
355
- extern int onig_names_free P_((regex_t* reg));
356
- extern int onig_parse_make_tree P_((Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env));
357
- extern int onig_free_shared_cclass_table P_((void));
342
+ extern int onig_strncmp(const UChar* s1, const UChar* s2, int n);
343
+ extern void onig_strcpy(UChar* dest, const UChar* src, const UChar* end);
344
+ extern void onig_scan_env_set_error_string(ScanEnv* env, int ecode, UChar* arg, UChar* arg_end);
345
+ extern int onig_scan_unsigned_number(UChar** src, const UChar* end, OnigEncoding enc);
346
+ extern void onig_reduce_nested_quantifier(Node* pnode, Node* cnode);
347
+ extern void onig_node_conv_to_str_node(Node* node, int raw);
348
+ extern int onig_node_str_cat(Node* node, const UChar* s, const UChar* end);
349
+ extern int onig_node_str_set(Node* node, const UChar* s, const UChar* end);
350
+ extern void onig_node_free(Node* node);
351
+ extern Node* onig_node_new_enclose(int type);
352
+ extern Node* onig_node_new_anchor(int type);
353
+ extern Node* onig_node_new_str(const UChar* s, const UChar* end);
354
+ extern Node* onig_node_new_list(Node* left, Node* right);
355
+ extern Node* onig_node_list_add(Node* list, Node* x);
356
+ extern Node* onig_node_new_alt(Node* left, Node* right);
357
+ extern void onig_node_str_clear(Node* node);
358
+ extern int onig_names_free(regex_t* reg);
359
+ extern int onig_parse_make_tree(Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env);
360
+ extern int onig_free_shared_cclass_table(void);
358
361
 
359
362
  #ifdef ONIG_DEBUG
360
- #ifdef USE_NAMED_GROUP
363
+ # ifdef USE_NAMED_GROUP
361
364
  extern int onig_print_names(FILE*, regex_t*);
362
- #endif
365
+ # endif
363
366
  #endif
364
367
 
365
368
  RUBY_SYMBOL_EXPORT_END
366
369
 
367
- #endif /* ONIGURUMA_REGPARSE_H */
370
+ #endif /* ONIGMO_REGPARSE_H */
@@ -0,0 +1 @@
1
+ #define RUBY_REVISION 59899
@@ -1,10 +1,10 @@
1
- #define RUBY_VERSION "2.4.0"
2
- #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
3
- #define RUBY_PATCHLEVEL -1
1
+ #define RUBY_VERSION "2.4.2"
2
+ #define RUBY_RELEASE_DATE "2017-09-14"
3
+ #define RUBY_PATCHLEVEL 198
4
4
 
5
- #define RUBY_RELEASE_YEAR 2016
5
+ #define RUBY_RELEASE_YEAR 2017
6
6
  #define RUBY_RELEASE_MONTH 9
7
- #define RUBY_RELEASE_DAY 9
7
+ #define RUBY_RELEASE_DAY 14
8
8
 
9
9
  #include "ruby/version.h"
10
10
 
@@ -35,7 +35,7 @@
35
35
  #endif
36
36
 
37
37
  #if RUBY_PATCHLEVEL == -1
38
- #define RUBY_PATCHLEVEL_STR "preview2"
38
+ #define RUBY_PATCHLEVEL_STR "dev"
39
39
  #else
40
40
  #define RUBY_PATCHLEVEL_STR "p"STRINGIZE(RUBY_PATCHLEVEL)
41
41
  #endif
@@ -1159,7 +1159,7 @@ INSN_ENTRY(checkmatch){
1159
1159
  result = Qfalse;
1160
1160
 
1161
1161
  if (flag & VM_CHECKMATCH_ARRAY) {
1162
- int i;
1162
+ long i;
1163
1163
  for (i = 0; i < RARRAY_LEN(pattern); i++) {
1164
1164
  if (RTEST(check_match(RARRAY_AREF(pattern, i), target, checkmatch_type))) {
1165
1165
  result = Qtrue;
@@ -2765,7 +2765,9 @@ INSN_ENTRY(opt_aset_with){
2765
2765
  COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 2, key);
2766
2766
  {
2767
2767
  #line 1884 "insns.def"
2768
- if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && BASIC_OP_UNREDEFINED_P(BOP_ASET, HASH_REDEFINED_OP_FLAG)) {
2768
+ if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash &&
2769
+ BASIC_OP_UNREDEFINED_P(BOP_ASET, HASH_REDEFINED_OP_FLAG) &&
2770
+ rb_hash_compare_by_id_p(recv) == Qfalse) {
2769
2771
  rb_hash_aset(recv, key, val);
2770
2772
  }
2771
2773
  else {
@@ -2775,7 +2777,7 @@ INSN_ENTRY(opt_aset_with){
2775
2777
  CALL_SIMPLE_METHOD(recv);
2776
2778
  }
2777
2779
 
2778
- #line 2779 "vm.inc"
2780
+ #line 2781 "vm.inc"
2779
2781
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2780
2782
  PUSH(val);
2781
2783
  #undef CURRENT_INSN_opt_aset_with
@@ -2803,8 +2805,10 @@ INSN_ENTRY(opt_aref_with){
2803
2805
  COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 1, cc);
2804
2806
  COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 2, key);
2805
2807
  {
2806
- #line 1906 "insns.def"
2807
- if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && BASIC_OP_UNREDEFINED_P(BOP_AREF, HASH_REDEFINED_OP_FLAG)) {
2808
+ #line 1908 "insns.def"
2809
+ if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash &&
2810
+ BASIC_OP_UNREDEFINED_P(BOP_AREF, HASH_REDEFINED_OP_FLAG) &&
2811
+ rb_hash_compare_by_id_p(recv) == Qfalse) {
2808
2812
  val = rb_hash_aref(recv, key);
2809
2813
  }
2810
2814
  else {
@@ -2813,7 +2817,7 @@ INSN_ENTRY(opt_aref_with){
2813
2817
  CALL_SIMPLE_METHOD(recv);
2814
2818
  }
2815
2819
 
2816
- #line 2817 "vm.inc"
2820
+ #line 2821 "vm.inc"
2817
2821
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2818
2822
  PUSH(val);
2819
2823
  #undef CURRENT_INSN_opt_aref_with
@@ -2839,7 +2843,7 @@ INSN_ENTRY(opt_length){
2839
2843
  COLLECT_USAGE_OPERAND(BIN(opt_length), 0, ci);
2840
2844
  COLLECT_USAGE_OPERAND(BIN(opt_length), 1, cc);
2841
2845
  {
2842
- #line 1927 "insns.def"
2846
+ #line 1931 "insns.def"
2843
2847
  if (!SPECIAL_CONST_P(recv)) {
2844
2848
  if (RBASIC_CLASS(recv) == rb_cString &&
2845
2849
  BASIC_OP_UNREDEFINED_P(BOP_LENGTH, STRING_REDEFINED_OP_FLAG)) {
@@ -2863,7 +2867,7 @@ INSN_ENTRY(opt_length){
2863
2867
  CALL_SIMPLE_METHOD(recv);
2864
2868
  }
2865
2869
 
2866
- #line 2867 "vm.inc"
2870
+ #line 2871 "vm.inc"
2867
2871
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2868
2872
  PUSH(val);
2869
2873
  #undef CURRENT_INSN_opt_length
@@ -2889,7 +2893,7 @@ INSN_ENTRY(opt_size){
2889
2893
  COLLECT_USAGE_OPERAND(BIN(opt_size), 0, ci);
2890
2894
  COLLECT_USAGE_OPERAND(BIN(opt_size), 1, cc);
2891
2895
  {
2892
- #line 1962 "insns.def"
2896
+ #line 1966 "insns.def"
2893
2897
  if (!SPECIAL_CONST_P(recv)) {
2894
2898
  if (RBASIC_CLASS(recv) == rb_cString &&
2895
2899
  BASIC_OP_UNREDEFINED_P(BOP_SIZE, STRING_REDEFINED_OP_FLAG)) {
@@ -2913,7 +2917,7 @@ INSN_ENTRY(opt_size){
2913
2917
  CALL_SIMPLE_METHOD(recv);
2914
2918
  }
2915
2919
 
2916
- #line 2917 "vm.inc"
2920
+ #line 2921 "vm.inc"
2917
2921
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2918
2922
  PUSH(val);
2919
2923
  #undef CURRENT_INSN_opt_size
@@ -2939,7 +2943,7 @@ INSN_ENTRY(opt_empty_p){
2939
2943
  COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 0, ci);
2940
2944
  COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 1, cc);
2941
2945
  {
2942
- #line 1997 "insns.def"
2946
+ #line 2001 "insns.def"
2943
2947
  if (!SPECIAL_CONST_P(recv)) {
2944
2948
  if (RBASIC_CLASS(recv) == rb_cString &&
2945
2949
  BASIC_OP_UNREDEFINED_P(BOP_EMPTY_P, STRING_REDEFINED_OP_FLAG)) {
@@ -2966,7 +2970,7 @@ INSN_ENTRY(opt_empty_p){
2966
2970
  CALL_SIMPLE_METHOD(recv);
2967
2971
  }
2968
2972
 
2969
- #line 2970 "vm.inc"
2973
+ #line 2974 "vm.inc"
2970
2974
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2971
2975
  PUSH(val);
2972
2976
  #undef CURRENT_INSN_opt_empty_p
@@ -2992,7 +2996,7 @@ INSN_ENTRY(opt_succ){
2992
2996
  COLLECT_USAGE_OPERAND(BIN(opt_succ), 0, ci);
2993
2997
  COLLECT_USAGE_OPERAND(BIN(opt_succ), 1, cc);
2994
2998
  {
2995
- #line 2035 "insns.def"
2999
+ #line 2039 "insns.def"
2996
3000
  if (SPECIAL_CONST_P(recv)) {
2997
3001
  if (FIXNUM_P(recv) &&
2998
3002
  BASIC_OP_UNREDEFINED_P(BOP_SUCC, INTEGER_REDEFINED_OP_FLAG)) {
@@ -3013,8 +3017,7 @@ INSN_ENTRY(opt_succ){
3013
3017
  BASIC_OP_UNREDEFINED_P(BOP_SUCC, STRING_REDEFINED_OP_FLAG)) {
3014
3018
  val = rb_str_succ(recv);
3015
3019
  }
3016
- else
3017
- {
3020
+ else {
3018
3021
  goto INSN_LABEL(normal_dispatch);
3019
3022
  }
3020
3023
  }
@@ -3024,7 +3027,7 @@ INSN_ENTRY(opt_succ){
3024
3027
  CALL_SIMPLE_METHOD(recv);
3025
3028
  }
3026
3029
 
3027
- #line 3028 "vm.inc"
3030
+ #line 3031 "vm.inc"
3028
3031
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3029
3032
  PUSH(val);
3030
3033
  #undef CURRENT_INSN_opt_succ
@@ -3050,7 +3053,7 @@ INSN_ENTRY(opt_not){
3050
3053
  COLLECT_USAGE_OPERAND(BIN(opt_not), 0, ci);
3051
3054
  COLLECT_USAGE_OPERAND(BIN(opt_not), 1, cc);
3052
3055
  {
3053
- #line 2078 "insns.def"
3056
+ #line 2081 "insns.def"
3054
3057
  vm_search_method(ci, cc, recv);
3055
3058
 
3056
3059
  if (check_cfunc(cc->me, rb_obj_not)) {
@@ -3061,7 +3064,7 @@ INSN_ENTRY(opt_not){
3061
3064
  CALL_SIMPLE_METHOD(recv);
3062
3065
  }
3063
3066
 
3064
- #line 3065 "vm.inc"
3067
+ #line 3068 "vm.inc"
3065
3068
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3066
3069
  PUSH(val);
3067
3070
  #undef CURRENT_INSN_opt_not
@@ -3085,7 +3088,7 @@ INSN_ENTRY(opt_regexpmatch1){
3085
3088
  COLLECT_USAGE_INSN(BIN(opt_regexpmatch1));
3086
3089
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch1), 0, r);
3087
3090
  {
3088
- #line 2101 "insns.def"
3091
+ #line 2104 "insns.def"
3089
3092
  if (BASIC_OP_UNREDEFINED_P(BOP_MATCH, REGEXP_REDEFINED_OP_FLAG)) {
3090
3093
  val = rb_reg_match(r, obj);
3091
3094
  }
@@ -3093,7 +3096,7 @@ INSN_ENTRY(opt_regexpmatch1){
3093
3096
  val = rb_funcall(r, idEqTilde, 1, obj);
3094
3097
  }
3095
3098
 
3096
- #line 3097 "vm.inc"
3099
+ #line 3100 "vm.inc"
3097
3100
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3098
3101
  PUSH(val);
3099
3102
  #undef CURRENT_INSN_opt_regexpmatch1
@@ -3120,7 +3123,7 @@ INSN_ENTRY(opt_regexpmatch2){
3120
3123
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 0, ci);
3121
3124
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 1, cc);
3122
3125
  {
3123
- #line 2120 "insns.def"
3126
+ #line 2123 "insns.def"
3124
3127
  if (CLASS_OF(obj2) == rb_cString &&
3125
3128
  BASIC_OP_UNREDEFINED_P(BOP_MATCH, STRING_REDEFINED_OP_FLAG)) {
3126
3129
  val = rb_reg_match(obj1, obj2);
@@ -3131,7 +3134,7 @@ INSN_ENTRY(opt_regexpmatch2){
3131
3134
  CALL_SIMPLE_METHOD(obj2);
3132
3135
  }
3133
3136
 
3134
- #line 3135 "vm.inc"
3137
+ #line 3138 "vm.inc"
3135
3138
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3136
3139
  PUSH(val);
3137
3140
  #undef CURRENT_INSN_opt_regexpmatch2
@@ -3153,7 +3156,7 @@ INSN_ENTRY(opt_call_c_function){
3153
3156
  COLLECT_USAGE_INSN(BIN(opt_call_c_function));
3154
3157
  COLLECT_USAGE_OPERAND(BIN(opt_call_c_function), 0, funcptr);
3155
3158
  {
3156
- #line 2142 "insns.def"
3159
+ #line 2145 "insns.def"
3157
3160
  reg_cfp = (funcptr)(th, reg_cfp);
3158
3161
 
3159
3162
  if (reg_cfp == 0) {
@@ -3165,7 +3168,7 @@ INSN_ENTRY(opt_call_c_function){
3165
3168
  RESTORE_REGS();
3166
3169
  NEXT_INSN();
3167
3170
 
3168
- #line 3169 "vm.inc"
3171
+ #line 3172 "vm.inc"
3169
3172
  #undef CURRENT_INSN_opt_call_c_function
3170
3173
  #undef INSN_IS_SC
3171
3174
  #undef INSN_LABEL
@@ -3185,10 +3188,10 @@ INSN_ENTRY(bitblt){
3185
3188
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
3186
3189
  COLLECT_USAGE_INSN(BIN(bitblt));
3187
3190
  {
3188
- #line 2165 "insns.def"
3191
+ #line 2168 "insns.def"
3189
3192
  ret = rb_str_new2("a bit of bacon, lettuce and tomato");
3190
3193
 
3191
- #line 3192 "vm.inc"
3194
+ #line 3195 "vm.inc"
3192
3195
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3193
3196
  PUSH(ret);
3194
3197
  #undef CURRENT_INSN_bitblt
@@ -3210,10 +3213,10 @@ INSN_ENTRY(answer){
3210
3213
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
3211
3214
  COLLECT_USAGE_INSN(BIN(answer));
3212
3215
  {
3213
- #line 2179 "insns.def"
3216
+ #line 2182 "insns.def"
3214
3217
  ret = INT2FIX(42);
3215
3218
 
3216
- #line 3217 "vm.inc"
3219
+ #line 3220 "vm.inc"
3217
3220
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3218
3221
  PUSH(ret);
3219
3222
  #undef CURRENT_INSN_answer
@@ -3247,7 +3250,7 @@ INSN_ENTRY(getlocal_OP__WC__0){
3247
3250
  }
3248
3251
  val = *(ep - idx);
3249
3252
 
3250
- #line 3251 "vm.inc"
3253
+ #line 3254 "vm.inc"
3251
3254
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3252
3255
  PUSH(val);
3253
3256
  #undef level
@@ -3282,7 +3285,7 @@ INSN_ENTRY(getlocal_OP__WC__1){
3282
3285
  }
3283
3286
  val = *(ep - idx);
3284
3287
 
3285
- #line 3286 "vm.inc"
3288
+ #line 3289 "vm.inc"
3286
3289
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3287
3290
  PUSH(val);
3288
3291
  #undef level
@@ -3317,7 +3320,7 @@ INSN_ENTRY(setlocal_OP__WC__0){
3317
3320
  }
3318
3321
  vm_env_write(ep, -(int)idx, val);
3319
3322
 
3320
- #line 3321 "vm.inc"
3323
+ #line 3324 "vm.inc"
3321
3324
  #undef level
3322
3325
  #undef CURRENT_INSN_setlocal_OP__WC__0
3323
3326
  #undef INSN_IS_SC
@@ -3350,7 +3353,7 @@ INSN_ENTRY(setlocal_OP__WC__1){
3350
3353
  }
3351
3354
  vm_env_write(ep, -(int)idx, val);
3352
3355
 
3353
- #line 3354 "vm.inc"
3356
+ #line 3357 "vm.inc"
3354
3357
  #undef level
3355
3358
  #undef CURRENT_INSN_setlocal_OP__WC__1
3356
3359
  #undef INSN_IS_SC
@@ -3374,7 +3377,7 @@ INSN_ENTRY(putobject_OP_INT2FIX_O_0_C_){
3374
3377
  #line 299 "insns.def"
3375
3378
  /* */
3376
3379
 
3377
- #line 3378 "vm.inc"
3380
+ #line 3381 "vm.inc"
3378
3381
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3379
3382
  PUSH(val);
3380
3383
  #undef val
@@ -3400,7 +3403,7 @@ INSN_ENTRY(putobject_OP_INT2FIX_O_1_C_){
3400
3403
  #line 299 "insns.def"
3401
3404
  /* */
3402
3405
 
3403
- #line 3404 "vm.inc"
3406
+ #line 3407 "vm.inc"
3404
3407
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3405
3408
  PUSH(val);
3406
3409
  #undef val
@@ -2,7 +2,7 @@
2
2
 
3
3
  vm_core.h -
4
4
 
5
- $Author: ktsj $
5
+ $Author: nagachika $
6
6
  created at: 04/01/01 19:41:38 JST
7
7
 
8
8
  Copyright (C) 2004-2007 Koichi Sasada
@@ -427,7 +427,7 @@ enum ruby_special_exceptions {
427
427
  ruby_error_reenter,
428
428
  ruby_error_nomemory,
429
429
  ruby_error_sysstack,
430
- ruby_error_closed_stream,
430
+ ruby_error_stream_closed,
431
431
  ruby_special_error_count
432
432
  };
433
433
 
@@ -490,6 +490,7 @@ typedef struct rb_vm_struct {
490
490
  struct rb_thread_struct *main_thread;
491
491
  struct rb_thread_struct *running_thread;
492
492
 
493
+ struct list_head waiting_fds; /* <=> struct waiting_fd */
493
494
  struct list_head living_threads;
494
495
  size_t living_thread_num;
495
496
  VALUE thgroup_default;
@@ -497,7 +498,7 @@ typedef struct rb_vm_struct {
497
498
  unsigned int running: 1;
498
499
  unsigned int thread_abort_on_exception: 1;
499
500
  unsigned int thread_report_on_exception: 1;
500
- unsigned int trace_running: 1;
501
+ int trace_running;
501
502
  volatile int sleeper;
502
503
 
503
504
  /* object management */
@@ -712,8 +713,6 @@ typedef struct rb_thread_struct {
712
713
  /* passing state */
713
714
  int state;
714
715
 
715
- int waiting_fd;
716
-
717
716
  /* for rb_iterate */
718
717
  VALUE passed_block_handler;
719
718
 
@@ -1166,6 +1165,8 @@ VM_STACK_ENV_WRITE(const VALUE *ep, int index, VALUE v)
1166
1165
  }
1167
1166
 
1168
1167
  const VALUE *rb_vm_ep_local_ep(const VALUE *ep);
1168
+ const VALUE *rb_vm_proc_local_ep(VALUE proc);
1169
+
1169
1170
  VALUE rb_vm_frame_block_handler(const rb_control_frame_t *cfp);
1170
1171
 
1171
1172
  #define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1)
@@ -1407,7 +1408,7 @@ VALUE rb_binding_alloc(VALUE klass);
1407
1408
 
1408
1409
  /* for debug */
1409
1410
  extern void rb_vmdebug_stack_dump_raw(rb_thread_t *, rb_control_frame_t *);
1410
- extern void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp, VALUE *_pc);
1411
+ extern void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp, const VALUE *_pc);
1411
1412
  extern void rb_vmdebug_debug_print_post(rb_thread_t *th, rb_control_frame_t *cfp);
1412
1413
 
1413
1414
  #define SDR() rb_vmdebug_stack_dump_raw(GET_THREAD(), GET_THREAD()->cfp)
@@ -1443,6 +1444,7 @@ void rb_thread_wakeup_timer_thread(void);
1443
1444
  static inline void
1444
1445
  rb_vm_living_threads_init(rb_vm_t *vm)
1445
1446
  {
1447
+ list_head_init(&vm->waiting_fds);
1446
1448
  list_head_init(&vm->living_threads);
1447
1449
  vm->living_thread_num = 0;
1448
1450
  }
@@ -1562,7 +1564,7 @@ void rb_threadptr_unlock_all_locking_mutexes(rb_thread_t *th);
1562
1564
  void rb_threadptr_pending_interrupt_clear(rb_thread_t *th);
1563
1565
  void rb_threadptr_pending_interrupt_enque(rb_thread_t *th, VALUE v);
1564
1566
  int rb_threadptr_pending_interrupt_active_p(rb_thread_t *th);
1565
- void rb_threadptr_error_print(rb_thread_t *th, VALUE errinfo);
1567
+ void rb_threadptr_error_print(rb_thread_t *volatile th, volatile VALUE errinfo);
1566
1568
 
1567
1569
  #define RUBY_VM_CHECK_INTS(th) ruby_vm_check_ints(th)
1568
1570
  static inline void