1#ifndef BUILTIN_H_INCLUDED
2#define BUILTIN_H_INCLUDED
8 const void *
const func_ptr;
13 const char *
const name;
16 void (*compiler)(
FILE *, long, unsigned, bool);
19#define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity, _compiler) {\
21 .func_ptr = (void *)_fname, \
24 .compiler = _compiler, \
27void rb_load_with_builtin_functions(
const char *feature_name,
const struct rb_builtin_function *table);
29#ifndef rb_execution_context_t
31#define rb_execution_context_t rb_execution_context_t
43static inline void rb_builtin_function_check_arity1(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE)){}
44static inline void rb_builtin_function_check_arity2(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE)){}
45static inline void rb_builtin_function_check_arity3(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE)){}
46static inline void rb_builtin_function_check_arity4(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE)){}
47static inline void rb_builtin_function_check_arity5(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE)){}
48static inline void rb_builtin_function_check_arity6(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
49static inline void rb_builtin_function_check_arity7(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
50static inline void rb_builtin_function_check_arity8(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
51static inline void rb_builtin_function_check_arity9(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
52static inline void rb_builtin_function_check_arity10(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
53static inline void rb_builtin_function_check_arity11(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
54static inline void rb_builtin_function_check_arity12(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
55static inline void rb_builtin_function_check_arity13(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
56static inline void rb_builtin_function_check_arity14(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
57static inline void rb_builtin_function_check_arity15(VALUE (*f)(
rb_execution_context_t *ec, VALUE
self, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)){}
69#if defined(VM_CORE_H_EC_DEFINED) && VM_CORE_H_EC_DEFINED
70 return ec->cfp->ep[index];
72 return rb_vm_lvar_exposed(ec, index);
80 const unsigned char *bin;