ruby-internal 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/bin/ruby-internal-node-dump +1 -1
  2. data/bin/ruby-internal-obfuscate +1 -1
  3. data/ext/internal/method/extconf.rb +4 -0
  4. data/ext/internal/method/internal_method.h +65 -0
  5. data/ext/internal/method/{method.h.rpp → internal_method.h.rpp} +21 -0
  6. data/ext/internal/method/method.c +69 -13
  7. data/ext/internal/module/classpath.c +12 -14
  8. data/ext/internal/module/extconf.rb +3 -2
  9. data/ext/internal/module/module.c +36 -15
  10. data/ext/internal/node/block.h.rpp +1 -0
  11. data/ext/internal/node/extconf.rb +0 -22
  12. data/ext/internal/node/global_entry.h +45 -3
  13. data/ext/internal/node/global_entry.h.rpp +12 -3
  14. data/ext/internal/node/node.c +42 -15
  15. data/ext/internal/node/node_type_descrip.c +16 -20
  16. data/ext/internal/node/node_type_descrip.c.rpp +1 -0
  17. data/ext/internal/node/nodeinfo.c +133 -281
  18. data/ext/internal/node/nodeinfo.c.rpp +8 -4
  19. data/ext/internal/node/nodeinfo.h.rpp +2 -1
  20. data/ext/internal/noex/noex.c +4 -0
  21. data/ext/internal/proc/proc.c +2 -2
  22. data/ext/internal/vm/constants/constants.c +2 -0
  23. data/ext/internal/vm/constants/extconf.rb +2 -0
  24. data/ext/internal/vm/control_frame/control_frame.c +21 -3
  25. data/ext/internal/vm/control_frame/extconf.rb +4 -0
  26. data/ext/internal/vm/inline_cache/inline_cache.c +12 -5
  27. data/ext/internal/vm/instruction/insns_info.c +141 -64
  28. data/ext/internal/vm/instruction/insns_info.c.rpp +3 -0
  29. data/ext/internal/vm/instruction/insns_info.h +80 -71
  30. data/ext/internal/vm/iseq/iseq.c +6 -6
  31. data/ext/internal/vm/iseq/iseq_load.inc.rpp +6 -3
  32. data/ext/mkmf-ruby-internal.rb +21 -1
  33. data/ext/ruby_source_dir.rb +6 -2
  34. data/post-setup.rb +1 -0
  35. data/pre-config.rb +9 -0
  36. data/run_tests.rb +1 -0
  37. data/test/test_method.rb +1 -1
  38. data/test/test_module.rb +1 -1
  39. metadata +309 -321
  40. data/ext/internal/method/method.h +0 -20
  41. data/ext/internal/yarv-headers/debug.h +0 -36
  42. data/ext/internal/yarv-headers/dln.h +0 -41
  43. data/ext/internal/yarv-headers/encdb.h +0 -147
  44. data/ext/internal/yarv-headers/eval_intern.h +0 -215
  45. data/ext/internal/yarv-headers/gc.h +0 -75
  46. data/ext/internal/yarv-headers/id.h +0 -163
  47. data/ext/internal/yarv-headers/iseq.h +0 -103
  48. data/ext/internal/yarv-headers/node.h +0 -516
  49. data/ext/internal/yarv-headers/parse.h +0 -188
  50. data/ext/internal/yarv-headers/regenc.h +0 -207
  51. data/ext/internal/yarv-headers/regint.h +0 -842
  52. data/ext/internal/yarv-headers/regparse.h +0 -351
  53. data/ext/internal/yarv-headers/revision.h +0 -1
  54. data/ext/internal/yarv-headers/thread_pthread.h +0 -24
  55. data/ext/internal/yarv-headers/thread_win32.h +0 -33
  56. data/ext/internal/yarv-headers/transcode_data.h +0 -106
  57. data/ext/internal/yarv-headers/transdb.h +0 -147
  58. data/ext/internal/yarv-headers/version.h +0 -54
  59. data/ext/internal/yarv-headers/vm_core.h +0 -646
  60. data/ext/internal/yarv-headers/vm_exec.h +0 -184
  61. data/ext/internal/yarv-headers/vm_insnhelper.h +0 -195
  62. data/ext/internal/yarv-headers/vm_opts.h +0 -51
  63. data/ext/rubypp.rb +0 -97
