Ruby  2.7.2p137(2020-10-01revision5445e0435260b449decf2ac16f9d09bae3cafe72)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ruby.c File Reference
#include "ruby/encoding.h"
#include "ruby/thread.h"
#include "ruby/version.h"
#include "internal.h"
#include "eval_intern.h"
#include "dln.h"
#include <stdio.h>
#include <sys/types.h>
#include <ctype.h>
#include "ruby/util.h"
#include "mjit.h"

Go to the source code of this file.

Data Structures

struct  ruby_features_t
 
struct  ruby_cmdline_options
 
struct  load_file_arg
 

Macros

#define MAXPATHLEN   1024
 
#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)
 
#define DISABLE_RUBYGEMS   0
 
#define DEFAULT_RUBYGEMS_ENABLED   "enabled"
 
#define COMMA   ,
 
#define FEATURE_BIT(bit)   (1U << feature_##bit)
 
#define EACH_FEATURES(X, SEP)
 
#define EACH_DEBUG_FEATURES(X, SEP)
 
#define AMBIGUOUS_FEATURE_NAMES   0 /* no ambiguous feature names now */
 
#define DEFINE_FEATURE(bit)   feature_##bit
 
#define DEFINE_DEBUG_FEATURE(bit)   feature_debug_##bit
 
#define DEBUG_BIT(bit)   (1U << feature_debug_##bit)
 
#define DUMP_BIT(bit)   (1U << dump_##bit)
 
#define DEFINE_DUMP(bit)   dump_##bit
 
#define EACH_DUMPS(X, SEP)
 
#define FEATURE_SET_TO(feat, bit_mask, bit_set)    rb_feature_set_to(&(feat), bit_mask, bit_set)
 
#define FEATURE_SET(feat, bits)   FEATURE_SET_TO(feat, bits, bits)
 
#define FEATURE_SET_RESTORE(feat, save)   FEATURE_SET_TO(feat, (save).mask, (save).set & (save).mask)
 
#define FEATURE_SET_P(feat, bits)   ((feat).set & (bits))
 
#define src_encoding_index   GET_VM()->src_encoding_index
 
#define forbid_setid(s)   forbid_setid((s), opt)
 
#define M(shortopt, longopt, desc)
 
#define SHOW(m)   show_usage_line((m).str, (m).namelen, (m).secondlen, help)
 
#define rubylib_path_new   rb_str_new
 
#define UTF8_PATH   0
 
#define IF_UTF8_PATH(t, f)   f
 
#define str_conv_enc(str, from, to)   (str)
 
#define INITIAL_LOAD_PATH_MARK   rb_intern_const("@gem_prelude_index")
 
#define RUBY_RELATIVE(path, len)   rubylib_path_new((path), (len))
 
#define PREFIX_PATH()   RUBY_RELATIVE(ruby_exec_prefix, exec_prefix_len)
 
#define NAME_MATCH_P(name, str, len)    ((len) < (int)sizeof(name) && name_match_p((name), (str), (len)))
 
#define UNSET_WHEN(name, bit, str, len)
 
#define SET_WHEN(name, bit, str, len)
 
#define LITERAL_NAME_ELEMENT(name)   #name
 
#define FEATURE_FOUND   goto found
 
#define SET_FEATURE(bit)    if (NAME_MATCH_P(#bit, str, len)) {set |= mask = FEATURE_BIT(bit); FEATURE_FOUND;}
 
#define SET_WHEN_DEBUG(bit)
 
#define SET_WHEN_DUMP(bit)   SET_WHEN(#bit, DUMP_BIT(bit), str, len)
 
#define set_internal_encoding_once(opt, e, elen)    set_option_encoding_once("default_internal", &(opt)->intern.enc.name, (e), (elen))
 
#define set_external_encoding_once(opt, e, elen)    set_option_encoding_once("default_external", &(opt)->ext.enc.name, (e), (elen))
 
#define set_source_encoding_once(opt, e, elen)    set_option_encoding_once("source", &(opt)->src.enc.name, (e), (elen))
 
#define is_option_end(c, allow_hyphen)    (!(c) || ((allow_hyphen) && (c) == '-') || (c) == '=')
 
