Separate builtin initialization calls

This commit is contained in:
Nobuyoshi Nakada 2019-12-29 10:07:17 +09:00
Родитель 8ce5d46e66
Коммит d7bef803ac
8 изменённых файлов: 14 добавлений и 27 удалений

2
ast.c
Просмотреть файл

@ -690,6 +690,4 @@ Init_ast(void)
rb_mAST = rb_define_module_under(rb_cRubyVM, "AbstractSyntaxTree"); rb_mAST = rb_define_module_under(rb_cRubyVM, "AbstractSyntaxTree");
rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject); rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject);
rb_undef_alloc_func(rb_cNode); rb_undef_alloc_func(rb_cNode);
load_ast();
} }

Просмотреть файл

@ -3077,12 +3077,6 @@ Init_syserr(void)
#include "warning.rbinc" #include "warning.rbinc"
void
Init_warning(void)
{
load_warning();
}
/*! /*!
* \} * \}
*/ */

1
gc.c
Просмотреть файл

@ -11868,7 +11868,6 @@ Init_GC(void)
VALUE gc_constants; VALUE gc_constants;
rb_mGC = rb_define_module("GC"); rb_mGC = rb_define_module("GC");
load_gc();
gc_constants = rb_hash_new(); gc_constants = rb_hash_new();
rb_hash_aset(gc_constants, ID2SYM(rb_intern("RVALUE_SIZE")), SIZET2NUM(sizeof(RVALUE))); rb_hash_aset(gc_constants, ID2SYM(rb_intern("RVALUE_SIZE")), SIZET2NUM(sizeof(RVALUE)));

20
inits.c
Просмотреть файл

@ -12,6 +12,7 @@
#include "internal/inits.h" #include "internal/inits.h"
#include "ruby.h" #include "ruby.h"
#include "builtin.h" #include "builtin.h"
static void Init_builtin_prelude(void);
#include "prelude.rbinc" #include "prelude.rbinc"
#define CALL(n) {void Init_##n(void); Init_##n();} #define CALL(n) {void Init_##n(void); Init_##n();}
@ -45,6 +46,7 @@ rb_call_inits(void)
CALL(Hash); CALL(Hash);
CALL(Struct); CALL(Struct);
CALL(Regexp); CALL(Regexp);
CALL(pack);
CALL(transcode); CALL(transcode);
CALL(marshal); CALL(marshal);
CALL(Range); CALL(Range);
@ -57,6 +59,7 @@ rb_call_inits(void)
CALL(Proc); CALL(Proc);
CALL(Binding); CALL(Binding);
CALL(Math); CALL(Math);
CALL(GC);
CALL(Enumerator); CALL(Enumerator);
CALL(VM); CALL(VM);
CALL(ISeq); CALL(ISeq);
@ -66,18 +69,21 @@ rb_call_inits(void)
CALL(Rational); CALL(Rational);
CALL(Complex); CALL(Complex);
CALL(version); CALL(version);
CALL(vm_trace);
CALL(vm_stack_canary); CALL(vm_stack_canary);
CALL(ast);
CALL(gc_stress); CALL(gc_stress);
// enable builtin loading // enable builtin loading
CALL(builtin); CALL(builtin);
CALL(GC); #define BUILTIN(n) CALL(builtin_##n)
CALL(IO_nonblock); BUILTIN(gc);
CALL(ast); BUILTIN(io);
CALL(vm_trace); BUILTIN(ast);
CALL(pack); BUILTIN(trace_point);
CALL(warning); BUILTIN(pack);
load_prelude(); BUILTIN(warning);
Init_builtin_prelude();
} }
#undef CALL #undef CALL

6
io.c
Просмотреть файл

@ -13522,9 +13522,3 @@ Init_IO(void)
} }
#include "io.rbinc" #include "io.rbinc"
void
Init_IO_nonblock(void)
{
load_io();
}

2
pack.c
Просмотреть файл

@ -1767,7 +1767,5 @@ utf8_to_uv(const char *p, long *lenp)
void void
Init_pack(void) Init_pack(void)
{ {
load_pack();
id_associated = rb_make_internal_id(); id_associated = rb_make_internal_id();
} }

Просмотреть файл

@ -166,7 +166,7 @@ def mk_builtin_header file
end end
} }
f.puts "static void load_#{base}(void)" f.puts "void Init_builtin_#{base}(void)"
f.puts "{" f.puts "{"
table = "#{base}_table" table = "#{base}_table"

Просмотреть файл

@ -1526,8 +1526,6 @@ Init_vm_trace(void)
rb_cTracePoint = rb_define_class("TracePoint", rb_cObject); rb_cTracePoint = rb_define_class("TracePoint", rb_cObject);
rb_undef_alloc_func(rb_cTracePoint); rb_undef_alloc_func(rb_cTracePoint);
load_trace_point();
} }
typedef struct rb_postponed_job_struct { typedef struct rb_postponed_job_struct {