Ruby: internal/eval.h Source File

Ruby 4.0.6p0 (2026-07-14 revision 03b6d3f8898a28604fe6cb00eae3226b821168f4)

eval.h
1#ifndef INTERNAL_EVAL_H /*-*-C-*-vi:se ft=c:*/
2#define INTERNAL_EVAL_H
13#include "ruby/ruby.h" /* for ID */
14#include "vm_core.h" /* for ID */
15
16#define id_signo ruby_static_id_signo
17#define id_status ruby_static_id_status
18
19/* eval.c */
20 struct rb_refinements_data {
21 VALUE refinement;
22 VALUE refinements;
23};
24
25extern ID ruby_static_id_signo;
26extern ID ruby_static_id_status;
27 VALUE rb_refinement_module_get_refined_class(VALUE module);
28void rb_class_modify_check(VALUE);
29NORETURN(VALUE rb_f_raise(int argc, VALUE *argv));
30 VALUE rb_exception_setup(int argc, VALUE *argv);
31void rb_refinement_setup(struct rb_refinements_data *data, VALUE module, VALUE klass);
32void rb_vm_using_module(VALUE module);
33 VALUE rb_top_main_class(const char *method);
34 VALUE rb_ec_ensure(rb_execution_context_t *ec, VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);
35
36/* eval_error.c */
37 VALUE rb_get_backtrace(VALUE info);
38
39/* eval_jump.c */
40void rb_call_end_proc(VALUE data);
41void rb_mark_end_proc(void);
42
43#endif /* INTERNAL_EVAL_H */
rb_class_modify_check
void rb_class_modify_check(VALUE)
Asserts that klass is not a frozen class.
Definition eval.c:432
ruby.h
rb_refinements_data
Definition eval.h:20
ID
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
Definition value.h:52
VALUE
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40