#define check_envopt(name, allow_envopt)
 
#define need_argument(name, s, needs_arg, next_arg)
 
#define is_option_with_arg(name, allow_hyphen, allow_envopt)    is_option_with_optarg(name, allow_hyphen, allow_envopt, Qtrue, Qtrue)
 
#define is_option_with_optarg(name, allow_hyphen, allow_envopt, needs_arg, next_arg)
 
#define set_encoding_part(type)
 
#define rb_progname   (GET_VM()->progname)
 
#define rb_orig_progname   (GET_VM()->orig_progname)
 
#define rb_define_readonly_boolean(name, val)    rb_define_virtual_variable((name), (val) ? true_value : false_value, 0)
 
#define SET_COMPILE_OPTION(h, o, name)
 
#define MODE_TO_LOAD   (O_RDONLY)
 

Typedefs

typedef struct ruby_cmdline_options ruby_cmdline_options_t
 

Enumerations

enum  feature_flag_bits {
  EACH_FEATURES =(DEFINE_FEATURE, COMMA), feature_debug_flag_first, feature_debug_flag_begin = feature_debug_flag_first - 1, EACH_DEBUG_FEATURES =(DEFINE_DEBUG_FEATURE, COMMA),
  feature_flag_count
}
 
enum  dump_flag_bits { dump_version_v, EACH_DUMPS =(DEFINE_DUMP, COMMA), dump_exit_bits }
 
