Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
globals.h
Go to the documentation of this file.
1#ifndef RBIMPL_GLOBALS_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_GLOBALS_H
27#include "ruby/internal/value.h"
29
31
32#define RUBY_INTEGER_UNIFICATION 1
33
44
79
110
115
117
119
121static inline VALUE
122rb_class_of(VALUE obj)
123{
124 if (! RB_SPECIAL_CONST_P(obj)) {
125 return RBASIC_CLASS(obj);
126 }
127 else if (obj == RUBY_Qfalse) {
128 return rb_cFalseClass;
129 }
130 else if (obj == RUBY_Qnil) {
131 return rb_cNilClass;
132 }
133 else if (obj == RUBY_Qtrue) {
134 return rb_cTrueClass;
135 }
136 else if (RB_FIXNUM_P(obj)) {
137 return rb_cInteger;
138 }
139 else if (RB_STATIC_SYM_P(obj)) {
140 return rb_cSymbol;
141 }
142 else if (RB_FLONUM_P(obj)) {
143 return rb_cFloat;
144 }
145
146#if !RUBY_DEBUG
148#else
149 RUBY_ASSERT_FAIL("unexpected type");
150#endif
151}
152
153#define CLASS_OF rb_class_of
154
156
157#endif /* RBIMPL_GLOBALS_H */
#define RUBY_ASSERT_FAIL(mesg)
Prints the given message, and terminates the entire process abnormally.
Definition: assert.h:150
Tewaking visibility of C variables/functions.
#define RUBY_EXTERN
Definition: dllexport.h:36
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:86
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:77
Defines enum ruby_fl_type.
VALUE rb_cRational
Definition: rational.c:43
VALUE rb_eLocalJumpError
Definition: eval.c:48
VALUE rb_cUnboundMethod
Definition: proc.c:43
VALUE rb_cTime
Definition: time.c:645
VALUE rb_cDir
Definition: dir.c:450
VALUE rb_cComplex
Definition: complex.c:44
VALUE rb_cArray
Definition: array.c:40
VALUE rb_mProcess
Definition: process.c:8608
VALUE rb_eZeroDivError
Definition: numeric.c:193
VALUE rb_mMath
Definition: math.c:36
VALUE rb_eIOError
Definition: io.c:185
VALUE rb_cIO
Definition: io.c:183
VALUE rb_mEnumerable
Definition: enum.c:27
VALUE rb_cMatch
Definition: re.c:940
VALUE rb_cStruct
Definition: struct.c:34
VALUE rb_eRegexpError
Definition: re.c:28
VALUE rb_cEnumerator
Definition: enumerator.c:126
VALUE rb_cInteger
Definition: numeric.c:191
VALUE rb_eEOFError
Definition: io.c:184
VALUE rb_stdin
Definition: io.c:196
VALUE rb_cStat
Definition: file.c:176
VALUE rb_cBinding
Definition: proc.c:45
VALUE rb_cRegexp
Definition: re.c:2301
VALUE rb_mGC
Definition: gc.c:981
VALUE rb_cHash
Definition: hash.c:106
VALUE rb_stderr
Definition: globals.h:118
VALUE rb_cNumeric
Definition: numeric.c:189
VALUE rb_cRandom
Definition: random.c:226
VALUE rb_cEncoding
Definition: encoding.c:57
VALUE rb_eStopIteration
Definition: enumerator.c:141
VALUE rb_eFloatDomainError
Definition: numeric.c:194
VALUE rb_cSymbol
Definition: string.c:81
VALUE rb_cThread
Definition: vm.c:374
VALUE rb_cRange
Definition: range.c:31
VALUE rb_mFileTest
Definition: file.c:175
VALUE rb_mWaitReadable
Definition: io.c:186
VALUE rb_mWaitWritable
Definition: io.c:187
VALUE rb_eSysStackError
Definition: eval.c:49
VALUE rb_mComparable
Definition: compar.c:19
VALUE rb_cFloat
Definition: numeric.c:190
VALUE rb_cProc
Definition: proc.c:46
VALUE rb_cFile
Definition: file.c:174
VALUE rb_stdout
Definition: globals.h:118
VALUE rb_eThreadError
Definition: eval.c:953
VALUE rb_cString
Definition: string.c:80
VALUE rb_eMathDomainError
Definition: math.c:37
VALUE rb_cMethod
Definition: proc.c:44
VALUE rb_eNotImpError
Definition: error.c:1067
VALUE rb_eScriptError
Definition: error.c:1072
VALUE rb_eKeyError
Definition: error.c:1060
VALUE rb_cNameErrorMesg
Definition: error.c:1069
VALUE rb_eSystemExit
Definition: error.c:1050
VALUE rb_eStandardError
Definition: error.c:1054
VALUE rb_mErrno
Definition: error.c:1077
VALUE rb_eFrozenError
Definition: error.c:1056
VALUE rb_eNoMemError
Definition: error.c:1068
VALUE rb_eRangeError
Definition: error.c:1061
VALUE rb_eLoadError
Definition: error.c:1074
VALUE rb_eTypeError
Definition: error.c:1057
VALUE rb_eNoMatchingPatternError
Definition: error.c:1070
VALUE rb_eEncCompatError
Definition: error.c:1064
VALUE rb_eFatal
Definition: error.c:1053
VALUE rb_eInterrupt
Definition: error.c:1051
VALUE rb_eNameError
Definition: error.c:1062
VALUE rb_eNoMethodError
Definition: error.c:1065
VALUE rb_eRuntimeError
Definition: error.c:1055
VALUE rb_eArgError
Definition: error.c:1058
VALUE rb_eException
Definition: error.c:1049
VALUE rb_eIndexError
Definition: error.c:1059
VALUE rb_eSyntaxError
Definition: error.c:1073
VALUE rb_eEncodingError
Definition: error.c:1063
VALUE rb_eSecurityError
Definition: error.c:1066
VALUE rb_eSystemCallError
Definition: error.c:1076
VALUE rb_eSignal
Definition: error.c:1052
VALUE rb_cClass
Class class.
Definition: object.c:51
VALUE rb_mKernel
Kernel module.
Definition: object.c:48
VALUE rb_cObject
Object class.
Definition: object.c:49
VALUE rb_cNilClass
NilClass class.
Definition: object.c:53
VALUE rb_cFalseClass
FalseClass class.
Definition: object.c:55
VALUE rb_cBasicObject
BasicObject class.
Definition: object.c:47
VALUE rb_cModule
Module class.
Definition: object.c:50
VALUE rb_cTrueClass
TrueClass class.
Definition: object.c:54
#define RBIMPL_UNREACHABLE_RETURN(_)
Wraps (or simulates) __builtin_unreachable.
Definition: assume.h:51
Defines RBIMPL_ATTR_PURE.
#define RBIMPL_ATTR_PURE()
Wraps (or simulates) __attribute__((pure))
Definition: pure.h:33
#define RBASIC_CLASS
Definition: rbasic.h:35
Defines enum ruby_special_consts.
@ RUBY_Qtrue
@ RUBY_Qnil
@ RUBY_Qfalse
#define Qfalse
Defines VALUE and ID.
unsigned long VALUE
Definition: value.h:38
Defines enum ruby_value_type.