Skip to content

Commit 49d1caa

Browse files
committed
Fix make depend for jane street stdlib modules
1 parent 79ad677 commit 49d1caa

File tree

5 files changed

+43
-16
lines changed

5 files changed

+43
-16
lines changed

ocaml/.depend

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -690,20 +690,23 @@ typing/annot.cmi : \
690690
typing/btype.cmo : \
691691
typing/types.cmi \
692692
typing/path.cmi \
693+
parsing/parsetree.cmi \
693694
utils/local_store.cmi \
694695
typing/ident.cmi \
695696
parsing/asttypes.cmi \
696697
typing/btype.cmi
697698
typing/btype.cmx : \
698699
typing/types.cmx \
699700
typing/path.cmx \
701+
parsing/parsetree.cmi \
700702
utils/local_store.cmx \
701703
typing/ident.cmx \
702704
parsing/asttypes.cmi \
703705
typing/btype.cmi
704706
typing/btype.cmi : \
705707
typing/types.cmi \
706708
typing/path.cmi \
709+
parsing/parsetree.cmi \
707710
typing/jkind.cmi \
708711
parsing/asttypes.cmi
709712
typing/cmt2annot.cmo : \
@@ -1449,8 +1452,7 @@ typing/printtyp.cmi : \
14491452
parsing/location.cmi \
14501453
typing/ident.cmi \
14511454
typing/errortrace.cmi \
1452-
typing/env.cmi \
1453-
parsing/asttypes.cmi
1455+
typing/env.cmi
14541456
typing/printtyped.cmo : \
14551457
utils/zero_alloc_utils.cmi \
14561458
typing/types.cmi \
@@ -1756,7 +1758,6 @@ typing/typecore.cmo : \
17561758
typing/typedtree.cmi \
17571759
typing/typedecl.cmi \
17581760
typing/subst.cmi \
1759-
typing/solver.cmi \
17601761
typing/shape.cmi \
17611762
typing/rec_check.cmi \
17621763
typing/printtyp.cmi \
@@ -1799,7 +1800,6 @@ typing/typecore.cmx : \
17991800
typing/typedtree.cmx \
18001801
typing/typedecl.cmx \
18011802
typing/subst.cmx \
1802-
typing/solver.cmx \
18031803
typing/shape.cmx \
18041804
typing/rec_check.cmx \
18051805
typing/printtyp.cmx \
@@ -1932,6 +1932,7 @@ typing/typedecl.cmi : \
19321932
parsing/parsetree.cmi \
19331933
parsing/longident.cmi \
19341934
parsing/location.cmi \
1935+
utils/language_extension.cmi \
19351936
typing/jkind.cmi \
19361937
typing/includecore.cmi \
19371938
typing/ident.cmi \
@@ -7055,6 +7056,7 @@ toplevel/genprintval.cmo : \
70557056
typing/env.cmi \
70567057
typing/datarepr.cmi \
70577058
typing/ctype.cmi \
7059+
utils/clflags.cmi \
70587060
typing/btype.cmi \
70597061
parsing/asttypes.cmi \
70607062
toplevel/genprintval.cmi
@@ -7076,6 +7078,7 @@ toplevel/genprintval.cmx : \
70767078
typing/env.cmx \
70777079
typing/datarepr.cmx \
70787080
typing/ctype.cmx \
7081+
utils/clflags.cmx \
70797082
typing/btype.cmx \
70807083
parsing/asttypes.cmi \
70817084
toplevel/genprintval.cmi
@@ -7264,7 +7267,6 @@ toplevel/topprinters.cmo : \
72647267
typing/mode.cmi \
72657268
typing/ident.cmi \
72667269
typing/ctype.cmi \
7267-
parsing/asttypes.cmi \
72687270
toplevel/topprinters.cmi
72697271
toplevel/topprinters.cmx : \
72707272
typing/types.cmx \
@@ -7273,7 +7275,6 @@ toplevel/topprinters.cmx : \
72737275
typing/mode.cmx \
72747276
typing/ident.cmx \
72757277
typing/ctype.cmx \
7276-
parsing/asttypes.cmi \
72777278
toplevel/topprinters.cmi
72787279
toplevel/topprinters.cmi : \
72797280
typing/types.cmi
@@ -7412,7 +7413,6 @@ toplevel/byte/trace.cmo : \
74127413
bytecomp/meta.cmi \
74137414
parsing/longident.cmi \
74147415
typing/ctype.cmi \
7415-
parsing/asttypes.cmi \
74167416
toplevel/byte/trace.cmi
74177417
toplevel/byte/trace.cmx : \
74187418
typing/types.cmx \
@@ -7425,7 +7425,6 @@ toplevel/byte/trace.cmx : \
74257425
bytecomp/meta.cmx \
74267426
parsing/longident.cmx \
74277427
typing/ctype.cmx \
7428-
parsing/asttypes.cmi \
74297428
toplevel/byte/trace.cmi
74307429
toplevel/byte/trace.cmi : \
74317430
typing/types.cmi \

ocaml/boot/ocamlc

1.56 KB
Binary file not shown.