enum  {
  DBL_BIGDIG = ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG), COROUTINE_REGISTERS = 6, COROUTINE_REGISTERS = 8, COROUTINE_REGISTERS = 0xb0 / 8,
  COROUTINE_REGISTERS, COROUTINE_REGISTERS = 4, COROUTINE_REGISTERS = 8, COROUTINE_XMM_REGISTERS = 1+10*2,
  COROUTINE_REGISTERS = 4, NAME_ERR_MESG__MESG, NAME_ERR_MESG__RECV, NAME_ERR_MESG__NAME,
  NAME_ERR_MESG_COUNT, raise_opt_cause, raise_max_opt, RAISED_EXCEPTION = 1,
  RAISED_STACKOVERFLOW = 2, RAISED_NOMEMORY = 4, DECIMAL_SIZE_OF_LONG = DECIMAL_SIZE_OF_BITS(CHAR_BIT*sizeof(long)), JISX0301_DATE_SIZE = DECIMAL_SIZE_OF_LONG+8,
  FLAG_RETURNS_128BITS = 1 << (31-31), FLAG_RETURNS_NOTHING = 1 << (31-30), FLAG_RETURNS_FP = 1 << (31-29), FLAG_RETURNS_64BITS = 1 << (31-28),
  FLAG_RETURNS_STRUCT = 1 << (31-27), FLAG_ARG_NEEDS_COPY = 1 << (31- 7), FLAG_FP_ARGUMENTS = 1 << (31- 6), FLAG_4_GPR_ARGUMENTS = 1 << (31- 5),
  FLAG_RETVAL_REFERENCE = 1 << (31- 4), FLAG_RETURNS_SMST = 1 << (31-31), FLAG_RETURNS_NOTHING = 1 << (31-30), FLAG_RETURNS_FP = 1 << (31-29),
  FLAG_RETURNS_64BITS = 1 << (31-28), FLAG_RETURNS_128BITS = 1 << (31-27), FLAG_COMPAT = 1 << (31- 8), FLAG_ARG_NEEDS_COPY = 1 << (31- 7),
  FLAG_ARG_NEEDS_PSAVE = FLAG_ARG_NEEDS_COPY, FLAG_FP_ARGUMENTS = 1 << (31- 6), FLAG_4_GPR_ARGUMENTS = 1 << (31- 5), FLAG_RETVAL_REFERENCE = 1 << (31- 4),
  JSON_object_start = 1, ossl_asn1_info_size = (sizeof(ossl_asn1_info)/sizeof(ossl_asn1_info[0])), tIGNORED_NL = tLAST_TOKEN + 1, tCOMMENT,
  tEMBDOC_BEG, tEMBDOC, tEMBDOC_END, tHEREDOC_BEG,
  tHEREDOC_END, k__END__, ORDINAL_PARAM = -1, NO_PARAM = 0,
  NUMPARAM_MAX = 9, BITS_SIZE = sizeof(bits_t), BITS_BITLENGTH = ( BITS_SIZE * CHAR_BIT ), RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
  RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1), RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1), RSTRUCT_TRANSIENT_FLAG = FL_USER3, RSTRUCT_ENUM_END,
  bom_prefix_len = (int)sizeof(bom_prefix) - 1, MT_MAX_STATE = N, PCH_NOT_READY, PCH_FAILED,
  PCH_SUCCESS, ORDINAL_PARAM = -1, NO_PARAM = 0, NUMPARAM_MAX = 9,
  COMPILATION_FEATURES, DEFAULT_FEATURES, LONGEST_SIGNAME = 7, LEFT,
  CHCASE, LOWER, UPPER, AREF_HASH_UNIT = 5,
  AREF_HASH_THRESHOLD = 10, TMOPT_IN, TMOPT_MAX_, CALLER_BINDING_SELF,
  CALLER_BINDING_CLASS, CALLER_BINDING_BINDING, CALLER_BINDING_ISEQ, CALLER_BINDING_CFP,
  VM_FRAME_MAGIC_METHOD = 0x11110001, VM_FRAME_MAGIC_BLOCK = 0x22220001, VM_FRAME_MAGIC_CLASS = 0x33330001, VM_FRAME_MAGIC_TOP = 0x44440001,
  VM_FRAME_MAGIC_CFUNC = 0x55550001, VM_FRAME_MAGIC_IFUNC = 0x66660001, VM_FRAME_MAGIC_EVAL = 0x77770001, VM_FRAME_MAGIC_RESCUE = 0x78880001,
  VM_FRAME_MAGIC_DUMMY = 0x79990001, VM_FRAME_MAGIC_MASK = 0x7fff0001, VM_FRAME_FLAG_PASSED = 0x0010, VM_FRAME_FLAG_FINISH = 0x0020,
  VM_FRAME_FLAG_BMETHOD = 0x0040, VM_FRAME_FLAG_CFRAME = 0x0080, VM_FRAME_FLAG_LAMBDA = 0x0100, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200,
  VM_FRAME_FLAG_CFRAME_KW = 0x0400, VM_FRAME_FLAG_CFRAME_EMPTY_KW = 0x0800, VM_ENV_FLAG_LOCAL = 0x0002, VM_ENV_FLAG_ESCAPED = 0x0004,
  VM_ENV_FLAG_WB_REQUIRED = 0x0008, MINIMUM_REPARSE_BUFFER_PATH_LEN = 4, SI_USER = 0, SI_ASYNCIO = 2,
  SI_MESGQ, SI_TIMER, SI_QUEUE, SI_KERNEL,
  ILL_ILLOPC = 7, ILL_ILLOPN, ILL_ILLADR, ILL_ILLTRP,
  ILL_PRVOPC, ILL_PRVREG, ILL_COPROC, ILL_BADSTK,
  FPE_INTDIV = 15, FPE_INTOVF, FPE_FLTDIV, FPE_FLTOVF,
  FPE_FLTUND, FPE_FLTRES, FPE_FLTINV, FPE_FLTSUB,
  SEGV_MAPERR = 23, SEGV_ACCERR, BUS_ADRALN = 25, BUS_ADRERR,
  BUS_OBJERR, CLD_EXITED = 28, CLD_KILLED, CLD_DUMPED,
  CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED
}
 

Functions

void Init_ruby_description (void)
 
chargetenv ()
 
void rb_warning_category_update (unsigned int mask, unsigned int bits)
 
void ruby_push_include (const char *path, VALUE(*filter)(VALUE))
 
void ruby_incpush (const char *path)
 
void ruby_incpush_expand (const char *path)
 
void ruby_init_loadpath (void)
 
int ruby_env_debug_option (const char *str, int len, void *arg)
 
void Init_builtin_features (void)
 
voidrb_load_file (const char *fname)
 
voidrb_load_file_str (VALUE fname_v)
 
