From 5e22f873ed26092522f9bfc617d729bac88b284f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?= Date: Wed, 4 Dec 2019 17:16:30 +0900 Subject: decouple internal.h headers Saves comitters' daily life by avoid #include-ing everything from internal.h to make each file do so instead. This would significantly speed up incremental builds. We take the following inclusion order in this changeset: 1. "ruby/config.h", where _GNU_SOURCE is defined (must be the very first thing among everything). 2. RUBY_EXTCONF_H if any. 3. Standard C headers, sorted alphabetically. 4. Other system headers, maybe guarded by #ifdef 5. Everything else, sorted alphabetically. Exceptions are those win32-related headers, which tend not be self- containing (headers have inclusion order dependencies). --- tool/mk_builtin_loader.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'tool/mk_builtin_loader.rb') diff --git a/tool/mk_builtin_loader.rb b/tool/mk_builtin_loader.rb index dcd4b93532..3d2a3430e0 100644 --- a/tool/mk_builtin_loader.rb +++ b/tool/mk_builtin_loader.rb @@ -127,13 +127,18 @@ def mk_builtin_header file f.puts "// auto-generated file" f.puts "// by #{__FILE__}" f.puts "// with #{file}" + f.puts '#include "internal/compilers.h" /* for MAYBE_UNUSED */' + f.puts '#include "internal/warnings.h" /* for COMPILER_WARNING_PUSH */' + f.puts '#include "ruby/ruby.h" /* for VALUE */' + f.puts '#include "builtin.h" /* for RB_BUILTIN_FUNCTION */' + f.puts 'struct rb_execution_context_struct; /* in vm_core.h */' f.puts - lineno = 6 + lineno = 11 line_file = file.gsub('\\', '/') inlines.each{|cfunc_name, (body_lineno, text, params, func_name)| if String === cfunc_name - f.puts "static VALUE #{cfunc_name}(rb_execution_context_t *ec, const VALUE self) {" + f.puts "static VALUE #{cfunc_name}(struct rb_execution_context_struct *ec, const VALUE self) {" lineno += 1 params.reverse_each.with_index{|param, i| -- cgit v1.2.3