did_you_mean 0.9.0 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +150 -0
  5. data/README.md +14 -1
  6. data/did_you_mean.gemspec +0 -1
  7. data/ext/did_you_mean/extconf.rb +14 -11
  8. data/ext/did_you_mean/ruby_headers/215/id.h +173 -0
  9. data/ext/did_you_mean/ruby_headers/215/internal.h +892 -0
  10. data/ext/did_you_mean/ruby_headers/215/method.h +142 -0
  11. data/ext/did_you_mean/ruby_headers/215/node.h +543 -0
  12. data/ext/did_you_mean/ruby_headers/215/ruby_atomic.h +170 -0
  13. data/ext/did_you_mean/ruby_headers/215/thread_native.h +23 -0
  14. data/ext/did_you_mean/ruby_headers/215/thread_pthread.h +56 -0
  15. data/ext/did_you_mean/ruby_headers/215/thread_win32.h +45 -0
  16. data/ext/did_you_mean/ruby_headers/215/vm_core.h +1055 -0
  17. data/ext/did_you_mean/ruby_headers/215/vm_debug.h +37 -0
  18. data/ext/did_you_mean/ruby_headers/215/vm_opts.h +56 -0
  19. data/ext/did_you_mean/ruby_headers/220/internal.h +11 -6
  20. data/ext/did_you_mean/ruby_headers/220/vm_core.h +1 -0
  21. data/lib/did_you_mean/finders.rb +1 -1
  22. data/lib/did_you_mean/test_helper.rb +0 -4
  23. data/lib/did_you_mean/version.rb +1 -1
  24. data/test/no_method_error_extension_test.rb +0 -6
  25. data/test/test_helper.rb +0 -1
  26. metadata +18 -196
  27. data/docs/did_you_mean_example.png +0 -0
  28. data/ext/did_you_mean/ruby_headers/193/addr2line.h +0 -21
  29. data/ext/did_you_mean/ruby_headers/193/constant.h +0 -34
  30. data/ext/did_you_mean/ruby_headers/193/dln.h +0 -50
  31. data/ext/did_you_mean/ruby_headers/193/encdb.h +0 -170
  32. data/ext/did_you_mean/ruby_headers/193/eval_intern.h +0 -234
  33. data/ext/did_you_mean/ruby_headers/193/gc.h +0 -99
  34. data/ext/did_you_mean/ruby_headers/193/iseq.h +0 -126
  35. data/ext/did_you_mean/ruby_headers/193/parse.h +0 -183
  36. data/ext/did_you_mean/ruby_headers/193/probes.h +0 -83
  37. data/ext/did_you_mean/ruby_headers/193/regenc.h +0 -219
  38. data/ext/did_you_mean/ruby_headers/193/regint.h +0 -850
  39. data/ext/did_you_mean/ruby_headers/193/regparse.h +0 -362
  40. data/ext/did_you_mean/ruby_headers/193/revision.h +0 -1
  41. data/ext/did_you_mean/ruby_headers/193/siphash.h +0 -48
  42. data/ext/did_you_mean/ruby_headers/193/timev.h +0 -21
  43. data/ext/did_you_mean/ruby_headers/193/transcode_data.h +0 -117
  44. data/ext/did_you_mean/ruby_headers/193/transdb.h +0 -190
  45. data/ext/did_you_mean/ruby_headers/193/verconf.h +0 -13
  46. data/ext/did_you_mean/ruby_headers/193/version.h +0 -52
  47. data/ext/did_you_mean/ruby_headers/193/vm_exec.h +0 -184
  48. data/ext/did_you_mean/ruby_headers/193/vm_insnhelper.h +0 -220
  49. data/ext/did_you_mean/ruby_headers/200/addr2line.h +0 -21
  50. data/ext/did_you_mean/ruby_headers/200/constant.h +0 -36
  51. data/ext/did_you_mean/ruby_headers/200/dln.h +0 -50
  52. data/ext/did_you_mean/ruby_headers/200/encdb.h +0 -170
  53. data/ext/did_you_mean/ruby_headers/200/eval_intern.h +0 -213
  54. data/ext/did_you_mean/ruby_headers/200/gc.h +0 -104
  55. data/ext/did_you_mean/ruby_headers/200/iseq.h +0 -140
  56. data/ext/did_you_mean/ruby_headers/200/parse.h +0 -183
  57. data/ext/did_you_mean/ruby_headers/200/probes.h +0 -83
  58. data/ext/did_you_mean/ruby_headers/200/probes_helper.h +0 -67
  59. data/ext/did_you_mean/ruby_headers/200/regenc.h +0 -227
  60. data/ext/did_you_mean/ruby_headers/200/regint.h +0 -915
  61. data/ext/did_you_mean/ruby_headers/200/regparse.h +0 -367
  62. data/ext/did_you_mean/ruby_headers/200/revision.h +0 -1
  63. data/ext/did_you_mean/ruby_headers/200/siphash.h +0 -48
  64. data/ext/did_you_mean/ruby_headers/200/timev.h +0 -21
  65. data/ext/did_you_mean/ruby_headers/200/transcode_data.h +0 -127
  66. data/ext/did_you_mean/ruby_headers/200/transdb.h +0 -190
  67. data/ext/did_you_mean/ruby_headers/200/verconf.h +0 -13
  68. data/ext/did_you_mean/ruby_headers/200/version.h +0 -52
  69. data/ext/did_you_mean/ruby_headers/200/vm_exec.h +0 -173
  70. data/ext/did_you_mean/ruby_headers/200/vm_insnhelper.h +0 -274
  71. data/ext/did_you_mean/ruby_headers/210/addr2line.h +0 -21
  72. data/ext/did_you_mean/ruby_headers/210/constant.h +0 -36
  73. data/ext/did_you_mean/ruby_headers/210/dln.h +0 -51
  74. data/ext/did_you_mean/ruby_headers/210/encdb.h +0 -170
  75. data/ext/did_you_mean/ruby_headers/210/eval_intern.h +0 -260
  76. data/ext/did_you_mean/ruby_headers/210/gc.h +0 -101
  77. data/ext/did_you_mean/ruby_headers/210/iseq.h +0 -136
  78. data/ext/did_you_mean/ruby_headers/210/parse.h +0 -183
  79. data/ext/did_you_mean/ruby_headers/210/probes.h +0 -83
  80. data/ext/did_you_mean/ruby_headers/210/probes_helper.h +0 -67
  81. data/ext/did_you_mean/ruby_headers/210/regenc.h +0 -223
  82. data/ext/did_you_mean/ruby_headers/210/regint.h +0 -911
  83. data/ext/did_you_mean/ruby_headers/210/regparse.h +0 -363
  84. data/ext/did_you_mean/ruby_headers/210/revision.h +0 -1
  85. data/ext/did_you_mean/ruby_headers/210/siphash.h +0 -48
  86. data/ext/did_you_mean/ruby_headers/210/timev.h +0 -42
  87. data/ext/did_you_mean/ruby_headers/210/transcode_data.h +0 -123
  88. data/ext/did_you_mean/ruby_headers/210/transdb.h +0 -190
  89. data/ext/did_you_mean/ruby_headers/210/verconf.h +0 -13
  90. data/ext/did_you_mean/ruby_headers/210/version.h +0 -52
  91. data/ext/did_you_mean/ruby_headers/210/vm_exec.h +0 -182
  92. data/ext/did_you_mean/ruby_headers/210/vm_insnhelper.h +0 -273
  93. data/ext/did_you_mean/ruby_headers/211/addr2line.h +0 -21
  94. data/ext/did_you_mean/ruby_headers/211/constant.h +0 -36
  95. data/ext/did_you_mean/ruby_headers/211/dln.h +0 -51
  96. data/ext/did_you_mean/ruby_headers/211/encdb.h +0 -170
  97. data/ext/did_you_mean/ruby_headers/211/eval_intern.h +0 -260
  98. data/ext/did_you_mean/ruby_headers/211/gc.h +0 -101
  99. data/ext/did_you_mean/ruby_headers/211/iseq.h +0 -136
  100. data/ext/did_you_mean/ruby_headers/211/parse.h +0 -183
  101. data/ext/did_you_mean/ruby_headers/211/probes.h +0 -83
  102. data/ext/did_you_mean/ruby_headers/211/probes_helper.h +0 -67
  103. data/ext/did_you_mean/ruby_headers/211/regenc.h +0 -223
  104. data/ext/did_you_mean/ruby_headers/211/regint.h +0 -911
  105. data/ext/did_you_mean/ruby_headers/211/regparse.h +0 -363
  106. data/ext/did_you_mean/ruby_headers/211/revision.h +0 -1
  107. data/ext/did_you_mean/ruby_headers/211/siphash.h +0 -48
  108. data/ext/did_you_mean/ruby_headers/211/timev.h +0 -42
  109. data/ext/did_you_mean/ruby_headers/211/transcode_data.h +0 -123
  110. data/ext/did_you_mean/ruby_headers/211/transdb.h +0 -190
  111. data/ext/did_you_mean/ruby_headers/211/verconf.h +0 -13
  112. data/ext/did_you_mean/ruby_headers/211/version.h +0 -52
  113. data/ext/did_you_mean/ruby_headers/211/vm_exec.h +0 -182
  114. data/ext/did_you_mean/ruby_headers/211/vm_insnhelper.h +0 -273
  115. data/ext/did_you_mean/ruby_headers/212/addr2line.h +0 -21
  116. data/ext/did_you_mean/ruby_headers/212/constant.h +0 -36
  117. data/ext/did_you_mean/ruby_headers/212/dln.h +0 -51
  118. data/ext/did_you_mean/ruby_headers/212/encdb.h +0 -170
  119. data/ext/did_you_mean/ruby_headers/212/eval_intern.h +0 -260
  120. data/ext/did_you_mean/ruby_headers/212/gc.h +0 -101
  121. data/ext/did_you_mean/ruby_headers/212/iseq.h +0 -136
  122. data/ext/did_you_mean/ruby_headers/212/parse.h +0 -183
  123. data/ext/did_you_mean/ruby_headers/212/probes.h +0 -83
  124. data/ext/did_you_mean/ruby_headers/212/probes_helper.h +0 -67
  125. data/ext/did_you_mean/ruby_headers/212/regenc.h +0 -223
  126. data/ext/did_you_mean/ruby_headers/212/regint.h +0 -911
  127. data/ext/did_you_mean/ruby_headers/212/regparse.h +0 -363
  128. data/ext/did_you_mean/ruby_headers/212/revision.h +0 -1
  129. data/ext/did_you_mean/ruby_headers/212/siphash.h +0 -48
  130. data/ext/did_you_mean/ruby_headers/212/timev.h +0 -42
  131. data/ext/did_you_mean/ruby_headers/212/transcode_data.h +0 -123
  132. data/ext/did_you_mean/ruby_headers/212/transdb.h +0 -190
  133. data/ext/did_you_mean/ruby_headers/212/verconf.h +0 -13
  134. data/ext/did_you_mean/ruby_headers/212/version.h +0 -52
  135. data/ext/did_you_mean/ruby_headers/212/vm_exec.h +0 -182
  136. data/ext/did_you_mean/ruby_headers/212/vm_insnhelper.h +0 -273
  137. data/ext/did_you_mean/ruby_headers/213/addr2line.h +0 -21
  138. data/ext/did_you_mean/ruby_headers/213/constant.h +0 -36
  139. data/ext/did_you_mean/ruby_headers/213/dln.h +0 -51
  140. data/ext/did_you_mean/ruby_headers/213/encdb.h +0 -170
  141. data/ext/did_you_mean/ruby_headers/213/eval_intern.h +0 -270
  142. data/ext/did_you_mean/ruby_headers/213/gc.h +0 -101
  143. data/ext/did_you_mean/ruby_headers/213/iseq.h +0 -136
  144. data/ext/did_you_mean/ruby_headers/213/parse.h +0 -183
  145. data/ext/did_you_mean/ruby_headers/213/probes.h +0 -83
  146. data/ext/did_you_mean/ruby_headers/213/probes_helper.h +0 -67
  147. data/ext/did_you_mean/ruby_headers/213/regenc.h +0 -223
  148. data/ext/did_you_mean/ruby_headers/213/regint.h +0 -911
  149. data/ext/did_you_mean/ruby_headers/213/regparse.h +0 -363
  150. data/ext/did_you_mean/ruby_headers/213/revision.h +0 -1
  151. data/ext/did_you_mean/ruby_headers/213/siphash.h +0 -48
  152. data/ext/did_you_mean/ruby_headers/213/timev.h +0 -42
  153. data/ext/did_you_mean/ruby_headers/213/transcode_data.h +0 -123
  154. data/ext/did_you_mean/ruby_headers/213/transdb.h +0 -190
  155. data/ext/did_you_mean/ruby_headers/213/verconf.h +0 -13
  156. data/ext/did_you_mean/ruby_headers/213/version.h +0 -52
  157. data/ext/did_you_mean/ruby_headers/213/vm_exec.h +0 -182
  158. data/ext/did_you_mean/ruby_headers/213/vm_insnhelper.h +0 -273
  159. data/ext/did_you_mean/ruby_headers/214/addr2line.h +0 -21
  160. data/ext/did_you_mean/ruby_headers/214/constant.h +0 -36
  161. data/ext/did_you_mean/ruby_headers/214/dln.h +0 -51
  162. data/ext/did_you_mean/ruby_headers/214/encdb.h +0 -170
  163. data/ext/did_you_mean/ruby_headers/214/eval_intern.h +0 -270
  164. data/ext/did_you_mean/ruby_headers/214/gc.h +0 -101
  165. data/ext/did_you_mean/ruby_headers/214/iseq.h +0 -136
  166. data/ext/did_you_mean/ruby_headers/214/parse.h +0 -183
  167. data/ext/did_you_mean/ruby_headers/214/probes.h +0 -83
  168. data/ext/did_you_mean/ruby_headers/214/probes_helper.h +0 -67
  169. data/ext/did_you_mean/ruby_headers/214/regenc.h +0 -223
  170. data/ext/did_you_mean/ruby_headers/214/regint.h +0 -911
  171. data/ext/did_you_mean/ruby_headers/214/regparse.h +0 -363
  172. data/ext/did_you_mean/ruby_headers/214/revision.h +0 -1
  173. data/ext/did_you_mean/ruby_headers/214/siphash.h +0 -48
  174. data/ext/did_you_mean/ruby_headers/214/timev.h +0 -42
  175. data/ext/did_you_mean/ruby_headers/214/transcode_data.h +0 -123
  176. data/ext/did_you_mean/ruby_headers/214/transdb.h +0 -190
  177. data/ext/did_you_mean/ruby_headers/214/verconf.h +0 -13
  178. data/ext/did_you_mean/ruby_headers/214/version.h +0 -52
  179. data/ext/did_you_mean/ruby_headers/214/vm_exec.h +0 -182
  180. data/ext/did_you_mean/ruby_headers/214/vm_insnhelper.h +0 -273
  181. data/ext/did_you_mean/ruby_headers/220/addr2line.h +0 -21
  182. data/ext/did_you_mean/ruby_headers/220/ccan/build_assert/build_assert.h +0 -40
  183. data/ext/did_you_mean/ruby_headers/220/ccan/licenses/BSD-MIT +0 -17
  184. data/ext/did_you_mean/ruby_headers/220/ccan/licenses/CC0 +0 -28
  185. data/ext/did_you_mean/ruby_headers/220/constant.h +0 -43
  186. data/ext/did_you_mean/ruby_headers/220/dln.h +0 -51
  187. data/ext/did_you_mean/ruby_headers/220/encdb.h +0 -170
  188. data/ext/did_you_mean/ruby_headers/220/eval_intern.h +0 -275
  189. data/ext/did_you_mean/ruby_headers/220/gc.h +0 -107
  190. data/ext/did_you_mean/ruby_headers/220/iseq.h +0 -157
  191. data/ext/did_you_mean/ruby_headers/220/parse.h +0 -183
  192. data/ext/did_you_mean/ruby_headers/220/probes.h +0 -83
  193. data/ext/did_you_mean/ruby_headers/220/probes_helper.h +0 -67
  194. data/ext/did_you_mean/ruby_headers/220/regenc.h +0 -234
  195. data/ext/did_you_mean/ruby_headers/220/regint.h +0 -972
  196. data/ext/did_you_mean/ruby_headers/220/regparse.h +0 -363
  197. data/ext/did_you_mean/ruby_headers/220/revision.h +0 -1
  198. data/ext/did_you_mean/ruby_headers/220/siphash.h +0 -48
  199. data/ext/did_you_mean/ruby_headers/220/timev.h +0 -42
  200. data/ext/did_you_mean/ruby_headers/220/transcode_data.h +0 -123
  201. data/ext/did_you_mean/ruby_headers/220/transdb.h +0 -190
  202. data/ext/did_you_mean/ruby_headers/220/verconf.h +0 -13
  203. data/ext/did_you_mean/ruby_headers/220/version.h +0 -53
  204. data/ext/did_you_mean/ruby_headers/220/vm_exec.h +0 -182
  205. data/ext/did_you_mean/ruby_headers/220/vm_insnhelper.h +0 -233