voidrb_parser_load_file (VALUE parser, VALUE fname_v)
 
void ruby_script (const char *name)
 Sets the current script name to this value. More...
 
void ruby_set_script_name (VALUE name)
 Sets the current script name to this value. More...
 
void ruby_prog_init (void)
 Defines built-in variables. More...
 
void ruby_set_argv (int argc, char **argv)
 
voidruby_process_options (int argc, char **argv)
 
void ruby_sysinit (int *argc, char ***argv)
 Initializes the process for libruby. More...
 

Variables

VALUE ruby_archlibdir_path
 
VALUE ruby_prefix_path
 
RUBY_EXTERN const int ruby_patchlevel
 
VALUE rb_argv0
 
VALUE rb_e_script
 

Macro Definition Documentation

◆ AMBIGUOUS_FEATURE_NAMES

#define AMBIGUOUS_FEATURE_NAMES   0 /* no ambiguous feature names now */

Definition at line 90 of file ruby.c.

◆ check_envopt

#define check_envopt (   name,
  allow_envopt 
)
Value:
(((allow_envopt) || !envopt) ? (void)0 : \
rb_raise(rb_eRuntimeError, "invalid switch in RUBYOPT: --" name))

◆ COMMA

#define COMMA   ,

Definition at line 74 of file ruby.c.

◆ DEBUG_BIT

#define DEBUG_BIT (   bit)    (1U << feature_debug_##bit)

Definition at line 101 of file ruby.c.

◆ DEFAULT_RUBYGEMS_ENABLED

#define DEFAULT_RUBYGEMS_ENABLED   "enabled"

Definition at line 69 of file ruby.c.

◆ DEFINE_DEBUG_FEATURE

#define DEFINE_DEBUG_FEATURE (   bit)    feature_debug_##bit

Definition at line 92 of file ruby.c.

◆ DEFINE_DUMP

#define DEFINE_DUMP (   bit)    dump_##bit

Definition at line 104 of file ruby.c.

◆ DEFINE_FEATURE

#define DEFINE_FEATURE (   bit)    feature_##bit

Definition at line 91 of file ruby.c.

◆ DISABLE_RUBYGEMS

#define DISABLE_RUBYGEMS   0

Definition at line 64 of file ruby.c.

◆ DUMP_BIT

#define DUMP_BIT (   bit)    (1U << dump_##bit)

Definition at line 103 of file ruby.c.

◆ EACH_DEBUG_FEATURES

#define EACH_DEBUG_FEATURES (   X,
  SEP 
)
Value:
X(frozen_string_literal) \
/* END OF DEBUG FEATURES */

Definition at line 87 of file ruby.c.

◆ EACH_DUMPS

#define EACH_DUMPS (   X,
  SEP 
)
Value:
X(version) \
SEP \
X(copyright) \
SEP \
X(usage) \
SEP \
X(help) \
SEP \
X(yydebug) \
SEP \
X(syntax) \
SEP \
X(parsetree) \
SEP \
X(parsetree_with_comment) \
SEP \
X(insns) \
/* END OF DUMPS */

Definition at line 105 of file ruby.c.

◆ EACH_FEATURES

#define EACH_FEATURES (   X,
  SEP 
)
Value:
X(gems) \
SEP \
X(did_you_mean) \
SEP \
X(rubyopt) \
SEP \
X(frozen_string_literal) \
SEP \
X(jit) \
/* END OF FEATURES */

Definition at line 76 of file ruby.c.

◆ FEATURE_BIT

#define FEATURE_BIT (   bit)    (1U << feature_##bit)

Definition at line 75 of file ruby.c.

◆ FEATURE_FOUND

#define FEATURE_FOUND   goto found

◆ FEATURE_SET

#define FEATURE_SET (   feat,
  bits 
)    FEATURE_SET_TO(feat, bits, bits)

Definition at line 148 of file ruby.c.

◆ FEATURE_SET_P

#define FEATURE_SET_P (   feat,
  bits 
)    ((feat).set & (bits))

Definition at line 150 of file ruby.c.

◆ FEATURE_SET_RESTORE

#define FEATURE_SET_RESTORE (   feat,
  save 
)    FEATURE_SET_TO(feat, (save).mask, (save).set & (save).mask)