ocaml/driver/makedepend.ml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,38 @@ let add_to_synonym_list synonyms suffix =
100100
(* Find file 'name' (capitalized) in search path *)
101101
let find_module_in_load_path name =
102102
let names = List.map (fun ext -> name ^ ext) (!mli_synonyms @ !ml_synonyms) in
103+
let uname = String.uncapitalize_ascii name in
103104
let unames =
104-
let uname = String.uncapitalize_ascii name in
105105
List.map (fun ext -> uname ^ ext) (!mli_synonyms @ !ml_synonyms)
106106
in
107+
let stdlib_unames =
108+
(* Jane Street: This is a hack to deal with the fact that we refer to our
109+
custom stdlib modules with names like [Stdlib__Int32_u] from within the
110+
stdlib.
111+
112+
Dependencies are calculated by looking at all modules mentioned by the
113+
code in question and checking to see if there is a corresponding ml file.
114+
But in our case there is no corresponding ml file, because the references
115+
look like `Stdlib__Int32_u.foo` and the ml file's name is just
116+
`int32_u.ml`. This is unlike normal stdlib modules, which are exposed
117+
with names that match their ml files. So, the code here just teaches
118+
make depend to optionally ignore a `Stdlib__` prefix for the purposes of
119+
checking for a matching ml file. *)
120+
let stdlib_prefix = "stdlib__" in
121+
if String.starts_with ~prefix:stdlib_prefix uname then
122+
let plen = String.length stdlib_prefix in
123+
let uname =
124+
String.sub name plen (String.length name - plen)
125+
in
126+
let uname = String.uncapitalize_ascii uname in
127+
List.map (fun ext -> uname ^ ext) (!mli_synonyms @ !ml_synonyms)
128+
else
129+
[]
130+
in
107131
let rec find_in_array a pos =
108132
if pos >= Array.length a then None else begin
109133
let s = a.(pos) in
110-
if List.mem s names || List.mem s unames then
134+
if List.mem s names || List.mem s unames || List.mem s stdlib_unames then
111135
Some s
112136
else
113137
find_in_array a (pos + 1)

ocaml/ocamldoc/.depend

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,7 @@ odoc_info.cmi : \
480480
odoc_extension.cmi \
481481
odoc_exception.cmi \
482482
odoc_class.cmi \
483-
../parsing/location.cmi \
484-
../parsing/asttypes.cmi
483+
../parsing/location.cmi
485484
odoc_latex.cmo : \
486485
odoc_to_text.cmi \
487486
odoc_messages.cmi \
@@ -594,8 +593,7 @@ odoc_misc.cmx : \
594593
odoc_misc.cmi : \
595594
../typing/types.cmi \
596595
odoc_types.cmi \
597-
../parsing/longident.cmi \
598-
../parsing/asttypes.cmi
596+
../parsing/longident.cmi
599597
odoc_module.cmo : \
600598
../typing/types.cmi \
601599
odoc_value.cmi \
@@ -743,6 +741,7 @@ odoc_see_lexer.cmx : \
743741
odoc_see_lexer.cmi : \
744742
odoc_parser.cmi
745743
odoc_sig.cmo : \
744+
../typing/typetexp.cmi \
746745
../typing/types.cmi \
747746
../typing/typedtree.cmi \
748747
../parsing/parsetree.cmi \
@@ -769,6 +768,7 @@ odoc_sig.cmo : \
769768
../parsing/asttypes.cmi \
770769
odoc_sig.cmi
771770
odoc_sig.cmx : \
771+
../typing/typetexp.cmx \
772772
../typing/types.cmx \
773773
../typing/typedtree.cmx \
774774
../parsing/parsetree.cmi \
@@ -950,15 +950,13 @@ odoc_value.cmo : \
950950
odoc_parameter.cmi \
951951
odoc_name.cmi \
952952
odoc_misc.cmi \
953-
../parsing/asttypes.cmi \
954953
odoc_value.cmi
955954
odoc_value.cmx : \
956955
../typing/types.cmx \
957956
odoc_types.cmx \
958957
odoc_parameter.cmx \
959958
odoc_name.cmx \
960959
odoc_misc.cmx \
961-
../parsing/asttypes.cmi \
962960
odoc_value.cmi
963961
odoc_value.cmi : \
964962
../typing/types.cmi \

ocaml/stdlib/.depend

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,10 +541,14 @@ stdlib__Int64.cmx : int64.ml \
541541
stdlib__Int64.cmi : int64.mli \
542542
stdlib.cmi
543543
stdlib__Int64_u.cmo : int64_u.ml \
544+
stdlib__Nativeint_u.cmi \
545+
stdlib__Int32_u.cmi \
544546
stdlib.cmi \
545547
stdlib__Int64.cmi \
546548
stdlib__Int64_u.cmi
547549
stdlib__Int64_u.cmx : int64_u.ml \
550+
stdlib__Nativeint_u.cmx \
551+
stdlib__Int32_u.cmx \
548552
stdlib.cmx \
549553
stdlib__Int64.cmx \
550554
stdlib__Int64_u.cmi
@@ -666,10 +670,12 @@ stdlib__Nativeint.cmx : nativeint.ml \
666670
stdlib__Nativeint.cmi : nativeint.mli \
667671
stdlib.cmi
668672
stdlib__Nativeint_u.cmo : nativeint_u.ml \
673+
stdlib__Int32_u.cmi \
669674
stdlib.cmi \
670675
stdlib__Nativeint.cmi \
671676
stdlib__Nativeint_u.cmi
672677
stdlib__Nativeint_u.cmx : nativeint_u.ml \
678+
stdlib__Int32_u.cmx \
673679
stdlib.cmx \
674680
stdlib__Nativeint.cmx \
675681
stdlib__Nativeint_u.cmi

0 commit comments

Comments
 (0)