ruby/internal/inits.h
Satoshi Tagomori 4f47327287 Update current namespace management by using control frames and lexical contexts
to fix inconsistent and wrong current namespace detections.

This includes:
* Moving load_path and related things from rb_vm_t to rb_namespace_t to simplify
  accessing those values via namespace (instead of accessing either vm or ns)
* Initializing root_namespace earlier and consolidate builtin_namespace into root_namespace
* Adding VM_FRAME_FLAG_NS_REQUIRE for checkpoints to detect a namespace to load/require files
* Removing implicit refinements in the root namespace which was used to determine
  the namespace to be loaded (replaced by VM_FRAME_FLAG_NS_REQUIRE)
* Removing namespaces from rb_proc_t because its namespace can be identified by lexical context
* Starting to use ep[VM_ENV_DATA_INDEX_SPECVAL] to store the current namespace when
  the frame type is MAGIC_TOP or MAGIC_CLASS (block handlers don't exist in this case)
2025-09-29 01:15:38 +09:00

54 lines
1.2 KiB
C

#ifndef INTERNAL_INITS_H /*-*-C-*-vi:se ft=c:*/
#define INTERNAL_INITS_H
/**
* @author Ruby developers <ruby-core@ruby-lang.org>
* @copyright This file is a part of the programming language Ruby.
* Permission is hereby granted, to either redistribute and/or
* modify this file, provided that the conditions mentioned in the
* file COPYING are met. Consult the file for details.
* @brief Internal header aggregating init functions.
*/
/* class.c */
void Init_class_hierarchy(void);
/* dmyext.c */
void Init_enc(void);
void Init_ext(void);
/* file.c */
void Init_File(void);
/* localeinit.c */
int Init_enc_set_filesystem_encoding(void);
/* newline.c */
void Init_newline(void);
/* namespace.c */
void Init_enable_namespace(void);
/* vm.c */
void Init_BareVM(void);
void Init_vm_objects(void);
/* namespace.c */
void Init_root_namespace(void);
/* vm_backtrace.c */
void Init_vm_backtrace(void);
/* vm_eval.c */
void Init_vm_eval(void);
/* vm_insnhelper.c */
void Init_vm_stack_canary(void);
/* vm_method.c */
void Init_eval_method(void);
/* inits.c */
void rb_call_inits(void);
#endif /* INTERNAL_INITS_H */