Definition at line 149 of file ruby.c.

◆ FEATURE_SET_TO

#define FEATURE_SET_TO (   feat,
  bit_mask,
  bit_set 
)     rb_feature_set_to(&(feat), bit_mask, bit_set)

Definition at line 146 of file ruby.c.

◆ forbid_setid

#define forbid_setid (   s)    forbid_setid((s), opt)

Definition at line 219 of file ruby.c.

◆ IF_UTF8_PATH

#define IF_UTF8_PATH (   t,
  f 
)    f

Definition at line 487 of file ruby.c.

◆ INITIAL_LOAD_PATH_MARK

#define INITIAL_LOAD_PATH_MARK   rb_intern_const("@gem_prelude_index")

Definition at line 577 of file ruby.c.

◆ is_option_end

#define is_option_end (   c,
  allow_hyphen 
)     (!(c) || ((allow_hyphen) && (c) == '-') || (c) == '=')

◆ is_option_with_arg

#define is_option_with_arg (   name,
  allow_hyphen,
  allow_envopt 
)     is_option_with_optarg(name, allow_hyphen, allow_envopt, Qtrue, Qtrue)

◆ is_option_with_optarg

#define is_option_with_optarg (   name,
  allow_hyphen,
  allow_envopt,
  needs_arg,
  next_arg 
)
Value:
(strncmp((name), s, n = sizeof(name) - 1) == 0 && is_option_end(s[n], (allow_hyphen)) ? \
(check_envopt(name, (allow_envopt)), s += n, \
need_argument(name, s, needs_arg, next_arg), 1) : 0)

◆ LITERAL_NAME_ELEMENT

#define LITERAL_NAME_ELEMENT (   name)    #name

Definition at line 866 of file ruby.c.

◆ M

#define M (   shortopt,
  longopt,
  desc 
)
Value:
{ \
shortopt " " longopt " " desc, \
(unsigned short)sizeof(shortopt), \
(unsigned short)sizeof(longopt), \
}

◆ MAXPATHLEN

#define MAXPATHLEN   1024

Definition at line 47 of file ruby.c.

◆ MODE_TO_LOAD

#define MODE_TO_LOAD   (O_RDONLY)

◆ NAME_MATCH_P

#define NAME_MATCH_P (   name,
  str,
  len 
)     ((len) < (int)sizeof(name) && name_match_p((name), (str), (len)))

Definition at line 851 of file ruby.c.

◆ need_argument

#define need_argument (   name,
  s,
  needs_arg,
  next_arg 
)
Value:
((*(s) ? !*++(s) : (next_arg) && (!argc || !((s) = argv[1]) || (--argc, ++argv, 0))) && (needs_arg) ? \
rb_raise(rb_eRuntimeError, "missing argument for --" name) \
: (void)0)

◆ O_ACCMODE

#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)

Definition at line 50 of file ruby.c.

◆ PREFIX_PATH

#define PREFIX_PATH ( )    RUBY_RELATIVE(ruby_exec_prefix, exec_prefix_len)

◆ rb_define_readonly_boolean

#define rb_define_readonly_boolean (   name,
  val 
)     rb_define_virtual_variable((name), (val) ? true_value : false_value, 0)

Definition at line 1493 of file ruby.c.

◆ rb_orig_progname

#define rb_orig_progname   (GET_VM()->orig_progname)

Definition at line 1477 of file ruby.c.

◆ rb_progname

#define rb_progname   (GET_VM()->progname)

Definition at line 1476 of file ruby.c.

◆ RUBY_RELATIVE

#define RUBY_RELATIVE (   path,
  len 
)    rubylib_path_new((path), (len))

◆ rubylib_path_new

#define rubylib_path_new   rb_str_new

Definition at line 342 of file ruby.c.

◆ SET_COMPILE_OPTION

#define SET_COMPILE_OPTION (   h,
  o,
  name 
)

◆ set_encoding_part

#define set_encoding_part (   type)
Value:
if (!(p = strchr(s, ':'))) { \
set_##type##_encoding_once(opt, s, 0); \
break; \
} \
else if (p > s) { \
set_##type##_encoding_once(opt, s, p-s); \
}

