Skip to content

Commit 5e22f87

Browse files
committed
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).
1 parent 33e9601 commit 5e22f87

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+1327
-689
lines changed

array.c

+16-5
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,25 @@
1010
Copyright (C) 2000 Information-technology Promotion Agency, Japan
1111
1212
**********************************************************************/
13+
14+
#include "debug_counter.h"
15+
#include "id.h"
16+
#include "internal.h"
17+
#include "internal/array.h"
18+
#include "internal/compar.h"
19+
#include "internal/enum.h"
20+
#include "internal/gc.h"
21+
#include "internal/hash.h"
22+
#include "internal/numeric.h"
23+
#include "internal/object.h"
24+
#include "internal/proc.h"
25+
#include "internal/rational.h"
26+
#include "internal/vm.h"
27+
#include "probes.h"
1328
#include "ruby/encoding.h"
14-
#include "ruby/util.h"
1529
#include "ruby/st.h"
16-
#include "probes.h"
17-
#include "id.h"
18-
#include "debug_counter.h"
30+
#include "ruby/util.h"
1931
#include "transient_heap.h"
20-
#include "internal.h"
2132

2233
#if !ARRAY_DEBUG
2334
# define NDEBUG

ast.c

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
/* indent-tabs-mode: nil */
2+
#include "internal.h"
3+
#include "internal/parse.h"
4+
#include "internal/symbol.h"
5+
#include "internal/warnings.h"
6+
#include "iseq.h"
7+
#include "node.h"
28
#include "ruby.h"
39
#include "ruby/encoding.h"
410
#include "ruby/util.h"
5-
#include "internal.h"
6-
#include "node.h"
711
#include "vm_core.h"
8-
#include "iseq.h"
12+
913
#include "builtin.h"
1014

1115
static VALUE rb_mAST;

bignum.c

+25-12
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,40 @@
99
1010
**********************************************************************/
1111

12-
#include "internal.h"
13-
#include "ruby/thread.h"
14-
#include "ruby/util.h"
15-
#include "id.h"
12+
#include "ruby/config.h"
13+
14+
#include <ctype.h>
15+
#include <float.h>
16+
#include <math.h>
1617

1718
#ifdef HAVE_STRINGS_H
18-
#include <strings.h>
19+
# include <strings.h>
1920
#endif
20-
#include <math.h>
21-
#include <float.h>
22-
#include <ctype.h>
21+
2322
#ifdef HAVE_IEEEFP_H
24-
#include <ieeefp.h>
23+
# include <ieeefp.h>
2524
#endif
26-
#include "ruby_assert.h"
2725

2826
#if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H)
29-
#define USE_GMP
30-
#include <gmp.h>
27+
# define USE_GMP
28+
# include <gmp.h>
3129
#endif
3230

31+
#include "id.h"
32+
#include "internal.h"
33+
#include "internal/bignum.h"
34+
#include "internal/complex.h"
35+
#include "internal/gc.h"
36+
#include "internal/numeric.h"
37+
#include "internal/object.h"
38+
#include "internal/sanitizers.h"
39+
#include "internal/util.h"
40+
#include "internal/variable.h"
41+
#include "internal/warnings.h"
42+
#include "ruby/thread.h"
43+
#include "ruby/util.h"
44+
#include "ruby_assert.h"
45+
3346
#define RB_BIGNUM_TYPE_P(x) RB_TYPE_P((x), T_BIGNUM)
3447

3548
#ifndef RUBY_INTEGER_UNIFICATION

class.c

