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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ccan/list/list.h +28 -166
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/constant.h +3 -10
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/eval_intern.h +49 -89
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/gc.h +1 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/id.h +5 -15
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/insns.inc +107 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/insns_info.inc +45 -89
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/internal.h +164 -666
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/iseq.h +158 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/method.h +144 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/node.h +42 -18
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/node_name.inc +6 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/opt_sc.inc +0 -40
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/optunifs.inc +0 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/parse.h +8 -28
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/probes_helper.h +67 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regenc.h +16 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regint.h +10 -33
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regparse.h +1 -5
- data/lib/debase/ruby_core_source/ruby-2.2.8-p477/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ruby_atomic.h +5 -68
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/symbol.h +13 -33
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/thread_pthread.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/transcode_data.h +7 -23
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/version.h +10 -31
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm.inc +497 -542
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_core.h +305 -784
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_insnhelper.h +56 -50
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vm_opts.h +7 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vmtc.inc +0 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/constant.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/eval_intern.h +3 -4
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/id.h +0 -9
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns.inc +46 -48
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns_info.inc +0 -20
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/internal.h +58 -290
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/iseq.h +15 -18
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/method.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/opt_sc.inc +0 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/optunifs.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/parse.h +8 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regenc.h +14 -14
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regint.h +0 -8
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-2.3.5-p376/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ruby_atomic.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/symbol.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/thread_pthread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/version.h +9 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm.inc +255 -264
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_call_iseq_optimized.inc +5 -5
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_core.h +37 -28
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_insnhelper.h +32 -16
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vmtc.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/eval_intern.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns_info.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/internal.h +116 -51
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/iseq.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/method.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/opt_sc.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/optunifs.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/parse.h +8 -27
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regenc.h +79 -67
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regint.h +187 -244
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/regparse.h +30 -27
- data/lib/debase/ruby_core_source/ruby-2.4.2-p198/revision.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/ruby_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ruby_atomic.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/thread_pthread.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/thread_win32.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/version.h +6 -6
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm.inc +37 -34
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_call_iseq_optimized.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_core.h +9 -7
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_insnhelper.h +30 -14
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/vmtc.inc +0 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +138 -143
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/method.h +0 -213
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/ruby_assert.h +0 -54
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/encindex.h +0 -67
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/id_table.h +0 -31
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/insns.inc +0 -112
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/iseq.h +0 -252
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/probes_helper.h +0 -43
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/ruby_assert.h +0 -54
- data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/vm_call_iseq_optimized.inc +0 -212
|
@@ -1 +0,0 @@
|
|
|
1
|
-
#define RUBY_REVISION 55466
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
#define RUBY_REVISION 56129
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#ifndef RUBY_ASSERT_H
|
|
2
|
-
#define RUBY_ASSERT_H
|
|
3
|
-
|
|
4
|
-
#include "ruby/ruby.h"
|
|
5
|
-
|
|
6
|
-
#if defined(__cplusplus)
|
|
7
|
-
extern "C" {
|
|
8
|
-
#if 0
|
|
9
|
-
} /* satisfy cc-mode */
|
|
10
|
-
#endif
|
|
11
|
-
#endif
|
|
12
|
-
|
|
13
|
-
NORETURN(void rb_assert_failure(const char *, int, const char *, const char *));
|
|
14
|
-
#ifdef RUBY_FUNCTION_NAME_STRING
|
|
15
|
-
# define RUBY_ASSERT_FAIL(expr) \
|
|
16
|
-
rb_assert_failure(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, expr)
|
|
17
|
-
#else
|
|
18
|
-
# define RUBY_ASSERT_FAIL(expr) \
|
|
19
|
-
rb_assert_failure(__FILE__, __LINE__, NULL, expr)
|
|
20
|
-
#endif
|
|
21
|
-
#define RUBY_ASSERT_MESG(expr, mesg) \
|
|
22
|
-
((expr) ? (void)0 : RUBY_ASSERT_FAIL(mesg))
|
|
23
|
-
#ifdef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
|
|
24
|
-
# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) \
|
|
25
|
-
__builtin_choose_expr( \
|
|
26
|
-
__builtin_constant_p(cond), \
|
|
27
|
-
__builtin_choose_expr(cond, RUBY_ASSERT_MESG(expr, mesg), (void)0), \
|
|
28
|
-
RUBY_ASSERT_MESG(!(cond) || (expr), mesg))
|
|
29
|
-
#else
|
|
30
|
-
# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) \
|
|
31
|
-
RUBY_ASSERT_MESG(!(cond) || (expr), mesg)
|
|
32
|
-
#endif
|
|
33
|
-
#define RUBY_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(!RUBY_NDEBUG+0, expr, #expr)
|
|
34
|
-
#define RUBY_ASSERT_WHEN(cond, expr) RUBY_ASSERT_MESG_WHEN(cond, expr, #expr)
|
|
35
|
-
|
|
36
|
-
#undef assert
|
|
37
|
-
#define assert RUBY_ASSERT
|
|
38
|
-
|
|
39
|
-
#ifndef RUBY_NDEBUG
|
|
40
|
-
# ifdef NDEBUG
|
|
41
|
-
# define RUBY_NDEBUG 1
|
|
42
|
-
# else
|
|
43
|
-
# define RUBY_NDEBUG 0
|
|
44
|
-
# endif
|
|
45
|
-
#endif
|
|
46
|
-
|
|
47
|
-
#if defined(__cplusplus)
|
|
48
|
-
#if 0
|
|
49
|
-
{ /* satisfy cc-mode */
|
|
50
|
-
#endif
|
|
51
|
-
} /* extern "C" { */
|
|
52
|
-
#endif
|
|
53
|
-
|
|
54
|
-
#endif
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**********************************************************************
|
|
2
|
-
|
|
3
|
-
encindex.h -
|
|
4
|
-
|
|
5
|
-
$Author$
|
|
6
|
-
created at: Tue Sep 15 13:21:14 JST 2015
|
|
7
|
-
|
|
8
|
-
Copyright (C) 2015 Yukihiro Matsumoto
|
|
9
|
-
|
|
10
|
-
**********************************************************************/
|
|
11
|
-
|
|
12
|
-
#ifndef RUBY_ENCINDEX_H
|
|
13
|
-
#define RUBY_ENCINDEX_H 1
|
|
14
|
-
#if defined(__cplusplus)
|
|
15
|
-
extern "C" {
|
|
16
|
-
#if 0
|
|
17
|
-
} /* satisfy cc-mode */
|
|
18
|
-
#endif
|
|
19
|
-
#endif
|
|
20
|
-
|
|
21
|
-
enum ruby_preserved_encindex {
|
|
22
|
-
RUBY_ENCINDEX_ASCII,
|
|
23
|
-
RUBY_ENCINDEX_UTF_8,
|
|
24
|
-
RUBY_ENCINDEX_US_ASCII,
|
|
25
|
-
|
|
26
|
-
/* preserved indexes */
|
|
27
|
-
RUBY_ENCINDEX_UTF_16BE,
|
|
28
|
-
RUBY_ENCINDEX_UTF_16LE,
|
|
29
|
-
RUBY_ENCINDEX_UTF_32BE,
|
|
30
|
-
RUBY_ENCINDEX_UTF_32LE,
|
|
31
|
-
RUBY_ENCINDEX_UTF_16,
|
|
32
|
-
RUBY_ENCINDEX_UTF_32,
|
|
33
|
-
RUBY_ENCINDEX_UTF8_MAC,
|
|
34
|
-
|
|
35
|
-
/* for old options of regexp */
|
|
36
|
-
RUBY_ENCINDEX_EUC_JP,
|
|
37
|
-
RUBY_ENCINDEX_Windows_31J,
|
|
38
|
-
|
|
39
|
-
RUBY_ENCINDEX_BUILTIN_MAX
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
#define ENCINDEX_ASCII RUBY_ENCINDEX_ASCII
|
|
43
|
-
#define ENCINDEX_UTF_8 RUBY_ENCINDEX_UTF_8
|
|
44
|
-
#define ENCINDEX_US_ASCII RUBY_ENCINDEX_US_ASCII
|
|
45
|
-
#define ENCINDEX_UTF_16BE RUBY_ENCINDEX_UTF_16BE
|
|
46
|
-
#define ENCINDEX_UTF_16LE RUBY_ENCINDEX_UTF_16LE
|
|
47
|
-
#define ENCINDEX_UTF_32BE RUBY_ENCINDEX_UTF_32BE
|
|
48
|
-
#define ENCINDEX_UTF_32LE RUBY_ENCINDEX_UTF_32LE
|
|
49
|
-
#define ENCINDEX_UTF_16 RUBY_ENCINDEX_UTF_16
|
|
50
|
-
#define ENCINDEX_UTF_32 RUBY_ENCINDEX_UTF_32
|
|
51
|
-
#define ENCINDEX_UTF8_MAC RUBY_ENCINDEX_UTF8_MAC
|
|
52
|
-
#define ENCINDEX_EUC_JP RUBY_ENCINDEX_EUC_JP
|
|
53
|
-
#define ENCINDEX_Windows_31J RUBY_ENCINDEX_Windows_31J
|
|
54
|
-
#define ENCINDEX_BUILTIN_MAX RUBY_ENCINDEX_BUILTIN_MAX
|
|
55
|
-
|
|
56
|
-
#define rb_ascii8bit_encindex() RUBY_ENCINDEX_ASCII
|
|
57
|
-
#define rb_utf8_encindex() RUBY_ENCINDEX_UTF_8
|
|
58
|
-
#define rb_usascii_encindex() RUBY_ENCINDEX_US_ASCII
|
|
59
|
-
|
|
60
|
-
#if defined(__cplusplus)
|
|
61
|
-
#if 0
|
|
62
|
-
{ /* satisfy cc-mode */
|
|
63
|
-
#endif
|
|
64
|
-
} /* extern "C" { */
|
|
65
|
-
#endif
|
|
66
|
-
|
|
67
|
-
#endif /* RUBY_ENCINDEX_H */
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#ifndef RUBY_ID_TABLE_H
|
|
2
|
-
#define RUBY_ID_TABLE_H 1
|
|
3
|
-
#include "ruby/ruby.h"
|
|
4
|
-
|
|
5
|
-
struct rb_id_table;
|
|
6
|
-
|
|
7
|
-
/* compatible with ST_* */
|
|
8
|
-
enum rb_id_table_iterator_result {
|
|
9
|
-
ID_TABLE_CONTINUE = ST_CONTINUE,
|
|
10
|
-
ID_TABLE_STOP = ST_STOP,
|
|
11
|
-
ID_TABLE_DELETE = ST_DELETE,
|
|
12
|
-
ID_TABLE_ITERATOR_RESULT_END
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
struct rb_id_table *rb_id_table_create(size_t size);
|
|
16
|
-
void rb_id_table_free(struct rb_id_table *tbl);
|
|
17
|
-
void rb_id_table_clear(struct rb_id_table *tbl);
|
|
18
|
-
|
|
19
|
-
size_t rb_id_table_size(const struct rb_id_table *tbl);
|
|
20
|
-
size_t rb_id_table_memsize(const struct rb_id_table *tbl);
|
|
21
|
-
|
|
22
|
-
int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);
|
|
23
|
-
int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);
|
|
24
|
-
int rb_id_table_delete(struct rb_id_table *tbl, ID id);
|
|
25
|
-
|
|
26
|
-
typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
|
|
27
|
-
typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
|
|
28
|
-
void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
|
|
29
|
-
void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
|
|
30
|
-
|
|
31
|
-
#endif /* RUBY_ID_TABLE_H */
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/** -*-c-*-
|
|
2
|
-
This file contains YARV instructions list.
|
|
3
|
-
|
|
4
|
-
----
|
|
5
|
-
This file is auto generated by insns2vm.rb
|
|
6
|
-
DO NOT TOUCH!
|
|
7
|
-
|
|
8
|
-
If you want to fix something, you must edit 'template/insns.inc.tmpl'
|
|
9
|
-
or tool/insns2vm.rb
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/* BIN : Basic Instruction Name */
|
|
14
|
-
#define BIN(n) YARVINSN_##n
|
|
15
|
-
|
|
16
|
-
enum ruby_vminsn_type {
|
|
17
|
-
BIN(nop) = 0,
|
|
18
|
-
BIN(getlocal) = 1,
|
|
19
|
-
BIN(setlocal) = 2,
|
|
20
|
-
BIN(getspecial) = 3,
|
|
21
|
-
BIN(setspecial) = 4,
|
|
22
|
-
BIN(getinstancevariable) = 5,
|
|
23
|
-
BIN(setinstancevariable) = 6,
|
|
24
|
-
BIN(getclassvariable) = 7,
|
|
25
|
-
BIN(setclassvariable) = 8,
|
|
26
|
-
BIN(getconstant) = 9,
|
|
27
|
-
BIN(setconstant) = 10,
|
|
28
|
-
BIN(getglobal) = 11,
|
|
29
|
-
BIN(setglobal) = 12,
|
|
30
|
-
BIN(putnil) = 13,
|
|
31
|
-
BIN(putself) = 14,
|
|
32
|
-
BIN(putobject) = 15,
|
|
33
|
-
BIN(putspecialobject) = 16,
|
|
34
|
-
BIN(putiseq) = 17,
|
|
35
|
-
BIN(putstring) = 18,
|
|
36
|
-
BIN(concatstrings) = 19,
|
|
37
|
-
BIN(tostring) = 20,
|
|
38
|
-
BIN(freezestring) = 21,
|
|
39
|
-
BIN(toregexp) = 22,
|
|
40
|
-
BIN(newarray) = 23,
|
|
41
|
-
BIN(duparray) = 24,
|
|
42
|
-
BIN(expandarray) = 25,
|
|
43
|
-
BIN(concatarray) = 26,
|
|
44
|
-
BIN(splatarray) = 27,
|
|
45
|
-
BIN(newhash) = 28,
|
|
46
|
-
BIN(newrange) = 29,
|
|
47
|
-
BIN(pop) = 30,
|
|
48
|
-
BIN(dup) = 31,
|
|
49
|
-
BIN(dupn) = 32,
|
|
50
|
-
BIN(swap) = 33,
|
|
51
|
-
BIN(reverse) = 34,
|
|
52
|
-
BIN(reput) = 35,
|
|
53
|
-
BIN(topn) = 36,
|
|
54
|
-
BIN(setn) = 37,
|
|
55
|
-
BIN(adjuststack) = 38,
|
|
56
|
-
BIN(defined) = 39,
|
|
57
|
-
BIN(checkmatch) = 40,
|
|
58
|
-
BIN(checkkeyword) = 41,
|
|
59
|
-
BIN(trace) = 42,
|
|
60
|
-
BIN(defineclass) = 43,
|
|
61
|
-
BIN(send) = 44,
|
|
62
|
-
BIN(opt_str_freeze) = 45,
|
|
63
|
-
BIN(opt_newarray_max) = 46,
|
|
64
|
-
BIN(opt_newarray_min) = 47,
|
|
65
|
-
BIN(opt_send_without_block) = 48,
|
|
66
|
-
BIN(invokesuper) = 49,
|
|
67
|
-
BIN(invokeblock) = 50,
|
|
68
|
-
BIN(leave) = 51,
|
|
69
|
-
BIN(throw) = 52,
|
|
70
|
-
BIN(jump) = 53,
|
|
71
|
-
BIN(branchif) = 54,
|
|
72
|
-
BIN(branchunless) = 55,
|
|
73
|
-
BIN(branchnil) = 56,
|
|
74
|
-
BIN(getinlinecache) = 57,
|
|
75
|
-
BIN(setinlinecache) = 58,
|
|
76
|
-
BIN(once) = 59,
|
|
77
|
-
BIN(opt_case_dispatch) = 60,
|
|
78
|
-
BIN(opt_plus) = 61,
|
|
79
|
-
BIN(opt_minus) = 62,
|
|
80
|
-
BIN(opt_mult) = 63,
|
|
81
|
-
BIN(opt_div) = 64,
|
|
82
|
-
BIN(opt_mod) = 65,
|
|
83
|
-
BIN(opt_eq) = 66,
|
|
84
|
-
BIN(opt_neq) = 67,
|
|
85
|
-
BIN(opt_lt) = 68,
|
|
86
|
-
BIN(opt_le) = 69,
|
|
87
|
-
BIN(opt_gt) = 70,
|
|
88
|
-
BIN(opt_ge) = 71,
|
|
89
|
-
BIN(opt_ltlt) = 72,
|
|
90
|
-
BIN(opt_aref) = 73,
|
|
91
|
-
BIN(opt_aset) = 74,
|
|
92
|
-
BIN(opt_aset_with) = 75,
|
|
93
|
-
BIN(opt_aref_with) = 76,
|
|
94
|
-
BIN(opt_length) = 77,
|
|
95
|
-
BIN(opt_size) = 78,
|
|
96
|
-
BIN(opt_empty_p) = 79,
|
|
97
|
-
BIN(opt_succ) = 80,
|
|
98
|
-
BIN(opt_not) = 81,
|
|
99
|
-
BIN(opt_regexpmatch1) = 82,
|
|
100
|
-
BIN(opt_regexpmatch2) = 83,
|
|
101
|
-
BIN(opt_call_c_function) = 84,
|
|
102
|
-
BIN(bitblt) = 85,
|
|
103
|
-
BIN(answer) = 86,
|
|
104
|
-
BIN(getlocal_OP__WC__0) = 87,
|
|
105
|
-
BIN(getlocal_OP__WC__1) = 88,
|
|
106
|
-
BIN(setlocal_OP__WC__0) = 89,
|
|
107
|
-
BIN(setlocal_OP__WC__1) = 90,
|
|
108
|
-
BIN(putobject_OP_INT2FIX_O_0_C_) = 91,
|
|
109
|
-
BIN(putobject_OP_INT2FIX_O_1_C_) = 92,
|
|
110
|
-
VM_INSTRUCTION_SIZE = 93
|
|
111
|
-
};
|
|
112
|
-
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
/**********************************************************************
|
|
2
|
-
|
|
3
|
-
iseq.h -
|
|
4
|
-
|
|
5
|
-
$Author: naruse $
|
|
6
|
-
created at: 04/01/01 23:36:57 JST
|
|
7
|
-
|
|
8
|
-
Copyright (C) 2004-2008 Koichi Sasada
|
|
9
|
-
|
|
10
|
-
**********************************************************************/
|
|
11
|
-
|
|
12
|
-
#ifndef RUBY_ISEQ_H
|
|
13
|
-
#define RUBY_ISEQ_H 1
|
|
14
|
-
|
|
15
|
-
#define ISEQ_MAJOR_VERSION 2
|
|
16
|
-
#define ISEQ_MINOR_VERSION 3
|
|
17
|
-
|
|
18
|
-
#ifndef rb_iseq_t
|
|
19
|
-
typedef struct rb_iseq_struct rb_iseq_t;
|
|
20
|
-
#define rb_iseq_t rb_iseq_t
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
static inline size_t
|
|
24
|
-
rb_call_info_kw_arg_bytes(int keyword_len)
|
|
25
|
-
{
|
|
26
|
-
return sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (keyword_len - 1);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
enum iseq_mark_ary_index {
|
|
30
|
-
ISEQ_MARK_ARY_COVERAGE,
|
|
31
|
-
ISEQ_MARK_ARY_FLIP_CNT,
|
|
32
|
-
ISEQ_MARK_ARY_ORIGINAL_ISEQ,
|
|
33
|
-
ISEQ_MARK_ARY_INITIAL_SIZE
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
static inline VALUE
|
|
37
|
-
iseq_mark_ary_create(int flip_cnt)
|
|
38
|
-
{
|
|
39
|
-
VALUE ary = rb_ary_tmp_new(ISEQ_MARK_ARY_INITIAL_SIZE);
|
|
40
|
-
rb_ary_push(ary, Qnil); /* ISEQ_MARK_ARY_COVERAGE */
|
|
41
|
-
rb_ary_push(ary, INT2FIX(flip_cnt)); /* ISEQ_MARK_ARY_FLIP_CNT */
|
|
42
|
-
rb_ary_push(ary, Qnil); /* ISEQ_MARK_ARY_ORIGINAL_ISEQ */
|
|
43
|
-
return ary;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
#define ISEQ_MARK_ARY(iseq) (iseq)->body->mark_ary
|
|
47
|
-
|
|
48
|
-
#define ISEQ_COVERAGE(iseq) RARRAY_AREF(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_COVERAGE)
|
|
49
|
-
#define ISEQ_COVERAGE_SET(iseq, cov) RARRAY_ASET(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_COVERAGE, cov)
|
|
50
|
-
|
|
51
|
-
#define ISEQ_FLIP_CNT(iseq) FIX2INT(RARRAY_AREF(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_FLIP_CNT))
|
|
52
|
-
|
|
53
|
-
static inline int
|
|
54
|
-
ISEQ_FLIP_CNT_INCREMENT(const rb_iseq_t *iseq)
|
|
55
|
-
{
|
|
56
|
-
int cnt = ISEQ_FLIP_CNT(iseq);
|
|
57
|
-
RARRAY_ASET(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_FLIP_CNT, INT2FIX(cnt+1));
|
|
58
|
-
return cnt;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
static inline VALUE *
|
|
62
|
-
ISEQ_ORIGINAL_ISEQ(const rb_iseq_t *iseq)
|
|
63
|
-
{
|
|
64
|
-
VALUE str = RARRAY_AREF(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_ORIGINAL_ISEQ);
|
|
65
|
-
if (RTEST(str)) return (VALUE *)RSTRING_PTR(str);
|
|
66
|
-
return NULL;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static inline VALUE *
|
|
70
|
-
ISEQ_ORIGINAL_ISEQ_ALLOC(const rb_iseq_t *iseq, long size)
|
|
71
|
-
{
|
|
72
|
-
VALUE str = rb_str_tmp_new(size * sizeof(VALUE));
|
|
73
|
-
RARRAY_ASET(ISEQ_MARK_ARY(iseq), ISEQ_MARK_ARY_ORIGINAL_ISEQ, str);
|
|
74
|
-
return (VALUE *)RSTRING_PTR(str);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
#define ISEQ_COMPILE_DATA(iseq) (iseq)->aux.compile_data
|
|
78
|
-
|
|
79
|
-
static inline rb_iseq_t *
|
|
80
|
-
iseq_imemo_alloc(void)
|
|
81
|
-
{
|
|
82
|
-
return (rb_iseq_t *)rb_imemo_new(imemo_iseq, 0, 0, 0, 0);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
#define ISEQ_NOT_LOADED_YET IMEMO_FL_USER1
|
|
86
|
-
|
|
87
|
-
VALUE iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt);
|
|
88
|
-
void ibf_load_iseq_complete(rb_iseq_t *iseq);
|
|
89
|
-
const rb_iseq_t *iseq_ibf_load(VALUE str);
|
|
90
|
-
VALUE iseq_ibf_load_extra_data(VALUE str);
|
|
91
|
-
|
|
92
|
-
RUBY_SYMBOL_EXPORT_BEGIN
|
|
93
|
-
|
|
94
|
-
/* compile.c */
|
|
95
|
-
VALUE rb_iseq_compile_node(rb_iseq_t *iseq, NODE *node);
|
|
96
|
-
int rb_iseq_translate_threaded_code(rb_iseq_t *iseq);
|
|
97
|
-
VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq);
|
|
98
|
-
void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc,
|
|
99
|
-
VALUE locals, VALUE args,
|
|
100
|
-
VALUE exception, VALUE body);
|
|
101
|
-
|
|
102
|
-
/* iseq.c */
|
|
103
|
-
void rb_iseq_add_mark_object(const rb_iseq_t *iseq, VALUE obj);
|
|
104
|
-
VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
|
|
105
|
-
VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
|
|
106
|
-
struct st_table *ruby_insn_make_insn_table(void);
|
|
107
|
-
unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos);
|
|
108
|
-
|
|
109
|
-
int rb_iseqw_line_trace_each(VALUE iseqval, int (*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data);
|
|
110
|
-
VALUE rb_iseqw_line_trace_all(VALUE iseqval);
|
|
111
|
-
VALUE rb_iseqw_line_trace_specify(VALUE iseqval, VALUE pos, VALUE set);
|
|
112
|
-
VALUE rb_iseqw_new(const rb_iseq_t *iseq);
|
|
113
|
-
const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);
|
|
114
|
-
|
|
115
|
-
VALUE rb_iseq_path(const rb_iseq_t *iseq);
|
|
116
|
-
VALUE rb_iseq_absolute_path(const rb_iseq_t *iseq);
|
|
117
|
-
VALUE rb_iseq_label(const rb_iseq_t *iseq);
|
|
118
|
-
VALUE rb_iseq_base_label(const rb_iseq_t *iseq);
|
|
119
|
-
VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq);
|
|
120
|
-
VALUE rb_iseq_method_name(const rb_iseq_t *iseq);
|
|
121
|
-
|
|
122
|
-
/* proc.c */
|
|
123
|
-
const rb_iseq_t *rb_method_iseq(VALUE body);
|
|
124
|
-
const rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc);
|
|
125
|
-
|
|
126
|
-
struct rb_compile_option_struct {
|
|
127
|
-
unsigned int inline_const_cache: 1;
|
|
128
|
-
unsigned int peephole_optimization: 1;
|
|
129
|
-
unsigned int tailcall_optimization: 1;
|
|
130
|
-
unsigned int specialized_instruction: 1;
|
|
131
|
-
unsigned int operands_unification: 1;
|
|
132
|
-
unsigned int instructions_unification: 1;
|
|
133
|
-
unsigned int stack_caching: 1;
|
|
134
|
-
unsigned int trace_instruction: 1;
|
|
135
|
-
unsigned int frozen_string_literal: 1;
|
|
136
|
-
unsigned int debug_frozen_string_literal: 1;
|
|
137
|
-
unsigned int coverage_enabled: 1;
|
|
138
|
-
int debug_level;
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
struct iseq_line_info_entry {
|
|
142
|
-
unsigned int position;
|
|
143
|
-
unsigned int line_no;
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
struct iseq_catch_table_entry {
|
|
147
|
-
enum catch_type {
|
|
148
|
-
CATCH_TYPE_RESCUE = INT2FIX(1),
|
|
149
|
-
CATCH_TYPE_ENSURE = INT2FIX(2),
|
|
150
|
-
CATCH_TYPE_RETRY = INT2FIX(3),
|
|
151
|
-
CATCH_TYPE_BREAK = INT2FIX(4),
|
|
152
|
-
CATCH_TYPE_REDO = INT2FIX(5),
|
|
153
|
-
CATCH_TYPE_NEXT = INT2FIX(6)
|
|
154
|
-
} type;
|
|
155
|
-
const rb_iseq_t *iseq;
|
|
156
|
-
unsigned int start;
|
|
157
|
-
unsigned int end;
|
|
158
|
-
unsigned int cont;
|
|
159
|
-
unsigned int sp;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
PACKED_STRUCT_UNALIGNED(struct iseq_catch_table {
|
|
163
|
-
unsigned int size;
|
|
164
|
-
struct iseq_catch_table_entry entries[1]; /* flexible array */
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
static inline int
|
|
168
|
-
iseq_catch_table_bytes(int n)
|
|
169
|
-
{
|
|
170
|
-
enum {
|
|
171
|
-
catch_table_entries_max = (INT_MAX - sizeof(struct iseq_catch_table)) / sizeof(struct iseq_catch_table_entry)
|
|
172
|
-
};
|
|
173
|
-
if (n > catch_table_entries_max) rb_fatal("too large iseq_catch_table - %d", n);
|
|
174
|
-
return (int)(sizeof(struct iseq_catch_table) +
|
|
175
|
-
(n - 1) * sizeof(struct iseq_catch_table_entry));
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)
|
|
179
|
-
|
|
180
|
-
struct iseq_compile_data_storage {
|
|
181
|
-
struct iseq_compile_data_storage *next;
|
|
182
|
-
unsigned int pos;
|
|
183
|
-
unsigned int size;
|
|
184
|
-
char buff[1]; /* flexible array */
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
/* account for flexible array */
|
|
188
|
-
#define SIZEOF_ISEQ_COMPILE_DATA_STORAGE \
|
|
189
|
-
(sizeof(struct iseq_compile_data_storage) - 1)
|
|
190
|
-
|
|
191
|
-
struct iseq_compile_data {
|
|
192
|
-
/* GC is needed */
|
|
193
|
-
const VALUE err_info;
|
|
194
|
-
VALUE mark_ary;
|
|
195
|
-
const VALUE catch_table_ary; /* Array */
|
|
196
|
-
|
|
197
|
-
/* GC is not needed */
|
|
198
|
-
struct iseq_label_data *start_label;
|
|
199
|
-
struct iseq_label_data *end_label;
|
|
200
|
-
struct iseq_label_data *redo_label;
|
|
201
|
-
const rb_iseq_t *current_block;
|
|
202
|
-
VALUE ensure_node;
|
|
203
|
-
VALUE for_iseq;
|
|
204
|
-
struct iseq_compile_data_ensure_node_stack *ensure_node_stack;
|
|
205
|
-
int loopval_popped; /* used by NODE_BREAK */
|
|
206
|
-
int cached_const;
|
|
207
|
-
struct iseq_compile_data_storage *storage_head;
|
|
208
|
-
struct iseq_compile_data_storage *storage_current;
|
|
209
|
-
int last_line;
|
|
210
|
-
int last_coverable_line;
|
|
211
|
-
int label_no;
|
|
212
|
-
int node_level;
|
|
213
|
-
unsigned int ci_index;
|
|
214
|
-
unsigned int ci_kw_index;
|
|
215
|
-
const rb_compile_option_t *option;
|
|
216
|
-
struct rb_id_table *ivar_cache_table;
|
|
217
|
-
#if SUPPORT_JOKE
|
|
218
|
-
st_table *labels_table;
|
|
219
|
-
#endif
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
/* defined? */
|
|
223
|
-
|
|
224
|
-
enum defined_type {
|
|
225
|
-
DEFINED_NIL = 1,
|
|
226
|
-
DEFINED_IVAR,
|
|
227
|
-
DEFINED_LVAR,
|
|
228
|
-
DEFINED_GVAR,
|
|
229
|
-
DEFINED_CVAR,
|
|
230
|
-
DEFINED_CONST,
|
|
231
|
-
DEFINED_METHOD,
|
|
232
|
-
DEFINED_YIELD,
|
|
233
|
-
DEFINED_ZSUPER,
|
|
234
|
-
DEFINED_SELF,
|
|
235
|
-
DEFINED_TRUE,
|
|
236
|
-
DEFINED_FALSE,
|
|
237
|
-
DEFINED_ASGN,
|
|
238
|
-
DEFINED_EXPR,
|
|
239
|
-
DEFINED_IVAR2,
|
|
240
|
-
DEFINED_REF,
|
|
241
|
-
DEFINED_FUNC
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
VALUE rb_iseq_defined_string(enum defined_type type);
|
|
245
|
-
void rb_iseq_make_compile_option(struct rb_compile_option_struct *option, VALUE opt);
|
|
246
|
-
|
|
247
|
-
/* vm.c */
|
|
248
|
-
VALUE rb_iseq_local_variables(const rb_iseq_t *iseq);
|
|
249
|
-
|
|
250
|
-
RUBY_SYMBOL_EXPORT_END
|
|
251
|
-
|
|
252
|
-
#endif /* RUBY_ISEQ_H */
|