◆ set_external_encoding_once

#define set_external_encoding_once (   opt,
  e,
  elen 
)     set_option_encoding_once("default_external", &(opt)->ext.enc.name, (e), (elen))

Definition at line 970 of file ruby.c.

◆ SET_FEATURE

#define SET_FEATURE (   bit)     if (NAME_MATCH_P(#bit, str, len)) {set |= mask = FEATURE_BIT(bit); FEATURE_FOUND;}

◆ set_internal_encoding_once

#define set_internal_encoding_once (   opt,
  e,
  elen 
)     set_option_encoding_once("default_internal", &(opt)->intern.enc.name, (e), (elen))

Definition at line 968 of file ruby.c.

◆ set_source_encoding_once

#define set_source_encoding_once (   opt,
  e,
  elen 
)     set_option_encoding_once("source", &(opt)->src.enc.name, (e), (elen))

Definition at line 972 of file ruby.c.

◆ SET_WHEN

#define SET_WHEN (   name,
  bit,
  str,
  len 
)
Value:
if (NAME_MATCH_P((name), (str), (len))) { \
*(unsigned int *)arg |= (bit); \
return; \
}

Definition at line 860 of file ruby.c.

◆ SET_WHEN_DEBUG

#define SET_WHEN_DEBUG (   bit)
Value:
if (NAME_MATCH_P(#bit, str, len)) { \
FEATURE_SET(*argp, DEBUG_BIT(bit)); \
return; \
}

◆ SET_WHEN_DUMP

#define SET_WHEN_DUMP (   bit)    SET_WHEN(#bit, DUMP_BIT(bit), str, len)

◆ SHOW

#define SHOW (   m)    show_usage_line((m).str, (m).namelen, (m).secondlen, help)

◆ src_encoding_index

#define src_encoding_index   GET_VM()->src_encoding_index

Definition at line 182 of file ruby.c.

◆ str_conv_enc

#define str_conv_enc (   str,
  from,
  to 
)    (str)

Definition at line 499 of file ruby.c.

◆ UNSET_WHEN

#define UNSET_WHEN (   name,
  bit,
  str,
  len 
)
Value:
if (NAME_MATCH_P((name), (str), (len))) { \
*(unsigned int *)arg &= ~(bit); \
return; \
}

Definition at line 854 of file ruby.c.

◆ UTF8_PATH

#define UTF8_PATH   0

Definition at line 482 of file ruby.c.

Typedef Documentation

◆ ruby_cmdline_options_t