@@ -1,270 +0,0 @@
1
- #ifndef RUBY_EVAL_INTERN_H
2
- #define RUBY_EVAL_INTERN_H
3
-
4
- #include "ruby/ruby.h"
5
- #include "vm_core.h"
6
-
7
- #define PASS_PASSED_BLOCK_TH(th) do { \
8
- (th)->passed_block = rb_vm_control_frame_block_ptr(th->cfp); \
9
- (th)->cfp->flag |= VM_FRAME_FLAG_PASSED; \
10
- } while (0)
11
-
12
- #define PASS_PASSED_BLOCK() do { \
13
- rb_thread_t * const __th__ = GET_THREAD(); \
14
- PASS_PASSED_BLOCK_TH(__th__); \
15
- } while (0)
16
-
17
- #ifdef HAVE_STDLIB_H
18
- #include <stdlib.h>
19
- #endif
20
- #ifndef EXIT_SUCCESS
21
- #define EXIT_SUCCESS 0
22
- #endif
23
- #ifndef EXIT_FAILURE
24
- #define EXIT_FAILURE 1
25
- #endif
26
-
27
- #include <stdio.h>
28
- #include <setjmp.h>
29
-
30
- #ifdef __APPLE__
31
- # ifdef HAVE_CRT_EXTERNS_H
32
- # include <crt_externs.h>
33
- # else
34
- # include "missing/crt_externs.h"
35
- # endif
36
- #endif
37
-
38
- #ifndef HAVE_STRING_H
39
- char *strrchr(const char *, const char);
40
- #endif
41
-
42
- #ifdef HAVE_UNISTD_H
43
- #include <unistd.h>
44
- #endif
45
-
46
- #ifdef HAVE_NET_SOCKET_H
47
- #include <net/socket.h>
48
- #endif
49
-
50
- #define ruby_setjmp(env) RUBY_SETJMP(env)
51
- #define ruby_longjmp(env,val) RUBY_LONGJMP((env),(val))
52
- #ifdef __CYGWIN__
53
- # ifndef _setjmp
54
- int _setjmp(jmp_buf);
55
- # endif
56
- # ifndef _longjmp
57
- NORETURN(void _longjmp(jmp_buf, int));
58
- # endif
59
- #endif
60
-
61
- #include <sys/types.h>
62
- #include <signal.h>
63
- #include <errno.h>
64
-
65
- #ifdef HAVE_SYS_SELECT_H
66
- #include <sys/select.h>
67
- #endif
68
-
69
- /*
70
- Solaris sys/select.h switches select to select_large_fdset to support larger
71
- file descriptors if FD_SETSIZE is larger than 1024 on 32bit environment.
72
- But Ruby doesn't change FD_SETSIZE because fd_set is allocated dynamically.
73
- So following definition is required to use select_large_fdset.
74
- */
75
- #ifdef HAVE_SELECT_LARGE_FDSET
76
- #define select(n, r, w, e, t) select_large_fdset((n), (r), (w), (e), (t))
77
- extern int select_large_fdset(int, fd_set *, fd_set *, fd_set *, struct timeval *);
78
- #endif
79
-
80
- #ifdef HAVE_SYS_PARAM_H
81
- #include <sys/param.h>
82
- #endif
83
-
84
- #include <sys/stat.h>
85
-
86
- #ifdef _MSC_VER
87
- #define SAVE_ROOT_JMPBUF_BEFORE_STMT \
88
- __try {
89
- #define SAVE_ROOT_JMPBUF_AFTER_STMT \
90
- } \
91
- __except (GetExceptionCode() == EXCEPTION_STACK_OVERFLOW ? \
92
- (rb_thread_raised_set(GET_THREAD(), RAISED_STACKOVERFLOW), \
93
- raise(SIGSEGV), \
94
- EXCEPTION_EXECUTE_HANDLER) : \
95
- EXCEPTION_CONTINUE_SEARCH) { \
96
- /* never reaches here */ \
97
- }
98
- #elif defined(__MINGW32__)
99
- LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
100
- #define SAVE_ROOT_JMPBUF_BEFORE_STMT \
101
- do { \
102
- PVOID _handler = AddVectoredExceptionHandler(1, rb_w32_stack_overflow_handler);
103
-
104
- #define SAVE_ROOT_JMPBUF_AFTER_STMT \
105
- RemoveVectoredExceptionHandler(_handler); \
106
- } while (0);
107
- #else
108
- #define SAVE_ROOT_JMPBUF_BEFORE_STMT
109
- #define SAVE_ROOT_JMPBUF_AFTER_STMT
110
- #endif
111
-
112
- #define SAVE_ROOT_JMPBUF(th, stmt) do \
113
- if (ruby_setjmp((th)->root_jmpbuf) == 0) { \
114
- SAVE_ROOT_JMPBUF_BEFORE_STMT \
115
- stmt; \
116
- SAVE_ROOT_JMPBUF_AFTER_STMT \
117
- } \
118
- else { \
119
- rb_fiber_start(); \
120
- } while (0)
121
-
122
- #define TH_PUSH_TAG(th) do { \
123
- rb_thread_t * const _th = (th); \
124
- struct rb_vm_tag _tag; \
125
- _tag.tag = 0; \
126
- _tag.prev = _th->tag;
127
-
128
- #define TH_POP_TAG() \
129
- _th->tag = _tag.prev; \
130
- } while (0)
131
-
132
- #define TH_POP_TAG2() \
133
- _th->tag = _tag.prev
134
-
135
- #define TH_PUSH_TAG2() (_th->tag = &_tag, 0)
136
-
137
- #define TH_TMPPOP_TAG() TH_POP_TAG2()
138
-
139
- #define TH_REPUSH_TAG() TH_PUSH_TAG2()
140
-
141
- #define PUSH_TAG() TH_PUSH_TAG(GET_THREAD())
142
- #define POP_TAG() TH_POP_TAG()
143
-
144
- /* clear th->state, and return the value */
145
- static inline int
146
- rb_threadptr_tag_state(rb_thread_t *th)
147
- {
148
- int state = th->state;
149
- th->state = 0;
150
- return state;
151
- }
152
-
153
- NORETURN(static inline void rb_threadptr_tag_jump(rb_thread_t *, int));
154
- static inline void
155
- rb_threadptr_tag_jump(rb_thread_t *th, int st)
156
- {
157
- th->state = st;
158
- ruby_longjmp(th->tag->buf, 1);
159
- }
160
-
161
- /*
162
- setjmp() in assignment expression rhs is undefined behavior
163
- [ISO/IEC 9899:1999] 7.13.1.1
164
- */
165
- #define TH_EXEC_TAG() \
166
- (ruby_setjmp(_tag.buf) ? rb_threadptr_tag_state(_th) : TH_PUSH_TAG2())
167
-
168
- #define EXEC_TAG() \
169
- TH_EXEC_TAG()
170
-
171
- #define TH_JUMP_TAG(th, st) rb_threadptr_tag_jump(th, st)
172
-
173
- #define JUMP_TAG(st) TH_JUMP_TAG(GET_THREAD(), (st))
174
-
175
- #define INTERNAL_EXCEPTION_P(exc) FIXNUM_P(exc)
176
-
177
- enum ruby_tag_type {
178
- RUBY_TAG_RETURN = 0x1,
179
- RUBY_TAG_BREAK = 0x2,
180
- RUBY_TAG_NEXT = 0x3,
181
- RUBY_TAG_RETRY = 0x4,
182
- RUBY_TAG_REDO = 0x5,
183
- RUBY_TAG_RAISE = 0x6,
184
- RUBY_TAG_THROW = 0x7,
185
- RUBY_TAG_FATAL = 0x8,
186
- RUBY_TAG_MASK = 0xf
187
- };
188
- #define TAG_RETURN RUBY_TAG_RETURN
189
- #define TAG_BREAK RUBY_TAG_BREAK
190
- #define TAG_NEXT RUBY_TAG_NEXT
191
- #define TAG_RETRY RUBY_TAG_RETRY
192
- #define TAG_REDO RUBY_TAG_REDO
193
- #define TAG_RAISE RUBY_TAG_RAISE
194
- #define TAG_THROW RUBY_TAG_THROW
195
- #define TAG_FATAL RUBY_TAG_FATAL
196
- #define TAG_MASK RUBY_TAG_MASK
197
-
198
- #define NEW_THROW_OBJECT(val, pt, st) \
199
- ((VALUE)rb_node_newnode(NODE_LIT, (VALUE)(val), (VALUE)(pt), (VALUE)(st)))
200
- #define SET_THROWOBJ_CATCH_POINT(obj, val) \
201
- (RNODE((obj))->u2.value = (val))
202
- #define SET_THROWOBJ_STATE(obj, val) \
203
- (RNODE((obj))->u3.value = (val))
204
-
205
- #define GET_THROWOBJ_VAL(obj) ((VALUE)RNODE((obj))->u1.value)
206
- #define GET_THROWOBJ_CATCH_POINT(obj) ((VALUE*)RNODE((obj))->u2.value)
207
- #define GET_THROWOBJ_STATE(obj) ((int)RNODE((obj))->u3.value)
208
-
209
- #define SCOPE_TEST(f) (rb_vm_cref()->nd_visi & (f))
210
- #define SCOPE_CHECK(f) (rb_vm_cref()->nd_visi == (f))
211
- #define SCOPE_SET(f) (rb_vm_cref()->nd_visi = (f))
212
-
213
- void rb_thread_cleanup(void);
214
- void rb_thread_wait_other_threads(void);
215
-
216
- enum {
217
- RAISED_EXCEPTION = 1,
218
- RAISED_STACKOVERFLOW = 2,
219
- RAISED_NOMEMORY = 4
220
- };
221
- int rb_threadptr_set_raised(rb_thread_t *th);
222
- int rb_threadptr_reset_raised(rb_thread_t *th);
223
- #define rb_thread_raised_set(th, f) ((th)->raised_flag |= (f))
224
- #define rb_thread_raised_reset(th, f) ((th)->raised_flag &= ~(f))
225
- #define rb_thread_raised_p(th, f) (((th)->raised_flag & (f)) != 0)
226
- #define rb_thread_raised_clear(th) ((th)->raised_flag = 0)
227
-
228
- VALUE rb_f_eval(int argc, VALUE *argv, VALUE self);
229
- VALUE rb_make_exception(int argc, VALUE *argv);
230
-
231
- NORETURN(void rb_method_name_error(VALUE, VALUE));
232
-
233
- NORETURN(void rb_fiber_start(void));
234
-
235
- NORETURN(void rb_print_undef(VALUE, ID, int));
236
- NORETURN(void rb_print_undef_str(VALUE, VALUE));
237
- NORETURN(void rb_vm_localjump_error(const char *,VALUE, int));
238
- NORETURN(void rb_vm_jump_tag_but_local_jump(int));
239
- NORETURN(void rb_raise_method_missing(rb_thread_t *th, int argc, VALUE *argv,
240
- VALUE obj, int call_status));
241
-
242
- VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val);
243
- NODE *rb_vm_cref(void);
244
- VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename);
245
- void rb_vm_set_progname(VALUE filename);
246
- void rb_thread_terminate_all(void);
247
- VALUE rb_vm_top_self();
248
- VALUE rb_vm_cbase(void);
249
-
250
- #ifndef CharNext /* defined as CharNext[AW] on Windows. */
251
- # ifdef HAVE_MBLEN
252
- # define CharNext(p) ((p) + mblen((p), RUBY_MBCHAR_MAXSIZE))
253
- # else
254
- # define CharNext(p) ((p) + 1)
255
- # endif
256
- #endif
257
-
258
- #if defined DOSISH || defined __CYGWIN__
259
- static inline void
260
- translit_char(char *p, int from, int to)
261
- {
262
- while (*p) {
263
- if ((unsigned char)*p == from)
264
- *p = to;
265
- p = CharNext(p);
266
- }
267
- }
268
- #endif
269
-
270
- #endif /* RUBY_EVAL_INTERN_H */
@@ -1,101 +0,0 @@
1
-
2
- #ifndef RUBY_GC_H
3
- #define RUBY_GC_H 1
4
-
5
- #if defined(__x86_64__) && !defined(_ILP32) && defined(__GNUC__) && !defined(__native_client__)
6
- #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movq\t%%rsp, %0" : "=r" (*(p)))
7
- #elif defined(__i386) && defined(__GNUC__) && !defined(__native_client__)
8
- #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movl\t%%esp, %0" : "=r" (*(p)))
9
- #else
10
- NOINLINE(void rb_gc_set_stack_end(VALUE **stack_end_p));
11
- #define SET_MACHINE_STACK_END(p) rb_gc_set_stack_end(p)
12
- #define USE_CONSERVATIVE_STACK_END
13
- #endif
14
-
15
- /* for GC debug */
16
-
17
- #ifndef RUBY_MARK_FREE_DEBUG
18
- #define RUBY_MARK_FREE_DEBUG 0
19
- #endif
20
-
21
- #if RUBY_MARK_FREE_DEBUG
22
- extern int ruby_gc_debug_indent;
23
-
24
- static inline void
25
- rb_gc_debug_indent(void)
26
- {
27
- printf("%*s", ruby_gc_debug_indent, "");
28
- }
29
-
30
- static inline void
31
- rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)
32
- {
33
- if (st == 0) {
34
- ruby_gc_debug_indent--;
35
- }
36
- rb_gc_debug_indent();
37
- printf("%s: %s %s (%p)\n", mode, st ? "->" : "<-", msg, ptr);
38
-
39
- if (st) {
40
- ruby_gc_debug_indent++;
41
- }
42
-
43
- fflush(stdout);
44
- }
45
-
46
- #define RUBY_MARK_ENTER(msg) rb_gc_debug_body("mark", (msg), 1, ptr)
47
- #define RUBY_MARK_LEAVE(msg) rb_gc_debug_body("mark", (msg), 0, ptr)
48
- #define RUBY_FREE_ENTER(msg) rb_gc_debug_body("free", (msg), 1, ptr)
49
- #define RUBY_FREE_LEAVE(msg) rb_gc_debug_body("free", (msg), 0, ptr)
50
- #define RUBY_GC_INFO rb_gc_debug_indent(); printf
51
-
52
- #else
53
- #define RUBY_MARK_ENTER(msg)
54
- #define RUBY_MARK_LEAVE(msg)
55
- #define RUBY_FREE_ENTER(msg)
56
- #define RUBY_FREE_LEAVE(msg)
57
- #define RUBY_GC_INFO if(0)printf
58
- #endif
59
-
60
- #define RUBY_MARK_UNLESS_NULL(ptr) if(RTEST(ptr)){rb_gc_mark(ptr);}
61
- #define RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);(ptr)=NULL;}
62
-
63
- #if STACK_GROW_DIRECTION > 0
64
- # define STACK_UPPER(x, a, b) (a)
65
- #elif STACK_GROW_DIRECTION < 0
66
- # define STACK_UPPER(x, a, b) (b)
67
- #else
68
- RUBY_EXTERN int ruby_stack_grow_direction;
69
- int ruby_get_stack_grow_direction(volatile VALUE *addr);
70
- # define stack_growup_p(x) ( \
71
- (ruby_stack_grow_direction ? \
72
- ruby_stack_grow_direction : \
73
- ruby_get_stack_grow_direction(x)) > 0)
74
- # define STACK_UPPER(x, a, b) (stack_growup_p(x) ? (a) : (b))
75
- #endif
76
-
77
- #if STACK_GROW_DIRECTION
78
- #define STACK_GROW_DIR_DETECTION
79
- #define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b))
80
- #else
81
- #define STACK_GROW_DIR_DETECTION VALUE stack_grow_dir_detection
82
- #define STACK_DIR_UPPER(a,b) STACK_UPPER(&stack_grow_dir_detection, (a), (b))
83
- #endif
84
- #define IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0)
85
-
86
- RUBY_SYMBOL_EXPORT_BEGIN
87
-
88
- /* exports for objspace module */
89
- size_t rb_objspace_data_type_memsize(VALUE obj);
90
- void rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), void *data);
91
- void rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *data);
92
- int rb_objspace_markable_object_p(VALUE obj);
93
- int rb_objspace_internal_object_p(VALUE obj);
94
-
95
- void rb_objspace_each_objects(
96
- int (*callback)(void *start, void *end, size_t stride, void *data),
97
- void *data);
98
-
99
- RUBY_SYMBOL_EXPORT_END
100
-
101
- #endif /* RUBY_GC_H */
@@ -1,136 +0,0 @@
1
- /**********************************************************************
2
-
3
- iseq.h -
4
-
5
- $Author$
6
- created at: 04/01/01 23:36:57 JST
7
-
8
- Copyright (C) 2004-2008 Koichi Sasada
9
-
10
- **********************************************************************/
11
-
12
- #ifndef RUBY_COMPILE_H
13
- #define RUBY_COMPILE_H
14
-
15
- RUBY_SYMBOL_EXPORT_BEGIN
16
-
17
- /* compile.c */
18
- VALUE rb_iseq_compile_node(VALUE self, NODE *node);
19
- int rb_iseq_translate_threaded_code(rb_iseq_t *iseq);
20
- VALUE rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args,
21
- VALUE exception, VALUE body);
22
-
23
- /* iseq.c */
24
- void rb_iseq_add_mark_object(rb_iseq_t *iseq, VALUE obj);
25
- VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
26
- VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
27
- struct st_table *ruby_insn_make_insn_table(void);
28
- unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos);
29
-
30
- int rb_iseq_line_trace_each(VALUE iseqval, int (*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data);
31
- VALUE rb_iseq_line_trace_all(VALUE iseqval);
32
- VALUE rb_iseq_line_trace_specify(VALUE iseqval, VALUE pos, VALUE set);
33
-
34
- /* proc.c */
35
- rb_iseq_t *rb_method_get_iseq(VALUE body);
36
- rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc);
37
-
38
- struct rb_compile_option_struct {
39
- int inline_const_cache;
40
- int peephole_optimization;
41
- int tailcall_optimization;
42
- int specialized_instruction;
43
- int operands_unification;
44
- int instructions_unification;
45
- int stack_caching;
46
- int trace_instruction;
47
- int debug_level;
48
- };
49
-
50
- struct iseq_line_info_entry {
51
- unsigned int position;
52
- unsigned int line_no;
53
- };
54
-
55
- struct iseq_catch_table_entry {
56
- enum catch_type {
57
- CATCH_TYPE_RESCUE = INT2FIX(1),
58
- CATCH_TYPE_ENSURE = INT2FIX(2),
59
- CATCH_TYPE_RETRY = INT2FIX(3),
60
- CATCH_TYPE_BREAK = INT2FIX(4),
61
- CATCH_TYPE_REDO = INT2FIX(5),
62
- CATCH_TYPE_NEXT = INT2FIX(6)
63
- } type;
64
- VALUE iseq;
65
- unsigned long start;
66
- unsigned long end;
67
- unsigned long cont;
68
- unsigned long sp;
69
- };
70
-
71
- #define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)
72
-
73
- struct iseq_compile_data_storage {
74
- struct iseq_compile_data_storage *next;
75
- unsigned long pos;
76
- unsigned long size;
77
- char *buff;
78
- };
79
-
80
- struct iseq_compile_data {
81
- /* GC is needed */
82
- const VALUE err_info;
83
- VALUE mark_ary;
84
- const VALUE catch_table_ary; /* Array */
85
-
86
- /* GC is not needed */
87
- struct iseq_label_data *start_label;
88
- struct iseq_label_data *end_label;
89
- struct iseq_label_data *redo_label;
90
- VALUE current_block;
91
- VALUE ensure_node;
92
- VALUE for_iseq;
93
- struct iseq_compile_data_ensure_node_stack *ensure_node_stack;
94
- int loopval_popped; /* used by NODE_BREAK */
95
- int cached_const;
96
- struct iseq_compile_data_storage *storage_head;
97
- struct iseq_compile_data_storage *storage_current;
98
- int last_line;
99
- int last_coverable_line;
100
- int label_no;
101
- int node_level;
102
- const rb_compile_option_t *option;
103
- #if SUPPORT_JOKE
104
- st_table *labels_table;
105
- #endif
106
- };
107
-
108
- /* defined? */
109
-
110
- enum defined_type {
111
- DEFINED_NIL = 1,
112
- DEFINED_IVAR,
113
- DEFINED_LVAR,
114
- DEFINED_GVAR,
115
- DEFINED_CVAR,
116
- DEFINED_CONST,
117
- DEFINED_METHOD,
118
- DEFINED_YIELD,
119
- DEFINED_ZSUPER,
120
- DEFINED_SELF,
121
- DEFINED_TRUE,
122
- DEFINED_FALSE,
123
- DEFINED_ASGN,
124
- DEFINED_EXPR,
125
- DEFINED_IVAR2,
126
- DEFINED_REF,
127
- DEFINED_FUNC
128
- };
129
-
130
- VALUE rb_iseq_defined_string(enum defined_type type);
131
-
132
- #define DEFAULT_SPECIAL_VAR_COUNT 2
133
-
134
- RUBY_SYMBOL_EXPORT_END
135
-
136
- #endif /* RUBY_COMPILE_H */