looksee 3.0.0-universal-java-1.8

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 (60) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +66 -0
  3. data/LICENSE +22 -0
  4. data/README.markdown +175 -0
  5. data/Rakefile +13 -0
  6. data/ext/extconf.rb +19 -0
  7. data/ext/mri/1.9.2/debug.h +36 -0
  8. data/ext/mri/1.9.2/id.h +170 -0
  9. data/ext/mri/1.9.2/method.h +103 -0
  10. data/ext/mri/1.9.2/node.h +483 -0
  11. data/ext/mri/1.9.2/thread_pthread.h +27 -0
  12. data/ext/mri/1.9.2/vm_core.h +707 -0
  13. data/ext/mri/1.9.2/vm_opts.h +51 -0
  14. data/ext/mri/1.9.3/atomic.h +56 -0
  15. data/ext/mri/1.9.3/debug.h +41 -0
  16. data/ext/mri/1.9.3/id.h +175 -0
  17. data/ext/mri/1.9.3/internal.h +227 -0
  18. data/ext/mri/1.9.3/internal_falcon.h +248 -0
  19. data/ext/mri/1.9.3/method.h +105 -0
  20. data/ext/mri/1.9.3/node.h +503 -0
  21. data/ext/mri/1.9.3/thread_pthread.h +51 -0
  22. data/ext/mri/1.9.3/vm_core.h +755 -0
  23. data/ext/mri/1.9.3/vm_opts.h +51 -0
  24. data/ext/mri/2.0.0/internal.h +378 -0
  25. data/ext/mri/2.0.0/method.h +138 -0
  26. data/ext/mri/2.1.0/internal.h +889 -0
  27. data/ext/mri/2.1.0/method.h +142 -0
  28. data/ext/mri/2.2.0/internal.h +1182 -0
  29. data/ext/mri/2.2.0/method.h +141 -0
  30. data/ext/mri/env-1.8.h +27 -0
  31. data/ext/mri/eval_c-1.8.h +27 -0
  32. data/ext/mri/mri.c +309 -0
  33. data/ext/mri/node-1.9.h +35 -0
  34. data/ext/rbx/rbx.c +13 -0
  35. data/lib/looksee.rb +2 -0
  36. data/lib/looksee/JRuby.jar +0 -0
  37. data/lib/looksee/adapter.rb +8 -0
  38. data/lib/looksee/adapter/base.rb +105 -0
  39. data/lib/looksee/adapter/rubinius.rb +84 -0
  40. data/lib/looksee/clean.rb +169 -0
  41. data/lib/looksee/columnizer.rb +73 -0
  42. data/lib/looksee/core_ext.rb +48 -0
  43. data/lib/looksee/editor.rb +64 -0
  44. data/lib/looksee/help.rb +54 -0
  45. data/lib/looksee/inspector.rb +70 -0
  46. data/lib/looksee/lookup_path.rb +95 -0
  47. data/lib/looksee/rbx.bundle +0 -0
  48. data/lib/looksee/version.rb +11 -0
  49. data/spec/looksee/adapter_spec.rb +588 -0
  50. data/spec/looksee/clean_spec.rb +41 -0
  51. data/spec/looksee/columnizer_spec.rb +52 -0
  52. data/spec/looksee/core_ext_spec.rb +17 -0
  53. data/spec/looksee/editor_spec.rb +107 -0
  54. data/spec/looksee/inspector_spec.rb +179 -0
  55. data/spec/looksee/lookup_path_spec.rb +87 -0
  56. data/spec/spec_helper.rb +29 -0
  57. data/spec/support/core_ext.rb +25 -0
  58. data/spec/support/temporary_classes.rb +78 -0
  59. data/spec/support/test_adapter.rb +83 -0
  60. metadata +116 -0