Definition at line 72 of file ruby.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DBL_BIGDIG 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_REGISTERS 
COROUTINE_XMM_REGISTERS 
COROUTINE_REGISTERS 
NAME_ERR_MESG__MESG 
NAME_ERR_MESG__RECV 
NAME_ERR_MESG__NAME 
NAME_ERR_MESG_COUNT 
raise_opt_cause 
raise_max_opt 
RAISED_EXCEPTION 
RAISED_STACKOVERFLOW 
RAISED_NOMEMORY 
DECIMAL_SIZE_OF_LONG 
JISX0301_DATE_SIZE 
FLAG_RETURNS_128BITS 
FLAG_RETURNS_NOTHING 
FLAG_RETURNS_FP 
FLAG_RETURNS_64BITS 
FLAG_RETURNS_STRUCT 
FLAG_ARG_NEEDS_COPY 
FLAG_FP_ARGUMENTS 
FLAG_4_GPR_ARGUMENTS 
FLAG_RETVAL_REFERENCE 
FLAG_RETURNS_SMST 
FLAG_RETURNS_NOTHING 
FLAG_RETURNS_FP 
FLAG_RETURNS_64BITS 
FLAG_RETURNS_128BITS 
FLAG_COMPAT 
FLAG_ARG_NEEDS_COPY 
FLAG_ARG_NEEDS_PSAVE 
FLAG_FP_ARGUMENTS 
FLAG_4_GPR_ARGUMENTS 
FLAG_RETVAL_REFERENCE 
JSON_object_start 
ossl_asn1_info_size 
tIGNORED_NL 
tCOMMENT 
tEMBDOC_BEG 
tEMBDOC 
tEMBDOC_END 
tHEREDOC_BEG 
tHEREDOC_END 
k__END__ 
ORDINAL_PARAM 
NO_PARAM 
NUMPARAM_MAX 
BITS_SIZE 
BITS_BITLENGTH 
RSTRUCT_EMBED_LEN_MAX 
RSTRUCT_EMBED_LEN_MASK 
RSTRUCT_EMBED_LEN_SHIFT 
RSTRUCT_TRANSIENT_FLAG 
RSTRUCT_ENUM_END 
bom_prefix_len 
MT_MAX_STATE 
PCH_NOT_READY 
PCH_FAILED 
PCH_SUCCESS 
ORDINAL_PARAM 
NO_PARAM 
NUMPARAM_MAX 
COMPILATION_FEATURES 
DEFAULT_FEATURES 
LONGEST_SIGNAME 
LEFT 
CHCASE 
LOWER 
UPPER 
AREF_HASH_UNIT 
AREF_HASH_THRESHOLD 
TMOPT_IN 
TMOPT_MAX_ 
CALLER_BINDING_SELF 
CALLER_BINDING_CLASS 
CALLER_BINDING_BINDING 
CALLER_BINDING_ISEQ 
CALLER_BINDING_CFP 
VM_FRAME_MAGIC_METHOD 
VM_FRAME_MAGIC_BLOCK 
VM_FRAME_MAGIC_CLASS 
VM_FRAME_MAGIC_TOP 
VM_FRAME_MAGIC_CFUNC 
VM_FRAME_MAGIC_IFUNC 
VM_FRAME_MAGIC_EVAL 
VM_FRAME_MAGIC_RESCUE 
VM_FRAME_MAGIC_DUMMY 
VM_FRAME_MAGIC_MASK 
VM_FRAME_FLAG_PASSED 
VM_FRAME_FLAG_FINISH 
VM_FRAME_FLAG_BMETHOD 
VM_FRAME_FLAG_CFRAME 
VM_FRAME_FLAG_LAMBDA 
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM 
VM_FRAME_FLAG_CFRAME_KW 
VM_FRAME_FLAG_CFRAME_EMPTY_KW 
VM_ENV_FLAG_LOCAL 
VM_ENV_FLAG_ESCAPED 
VM_ENV_FLAG_WB_REQUIRED 
MINIMUM_REPARSE_BUFFER_PATH_LEN 
SI_USER 
SI_ASYNCIO 
SI_MESGQ 
SI_TIMER 
SI_QUEUE 
SI_KERNEL 
ILL_ILLOPC 
ILL_ILLOPN 
ILL_ILLADR 
ILL_ILLTRP 
ILL_PRVOPC 
ILL_PRVREG 
ILL_COPROC 
ILL_BADSTK 
FPE_INTDIV 
FPE_INTOVF 
FPE_FLTDIV 
FPE_FLTOVF 
FPE_FLTUND 
FPE_FLTRES 
FPE_FLTINV 
FPE_FLTSUB 
SEGV_MAPERR 
SEGV_ACCERR 
BUS_ADRALN 
BUS_ADRERR 
BUS_OBJERR 
CLD_EXITED 
CLD_KILLED 
CLD_DUMPED 
CLD_TRAPPED 
CLD_STOPPED 
CLD_CONTINUED 

Definition at line 184 of file ruby.c.

◆ dump_flag_bits

Enumerator
dump_version_v 
EACH_DUMPS 
dump_exit_bits 

Definition at line 124 of file ruby.c.

◆ feature_flag_bits

Enumerator
EACH_FEATURES 
feature_debug_flag_first 
feature_debug_flag_begin 
EACH_DEBUG_FEATURES 
feature_flag_count 

Definition at line 93 of file ruby.c.

Function Documentation

◆ getenv()

char* getenv ( )

Referenced by ruby_init_loadpath().

◆ Init_builtin_features()

void Init_builtin_features ( void  )

Definition at line 66 of file builtin.c.

References NULL, and rb_load_with_builtin_functions().

◆ Init_ruby_description()

void Init_ruby_description ( void  )