+11-3
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,20 @@
2323
* \{
2424
*/
2525

26+
#include "ruby/config.h"
27+
#include <ctype.h>
28+
29+
#include "constant.h"
30+
#include "id_table.h"
2631
#include "internal.h"
32+
#include "internal/class.h"
33+
#include "internal/error.h"
34+
#include "internal/eval.h"
35+
#include "internal/hash.h"
36+
#include "internal/object.h"
37+
#include "internal/variable.h"
2738
#include "ruby/st.h"
28-
#include "constant.h"
2939
#include "vm_core.h"
30-
#include "id_table.h"
31-
#include <ctype.h>
3240

3341
#define id_attached id__attached__
3442

compar.c

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99
1010
**********************************************************************/
1111

12-
#include "ruby/ruby.h"
1312
#include "id.h"
1413
#include "internal.h"
14+
#include "internal/compar.h"
15+
#include "internal/error.h"
16+
#include "internal/vm.h"
17+
#include "ruby/ruby.h"
1518

1619
VALUE rb_mComparable;
1720

compile.c

+26-12
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,39 @@
99
1010
**********************************************************************/
1111

12-
#include "ruby/encoding.h"
13-
#include "ruby/re.h"
14-
#include "ruby/util.h"
15-
#include "internal.h"
16-
#include "encindex.h"
12+
#include "ruby/config.h"
1713
#include <math.h>
1814

15+
#ifdef HAVE_DLADDR
16+
# include <dlfcn.h>
17+
#endif
18+
19+
#include "encindex.h"
20+
#include "gc.h"
21+
#include "id_table.h"
22+
#include "internal.h"
23+
#include "internal/array.h"
24+
#include "internal/compile.h"
25+
#include "internal/complex.h"
26+
#include "internal/debug.h"
27+
#include "internal/encoding.h"
28+
#include "internal/error.h"
29+
#include "internal/hash.h"
30+
#include "internal/numeric.h"
31+
#include "internal/object.h"
32+
#include "internal/re.h"
33+
#include "internal/symbol.h"
34+
#include "internal/thread.h"
35+
#include "internal/variable.h"
36+
#include "iseq.h"
37+
#include "ruby/re.h"
38+
#include "ruby/util.h"
1939
#include "vm_core.h"
2040
#include "vm_debug.h"
41+
2142
#include "builtin.h"
22-
#include "iseq.h"
2343
#include "insns.inc"
2444
#include "insns_info.inc"
25-
#include "id_table.h"
26-
#include "gc.h"
27-
28-
#ifdef HAVE_DLADDR
29-
# include <dlfcn.h>
30-
#endif
3145

3246
#undef RUBY_UNTYPED_DATA_WARNING
3347
#define RUBY_UNTYPED_DATA_WARNING 0

complex.c

+12-4
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,25 @@
66
*/
77

88
#include "ruby/config.h"
9+
910
#if defined _MSC_VER
1011
/* Microsoft Visual C does not define M_PI and others by default */
1112
# define _USE_MATH_DEFINES 1
1213
#endif
14+
15+
#include <ctype.h>
1316
#include <math.h>
14-
#include "internal.h"
15-
#include "id.h"
1617

1718
#define NDEBUG
19+
#include "id.h"
20+
#include "internal.h"
21+
#include "internal/class.h"
22+
#include "internal/complex.h"
23+
#include "internal/error.h"
24+
#include "internal/math.h"
25+
#include "internal/numeric.h"
26+
#include "internal/object.h"
27+
#include "internal/rational.h"
1828
#include "ruby_assert.h"
1929

2030
#define ZERO INT2FIX(0)
@@ -1700,8 +1710,6 @@ numeric_to_c(VALUE self)
17001710
return rb_complex_new1(self);
17011711
}
17021712

1703-
#include <ctype.h>
1704-
17051713
inline static int
17061714
issign(int c)
17071715
{

constant.h

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
**********************************************************************/
1111
#ifndef CONSTANT_H
1212
#define CONSTANT_H
13+
#include "ruby/ruby.h"
14+
#include "id_table.h"
1315

1416
typedef enum {
1517
CONST_DEPRECATED = 0x100,

cont.c

+13-7
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,25 @@
99
1010
**********************************************************************/
1111

12-
#include "internal.h"
13-
#include "vm_core.h"
14-
#include "gc.h"
15-
#include "eval_intern.h"
16-
#include "mjit.h"
17-
18-
#include COROUTINE_H
12+
#include "ruby/config.h"
1913

2014
#ifndef _WIN32
2115
#include <unistd.h>
2216
#include <sys/mman.h>
2317
#endif
2418

19+
#include COROUTINE_H
20+
21+
#include "eval_intern.h"
22+
#include "gc.h"
23+
#include "internal.h"
24+
#include "internal/cont.h"
25+
#include "internal/mjit.h"
26+
#include "internal/proc.h"
27+
#include "internal/warnings.h"
28+
#include "mjit.h"
29+
#include "vm_core.h"
30+
2531
static const int DEBUG = 0;
2632

2733
#define RB_PAGE_SIZE (pagesize)

coroutine/amd64/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __attribute__((noreturn)) void

coroutine/arm32/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __attribute__((noreturn)) void

coroutine/arm64/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __attribute__((noreturn)) void

coroutine/ppc64le/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#pragma once
22

33
#include <assert.h>
4+
#include <stddef.h>
5+
#include <stdint.h>
46
#include <string.h>
57

68
#define COROUTINE __attribute__((noreturn)) void

coroutine/win32/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __declspec(noreturn) void __fastcall

coroutine/win64/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __declspec(noreturn) void

coroutine/x86/Context.h

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
#include <assert.h>
11+
#include <stddef.h>
12+
#include <stdint.h>
1113
#include <string.h>
1214

1315
#define COROUTINE __attribute__((noreturn, fastcall)) void

debug.c

+12-5
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,22 @@
99
1010
**********************************************************************/
1111

12-
#include "ruby/ruby.h"
12+
#include "ruby/config.h"
13+
14+
#include <stdio.h>
15+
16+
#include "eval_intern.h"
17+
#include "id.h"
18+
#include "internal/debug.h"
19+
#include "internal/signal.h"
20+
#include "internal/util.h"
1321
#include "ruby/encoding.h"
1422
#include "ruby/io.h"
23+
#include "ruby/ruby.h"
1524
#include "ruby/util.h"
16-
#include "vm_debug.h"
17-
#include "eval_intern.h"
18-
#include "vm_core.h"
1925
#include "symbol.h"
20-
#include "id.h"
26+
#include "vm_core.h"
27+
#include "vm_debug.h"
2128

2229
/* This is the only place struct RIMemo is actually used */
2330
struct RIMemo {

0 commit comments

Comments
 (0)