Skip to content

Commit d59441e

Browse files
liam923goldfirere
andauthored
flambda-backend: Make jkind and types mutually recursive (#2538)
* Make jkind and types mutually recursive * Update comment in ocaml/typing/jkind_types.mli Co-authored-by: Richard Eisenberg <[email protected]> * Fix line length * Cleanup sort changelog refs * Cleanup sort refs in primitive * Update commend about jkind_types * Add diagram of dependency chain * Remove a lot of duplication * Tiny improvement around include sig * Fix build error * Fix the build, I think * Remove duplicate jkind_intf in dune file * Revert "Fix the build, I think" I had some build error that I tried to fix, but it seems that I just had done something silly. The previous commit to the one reverted is the actual fix. This reverts commit cc0a0dc. --------- Co-authored-by: Richard Eisenberg <[email protected]> Co-authored-by: Richard Eisenberg <[email protected]>
1 parent 41b6877 commit d59441e

File tree

19 files changed

+926
-783
lines changed

19 files changed

+926
-783
lines changed

.depend

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,34 +1116,62 @@ typing/includemod_errorprinter.cmx : \
11161116
typing/includemod_errorprinter.cmi : \
11171117
typing/includemod.cmi
11181118
typing/jkind.cmo : \
1119+
typing/types.cmi \
1120+
typing/primitive.cmi \
11191121
typing/path.cmi \
11201122
parsing/parsetree.cmi \
11211123
typing/mode.cmi \
11221124
utils/misc.cmi \
11231125
parsing/location.cmi \
11241126
utils/language_extension.cmi \
1127+
typing/jkind_types.cmi \
11251128
parsing/jane_syntax.cmi \
11261129
parsing/jane_asttypes.cmi \
11271130
typing/ident.cmi \
11281131
parsing/builtin_attributes.cmi \
11291132
typing/jkind.cmi
11301133
typing/jkind.cmx : \
1134+
typing/types.cmx \
1135+
typing/primitive.cmx \
11311136
typing/path.cmx \
11321137
parsing/parsetree.cmi \
11331138
typing/mode.cmx \
11341139
utils/misc.cmx \
11351140
parsing/location.cmx \
11361141
utils/language_extension.cmx \
1142+
typing/jkind_types.cmx \
11371143
parsing/jane_syntax.cmx \
11381144
parsing/jane_asttypes.cmx \
11391145
typing/ident.cmx \
11401146
parsing/builtin_attributes.cmx \
11411147
typing/jkind.cmi
11421148
typing/jkind.cmi : \
1149+
typing/types.cmi \
11431150
typing/path.cmi \
11441151
parsing/parsetree.cmi \
11451152
typing/mode.cmi \
11461153
parsing/location.cmi \
1154+
typing/jkind_types.cmi \
1155+
parsing/jane_asttypes.cmi \
1156+
typing/ident.cmi
1157+
typing/jkind_types.cmo : \
1158+
typing/path.cmi \
1159+
typing/mode.cmi \
1160+
parsing/location.cmi \
1161+
parsing/jane_asttypes.cmi \
1162+
typing/ident.cmi \
1163+
typing/jkind_types.cmi
1164+
typing/jkind_types.cmx : \
1165+
typing/path.cmx \
1166+
typing/mode.cmx \
1167+
parsing/location.cmx \
1168+
parsing/jane_asttypes.cmx \
1169+
typing/ident.cmx \
1170+
typing/jkind_types.cmi
1171+
typing/jkind_types.cmi : \
1172+
typing/path.cmi \
1173+
typing/mode.cmi \
1174+
parsing/location.cmi \
11471175
parsing/jane_asttypes.cmi \
11481176
typing/ident.cmi
11491177
typing/mode.cmo : \
@@ -1210,7 +1238,7 @@ typing/oprint.cmx : \
12101238
typing/oprint.cmi : \
12111239
typing/outcometree.cmi
12121240
typing/outcometree.cmi : \
1213-
typing/jkind.cmi \
1241+
typing/jkind_types.cmi \
12141242
parsing/asttypes.cmi
12151243
typing/parmatch.cmo : \
12161244
utils/warnings.cmi \
@@ -1374,7 +1402,7 @@ typing/primitive.cmo : \
13741402
utils/misc.cmi \
13751403
parsing/location.cmi \
13761404
utils/language_extension.cmi \
1377-
typing/jkind.cmi \
1405+
typing/jkind_types.cmi \
13781406
parsing/attr_helper.cmi \
13791407
typing/primitive.cmi
13801408
typing/primitive.cmx : \
@@ -1383,14 +1411,14 @@ typing/primitive.cmx : \
13831411
utils/misc.cmx \
13841412
parsing/location.cmx \
13851413
utils/language_extension.cmx \
1386-
typing/jkind.cmx \
1414+
typing/jkind_types.cmx \
13871415
parsing/attr_helper.cmx \
13881416
typing/primitive.cmi
13891417
typing/primitive.cmi : \
13901418
parsing/parsetree.cmi \
13911419
typing/outcometree.cmi \
13921420
parsing/location.cmi \
1393-
typing/jkind.cmi
1421+
typing/jkind_types.cmi
13941422
typing/printpat.cmo : \
13951423
typing/types.cmi \
13961424
typing/typedtree.cmi \
@@ -2236,7 +2264,7 @@ typing/types.cmo : \
22362264
parsing/longident.cmi \
22372265
parsing/location.cmi \
22382266
utils/local_store.cmi \
2239-
typing/jkind.cmi \
2267+
typing/jkind_types.cmi \
22402268
typing/ident.cmi \
22412269
utils/config.cmi \
22422270
parsing/builtin_attributes.cmi \
@@ -2252,7 +2280,7 @@ typing/types.cmx : \
22522280
parsing/longident.cmx \
22532281
parsing/location.cmx \
22542282
utils/local_store.cmx \
2255-
typing/jkind.cmx \
2283+
typing/jkind_types.cmx \
22562284
typing/ident.cmx \
22572285
utils/config.cmx \
22582286
parsing/builtin_attributes.cmx \
@@ -2266,7 +2294,7 @@ typing/types.cmi : \
22662294
typing/mode.cmi \
22672295
parsing/longident.cmi \
22682296
parsing/location.cmi \
2269-
typing/jkind.cmi \
2297+
typing/jkind_types.cmi \
22702298
typing/ident.cmi \
22712299
parsing/builtin_attributes.cmi \
22722300
parsing/asttypes.cmi

compilerlibs/Makefile.compilerlibs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,11 @@ TYPING = \
8787
typing/solver.cmo \
8888
typing/path.cmo \
8989
typing/mode.cmo \
90-
typing/jkind.cmo \
90+
typing/jkind_types.cmo \
9191
typing/primitive.cmo \
9292
typing/shape.cmo \
9393
typing/types.cmo \
94+
typing/jkind.cmo \
9495
typing/btype.cmo \
9596
typing/oprint.cmo \
9697
typing/subst.cmo \

debugger4/.depend

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ loadprinter.cmo : \
287287
../parsing/longident.cmi \
288288
../utils/load_path.cmi \
289289
../typing/jkind.cmi \
290+
../typing/jkind_types.cmi \
290291
../typing/ident.cmi \
291292
../typing/env.cmi \
292293
../otherlibs/dynlink/dynlink.cmi \
@@ -304,6 +305,7 @@ loadprinter.cmx : \
304305
../parsing/longident.cmx \
305306
../utils/load_path.cmx \
306307
../typing/jkind.cmx \
308+
../typing/jkind_types.cmx \
307309
../typing/ident.cmx \
308310
../typing/env.cmx \
309311
../otherlibs/dynlink/dynlink.cmx \

dune

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
;; TYPING
9090
ident path jkind primitive shape shape_reduce types btype oprint subst predef datarepr
91-
cmi_format persistent_env env errortrace mode
91+
cmi_format persistent_env env errortrace mode jkind_types jkind_intf
9292
typedtree printtyped ctype printtyp includeclass mtype envaux includecore
9393
tast_iterator tast_mapper signature_group cmt_format cms_format untypeast
9494
includemod includemod_errorprinter
@@ -286,6 +286,7 @@
286286
(ident.mli as compiler-libs/ident.mli)
287287
(path.mli as compiler-libs/path.mli)
288288
(jkind.mli as compiler-libs/jkind.mli)
289+
(jkind_types.mli as compiler-libs/jkind_types.mli)
289290
(primitive.mli as compiler-libs/primitive.mli)
290291
(types.mli as compiler-libs/types.mli)
291292
(btype.mli as compiler-libs/btype.mli)

jane/build-resolved-files-for-ci

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ typing_mls=(
8888
includecore
8989
includemod
9090
jkind
91+
jkind_types
9192
mtype
9293
oprint
9394
parmatch

ocamldoc/.depend

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,7 @@ odoc_sig.cmo : \
761761
../parsing/longident.cmi \
762762
../parsing/location.cmi \
763763
../typing/jkind.cmi \
764+
../typing/jkind_types.cmi \
764765
../parsing/jane_syntax.cmi \
765766
../typing/ident.cmi \
766767
../typing/ctype.cmi \
@@ -788,6 +789,7 @@ odoc_sig.cmx : \
788789
../parsing/longident.cmx \
789790
../parsing/location.cmx \
790791
../typing/jkind.cmx \
792+
../typing/jkind_types.cmx \
791793
../parsing/jane_syntax.cmx \
792794
../typing/ident.cmx \
793795
../typing/ctype.cmx \

otherlibs/dynlink/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,10 @@ COMPILERLIBS_SOURCES=\
120120
typing/mode.ml \
121121
typing/path.ml \
122122
typing/shape.ml \
123-
typing/jkind.ml \
123+
typing/jkind_types.ml \
124124
typing/primitive.ml \
125125
typing/types.ml \
126+
typing/jkind.ml \
126127
typing/typedtree.ml \
127128
typing/btype.ml \
128129
typing/subst.ml \

otherlibs/dynlink/dune

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,11 @@
8787
mode_intf
8888
mode
8989
typemode
90-
jkind
90+
jkind_intf
91+
jkind_types
9192
primitive
9293
types
94+
jkind
9395
value_rec_types
9496
btype
9597
lazy_backtrack
@@ -185,6 +187,8 @@
185187
(copy_files ../../typing/ident.ml)
186188
(copy_files ../../typing/path.ml)
187189
(copy_files ../../typing/jkind.ml)
190+
(copy_files ../../typing/jkind_intf.ml)
191+
(copy_files ../../typing/jkind_types.ml)
188192
(copy_files ../../typing/primitive.ml)
189193
(copy_files ../../typing/shape.ml)
190194
(copy_files ../../typing/solver.ml)
@@ -253,6 +257,8 @@
253257
(copy_files ../../typing/ident.mli)
254258
(copy_files ../../typing/path.mli)
255259
(copy_files ../../typing/jkind.mli)
260+
(copy_files ../../typing/jkind_intf.mli)
261+
(copy_files ../../typing/jkind_types.mli)
256262
(copy_files ../../typing/primitive.mli)
257263
(copy_files ../../typing/shape.mli)
258264
(copy_files ../../typing/solver.mli)
@@ -370,8 +376,12 @@
370376
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Solver.cmo
371377
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Mode.cmo
372378
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Typemode.cmo
373-
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Jkind.cmo
379+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Jkind_intf.cmo
380+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Jkind_types.cmo
374381
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Types.cmo
382+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Attr_helper.cmo
383+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Primitive.cmo
384+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Jkind.cmo
375385
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Btype.cmo
376386
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Subst.cmo
377387
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Bytesections.cmo
@@ -381,8 +391,6 @@
381391
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Shape.cmo
382392
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Datarepr.cmo
383393
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Persistent_env.cmo
384-
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Attr_helper.cmo
385-
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Primitive.cmo
386394
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Predef.cmo
387395
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Env.cmo
388396
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Lambda.cmo
@@ -452,8 +460,12 @@
452460
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Solver.cmx
453461
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Mode.cmx
454462
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Typemode.cmx
455-
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Jkind.cmx
463+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Jkind_intf.cmx
464+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Jkind_types.cmx
456465
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Types.cmx
466+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Attr_helper.cmx
467+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Primitive.cmx
468+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Jkind.cmx
457469
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Btype.cmx
458470
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Subst.cmx
459471
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Bytesections.cmx
@@ -463,8 +475,6 @@
463475
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Shape.cmx
464476
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Datarepr.cmx
465477
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Persistent_env.cmx
466-
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Attr_helper.cmx
467-
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Primitive.cmx
468478
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Predef.cmx
469479
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Env.cmx
470480
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Lambda.cmx

typing/.ocamlformat-enable

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
jkind.ml
22
jkind.mli
3+
jkind_types.ml
4+
jkind_types.mli
5+
jkind_intf.ml
36
uniqueness_analysis.ml
47
uniqueness_analysis.mli
58
mode_intf.mli
@@ -9,4 +12,4 @@ solver_intf.mli
912
solver.ml
1013
solver.mli
1114
typemode.mli
12-
typemode.ml
15+
typemode.ml

0 commit comments

Comments
 (0)