@@ -0,0 +1,51 @@
1
+ /*-*-c-*-*/
2
+ /**********************************************************************
3
+
4
+ vm_opts.h - VM optimize option
5
+
6
+ $Author: akr $
7
+
8
+ Copyright (C) 2004-2007 Koichi Sasada
9
+
10
+ **********************************************************************/
11
+
12
+
13
+ #ifndef RUBY_VM_OPTS_H
14
+ #define RUBY_VM_OPTS_H
15
+
16
+ /* Compile options.
17
+ * You can change these options at runtime by VM::CompileOption.
18
+ * Following definitions are default values.
19
+ */
20
+
21
+ #define OPT_TRACE_INSTRUCTION 1
22
+ #define OPT_TAILCALL_OPTIMIZATION 0
23
+ #define OPT_PEEPHOLE_OPTIMIZATION 1
24
+ #define OPT_SPECIALISED_INSTRUCTION 1
25
+ #define OPT_INLINE_CONST_CACHE 1
26
+
27
+
28
+ /* Build Options.
29
+ * You can't change these options at runtime.
30
+ */
31
+
32
+ /* C compiler depend */
33
+ #define OPT_DIRECT_THREADED_CODE 1
34
+ #define OPT_TOKEN_THREADED_CODE 0
35
+ #define OPT_CALL_THREADED_CODE 0
36
+
37
+ /* VM running option */
38
+ #define OPT_CHECKED_RUN 1
39
+ #define OPT_INLINE_METHOD_CACHE 1
40
+ #define OPT_BLOCKINLINING 0
41
+
42
+ /* architecture independent, affects generated code */
43
+ #define OPT_OPERANDS_UNIFICATION 0
44
+ #define OPT_INSTRUCTIONS_UNIFICATION 0
45
+ #define OPT_UNIFY_ALL_COMBINATION 0
46
+ #define OPT_STACK_CACHING 0
47
+
48
+ /* misc */
49
+ #define SUPPORT_JOKE 0
50
+
51
+ #endif /* RUBY_VM_OPTS_H */
@@ -0,0 +1,56 @@
1
+ #ifndef RUBY_ATOMIC_H
2
+ #define RUBY_ATOMIC_H
3
+
4
+ #ifdef _WIN32
5
+ #if defined _MSC_VER && _MSC_VER > 1200
6
+ #pragma intrinsic(_InterlockedOr)
7
+ #endif
8
+ typedef LONG rb_atomic_t;
9
+
10
+ # define ATOMIC_SET(var, val) InterlockedExchange(&(var), (val))
11
+ # define ATOMIC_INC(var) InterlockedIncrement(&(var))
12
+ # define ATOMIC_DEC(var) InterlockedDecrement(&(var))
13
+ #if defined __GNUC__
14
+ # define ATOMIC_OR(var, val) __asm__("lock\n\t" "orl\t%1, %0" : "=m"(var) : "Ir"(val))
15
+ #elif defined _MSC_VER && _MSC_VER <= 1200
16
+ # define ATOMIC_OR(var, val) rb_w32_atomic_or(&(var), (val))
17
+ static inline void
18
+ rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val)
19
+ {
20
+ #ifdef _M_IX86
21
+ __asm mov eax, var;
22
+ __asm mov ecx, val;
23
+ __asm lock or [eax], ecx;
24
+ #else
25
+ #error unsupported architecture
26
+ #endif
27
+ }
28
+ #else
29
+ # define ATOMIC_OR(var, val) _InterlockedOr(&(var), (val))
30
+ #endif
31
+ # define ATOMIC_EXCHANGE(var, val) InterlockedExchange(&(var), (val))
32
+
33
+ #elif defined HAVE_GCC_ATOMIC_BUILTINS
34
+ /* @shyouhei hack to support atomic operations in case of gcc. Gcc
35
+ * has its own pseudo-insns to support them. See info, or
36
+ * http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html */
37
+
38
+ typedef unsigned int rb_atomic_t; /* Anything OK */
39
+ # define ATOMIC_SET(var, val) __sync_lock_test_and_set(&(var), (val))
40
+ # define ATOMIC_INC(var) __sync_fetch_and_add(&(var), 1)
41
+ # define ATOMIC_DEC(var) __sync_fetch_and_sub(&(var), 1)
42
+ # define ATOMIC_OR(var, val) __sync_or_and_fetch(&(var), (val))
43
+ # define ATOMIC_EXCHANGE(var, val) __sync_lock_test_and_set(&(var), (val))
44
+
45
+ #else
46
+ typedef int rb_atomic_t;
47
+ extern rb_atomic_t ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val);
48
+
49
+ # define ATOMIC_SET(var, val) ((var) = (val))
50
+ # define ATOMIC_INC(var) (++(var))
51
+ # define ATOMIC_DEC(var) (--(var))
52
+ # define ATOMIC_OR(var, val) ((var) |= (val))
53
+ # define ATOMIC_EXCHANGE(var, val) ruby_atomic_exchange(&(var), (val))
54
+ #endif
55
+
56
+ #endif /* RUBY_ATOMIC_H */
@@ -0,0 +1,41 @@
1
+ /**********************************************************************
2
+
3
+ debug.h - YARV Debug function interface
4
+
5
+ $Author: akr $
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
+ #if defined __GNUC__ && __GNUC__ >= 4
19
+ #pragma GCC visibility push(default)
20
+ #endif
21
+
22
+ #define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))
23
+ #define dp(v) ruby_debug_print_value(-1, 0, "", (v))
24
+ #define dpi(i) ruby_debug_print_id(-1, 0, "", (i))
25
+ #define dpn(n) ruby_debug_print_node(-1, 0, "", (n))
26
+
27
+ #define bp() ruby_debug_breakpoint()
28
+
29
+ VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);
30
+ ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id);
31
+ NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);
32
+ int ruby_debug_print_indent(int level, int debug_level, int indent_level);
33
+ void ruby_debug_breakpoint(void);
34
+ void ruby_debug_gc_check_func(void);
35
+ void ruby_set_debug_option(const char *str);
36
+
37
+ #if defined __GNUC__ && __GNUC__ >= 4
38
+ #pragma GCC visibility pop
39
+ #endif
40
+
41
+ #endif /* RUBY_DEBUG_H */
@@ -0,0 +1,175 @@
1
+ /* DO NOT EDIT THIS FILE DIRECTLY */
2
+ /**********************************************************************
3
+
4
+ id.h -
5
+
6
+ $Author: akr $
7
+ created at: Sun Oct 19 21:12:51 2008
8
+
9
+ Copyright (C) 2007 Koichi Sasada
10
+
11
+ **********************************************************************/
12
+
13
+ #ifndef RUBY_ID_H
14
+ #define RUBY_ID_H
15
+
16
+ #define ID_SCOPE_SHIFT 3
17
+ #define ID_SCOPE_MASK 0x07
18
+ #define ID_LOCAL 0x00
19
+ #define ID_INSTANCE 0x01
20
+ #define ID_GLOBAL 0x03
21
+ #define ID_ATTRSET 0x04
22
+ #define ID_CONST 0x05
23
+ #define ID_CLASS 0x06
24
+ #define ID_JUNK 0x07
25
+ #define ID_INTERNAL ID_JUNK
26
+
27
+ #ifdef USE_PARSE_H
28
+ #include "parse.h"
29
+ #endif
30
+
31
+ #include "vm_opts.h" /* for SUPPORT_JOKE */
32
+
33
+ #define symIFUNC ID2SYM(idIFUNC)
34
+ #define symCFUNC ID2SYM(idCFUNC)
35
+
36
+ #if !defined tLAST_TOKEN && defined YYTOKENTYPE
37
+ #define tLAST_TOKEN tLAST_TOKEN
38
+ #endif
39
+
40
+ enum ruby_method_ids {
41
+ #ifndef tLAST_TOKEN
42
+ tUPLUS = 321,
43
+ tUMINUS = 322,
44
+ tPOW = 323,
45
+ tCMP = 324,
46
+ tEQ = 325,
47
+ tEQQ = 326,
48
+ tNEQ = 327,
49
+ tGEQ = 328,
50
+ tLEQ = 329,
51
+ tANDOP = 330,
52
+ tOROP = 331,
53
+ tMATCH = 332,
54
+ tNMATCH = 333,
55
+ tDOT2 = 334,
56
+ tDOT3 = 335,
57
+ tAREF = 336,
58
+ tASET = 337,
59
+ tLSHFT = 338,
60
+ tRSHFT = 339,
61
+ tLAMBDA = 352,
62
+ idNULL = 365,
63
+ idRespond_to = 366,
64
+ idIFUNC = 367,
65
+ idCFUNC = 368,
66
+ id_core_set_method_alias = 369,
67
+ id_core_set_variable_alias = 370,
68
+ id_core_undef_method = 371,
69
+ id_core_define_method = 372,
70
+ id_core_define_singleton_method = 373,
71
+ id_core_set_postexe = 374,
72
+ tLAST_TOKEN = 375,
73
+ #endif
74
+ idDot2 = tDOT2,
75
+ idDot3 = tDOT3,
76
+ idUPlus = tUPLUS,
77
+ idUMinus = tUMINUS,
78
+ idPow = tPOW,
79
+ idCmp = tCMP,
80
+ idPLUS = '+',
81
+ idMINUS = '-',
82
+ idMULT = '*',
83
+ idDIV = '/',
84
+ idMOD = '%',
85
+ idLT = '<',
86
+ idLTLT = tLSHFT,
87
+ idLE = tLEQ,
88
+ idGT = '>',
89
+ idGE = tGEQ,
90
+ idEq = tEQ,
91
+ idEqq = tEQQ,
92
+ idNeq = tNEQ,
93
+ idNot = '!',
94
+ idBackquote = '`',
95
+ idEqTilde = tMATCH,
96
+ idNeqTilde = tNMATCH,
97
+ idAREF = tAREF,
98
+ idASET = tASET,
99
+ idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
100
+ tIntern,
101
+ tMethodMissing,
102
+ tLength,
103
+ tSize,
104
+ tGets,
105
+ tSucc,
106
+ tEach,
107
+ tLambda,
108
+ tSend,
109
+ t__send__,
110
+ tInitialize,
111
+ tUScore,
112
+ #if SUPPORT_JOKE
113
+ tBitblt,
114
+ tAnswer,
115
+ #endif
116
+ tLAST_ID,
117
+ #define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
118
+ #if SUPPORT_JOKE
119
+ TOKEN2ID(Bitblt),
120
+ TOKEN2ID(Answer),
121
+ #endif
122
+ TOKEN2ID(Intern),
123
+ TOKEN2ID(MethodMissing),
124
+ TOKEN2ID(Length),
125
+ TOKEN2ID(Size),
126
+ TOKEN2ID(Gets),
127
+ TOKEN2ID(Succ),
128
+ TOKEN2ID(Each),
129
+ TOKEN2ID(Lambda),
130
+ TOKEN2ID(Send),
131
+ TOKEN2ID(__send__),
132
+ TOKEN2ID(Initialize),
133
+ TOKEN2ID(UScore),
134
+ TOKEN2ID(LAST_ID)
135
+ };
136
+
137
+ #ifdef tLAST_TOKEN
138
+ struct ruby_method_ids_check {
139
+ #define ruby_method_id_check_for(name, value) \
140
+ int checking_for_##name[name == (value) ? 1 : -1]
141
+ ruby_method_id_check_for(tUPLUS, 321);
142
+ ruby_method_id_check_for(tUMINUS, 322);
143
+ ruby_method_id_check_for(tPOW, 323);
144
+ ruby_method_id_check_for(tCMP, 324);
145
+ ruby_method_id_check_for(tEQ, 325);
146
+ ruby_method_id_check_for(tEQQ, 326);
147
+ ruby_method_id_check_for(tNEQ, 327);
148
+ ruby_method_id_check_for(tGEQ, 328);
149
+ ruby_method_id_check_for(tLEQ, 329);
150
+ ruby_method_id_check_for(tANDOP, 330);
151
+ ruby_method_id_check_for(tOROP, 331);
152
+ ruby_method_id_check_for(tMATCH, 332);
153
+ ruby_method_id_check_for(tNMATCH, 333);
154
+ ruby_method_id_check_for(tDOT2, 334);
155
+ ruby_method_id_check_for(tDOT3, 335);
156
+ ruby_method_id_check_for(tAREF, 336);
157
+ ruby_method_id_check_for(tASET, 337);
158
+ ruby_method_id_check_for(tLSHFT, 338);
159
+ ruby_method_id_check_for(tRSHFT, 339);
160
+ ruby_method_id_check_for(tLAMBDA, 352);
161
+ ruby_method_id_check_for(idNULL, 365);
162
+ ruby_method_id_check_for(idRespond_to, 366);
163
+ ruby_method_id_check_for(idIFUNC, 367);
164
+ ruby_method_id_check_for(idCFUNC, 368);
165
+ ruby_method_id_check_for(id_core_set_method_alias, 369);
166
+ ruby_method_id_check_for(id_core_set_variable_alias, 370);
167
+ ruby_method_id_check_for(id_core_undef_method, 371);
168
+ ruby_method_id_check_for(id_core_define_method, 372);
169
+ ruby_method_id_check_for(id_core_define_singleton_method, 373);
170
+ ruby_method_id_check_for(id_core_set_postexe, 374);
171
+ ruby_method_id_check_for(tLAST_TOKEN, 375);
172
+ };
173
+ #endif
174
+
175
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,227 @@
1
+ /**********************************************************************
2
+
3
+ internal.h -
4
+
5
+ $Author$
6
+ created at: Tue May 17 11:42:20 JST 2011
7
+
8
+ Copyright (C) 2011 Yukihiro Matsumoto
9
+
10
+ **********************************************************************/
11
+
12
+ #ifndef RUBY_INTERNAL_H
13
+ #define RUBY_INTERNAL_H 1
14
+
15
+ #if defined(__cplusplus)
16
+ extern "C" {
17
+ #if 0
18
+ } /* satisfy cc-mode */
19
+ #endif
20
+ #endif
21
+
22
+ struct rb_deprecated_classext_struct {
23
+ char conflict[sizeof(VALUE) * 3];
24
+ };
25
+
26
+ struct rb_classext_struct {
27
+ VALUE super;
28
+ struct st_table *iv_tbl;
29
+ struct st_table *const_tbl;
30
+ };
31
+
32
+ #undef RCLASS_SUPER
33
+ #define RCLASS_EXT(c) (RCLASS(c)->ptr)
34
+ #define RCLASS_SUPER(c) (RCLASS_EXT(c)->super)
35
+ #define RCLASS_IV_TBL(c) (RCLASS_EXT(c)->iv_tbl)
36
+ #define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)->const_tbl)
37
+ #define RCLASS_M_TBL(c) (RCLASS(c)->m_tbl)
38
+ #define RCLASS_IV_INDEX_TBL(c) (RCLASS(c)->iv_index_tbl)
39
+
40
+ struct vtm; /* defined by timev.h */
41
+
42
+ /* array.c */
43
+ VALUE rb_ary_last(int, VALUE *, VALUE);
44
+
45
+ /* bignum.c */
46
+ VALUE rb_big_fdiv(VALUE x, VALUE y);
47
+ VALUE rb_big_uminus(VALUE x);
48
+
49
+ /* class.c */
50
+ VALUE rb_obj_methods(int argc, VALUE *argv, VALUE obj);
51
+ VALUE rb_obj_protected_methods(int argc, VALUE *argv, VALUE obj);
52
+ VALUE rb_obj_private_methods(int argc, VALUE *argv, VALUE obj);
53
+ VALUE rb_obj_public_methods(int argc, VALUE *argv, VALUE obj);
54
+ int rb_obj_basic_to_s_p(VALUE);
55
+ void Init_class_hierarchy(void);
56
+
57
+ /* compile.c */
58
+ int rb_dvar_defined(ID);
59
+ int rb_local_defined(ID);
60
+ int rb_parse_in_eval(void);
61
+ int rb_parse_in_main(void);
62
+ VALUE rb_insns_name_array(void);
63
+
64
+ /* debug.c */
65
+ PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);
66
+
67
+ /* dmyext.c */
68
+ void Init_ext(void);
69
+
70
+ /* encoding.c */
71
+ ID rb_id_encoding(void);
72
+
73
+ /* encoding.c */
74
+ void rb_gc_mark_encodings(void);
75
+
76
+ /* error.c */
77
+ NORETURN(PRINTF_ARGS(void rb_compile_bug(const char*, int, const char*, ...), 3, 4));
78
+ VALUE rb_check_backtrace(VALUE);
79
+ NORETURN(void rb_async_bug_errno(const char *,int));
80
+
81
+ /* eval_error.c */
82
+ void ruby_error_print(void);
83
+ VALUE rb_get_backtrace(VALUE info);
84
+
85
+ /* eval_jump.c */
86
+ void rb_call_end_proc(VALUE data);
87
+
88
+ /* file.c */
89
+ VALUE rb_home_dir(const char *user, VALUE result);
90
+ VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);
91
+ void Init_File(void);
92
+
93
+ /* gc.c */
94
+ void Init_heap(void);
95
+
96
+ /* inits.c */
97
+ void rb_call_inits(void);
98
+
99
+ /* io.c */
100
+ const char *ruby_get_inplace_mode(void);
101
+ void ruby_set_inplace_mode(const char *);
102
+ ssize_t rb_io_bufread(VALUE io, void *buf, size_t size);
103
+ void rb_stdio_set_default_encoding(void);
104
+
105
+ /* iseq.c */
106
+ VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
107
+ VALUE rb_iseq_clone(VALUE iseqval, VALUE newcbase);
108
+
109
+ /* load.c */
110
+ VALUE rb_get_load_path(void);
111
+
112
+ /* math.c */
113
+ VALUE rb_math_atan2(VALUE, VALUE);
114
+ VALUE rb_math_cos(VALUE);
115
+ VALUE rb_math_cosh(VALUE);
116
+ VALUE rb_math_exp(VALUE);
117
+ VALUE rb_math_hypot(VALUE, VALUE);
118
+ VALUE rb_math_log(int argc, VALUE *argv);
119
+ VALUE rb_math_sin(VALUE);
120
+ VALUE rb_math_sinh(VALUE);
121
+ VALUE rb_math_sqrt(VALUE);
122
+
123
+ /* newline.c */
124
+ void Init_newline(void);
125
+
126
+ /* numeric.c */
127
+ int rb_num_to_uint(VALUE val, unsigned int *ret);
128
+ int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl);
129
+
130
+ /* object.c */
131
+ VALUE rb_obj_equal(VALUE obj1, VALUE obj2);
132
+
133
+ /* parse.y */
134
+ VALUE rb_parser_get_yydebug(VALUE);
135
+ VALUE rb_parser_set_yydebug(VALUE, VALUE);
136
+
137
+ /* proc.c */
138
+ VALUE rb_proc_location(VALUE self);
139
+
140
+ /* rational.c */
141
+ VALUE rb_lcm(VALUE x, VALUE y);
142
+ VALUE rb_rational_reciprocal(VALUE x);
143
+
144
+ /* re.c */
145
+ VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);
146
+ VALUE rb_reg_check_preprocess(VALUE);
147
+
148
+ /* signal.c */
149
+ int rb_get_next_signal(void);
150
+
151
+ /* strftime.c */
152
+ size_t rb_strftime_timespec(char *s, size_t maxsize, const char *format, const struct vtm *vtm, struct timespec *ts, int gmt);
153
+
154
+ /* string.c */
155
+ int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);
156
+
157
+ /* struct.c */
158
+ VALUE rb_struct_init_copy(VALUE copy, VALUE s);
159
+
160
+ /* time.c */
161
+ struct timeval rb_time_timeval(VALUE);
162
+
163
+ /* thread.c */
164
+ VALUE rb_obj_is_mutex(VALUE obj);
165
+ VALUE ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always);
166
+ void rb_thread_execute_interrupts(VALUE th);
167
+ void rb_clear_trace_func(void);
168
+ VALUE rb_thread_backtrace(VALUE thval);
169
+ VALUE rb_get_coverages(void);
170
+
171
+ /* thread_pthread.c, thread_win32.c */
172
+ void Init_native_thread(void);
173
+
174
+ /* vm.c */
175
+ VALUE rb_obj_is_thread(VALUE obj);
176
+ void rb_vm_mark(void *ptr);
177
+ void Init_BareVM(void);
178
+ VALUE rb_vm_top_self(void);
179
+ void rb_thread_recycle_stack_release(VALUE *);
180
+ void rb_vm_change_state(void);
181
+ void rb_vm_inc_const_missing_count(void);
182
+ void rb_thread_mark(void *th);
183
+ const void **rb_vm_get_insns_address_table(void);
184
+
185
+ /* vm_dump.c */
186
+ void rb_vm_bugreport(void);
187
+
188
+ /* vm_eval.c */
189
+ void Init_vm_eval(void);
190
+ VALUE rb_current_realfilepath(void);
191
+
192
+ /* vm_method.c */
193
+ void Init_eval_method(void);
194
+
195
+ /* miniprelude.c, prelude.c */
196
+ void Init_prelude(void);
197
+
198
+ #if defined __GNUC__ && __GNUC__ >= 4
199
+ #pragma GCC visibility push(default)
200
+ #endif
201
+ const char *rb_objspace_data_type_name(VALUE obj);
202
+
203
+ /* Temporary. This API will be removed (renamed). */
204
+ VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
205
+
206
+ /* experimental.
207
+ * These APIs can be changed on Ruby 1.9.4 or later.
208
+ * We will change these APIs (spac, name and so on) if there are something wrong.
209
+ * If you use these APIs, catch up future changes.
210
+ */
211
+ void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
212
+ VALUE rb_thread_call_without_gvl(
213
+ rb_blocking_function_t *func, void *data1,
214
+ rb_unblock_function_t *ubf, void *data2);
215
+
216
+ #if defined __GNUC__ && __GNUC__ >= 4
217
+ #pragma GCC visibility pop
218
+ #endif
219
+
220
+ #if defined(__cplusplus)
221
+ #if 0
222
+ { /* satisfy cc-mode */
223
+ #endif
224
+ } /* extern "C" { */
225
+ #endif
226
+
227
+ #endif /* RUBY_INTERNAL_H */