Definition at line 100 of file version.c.

References MJIT_OPTS_ON, MKSTR, and rb_define_global_const().

◆ rb_load_file()

void* rb_load_file ( const char fname)

Definition at line 2192 of file ruby.c.

References load_file_arg::fname, rb_load_file_str(), and rb_str_new_cstr.

◆ rb_load_file_str()

void* rb_load_file_str ( VALUE  fname_v)

Definition at line 2199 of file ruby.c.

References rb_parser_load_file(), and rb_parser_new().

Referenced by rb_load_file().

◆ rb_parser_load_file()

void* rb_parser_load_file ( VALUE  parser,
VALUE  fname_v 
)

Definition at line 2205 of file ruby.c.

References f, and load_file_arg::opt.

Referenced by rb_load_file_str().

◆ ruby_env_debug_option()

int ruby_env_debug_option ( const char str,
int  len,
void arg 
)

◆ ruby_incpush_expand()

void ruby_incpush_expand ( const char path)

Definition at line 443 of file ruby.c.

References path, and ruby_push_include().

◆ ruby_push_include()

void ruby_push_include ( const char path,
VALUE(*)(VALUE filter 
)

Definition at line 406 of file ruby.c.

References path.

Referenced by ruby_incpush(), ruby_incpush_expand(), and ruby_init_loadpath().

Variable Documentation

◆ argc

int argc

◆ argv

int const VALUE * argv

◆ rb_argv0

VALUE rb_argv0

Definition at line 1478 of file ruby.c.

◆ rb_e_script

VALUE rb_e_script

Definition at line 1479 of file ruby.c.

◆ ruby_archlibdir_path

VALUE ruby_archlibdir_path

Definition at line 579 of file ruby.c.

Referenced by ruby_init_loadpath().

◆ ruby_patchlevel

RUBY_EXTERN const int ruby_patchlevel

Definition at line 921 of file ruby.c.

◆ ruby_prefix_path

VALUE ruby_prefix_path

Definition at line 579 of file ruby.c.

Referenced by ruby_init_loadpath().

strncmp
int strncmp(const char *, const char *, size_t)
strchr
char * strchr(char *, char)
rb_intern_const
#define rb_intern_const(str)
Definition: ruby.h:1879
short
#define short
Definition: rb_mjit_min_header-2.7.2.h:2917
FEATURE_SET_P
#define FEATURE_SET_P(feat, bits)
Definition: ruby.c:150
Qfalse
#define Qfalse
Definition: ruby.h:467
check_envopt
#define check_envopt(name, allow_envopt)
ID2SYM
#define ID2SYM(x)
Definition: ruby.h:414
void
void
Definition: rb_mjit_min_header-2.7.2.h:13321
rb_raise
void rb_raise(VALUE exc, const char *fmt,...)
Definition: error.c:2671
h
size_t st_index_t h
Definition: rb_mjit_min_header-2.7.2.h:5497
is_option_end
#define is_option_end(c, allow_hyphen)
rb_eRuntimeError
VALUE rb_eRuntimeError
Definition: error.c:922
arg
VALUE arg
Definition: rb_mjit_min_header-2.7.2.h:5636
FEATURE_BIT
#define FEATURE_BIT(bit)
Definition: ruby.c:75
argv
char ** argv
Definition: ruby.c:223
yydebug
#define yydebug
Definition: ripper.c:96
str
char str[HTML_ESCAPE_MAX_LEN+1]
Definition: escape.c:18
rb_hash_aset
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
Definition: hash.c:2852
argc
int argc
Definition: ruby.c:222
Qtrue
#define Qtrue
Definition: ruby.h:468
len
uint8_t len
Definition: escape.c:17
DEBUG_BIT
#define DEBUG_BIT(bit)
Definition: ruby.c:101
NAME_MATCH_P
#define NAME_MATCH_P(name, str, len)
Definition: ruby.c:851
ruby::backward::cxxanyargs::type
VALUE type(ANYARGS)
ANYARGS-ed function type.
Definition: cxxanyargs.hpp:39
name
const char * name
Definition: nkf.c:208
n
const char size_t n
Definition: rb_mjit_min_header-2.7.2.h:5491