@@ -1,20 +0,0 @@
1
- #ifndef ruby_internal_method__h_
2
- #define ruby_internal_method__h_
3
-
4
- #include <ruby.h>
5
-
6
- #include "internal/node/ruby_internal_node.h"
7
-
8
- struct METHOD {
9
- VALUE oclass; /* class that holds the method */
10
- VALUE rclass; /* class of the receiver */
11
- VALUE recv;
12
- ID id, oid;
13
- NODE *body;
14
- };
15
-
16
- #define METHOD_OCLASS(m) m->oclass
17
- #define METHOD_RCLASS(m) m->rclass
18
-
19
- #endif
20
-
@@ -1,36 +0,0 @@
1
- /**********************************************************************
2
-
3
- debug.h - YARV Debug function interface
4
-
5
- $Author: ko1 $
6
- created at: 04/08/25 02:33:49 JST
7
-
8
- Copyright (C) 2004-2007 Koichi Sasada
9
-
10
- **********************************************************************/
11
-
12
- #ifndef RUBY_DEBUG_H
13
- #define RUBY_DEBUG_H
14
-
15
- #include "ruby/ruby.h"
16
- #include "node.h"
17
-
18
- #define dpv(h,v) ruby_debug_print_value(-1, 0, h, v)
19
- #define dp(v) ruby_debug_print_value(-1, 0, "", v)
20
- #define dpi(i) ruby_debug_print_id(-1, 0, "", i)
21
- #define dpn(n) ruby_debug_print_node(-1, 0, "", n)
22
-
23
- #define bp() ruby_debug_breakpoint()
24
-
25
- VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);
26
- ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id);
27
- NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);
28
- int ruby_debug_print_indent(int level, int debug_level, int indent_level);
29
- void ruby_debug_breakpoint(void);
30
- void ruby_debug_gc_check_func(void);
31
-
32
- #ifdef RUBY_DEBUG_ENV
33
- void ruby_set_debug_option(const char *str);
34
- #endif
35
-
36
- #endif /* RUBY_DEBUG_H */
@@ -1,41 +0,0 @@
1
- /**********************************************************************
2
-
3
- dln.h -
4
-
5
- $Author: nobu $
6
- created at: Wed Jan 19 16:53:09 JST 1994
7
-
8
- Copyright (C) 1993-2007 Yukihiro Matsumoto
9
-
10
- **********************************************************************/
11
-
12
- #ifndef DLN_H
13
- #define DLN_H
14
-
15
- #ifdef __cplusplus
16
- # ifndef HAVE_PROTOTYPES
17
- # define HAVE_PROTOTYPES 1
18
- # endif
19
- # ifndef HAVE_STDARG_PROTOTYPES
20
- # define HAVE_STDARG_PROTOTYPES 1
21
- # endif
22
- #endif
23
-
24
- #undef _
25
- #ifdef HAVE_PROTOTYPES
26
- # define _(args) args
27
- #else
28
- # define _(args) ()
29
- #endif
30
-
31
- DEPRECATED(char *dln_find_exe(const char*,const char*));
32
- DEPRECATED(char *dln_find_file(const char*,const char*));
33
- char *dln_find_exe_r(const char*,const char*,char*,int);
34
- char *dln_find_file_r(const char*,const char*,char*,int);
35
-
36
- #ifdef USE_DLN_A_OUT
37
- extern char *dln_argv0;
38
- #endif
39
-
40
- void *dln_load(const char*);
41
- #endif
@@ -1,147 +0,0 @@
1
- ENC_DEFINE("ASCII-8BIT");
2
- ENC_DEFINE("Big5");
3
- ENC_DEFINE("CP949");
4
- ENC_DEFINE("Emacs-Mule");
5
- ENC_DEFINE("EUC-JP");
6
- ENC_DEFINE("EUC-KR");
7
- ENC_DEFINE("EUC-TW");
8
- ENC_DEFINE("GB18030");
9
- ENC_DEFINE("GBK");
10
- ENC_DEFINE("ISO-8859-1");
11
- ENC_DEFINE("ISO-8859-2");
12
- ENC_DEFINE("ISO-8859-3");
13
- ENC_DEFINE("ISO-8859-4");
14
- ENC_DEFINE("ISO-8859-5");
15
- ENC_DEFINE("ISO-8859-6");
16
- ENC_DEFINE("ISO-8859-7");
17
- ENC_DEFINE("ISO-8859-8");
18
- ENC_DEFINE("ISO-8859-9");
19
- ENC_DEFINE("ISO-8859-10");
20
- ENC_DEFINE("ISO-8859-11");
21
- ENC_DEFINE("ISO-8859-13");
22
- ENC_DEFINE("ISO-8859-14");
23
- ENC_DEFINE("ISO-8859-15");
24
- ENC_DEFINE("ISO-8859-16");
25
- ENC_DEFINE("KOI8-R");
26
- ENC_DEFINE("KOI8-U");
27
- ENC_DEFINE("Shift_JIS");
28
- ENC_DEFINE("US-ASCII");
29
- ENC_DEFINE("UTF-8");
30
- ENC_DEFINE("UTF-16BE");
31
- ENC_DEFINE("UTF-16LE");
32
- ENC_DEFINE("UTF-32BE");
33
- ENC_DEFINE("UTF-32LE");
34
- ENC_DEFINE("Windows-1251");
35
- ENC_ALIAS("BINARY", "ASCII-8BIT");
36
- ENC_REPLICATE("IBM437", "ASCII-8BIT");
37
- ENC_ALIAS("CP437", "IBM437");
38
- ENC_REPLICATE("IBM737", "ASCII-8BIT");
39
- ENC_ALIAS("CP737", "IBM737");
40
- ENC_REPLICATE("IBM775", "ASCII-8BIT");
41
- ENC_ALIAS("CP775", "IBM775");
42
- ENC_REPLICATE("CP850", "ASCII-8BIT");
43
- ENC_ALIAS("IBM850", "CP850");
44
- ENC_REPLICATE("IBM852", "ASCII-8BIT");
45
- ENC_REPLICATE("CP852", "IBM852");
46
- ENC_REPLICATE("IBM855", "ASCII-8BIT");
47
- ENC_REPLICATE("CP855", "IBM855");
48
- ENC_REPLICATE("IBM857", "ASCII-8BIT");
49
- ENC_ALIAS("CP857", "IBM857");
50
- ENC_REPLICATE("IBM860", "ASCII-8BIT");
51
- ENC_ALIAS("CP860", "IBM860");
52
- ENC_REPLICATE("IBM861", "ASCII-8BIT");
53
- ENC_ALIAS("CP861", "IBM861");
54
- ENC_REPLICATE("IBM862", "ASCII-8BIT");
55
- ENC_ALIAS("CP862", "IBM862");
56
- ENC_REPLICATE("IBM863", "ASCII-8BIT");
57
- ENC_ALIAS("CP863", "IBM863");
58
- ENC_REPLICATE("IBM864", "ASCII-8BIT");
59
- ENC_ALIAS("CP864", "IBM864");
60
- ENC_REPLICATE("IBM865", "ASCII-8BIT");
61
- ENC_ALIAS("CP865", "IBM865");
62
- ENC_REPLICATE("IBM866", "ASCII-8BIT");
63
- ENC_ALIAS("CP866", "IBM866");
64
- ENC_REPLICATE("IBM869", "ASCII-8BIT");
65
- ENC_ALIAS("CP869", "IBM869");
66
- ENC_REPLICATE("Windows-1258", "ASCII-8BIT");
67
- ENC_ALIAS("CP1258", "Windows-1258");
68
- ENC_REPLICATE("GB1988", "ASCII-8BIT");
69
- ENC_REPLICATE("macCentEuro", "ASCII-8BIT");
70
- ENC_REPLICATE("macCroatian", "ASCII-8BIT");
71
- ENC_REPLICATE("macCyrillic", "ASCII-8BIT");
72
- ENC_REPLICATE("macGreek", "ASCII-8BIT");
73
- ENC_REPLICATE("macIceland", "ASCII-8BIT");
74
- ENC_REPLICATE("macRoman", "ASCII-8BIT");
75
- ENC_REPLICATE("macRomania", "ASCII-8BIT");
76
- ENC_REPLICATE("macThai", "ASCII-8BIT");
77
- ENC_REPLICATE("macTurkish", "ASCII-8BIT");
78
- ENC_REPLICATE("macUkraine", "ASCII-8BIT");
79
- ENC_ALIAS("CP950", "BIG5");
80
- ENC_REPLICATE("stateless-ISO-2022-JP", "Emacs-Mule");
81
- ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese Environment Version 1.1 */;
82
- ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */;
83
- ENC_ALIAS("euc-jp-ms", "eucJP-ms");
84
- ENC_REPLICATE("CP51932", "EUC-JP");
85
- ENC_ALIAS("eucKR", "EUC-KR");
86
- ENC_ALIAS("eucTW", "EUC-TW");
87
- ENC_ALIAS("EUC-CN", "GB2312");
88
- ENC_ALIAS("eucCN", "GB2312");
89
- ENC_REPLICATE("GB12345", "GB2312");
90
- ENC_ALIAS("CP936", "GBK");
91
- ENC_DUMMY("ISO-2022-JP");
92
- ENC_ALIAS("ISO2022-JP", "ISO-2022-JP");
93
- ENC_REPLICATE("ISO-2022-JP-2", "ISO-2022-JP");
94
- ENC_ALIAS("ISO2022-JP2", "ISO-2022-JP-2");
95
- ENC_ALIAS("ISO8859-1", "ISO-8859-1");
96
- ENC_REPLICATE("Windows-1252", "ISO-8859-1");
97
- ENC_ALIAS("CP1252", "Windows-1252");
98
- ENC_ALIAS("ISO8859-2", "ISO-8859-2");
99
- ENC_REPLICATE("Windows-1250", "ISO-8859-2");
100
- ENC_ALIAS("CP1250", "Windows-1250");
101
- ENC_ALIAS("ISO8859-3", "ISO-8859-3");
102
- ENC_ALIAS("ISO8859-4", "ISO-8859-4");
103
- ENC_ALIAS("ISO8859-5", "ISO-8859-5");
104
- ENC_ALIAS("ISO8859-6", "ISO-8859-6");
105
- ENC_REPLICATE("Windows-1256", "ISO-8859-6");
106
- ENC_ALIAS("CP1256", "Windows-1256");
107
- ENC_ALIAS("ISO8859-7", "ISO-8859-7");
108
- ENC_REPLICATE("Windows-1253", "ISO-8859-7");
109
- ENC_ALIAS("CP1253", "Windows-1253");
110
- ENC_ALIAS("ISO8859-8", "ISO-8859-8");
111
- ENC_REPLICATE("Windows-1255", "ISO-8859-8");
112
- ENC_ALIAS("CP1255", "Windows-1255");
113
- ENC_ALIAS("ISO8859-9", "ISO-8859-9");
114
- ENC_REPLICATE("Windows-1254", "ISO-8859-9");
115
- ENC_ALIAS("CP1254", "Windows-1254");
116
- ENC_ALIAS("ISO8859-10", "ISO-8859-10");
117
- ENC_ALIAS("ISO8859-11", "ISO-8859-11");
118
- ENC_REPLICATE("TIS-620", "ISO-8859-11");
119
- ENC_REPLICATE("Windows-874", "ISO-8859-11");
120
- ENC_ALIAS("CP874", "Windows-874");
121
- ENC_ALIAS("ISO8859-13", "ISO-8859-13");
122
- ENC_REPLICATE("Windows-1257", "ISO-8859-13");
123
- ENC_ALIAS("CP1257", "Windows-1257");
124
- ENC_ALIAS("ISO8859-14", "ISO-8859-14");
125
- ENC_ALIAS("ISO8859-15", "ISO-8859-15");
126
- ENC_ALIAS("ISO8859-16", "ISO-8859-16");
127
- ENC_ALIAS("CP878", "KOI8-R");
128
- ENC_ALIAS("SJIS", "Shift_JIS");
129
- ENC_REPLICATE("Windows-31J", "Shift_JIS");
130
- ENC_ALIAS("CP932", "Windows-31J");
131
- ENC_ALIAS("csWindows31J", "Windows-31J") /* IANA. IE6 don't accept Windows-31J but csWindows31J. */;
132
- ENC_REPLICATE("MacJapanese", "Shift_JIS");
133
- ENC_ALIAS("MacJapan", "MacJapanese");
134
- ENC_ALIAS("ASCII", "US-ASCII");
135
- ENC_ALIAS("ANSI_X3.4-1968", "US-ASCII");
136
- ENC_ALIAS("646", "US-ASCII");
137
- ENC_DUMMY("UTF-7");
138
- ENC_ALIAS("CP65000", "UTF-7");
139
- ENC_ALIAS("CP65001", "UTF-8");
140
- ENC_REPLICATE("UTF8-MAC", "UTF-8");
141
- ENC_ALIAS("UTF-8-MAC", "UTF8-MAC");
142
- ENC_ALIAS("UCS-2BE", "UTF-16BE");
143
- ENC_ALIAS("UCS-4BE", "UTF-32BE");
144
- ENC_ALIAS("UCS-4LE", "UTF-32LE");
145
- ENC_ALIAS("CP1251", "Windows-1251");
146
-
147
- #define ENCODING_COUNT 83
@@ -1,215 +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 = GC_GUARDED_PTR_REF((rb_block_t *)(th)->cfp->lfp[0]); \
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
- #include <crt_externs.h>
32
- #endif
33
-
34
- /* Make alloca work the best possible way. */
35
- #ifdef __GNUC__
36
- # ifndef atarist
37
- # ifndef alloca
38
- # define alloca __builtin_alloca
39
- # endif
40
- # endif /* atarist */
41
- #else
42
- # ifdef HAVE_ALLOCA_H
43
- # include <alloca.h>
44
- # else
45
- # ifdef _AIX
46
- #pragma alloca
47
- # else
48
- # ifndef alloca /* predefined by HP cc +Olibcalls */
49
- void *alloca();
50
- # endif
51
- # endif /* AIX */
52
- # endif /* HAVE_ALLOCA_H */
53
- #endif /* __GNUC__ */
54
-
55
- #ifndef HAVE_STRING_H
56
- char *strrchr(const char *, const char);
57
- #endif
58
-
59
- #ifdef HAVE_UNISTD_H
60
- #include <unistd.h>
61
- #endif
62
-
63
- #ifdef HAVE_NET_SOCKET_H
64
- #include <net/socket.h>
65
- #endif
66
-
67
- #define ruby_setjmp(env) RUBY_SETJMP(env)
68
- #define ruby_longjmp(env,val) RUBY_LONGJMP(env,val)
69
- #ifdef __CYGWIN__
70
- # ifndef _setjmp
71
- int _setjmp(jmp_buf);
72
- # endif
73
- # ifndef _longjmp
74
- NORETURN(void _longjmp(jmp_buf, int));
75
- # endif
76
- #endif
77
-
78
- #include <sys/types.h>
79
- #include <signal.h>
80
- #include <errno.h>
81
-
82
- #ifdef HAVE_SYS_SELECT_H
83
- #include <sys/select.h>
84
- #endif
85
-
86
- /*
87
- Solaris sys/select.h switches select to select_large_fdset to support larger
88
- file descriptors if FD_SETSIZE is larger than 1024 on 32bit environment.
89
- But Ruby doesn't change FD_SETSIZE because fd_set is allocated dynamically.
90
- So following definition is required to use select_large_fdset.
91
- */
92
- #ifdef HAVE_SELECT_LARGE_FDSET
93
- #define select(n, r, w, e, t) select_large_fdset(n, r, w, e, t)
94
- #endif
95
-
96
- #ifdef HAVE_SYS_PARAM_H
97
- #include <sys/param.h>
98
- #endif
99
-
100
- #include <sys/stat.h>
101
-
102
- #define SAVE_ROOT_JMPBUF(th, stmt) do \
103
- if (ruby_setjmp((th)->root_jmpbuf) == 0) { \
104
- stmt; \
105
- } \
106
- else { \
107
- rb_fiber_start(); \
108
- } while (0)
109
-
110
- #define TH_PUSH_TAG(th) do { \
111
- rb_thread_t * const _th = th; \
112
- struct rb_vm_tag _tag; \
113
- _tag.tag = 0; \
114
- _tag.prev = _th->tag; \
115
- _th->tag = &_tag;
116
-
117
- #define TH_POP_TAG() \
118
- _th->tag = _tag.prev; \
119
- } while (0)
120
-
121
- #define TH_POP_TAG2() \
122
- _th->tag = _tag.prev
123
-
124
- #define PUSH_TAG() TH_PUSH_TAG(GET_THREAD())
125
- #define POP_TAG() TH_POP_TAG()
126
-
127
- #define TH_EXEC_TAG() ruby_setjmp(_th->tag->buf)
128
-
129
- #define EXEC_TAG() \
130
- TH_EXEC_TAG()
131
-
132
- #define TH_JUMP_TAG(th, st) do { \
133
- ruby_longjmp(th->tag->buf,(st)); \
134
- } while (0)
135
-
136
- #define JUMP_TAG(st) TH_JUMP_TAG(GET_THREAD(), st)
137
-
138
- enum ruby_tag_type {
139
- RUBY_TAG_RETURN = 0x1,
140
- RUBY_TAG_BREAK = 0x2,
141
- RUBY_TAG_NEXT = 0x3,
142
- RUBY_TAG_RETRY = 0x4,
143
- RUBY_TAG_REDO = 0x5,
144
- RUBY_TAG_RAISE = 0x6,
145
- RUBY_TAG_THROW = 0x7,
146
- RUBY_TAG_FATAL = 0x8,
147
- RUBY_TAG_MASK = 0xf
148
- };
149
- #define TAG_RETURN RUBY_TAG_RETURN
150
- #define TAG_BREAK RUBY_TAG_BREAK
151
- #define TAG_NEXT RUBY_TAG_NEXT
152
- #define TAG_RETRY RUBY_TAG_RETRY
153
- #define TAG_REDO RUBY_TAG_REDO
154
- #define TAG_RAISE RUBY_TAG_RAISE
155
- #define TAG_THROW RUBY_TAG_THROW
156
- #define TAG_FATAL RUBY_TAG_FATAL
157
- #define TAG_MASK RUBY_TAG_MASK
158
-
159
- #define NEW_THROW_OBJECT(val, pt, st) \
160
- ((VALUE)NEW_NODE(NODE_LIT, (val), (pt), (st)))
161
- #define SET_THROWOBJ_CATCH_POINT(obj, val) \
162
- (RNODE((obj))->u2.value = (val))
163
- #define SET_THROWOBJ_STATE(obj, val) \
164
- (RNODE((obj))->u3.value = (val))
165
-
166
- #define GET_THROWOBJ_VAL(obj) ((VALUE)RNODE((obj))->u1.value)
167
- #define GET_THROWOBJ_CATCH_POINT(obj) ((VALUE*)RNODE((obj))->u2.value)
168
- #define GET_THROWOBJ_STATE(obj) ((int)RNODE((obj))->u3.value)
169
-
170
- #define SCOPE_TEST(f) (rb_vm_cref()->nd_visi & (f))
171
- #define SCOPE_CHECK(f) (rb_vm_cref()->nd_visi == (f))
172
- #define SCOPE_SET(f) (rb_vm_cref()->nd_visi = (f))
173
-
174
- #define CHECK_STACK_OVERFLOW(cfp, margin) do \
175
- if (((VALUE *)(cfp)->sp) + (margin) + sizeof(rb_control_frame_t) >= ((VALUE *)cfp)) { \
176
- rb_exc_raise(sysstack_error); \
177
- } \
178
- while (0)
179
-
180
- void rb_thread_cleanup(void);
181
- void rb_thread_wait_other_threads(void);
182
-
183
- enum {
184
- RAISED_EXCEPTION = 1,
185
- RAISED_STACKOVERFLOW = 2,
186
- RAISED_NOMEMORY = 4
187
- };
188
- int rb_thread_set_raised(rb_thread_t *th);
189
- int rb_thread_reset_raised(rb_thread_t *th);
190
- #define rb_thread_raised_set(th, f) ((th)->raised_flag |= (f))
191
- #define rb_thread_raised_reset(th, f) ((th)->raised_flag &= ~(f))
192
- #define rb_thread_raised_p(th, f) (((th)->raised_flag & (f)) != 0)
193
- #define rb_thread_raised_clear(th) ((th)->raised_flag = 0)
194
-
195
- VALUE rb_f_eval(int argc, VALUE *argv, VALUE self);
196
- VALUE rb_make_exception(int argc, VALUE *argv);
197
-
198
- NORETURN(void rb_fiber_start(void));
199
-
200
- NORETURN(void rb_print_undef(VALUE, ID, int));
201
- NORETURN(void rb_vm_localjump_error(const char *,VALUE, int));
202
- NORETURN(void rb_vm_jump_tag_but_local_jump(int, VALUE));
203
- NORETURN(void rb_raise_method_missing(rb_thread_t *th, int argc, VALUE *argv,
204
- VALUE obj, int call_status));
205
-
206
- VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val);
207
- NODE *rb_vm_cref(void);
208
- VALUE rb_obj_is_proc(VALUE);
209
- VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename);
210
- void rb_thread_terminate_all(void);
211
- VALUE rb_vm_top_self();
212
- VALUE rb_vm_cbase(void);
213
- void rb_trap_restore_mask(void);
214
-
215
- #endif /* RUBY_EVAL_INTERN_H */