summaryrefslogtreecommitdiff
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2019-12-04 17:16:30 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2019-12-26 20:45:12 +0900
commit5e22f873ed26092522f9bfc617d729bac88b284f (patch)
tree8d66856526cd7efa87b46c966298e6f42d67e68f /vm_insnhelper.c
parent33e9601938a79dae149caa88ff1bc06d376dd376 (diff)
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).
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2711
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 0cd4bdefe9..8cc47e15af 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -8,18 +8,29 @@
**********************************************************************/
-/* finish iseq array */
-#include "insns.inc"
-#ifndef MJIT_HEADER
-#include "insns_info.inc"
-#endif
+#include "ruby/config.h"
+
#include <math.h>
+
#include "constant.h"
+#include "debug_counter.h"
#include "internal.h"
+#include "internal/class.h"
+#include "internal/compar.h"
+#include "internal/hash.h"
+#include "internal/numeric.h"
+#include "internal/proc.h"
+#include "internal/random.h"
+#include "internal/variable.h"
#include "ruby/config.h"
-#include "debug_counter.h"
#include "variable.h"
+/* finish iseq array */
+#include "insns.inc"
+#ifndef MJIT_HEADER
+#include "insns_info.inc"
+#endif
+
extern rb_method_definition_t *rb_method_definition_create(rb_method_type_t type, ID mid);
extern void rb_method_definition_set(const rb_method_entry_t *me, rb_method_definition_t *def, void *opts);
extern int rb_method_definition_eq(const rb_method_definition_t *d1, const rb_method_definition_t *d2);