From b11eea1fae9ed1661d61ab41e0ed84099c9d0de2 Mon Sep 17 00:00:00 2001 From: Mark Shinwell Date: Tue, 27 Dec 2022 14:13:05 +0000 Subject: [PATCH] flambda-backend: Introduce Import_info (#1036) --- .depend | 42 ++++- asmcomp/asmlink.ml | 29 +++- asmcomp/asmlink.mli | 4 +- asmcomp/asmpackager.ml | 20 ++- boot/ocamlc | Bin 3241576 -> 3241811 bytes boot/ocamllex | Bin 372847 -> 372098 bytes bytecomp/bytelink.ml | 12 +- bytecomp/bytelink.mli | 2 +- bytecomp/bytepackager.ml | 7 +- bytecomp/emitcode.ml | 2 +- bytecomp/symtable.ml | 4 +- bytecomp/symtable.mli | 2 +- compilerlibs/Makefile.compilerlibs | 1 + dune | 2 +- file_formats/cmi_format.ml | 9 +- file_formats/cmi_format.mli | 5 +- file_formats/cmo_format.mli | 5 +- file_formats/cmt_format.ml | 9 +- file_formats/cmt_format.mli | 2 + file_formats/cmx_format.mli | 9 +- file_formats/cmxs_format.mli | 5 +- middle_end/compilenv.ml | 13 +- otherlibs/dynlink/Makefile | 1 + otherlibs/dynlink/dune | 5 + otherlibs/dynlink/dynlink.ml | 30 ++-- otherlibs/dynlink/extract_crc.ml | 7 +- .../test10_main.native.reference | 6 +- tools/objinfo.ml | 33 ++-- toplevel/expunge.ml | 10 +- typing/env.mli | 6 +- typing/persistent_env.ml | 149 ++++++++++-------- typing/persistent_env.mli | 5 +- typing/typemod.ml | 7 +- utils/.ocamlformat-enable | 2 + utils/import_info.ml | 66 ++++++++ utils/import_info.mli | 50 ++++++ 36 files changed, 393 insertions(+), 168 deletions(-) create mode 100644 utils/import_info.ml create mode 100644 utils/import_info.mli diff --git a/.depend b/.depend index 5e8043764541..9736dee75fd2 100644 --- a/.depend +++ b/.depend @@ -105,6 +105,16 @@ utils/identifiable.cmx : \ utils/misc.cmx \ utils/identifiable.cmi utils/identifiable.cmi : +utils/import_info.cmo : \ + utils/misc.cmi \ + utils/compilation_unit.cmi \ + utils/import_info.cmi +utils/import_info.cmx : \ + utils/misc.cmx \ + utils/compilation_unit.cmx \ + utils/import_info.cmi +utils/import_info.cmi : \ + utils/compilation_unit.cmi utils/int_replace_polymorphic_compare.cmo : \ utils/int_replace_polymorphic_compare.cmi utils/int_replace_polymorphic_compare.cmx : \ @@ -720,6 +730,7 @@ typing/env.cmi : \ parsing/longident.cmi \ parsing/location.cmi \ utils/load_path.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ utils/compilation_unit.cmi \ file_formats/cmi_format.cmi \ @@ -1071,6 +1082,7 @@ typing/persistent_env.cmo : \ parsing/location.cmi \ utils/load_path.cmi \ utils/lazy_backtrack.cmi \ + utils/import_info.cmi \ utils/consistbl.cmi \ utils/config.cmi \ utils/compilation_unit.cmi \ @@ -1083,6 +1095,7 @@ typing/persistent_env.cmx : \ parsing/location.cmx \ utils/load_path.cmx \ utils/lazy_backtrack.cmx \ + utils/import_info.cmx \ utils/consistbl.cmx \ utils/config.cmx \ utils/compilation_unit.cmx \ @@ -1094,6 +1107,7 @@ typing/persistent_env.cmi : \ utils/misc.cmi \ parsing/location.cmi \ utils/lazy_backtrack.cmi \ + utils/import_info.cmi \ utils/consistbl.cmi \ utils/compilation_unit.cmi \ file_formats/cmi_format.cmi @@ -1786,6 +1800,7 @@ typing/typemod.cmo : \ utils/load_path.cmi \ typing/includemod_errorprinter.cmi \ typing/includemod.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ typing/envaux.cmi \ typing/env.cmi \ @@ -1823,6 +1838,7 @@ typing/typemod.cmx : \ utils/load_path.cmx \ typing/includemod_errorprinter.cmx \ typing/includemod.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ typing/envaux.cmx \ typing/env.cmx \ @@ -2080,6 +2096,7 @@ bytecomp/bytelink.cmo : \ parsing/location.cmi \ utils/load_path.cmi \ bytecomp/instruct.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ bytecomp/emitcode.cmi \ bytecomp/dll.cmi \ @@ -2099,6 +2116,7 @@ bytecomp/bytelink.cmx : \ parsing/location.cmx \ utils/load_path.cmx \ bytecomp/instruct.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ bytecomp/emitcode.cmx \ bytecomp/dll.cmx \ @@ -2113,6 +2131,7 @@ bytecomp/bytelink.cmx : \ bytecomp/bytelink.cmi : \ bytecomp/symtable.cmi \ utils/misc.cmi \ + utils/import_info.cmi \ utils/compilation_unit.cmi \ file_formats/cmo_format.cmi bytecomp/bytepackager.cmo : \ @@ -2126,6 +2145,7 @@ bytecomp/bytepackager.cmo : \ parsing/location.cmi \ utils/load_path.cmi \ bytecomp/instruct.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ typing/env.cmi \ bytecomp/emitcode.cmi \ @@ -2147,6 +2167,7 @@ bytecomp/bytepackager.cmx : \ parsing/location.cmx \ utils/load_path.cmx \ bytecomp/instruct.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ typing/env.cmx \ bytecomp/emitcode.cmx \ @@ -2286,6 +2307,7 @@ bytecomp/symtable.cmo : \ bytecomp/meta.cmi \ parsing/location.cmi \ lambda/lambda.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ bytecomp/dll.cmi \ utils/config.cmi \ @@ -2301,6 +2323,7 @@ bytecomp/symtable.cmx : \ bytecomp/meta.cmx \ parsing/location.cmx \ lambda/lambda.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ bytecomp/dll.cmx \ utils/config.cmx \ @@ -2312,6 +2335,7 @@ bytecomp/symtable.cmx : \ bytecomp/symtable.cmi : \ utils/misc.cmi \ lambda/lambda.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ file_formats/cmo_format.cmi asmcomp/CSE.cmo : \ @@ -2487,6 +2511,7 @@ asmcomp/asmlink.cmo : \ utils/misc.cmi \ parsing/location.cmi \ utils/load_path.cmi \ + utils/import_info.cmi \ asmcomp/emitaux.cmi \ asmcomp/emit.cmi \ utils/consistbl.cmi \ @@ -2507,6 +2532,7 @@ asmcomp/asmlink.cmx : \ utils/misc.cmx \ parsing/location.cmx \ utils/load_path.cmx \ + utils/import_info.cmx \ asmcomp/emitaux.cmx \ asmcomp/emit.cmx \ utils/consistbl.cmx \ @@ -2522,6 +2548,7 @@ asmcomp/asmlink.cmx : \ asmcomp/asmlink.cmi asmcomp/asmlink.cmi : \ utils/misc.cmi \ + utils/import_info.cmi \ utils/compilation_unit.cmi \ file_formats/cmx_format.cmi asmcomp/asmpackager.cmo : \ @@ -2535,6 +2562,7 @@ asmcomp/asmpackager.cmo : \ utils/load_path.cmi \ utils/linkage_name.cmi \ lambda/lambda.cmi \ + utils/import_info.cmi \ middle_end/flambda/flambda_middle_end.cmi \ middle_end/flambda/export_info.cmi \ typing/env.cmi \ @@ -2559,6 +2587,7 @@ asmcomp/asmpackager.cmx : \ utils/load_path.cmx \ utils/linkage_name.cmx \ lambda/lambda.cmx \ + utils/import_info.cmx \ middle_end/flambda/flambda_middle_end.cmx \ middle_end/flambda/export_info.cmx \ typing/env.cmx \ @@ -3421,6 +3450,7 @@ middle_end/compilenv.cmo : \ parsing/location.cmi \ utils/load_path.cmi \ utils/linkage_name.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ middle_end/flambda/export_info.cmi \ typing/env.cmi \ @@ -3440,6 +3470,7 @@ middle_end/compilenv.cmx : \ parsing/location.cmx \ utils/load_path.cmx \ utils/linkage_name.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ middle_end/flambda/export_info.cmx \ typing/env.cmx \ @@ -4050,6 +4081,7 @@ file_formats/cmi_format.cmo : \ typing/types.cmi \ utils/misc.cmi \ parsing/location.cmi \ + utils/import_info.cmi \ utils/config.cmi \ utils/compilation_unit.cmi \ file_formats/cmi_format.cmi @@ -4057,15 +4089,18 @@ file_formats/cmi_format.cmx : \ typing/types.cmx \ utils/misc.cmx \ parsing/location.cmx \ + utils/import_info.cmx \ utils/config.cmx \ utils/compilation_unit.cmx \ file_formats/cmi_format.cmi file_formats/cmi_format.cmi : \ typing/types.cmi \ utils/misc.cmi \ + utils/import_info.cmi \ utils/compilation_unit.cmi file_formats/cmo_format.cmi : \ lambda/lambda.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ utils/compilation_unit.cmi file_formats/cmt_format.cmo : \ @@ -4077,6 +4112,7 @@ file_formats/cmt_format.cmo : \ parsing/location.cmi \ utils/load_path.cmi \ parsing/lexer.cmi \ + utils/import_info.cmi \ typing/env.cmi \ utils/config.cmi \ utils/compilation_unit.cmi \ @@ -4092,6 +4128,7 @@ file_formats/cmt_format.cmx : \ parsing/location.cmx \ utils/load_path.cmx \ parsing/lexer.cmx \ + utils/import_info.cmx \ typing/env.cmx \ utils/config.cmx \ utils/compilation_unit.cmx \ @@ -4108,6 +4145,7 @@ file_formats/cmt_format.cmi : \ file_formats/cmi_format.cmi file_formats/cmx_format.cmi : \ lambda/lambda.cmi \ + utils/import_info.cmi \ middle_end/flambda/export_info.cmi \ utils/compilation_unit.cmi \ middle_end/clambda.cmi @@ -6427,17 +6465,17 @@ toplevel/expunge.cmo : \ bytecomp/symtable.cmi \ lambda/runtimedef.cmi \ utils/misc.cmi \ + utils/import_info.cmi \ typing/ident.cmi \ utils/compilation_unit.cmi \ - file_formats/cmo_format.cmi \ bytecomp/bytesections.cmi toplevel/expunge.cmx : \ bytecomp/symtable.cmx \ lambda/runtimedef.cmx \ utils/misc.cmx \ + utils/import_info.cmx \ typing/ident.cmx \ utils/compilation_unit.cmx \ - file_formats/cmo_format.cmi \ bytecomp/bytesections.cmx toplevel/genprintval.cmo : \ typing/types.cmi \ diff --git a/asmcomp/asmlink.ml b/asmcomp/asmlink.ml index 4db3a0d6bf27..db0a705ebe0a 100644 --- a/asmcomp/asmlink.ml +++ b/asmcomp/asmlink.ml @@ -49,8 +49,10 @@ let cmx_required = ref ([] : CU.t list) let check_consistency file_name unit crc = begin try - List.iter - (fun (name, crco) -> + Array.iter + (fun import -> + let name = Import_info.name import in + let crco = Import_info.crc_with_unit import in interfaces := name :: !interfaces; match crco with None -> () @@ -68,8 +70,10 @@ let check_consistency file_name unit crc = raise(Error(Inconsistent_interface(name, user, auth))) end; begin try - List.iter - (fun (name, crco) -> + Array.iter + (fun import -> + let name = Import_info.cu import in + let crco = Import_info.crc import in implementations := name :: !implementations; match crco with None -> @@ -100,9 +104,15 @@ let check_consistency file_name unit crc = let extract_crc_interfaces () = Cmi_consistbl.extract !interfaces crc_interfaces + |> List.map (fun (name, crc_with_unit) -> + Import_info.create name ~crc_with_unit) + let extract_crc_implementations () = Cmx_consistbl.extract !implementations crc_implementations - |> List.map (fun (name, crco) -> name, Option.map snd crco) + |> List.map (fun (cu, crc) -> + let crc = Option.map (fun ((), crc) -> crc) crc in + Import_info.create_normal cu ~crc) + (* Add C objects and options and "custom" info from a library descriptor. See bytecomp/bytelink.ml for comments on the order of C objects. *) @@ -137,7 +147,8 @@ let is_required name = try ignore (Hashtbl.find missing_globals name); true with Not_found -> false -let add_required by (name, _crc) = +let add_required by import = + let name = Import_info.cu import in try let rq = Hashtbl.find missing_globals name in rq := by :: !rq @@ -199,7 +210,7 @@ let scan_file file tolink = | Unit (file_name,info,crc) -> (* This is a .cmx file. It must be linked in any case. *) remove_required info.ui_unit; - List.iter (add_required file_name) info.ui_imports_cmx; + Array.iter (add_required file_name) info.ui_imports_cmx; (info, file_name, crc) :: tolink | Library (file_name,infos) -> (* This is an archive file. Each unit contained in it will be linked @@ -216,7 +227,7 @@ let scan_file file tolink = let req_by = Printf.sprintf "%s(%s)" file_name (ui_name |> CU.Name.to_string) in - List.iter (add_required req_by) info.ui_imports_cmx; + Array.iter (add_required req_by) info.ui_imports_cmx; (info, file_name, crc) :: reqd end else reqd) @@ -231,6 +242,8 @@ let force_linking_of_startup ~ppf_dump = let make_globals_map units_list ~crc_interfaces = let crc_interfaces = crc_interfaces + |> List.map (fun import -> + Import_info.name import, Import_info.crc_with_unit import) |> CU.Name.Tbl.of_list in let defined = diff --git a/asmcomp/asmlink.mli b/asmcomp/asmlink.mli index 2338442bef59..c243378e9e33 100644 --- a/asmcomp/asmlink.mli +++ b/asmcomp/asmlink.mli @@ -26,8 +26,8 @@ val call_linker_shared: string list -> string -> unit val reset : unit -> unit val check_consistency: filepath -> Cmx_format.unit_infos -> Digest.t -> unit -val extract_crc_interfaces: unit -> Cmx_format.import_info_cmi list -val extract_crc_implementations: unit -> Cmx_format.import_info_cmx list +val extract_crc_interfaces: unit -> Import_info.t list +val extract_crc_implementations: unit -> Import_info.t list type error = | File_not_found of filepath diff --git a/asmcomp/asmpackager.ml b/asmcomp/asmpackager.ml index 95cb25c39c61..60d3ab4479f8 100644 --- a/asmcomp/asmpackager.ml +++ b/asmcomp/asmpackager.ml @@ -70,8 +70,9 @@ let check_units members = begin match mb.pm_kind with | PM_intf -> () | PM_impl infos -> - List.iter - (fun (unit, _) -> + Array.iter + (fun import -> + let unit = Import_info.cu import in let name = CU.name unit in if List.mem name forbidden then raise(Error(Forward_reference(mb.pm_file, name)))) @@ -174,9 +175,9 @@ let get_approx ui = let build_package_cmx members cmxfile = let unit_names = List.map (fun m -> m.pm_name) members in - let filter ~get_name lst = - List.filter (fun (name, _crc) -> - not (List.mem (get_name name) unit_names)) lst in + let filter lst = + List.filter (fun import -> + not (List.mem (Import_info.name import) unit_names)) lst in let union lst = List.fold_left (List.fold_left @@ -207,10 +208,13 @@ let build_package_cmx members cmxfile = List.flatten (List.map (fun info -> info.ui_defines) units) @ [ui.ui_unit]; ui_imports_cmi = - (modname, Some (ui.ui_unit, Env.crc_of_unit modname)) :: - filter(Asmlink.extract_crc_interfaces()) ~get_name:(fun name -> name); + (Import_info.create modname + ~crc_with_unit:(Some (ui.ui_unit, Env.crc_of_unit modname))) :: + filter (Asmlink.extract_crc_interfaces ()) + |> Array.of_list; ui_imports_cmx = - filter(Asmlink.extract_crc_implementations()) ~get_name:CU.name; + (filter(Asmlink.extract_crc_implementations())) + |> Array.of_list; ui_curry_fun = union(List.map (fun info -> info.ui_curry_fun) units); ui_apply_fun = diff --git a/boot/ocamlc b/boot/ocamlc index 70abb40d89261ea5a2d2d2c3cfac331428e3115c..e1a26ad76240300f0d201f24a499e6091d2bc9cf 100755 GIT binary patch delta 165338 zcma%k4O~>k*MGC@viI)Z-Fq*~`-?1sf&vMOsVM@9si}!+sj0c7CcY)4r6t;unwpvr z%AwK(HPh6De7TldkorsW4O2@?Yb`4)U*M;f=1c$Y++B=(p3n37_i33sGiPSbIdkUB znKLh*zp$4byR?_NXS3Oc*?zN)vrV)8SDQz%@95|k#t5o=EKneiA<#(0Pnq%ORDh8N zX8Q-wQ$LvfSp;P*vqw|@xVTVKJhDV}zc3^9DRl^x*)35b_kKhdCWk0goTW-s^?@p| z@Y1snJIM260OH%iB&s)>(Zc9RBe@s*NtClu5y&;fDV2>gpuXoKq*8aj#q4*V^S=A; zbCQ}F9O8ve*&G{6RaXH$?WNXA*?$8BsyP@SsSf~dwEungbwqf>@4ovOsiHZgY>}Tp z`E!AUYqTBhG1X`i03lGrMm4&mP9S&N1i>^61%oN;!Isfw2O}g(8L0|X+)fmh)`SS9 z${i!sTojF^?(u=8p4TNxI>LmqM9t32Rb4zEmWe&ugwY@Nn;-~M3bA$M%4!JMEn?jmcRf0JC9Ni1vo?z(M
o9xdsFV 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 delta 167883 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 diff --git a/boot/ocamllex b/boot/ocamllex index 306b512a6ec0552f6142e941aed7c162d732e91b..8e766686c96bcde02dfa3959fc24637cd89d8005 100755 GIT binary patch delta 998 zcmYjQTSyd97@k#6mJpQJEL?Y8cQxB`Rznbd7%wT+E?S!x1X<3mryQJ}mDyQSd{Ggk zFmDOx#mhG3W!KAEMg_@0*#e_1Lzx z*p_xxdq{g|d)R$2Fk%nyp(tvBqC$NX74m97rAno|`b*HxA-b}AsHOVdTEwr-_1X;M zV29UWZQ@1PNXNIv&NcVBja^CA<-<1)hDk=NSi`Y)o2>%DIz}nWcvfU^;waGKl2MSL zk}y9C;xHZs8ohK%9O^G=w=%bk#P{{w3I1BB_7e{sD(U_ zxIGdj^&;!y87XbI&Bfrwagd0Aj{{wb!fbH~=)VCeU2e8O!CebE23Prjde0hW)-B3z zhkQVTU;Bt{G_x8k6!=Z^k)1Z2Cw*m)}k0MMm&ca_iR<{V5AeWYLSO5yqk29 zOK?JwQQ|4$T%^Xf380Hs@;_5wi=0RxUa@b21owUdXd)FS1ukcOP!ek?VmbD5X z$JwESd;q&a<~NDRExT);B*vzL$Hz&aj#38m*(*>GU=xFNQ$QQ5jOPV!<#CQ+cwh>s z&4z!9v}xm7x29q^m;L@|^X#q3AKp{~*ia)Y(yjW!{GBJP?!mJITdl+3rq@tP@<#$q zEp3N(q|Gi}ukrB9$Ijoy#%Yj{ZXj>G-Xqch&EXf}R!J3Mn59?pK0Nd$TOiBRgG^i1 zhHc-u>dfd)W6$j!+&c}9LcJL^62_c`nyl^0oHupGxaH3N-g0kpfg6c*;o02&$GWd2 zgQ}}D2J`G3O;pp!FYXJ=Q^nWjH9u7hs? delta 1725 zcmY*ZZ%kWN6mJJtGSp2NbRrSf0^QhfKByA#PlT2gr^TXmn=!%Ww!P3dUf-*)uanLg zWg%H&l-)U#t8ok08488Yh0M4pF;2-`V$>O8+#-o_CdMyIHb1EQqVc@ezFt1vd(J)g z{P~^VIY-tUH-2%vHf5jMFjX;C`4KufyS4fio6Y`?&4&K8*(xt{-u5hxD1@@Jv#24& z-Jy(X;0ao~NDY&Y3opNw>X>$o?4Nn_&PvWZLPkuHBjNA?g2(#=d7mm9Am3Md-xrNz zow9#tk#iH@RnmqsDax9%sA&V|?9nXRTEll+Z-y?bW0Zxm$l1f!=?PAN@6NJiEPx|K zNr?eN29AzX_AdMu0}_L>PqL_ao$f`-u0RqG3i*bjSRDm_Ryxm+R9Z1hDr>MB(-M?9 z=8&^R`1*93q={%a422k@lnu@y*A_07(k`gUM3l1l9BOIjyvuqa`XQW>4-vDX`zIe_n(N9?K7|bk3+Yl; zH;-BYcPptOO(z!2R#HQdR2-XeEx$uJNm+OvH60Ls2jrAt{kB+RYH687rYK$fZvTgy z&wFn7pIn(4*>-nCKs-Pu3IHt4BiCcXH+(oFdI3?|)YW-(rtX_W)AILS-~M{+s?eXk zs?q%bWq-^g=Urujg4WYTSxs&oUqDM)XRb)l;T)>3E%)PboQfL}g|b)8=0mf2HMNxE_e{kw`?&!Ot=!cgo< z#z}(c1p-*1_Q*z@z!+99AeS&|1M(PwMzCEA1twd~^=XM@u@b9ezQP#4uz;E!yqt^= zD@p|B4a#E27m!21)tfO040#q@3lY8P(NQyzuON}l}bI?jlo z^&473hS6zQM9v+;EcBa(7SXKrQ&3Yj4A#Qr_v^4BBN}25#1ByJ3tHr z+kl;w71CtefcMsCa?8hGY`if!gHCYn9tPe+0i}y%TfJFvbmzI%*JEk*$Hpg@IB$os zOs0*94ArkKqI(Z=cToeMiWlkZwwg;-q0{zi_c`fm|Ig<+Zymz2T8Me7@5uAl!nZv! z;;DP1gMM%eVgmig2)zD(k$NuwbHcc^JQO*+^xmh=_V;0bgNX@iUmi8I^HyI9)?M+C z2KGMk_HxVh;3@k{Km2rUe3kRfq$oX|}F#f!AE^7)t3TLQDct<`!T z4qf;fTH?bA1-1jxRjdTev16z6sI`&zhz~_Vdtrk`q4tY;)WL4%QJtNdhr6D4iN>Wy g)}KLb_CEH|8Pr`{ecWcVRhd?uy}iB9NuJLC0GH3MH2?qr diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml index 275f9f398aa5..b56ef425e62d 100644 --- a/bytecomp/bytelink.ml +++ b/bytecomp/bytelink.ml @@ -182,8 +182,10 @@ let implementations_defined = ref ([] : (CU.Name.t * string) list) let check_consistency file_name cu = begin try - List.iter - (fun (name, crco) -> + Array.iter + (fun import -> + let name = Import_info.name import in + let crco = Import_info.crc_with_unit import in interfaces := name :: !interfaces; match crco with None -> () @@ -212,6 +214,8 @@ let check_consistency file_name cu = let extract_crc_interfaces () = Consistbl.extract !interfaces crc_interfaces + |> List.map (fun (name, crc_with_unit) -> + Import_info.create name ~crc_with_unit) let clear_crc_interfaces () = Consistbl.clear crc_interfaces; @@ -403,7 +407,7 @@ let link_bytecode ?final_name tolink exec_name standalone = Symtable.output_global_map outchan; Bytesections.record outchan "SYMB"; (* CRCs for modules *) - output_value outchan (extract_crc_interfaces()); + output_value outchan ((extract_crc_interfaces() |> Array.of_list)); Bytesections.record outchan "CRCS"; (* Debug info *) if !Clflags.debug then begin @@ -510,7 +514,7 @@ let link_bytecode_as_c tolink outfile with_main = let sections = [ "SYMB", Symtable.data_global_map(); "PRIM", Obj.repr(Symtable.data_primitive_names()); - "CRCS", Obj.repr(extract_crc_interfaces()) ] in + "CRCS", Obj.repr(extract_crc_interfaces() |> Array.of_list) ] in output_string outchan "static char caml_sections[] = {\n"; output_data_string outchan (Marshal.to_string sections []); diff --git a/bytecomp/bytelink.mli b/bytecomp/bytelink.mli index 3a57ac3d711b..91df8fffe883 100644 --- a/bytecomp/bytelink.mli +++ b/bytecomp/bytelink.mli @@ -22,7 +22,7 @@ val reset : unit -> unit val check_consistency: filepath -> Cmo_format.compilation_unit_descr -> unit -val extract_crc_interfaces: unit -> Cmo_format.import_info list +val extract_crc_interfaces: unit -> Import_info.t list type error = | File_not_found of filepath diff --git a/bytecomp/bytepackager.ml b/bytecomp/bytepackager.ml index adc99dfaa48b..64313d20c589 100644 --- a/bytecomp/bytepackager.ml +++ b/bytecomp/bytepackager.ml @@ -221,7 +221,7 @@ let package_object_files ~ppf_dump files targetfile targetname coercion = let pos_final = pos_out oc in let imports = List.filter - (fun (name, _crc) -> not (List.mem name unit_names)) + (fun import -> not (List.mem (Import_info.name import) unit_names)) (Bytelink.extract_crc_interfaces()) in let for_pack_prefix = CU.Prefix.from_clflags () in let modname = targetname |> CU.Name.of_string in @@ -232,7 +232,10 @@ let package_object_files ~ppf_dump files targetfile targetname coercion = cu_codesize = pos_debug - pos_code; cu_reloc = List.rev !relocs; cu_imports = - (modname, Some (cu_name, Env.crc_of_unit modname)) :: imports; + Array.of_list + ((Import_info.create modname + ~crc_with_unit:(Some (cu_name, Env.crc_of_unit modname))) + :: imports); cu_primitives = !primitives; cu_required_globals = Compilation_unit.Set.elements required_globals; cu_force_link = !force_link; diff --git a/bytecomp/emitcode.ml b/bytecomp/emitcode.ml index f5ebca5b12b2..44c89de39617 100644 --- a/bytecomp/emitcode.ml +++ b/bytecomp/emitcode.ml @@ -412,7 +412,7 @@ let to_file outchan unit_name objfile ~required_globals code = cu_pos = pos_code; cu_codesize = !out_position; cu_reloc = List.rev !reloc_info; - cu_imports = Env.imports(); + cu_imports = Env.imports() |> Array.of_list; cu_primitives = List.map Primitive.byte_name !Translmod.primitive_declarations; cu_required_globals = Compilation_unit.Set.elements required_globals; diff --git a/bytecomp/symtable.ml b/bytecomp/symtable.ml index f8d44b686724..09ac3aa28261 100644 --- a/bytecomp/symtable.ml +++ b/bytecomp/symtable.ml @@ -316,8 +316,8 @@ let init_toplevel () = (* Recover CRC infos for interfaces *) let crcintfs = try - (Obj.magic (sect.read_struct "CRCS") : Cmo_format.import_info list) - with Not_found -> [] in + (Obj.magic (sect.read_struct "CRCS") : Import_info.t array) + with Not_found -> [| |] in (* Done *) sect.close_reader(); crcintfs diff --git a/bytecomp/symtable.mli b/bytecomp/symtable.mli index 78d210e550d0..60850b677935 100644 --- a/bytecomp/symtable.mli +++ b/bytecomp/symtable.mli @@ -32,7 +32,7 @@ val transl_const: Lambda.structured_constant -> Obj.t (* Functions for the toplevel *) -val init_toplevel: unit -> Cmo_format.import_info list +val init_toplevel: unit -> Import_info.t array val update_global_table: unit -> unit val get_global_value: Ident.t -> Obj.t val is_global_defined: Ident.t -> bool diff --git a/compilerlibs/Makefile.compilerlibs b/compilerlibs/Makefile.compilerlibs index 531c419a2f99..82c70eae94a5 100644 --- a/compilerlibs/Makefile.compilerlibs +++ b/compilerlibs/Makefile.compilerlibs @@ -47,6 +47,7 @@ UTILS = \ utils/target_system.cmo \ typing/ident.cmo \ utils/compilation_unit.cmo utils/linkage_name.cmo utils/symbol.cmo \ + utils/import_info.cmo \ utils/lazy_backtrack.cmo \ utils/diffing.cmo \ utils/diffing_with_keys.cmo diff --git a/dune b/dune index 1c7a32941a5d..22ab4c5c32ff 100644 --- a/dune +++ b/dune @@ -62,7 +62,7 @@ config build_path_prefix_map misc identifiable numbers arg_helper clflags profile terminfo ccomp warnings consistbl strongly_connected_components targetint load_path int_replace_polymorphic_compare domainstate binutils - local_store target_system compilation_unit linkage_name symbol + local_store target_system compilation_unit import_info linkage_name symbol lazy_backtrack diffing diffing_with_keys ;; PARSING diff --git a/file_formats/cmi_format.ml b/file_formats/cmi_format.ml index 888d654b2d2f..25aa4dea5736 100644 --- a/file_formats/cmi_format.ml +++ b/file_formats/cmi_format.ml @@ -32,9 +32,8 @@ exception Error of error they are used to provide consistency across input_value and output_value usage. *) type signature = Types.signature_item list -type import_info = - Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option -type crcs = import_info list + +type crcs = Import_info.t array (* smaller on disk than using a list *) type flags = pers_flags list type header = Compilation_unit.t * signature @@ -92,8 +91,8 @@ let output_cmi filename oc cmi = flush oc; let crc = Digest.file filename in let crcs = - (Compilation_unit.name cmi.cmi_name, Some (cmi.cmi_name, crc)) - :: cmi.cmi_crcs + Array.append [| Import_info.create_normal cmi.cmi_name ~crc:(Some crc) |] + cmi.cmi_crcs in output_value oc (crcs : crcs); output_value oc (cmi.cmi_flags : flags); diff --git a/file_formats/cmi_format.mli b/file_formats/cmi_format.mli index 6e5b0c4ecd9e..e510c50bb17d 100644 --- a/file_formats/cmi_format.mli +++ b/file_formats/cmi_format.mli @@ -21,13 +21,10 @@ type pers_flags = | Opaque | Unsafe_string -type import_info = - Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option - type cmi_infos = { cmi_name : Compilation_unit.t; cmi_sign : Types.signature_item list; - cmi_crcs : import_info list; + cmi_crcs : Import_info.t array; cmi_flags : pers_flags list; } diff --git a/file_formats/cmo_format.mli b/file_formats/cmo_format.mli index 2a2a686348c3..6c872e89bc73 100644 --- a/file_formats/cmo_format.mli +++ b/file_formats/cmo_format.mli @@ -25,15 +25,12 @@ type reloc_info = (* Descriptor for compilation units *) -type import_info = - Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option - type compilation_unit_descr = { cu_name: Compilation_unit.t; (* Name of compilation unit *) mutable cu_pos: int; (* Absolute position in file *) cu_codesize: int; (* Size of code block *) cu_reloc: (reloc_info * int) list; (* Relocation information *) - cu_imports: import_info list; (* Names and CRC of intfs imported *) + cu_imports: Import_info.t array; (* Names and CRC of intfs imported *) cu_required_globals: Compilation_unit.t list; (* Compilation units whose initialization side effects diff --git a/file_formats/cmt_format.ml b/file_formats/cmt_format.ml index bf187a4e8683..6c058ac2dba3 100644 --- a/file_formats/cmt_format.ml +++ b/file_formats/cmt_format.ml @@ -178,6 +178,13 @@ let save_cmt filename modname binary_annots sourcefile initial_env cmi shape = | Some cmi -> Some (output_cmi temp_file_name oc cmi) in let source_digest = Option.map Digest.file sourcefile in + let get_imports () = + Env.imports () + |> List.map (fun import -> + let name = Import_info.name import in + let crc_with_unit = Import_info.crc_with_unit import in + name, crc_with_unit) + in let compare_imports (modname1, _crc1) (modname2, _crc2) = Compilation_unit.Name.compare modname1 modname2 in @@ -193,7 +200,7 @@ let save_cmt filename modname binary_annots sourcefile initial_env cmi shape = cmt_source_digest = source_digest; cmt_initial_env = if need_to_clear_env then keep_only_summary initial_env else initial_env; - cmt_imports = List.sort compare_imports (Env.imports ()); + cmt_imports = List.sort compare_imports (get_imports ()); cmt_interface_digest = this_crc; cmt_use_summaries = need_to_clear_env; cmt_uid_to_loc = Env.get_uid_to_loc_tbl (); diff --git a/file_formats/cmt_format.mli b/file_formats/cmt_format.mli index 1a62f7c791c2..8574138ce578 100644 --- a/file_formats/cmt_format.mli +++ b/file_formats/cmt_format.mli @@ -48,6 +48,8 @@ and binary_part = | Partial_signature_item of signature_item | Partial_module_type of module_type +(* CR mshinwell: this should be removed in favour of [Import_info.t], + but will require a new Merlin *) type import_info = (Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option) diff --git a/file_formats/cmx_format.mli b/file_formats/cmx_format.mli index 4b5b321fb0c0..3053a1a72d7a 100644 --- a/file_formats/cmx_format.mli +++ b/file_formats/cmx_format.mli @@ -19,11 +19,6 @@ (* Format of .cmx, .cmxa and .cmxs files *) -type import_info_cmi = - Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option -type import_info_cmx = - Compilation_unit.t * Digest.t option - (* Each .o file has a matching .cmx file that provides the following infos on the compilation unit: - list of other units imported, with MD5s of their .cmx files @@ -45,9 +40,9 @@ type unit_infos = (* All compilation units in the .cmx file (i.e. [ui_name] and any produced via [Asmpackager]) *) - mutable ui_imports_cmi: import_info_cmi list; + mutable ui_imports_cmi: Import_info.t array; (* Interfaces imported *) - mutable ui_imports_cmx: import_info_cmx list; + mutable ui_imports_cmx: Import_info.t array; (* Infos imported *) mutable ui_curry_fun: Clambda.arity list; (* Currying functions needed *) mutable ui_apply_fun: apply_fn list; (* Apply functions needed *) diff --git a/file_formats/cmxs_format.mli b/file_formats/cmxs_format.mli index 6e3f703997c7..1f67c27fa8d9 100644 --- a/file_formats/cmxs_format.mli +++ b/file_formats/cmxs_format.mli @@ -22,9 +22,8 @@ type dynunit = { dynu_name: Compilation_unit.t; dynu_crc: Digest.t; - dynu_imports_cmi: - (Compilation_unit.Name.t * (Compilation_unit.t * Digest.t) option) list; - dynu_imports_cmx: (Compilation_unit.t * Digest.t option) list; + dynu_imports_cmi: Import_info.t array; + dynu_imports_cmx: Import_info.t array; dynu_defines: Compilation_unit.t list; } diff --git a/middle_end/compilenv.ml b/middle_end/compilenv.ml index f126fdc45df0..5c3e4f65b469 100644 --- a/middle_end/compilenv.ml +++ b/middle_end/compilenv.ml @@ -81,8 +81,8 @@ let default_ui_export_info = let current_unit = { ui_unit = CU.dummy; ui_defines = []; - ui_imports_cmi = []; - ui_imports_cmx = []; + ui_imports_cmi = [| |]; + ui_imports_cmx = [| |]; ui_curry_fun = []; ui_apply_fun = []; ui_send_fun = []; @@ -95,8 +95,8 @@ let reset compilation_unit = CU.set_current (Some compilation_unit); current_unit.ui_unit <- compilation_unit; current_unit.ui_defines <- [compilation_unit]; - current_unit.ui_imports_cmi <- []; - current_unit.ui_imports_cmx <- []; + current_unit.ui_imports_cmi <- [| |]; + current_unit.ui_imports_cmx <- [| |]; current_unit.ui_curry_fun <- []; current_unit.ui_apply_fun <- []; current_unit.ui_send_fun <- []; @@ -161,8 +161,9 @@ let get_unit_info comp_unit ~cmx_name = (None, None) end in + let import = Import_info.create_normal comp_unit ~crc in current_unit.ui_imports_cmx <- - (comp_unit, crc) :: current_unit.ui_imports_cmx; + Array.append [| import |] current_unit.ui_imports_cmx; CU.Name.Tbl.add global_infos_table cmx_name infos; infos end @@ -261,7 +262,7 @@ let write_unit_info info filename = close_out oc let save_unit_info filename = - current_unit.ui_imports_cmi <- Env.imports(); + current_unit.ui_imports_cmi <- Array.of_list (Env.imports()); write_unit_info current_unit filename let snapshot () = !structured_constants diff --git a/otherlibs/dynlink/Makefile b/otherlibs/dynlink/Makefile index 902a01f75c8a..4a82710d9bec 100644 --- a/otherlibs/dynlink/Makefile +++ b/otherlibs/dynlink/Makefile @@ -87,6 +87,7 @@ COMPILERLIBS_SOURCES=\ utils/int_replace_polymorphic_compare.ml \ typing/ident.ml \ utils/compilation_unit.ml \ + utils/import_info.ml \ utils/linkage_name.ml \ utils/symbol.ml \ utils/lazy_backtrack.ml \ diff --git a/otherlibs/dynlink/dune b/otherlibs/dynlink/dune index a112821c40d6..e4b237b6df25 100644 --- a/otherlibs/dynlink/dune +++ b/otherlibs/dynlink/dune @@ -75,6 +75,7 @@ cmxs_format debug_event compilation_unit + import_info symbol linkage_name) (modules_without_implementation @@ -111,6 +112,7 @@ (copy_files ../../utils/load_path.ml) (copy_files ../../utils/int_replace_polymorphic_compare.ml) (copy_files ../../utils/compilation_unit.ml) +(copy_files ../../utils/import_info.ml) (copy_files ../../utils/symbol.ml) (copy_files ../../utils/linkage_name.ml) (copy_files ../../utils/lazy_backtrack.ml) @@ -162,6 +164,7 @@ (copy_files ../../utils/load_path.mli) (copy_files ../../utils/int_replace_polymorphic_compare.mli) (copy_files ../../utils/compilation_unit.mli) +(copy_files ../../utils/import_info.mli) (copy_files ../../utils/symbol.mli) (copy_files ../../utils/linkage_name.mli) (copy_files ../../utils/lazy_backtrack.mli) @@ -253,6 +256,7 @@ .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Ident.cmo .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Longident.cmo .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Compilation_unit.cmo + .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Import_info.cmo .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Linkage_name.cmo .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Symbol.cmo .dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Path.cmo @@ -319,6 +323,7 @@ .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Ident.cmx .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Longident.cmx .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Compilation_unit.cmx + .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Import_info.cmx .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Linkage_name.cmx .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Symbol.cmx .dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Path.cmx diff --git a/otherlibs/dynlink/dynlink.ml b/otherlibs/dynlink/dynlink.ml index a74e5b19d7ac..084b667cbebb 100644 --- a/otherlibs/dynlink/dynlink.ml +++ b/otherlibs/dynlink/dynlink.ml @@ -23,9 +23,10 @@ open! Dynlink_compilerlibs module DC = Dynlink_common module DT = Dynlink_types -let convert_cmi_import (name, data) = - (name |> Compilation_unit.Name.to_string), - Option.map (fun (_unit, crc) -> crc) data +let convert_cmi_import import = + let name = Import_info.name import |> Compilation_unit.Name.to_string in + let crc = Import_info.crc import in + name, crc module Bytecode = struct type filename = string @@ -37,7 +38,7 @@ module Bytecode = struct let crc _t = None let interface_imports (t : t) = - List.map convert_cmi_import t.cu_imports + List.map convert_cmi_import (Array.to_list t.cu_imports) let implementation_imports (t : t) = let required_from_unit = @@ -68,7 +69,7 @@ module Bytecode = struct type handle = Stdlib.in_channel * filename * Digest.t - let default_crcs = ref [] + let default_crcs = ref [| |] let default_global_map = ref Symtable.empty_global_map let init () = @@ -89,7 +90,9 @@ module Bytecode = struct Compilation_unit.create Compilation_unit.Prefix.empty modname let fold_initial_units ~init ~f = - List.fold_left (fun acc (modname, interface) -> + Array.fold_left (fun acc import -> + let modname = Import_info.name import in + let crc = Import_info.crc import in let id = Compilation_unit.to_global_ident_for_bytecode (assume_no_prefix modname) @@ -97,9 +100,6 @@ module Bytecode = struct let defined = Symtable.is_defined_in_global_map !default_global_map id in - let interface = - Option.map (fun (_unit, crc) -> crc) interface - in let implementation = if defined then Some (None, DT.Loaded) else None @@ -109,7 +109,7 @@ module Bytecode = struct else [] in let comp_unit = modname |> Compilation_unit.Name.to_string in - f acc ~comp_unit ~interface ~implementation ~defined_symbols) + f acc ~comp_unit ~interface:crc ~implementation ~defined_symbols) init !default_crcs @@ -236,13 +236,15 @@ module Native = struct let name (t : t) = t.dynu_name |> Compilation_unit.name_as_string let crc (t : t) = Some t.dynu_crc - let convert_cmx_import (name, crc) = - (name |> Compilation_unit.name_as_string), crc + let convert_cmx_import import = + let cu = Import_info.cu import |> Compilation_unit.name_as_string in + let crc = Import_info.crc import in + cu, crc let interface_imports (t : t) = - List.map convert_cmi_import t.dynu_imports_cmi + List.map convert_cmi_import (Array.to_list t.dynu_imports_cmi) let implementation_imports (t : t) = - List.map convert_cmx_import t.dynu_imports_cmx + List.map convert_cmx_import (Array.to_list t.dynu_imports_cmx) let defined_symbols (t : t) = List.map (fun comp_unit -> diff --git a/otherlibs/dynlink/extract_crc.ml b/otherlibs/dynlink/extract_crc.ml index 3864e73eaef3..8a3deef3cbdc 100644 --- a/otherlibs/dynlink/extract_crc.ml +++ b/otherlibs/dynlink/extract_crc.ml @@ -43,8 +43,11 @@ let digest_interface unit loadpath = let cmi = Cmi_format.input_cmi ic in close_in ic; let crc = - match cmi.Cmi_format.cmi_crcs with - (_, Some (_unit, crc)) :: _ -> crc + match cmi.Cmi_format.cmi_crcs |> Array.to_list with + import :: _ -> + (match Import_info.crc import with + | Some crc -> crc + | None -> raise Corrupted_interface) | _ -> raise Corrupted_interface in crc diff --git a/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference b/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference index 49e82b6e5f96..4d03df31994c 100755 --- a/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference +++ b/testsuite/tests/lib-dynlink-initializers/test10_main.native.reference @@ -3,9 +3,9 @@ Raised at Stdlib.failwith in file "stdlib.ml", line 32, characters 17-33 Called from Test10_plugin.g in file "test10_plugin.ml" (inlined), line 2, characters 15-38 Called from Test10_plugin.f in file "test10_plugin.ml", line 6, characters 2-6 Called from Test10_plugin in file "test10_plugin.ml", line 10, characters 2-6 -Called from Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 290, characters 8-25 -Called from Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 290, characters 8-25 -Re-raised at Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 302, characters 6-137 +Called from Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 292, characters 8-25 +Called from Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 292, characters 8-25 +Re-raised at Dynlink.Native.ndl_run in file "otherlibs/dynlink/dynlink.ml", line 304, characters 6-137 Called from Stdlib__List.iter in file "list.ml", line 114, characters 12-15 Called from Dynlink_common.Make.load.(fun) in file "otherlibs/dynlink/dynlink_common.ml", line 337, characters 13-54 Called from Stdlib__List.iter in file "list.ml", line 114, characters 12-15 diff --git a/tools/objinfo.ml b/tools/objinfo.ml index 6dfc32f465df..d74b898118d8 100644 --- a/tools/objinfo.ml +++ b/tools/objinfo.ml @@ -50,7 +50,7 @@ let null_crc = String.make 32 '0' let string_of_crc crc = if !no_crc then null_crc else Digest.to_hex crc -let print_name_crc (name, crco) = +let print_name_crc name crco = let crc = match crco with None -> dummy_crc @@ -58,12 +58,21 @@ let print_name_crc (name, crco) = in printf "\t%s\t%a\n" crc Compilation_unit.Name.output name -let print_intf_import (name, data) = - let crco = data |> Option.map (fun (_unit, crc) -> crc) in - print_name_crc (name, crco) +(* CR-someday mshinwell: consider moving to [Import_info.print] *) + +let print_intf_import import = + let name = Import_info.name import in + let crco = Import_info.crc import in + print_name_crc name crco -let print_impl_import (unit, crco) = - print_name_crc (Compilation_unit.name unit, crco) +let print_impl_import import = + let unit = Import_info.cu import in + let crco = Import_info.crc import in + print_name_crc (Compilation_unit.name unit) crco + +let print_old_intf_import (name, data) = + let crco = data |> Option.map (fun (_unit, crc) -> crc) in + print_name_crc name crco let print_line name = printf "\t%s\n" name @@ -77,7 +86,7 @@ let print_required_global id = let print_cmo_infos cu = printf "Unit name: %a\n" Compilation_unit.output cu.cu_name; print_string "Interfaces imported:\n"; - List.iter print_intf_import cu.cu_imports; + Array.iter print_intf_import cu.cu_imports; print_string "Required globals:\n"; List.iter print_required_global cu.cu_required_globals; printf "Uses unsafe features: "; @@ -108,13 +117,13 @@ let print_cma_infos (lib : Cmo_format.library) = let print_cmi_infos name crcs = printf "Unit name: %a\n" Compilation_unit.output name; printf "Interfaces imported:\n"; - List.iter print_intf_import crcs + Array.iter print_intf_import crcs let print_cmt_infos cmt = let open Cmt_format in printf "Cmt unit name: %a\n" Compilation_unit.output cmt.cmt_modname; print_string "Cmt interfaces imported:\n"; - List.iter print_intf_import cmt.cmt_imports; + List.iter print_old_intf_import cmt.cmt_imports; printf "Source file: %s\n" (match cmt.cmt_sourcefile with None -> "(none)" | Some f -> f); printf "Compilation flags:"; @@ -143,9 +152,9 @@ let print_general_infos name crc defines cmi cmx = printf "Globals defined:\n"; List.iter print_line (List.map linkage_name defines); printf "Interfaces imported:\n"; - List.iter print_intf_import cmi; + Array.iter print_intf_import cmi; printf "Implementations imported:\n"; - List.iter print_impl_import cmx + Array.iter print_impl_import cmx let print_global_table table = printf "Globals defined:\n"; @@ -240,7 +249,7 @@ let dump_byte ic = p_list "Imported units" print_intf_import - (input_value ic : Cmo_format.import_info list) + ((input_value ic : Import_info.t array) |> Array.to_list) | "DLLS" -> p_list "Used DLLs" diff --git a/toplevel/expunge.ml b/toplevel/expunge.ml index 268ec8521dce..56ba0ae57bac 100644 --- a/toplevel/expunge.ml +++ b/toplevel/expunge.ml @@ -36,9 +36,11 @@ let expunge_map tbl = Symtable.filter_global_map (fun id -> keep (Ident.name id)) tbl let expunge_crcs tbl = - List.filter - (fun (unit, _crc) -> keep (unit |> Compilation_unit.Name.to_string)) - tbl + Array.to_list tbl + |> List.filter + (fun import -> + keep (Import_info.name import |> Compilation_unit.Name.to_string)) + |> Array.of_list let main () = let input_name = Sys.argv.(1) in @@ -65,7 +67,7 @@ let main () = let global_map = (input_value ic : Symtable.global_map) in output_value oc (expunge_map global_map) | "CRCS" -> - let crcs = (input_value ic : Cmo_format.import_info list) in + let crcs = (input_value ic : Import_info.t array) in output_value oc (expunge_crcs crcs) | _ -> copy_file_chunk ic oc len diff --git a/typing/env.mli b/typing/env.mli index ffdd514b1dd5..2e3df10b7e21 100644 --- a/typing/env.mli +++ b/typing/env.mli @@ -411,7 +411,7 @@ val save_signature: (* Arguments: signature, module name, file name. *) val save_signature_with_imports: alerts:alerts -> signature -> Compilation_unit.t -> filepath - -> Cmi_format.import_info list + -> Import_info.t array -> Cmi_format.cmi_infos (* Arguments: signature, module name, file name, imported units with their CRCs. *) @@ -420,10 +420,10 @@ val save_signature_with_imports: val crc_of_unit: Compilation_unit.Name.t -> Digest.t (* Return the set of compilation units imported, with their CRC *) -val imports: unit -> Cmi_format.import_info list +val imports: unit -> Import_info.t list (* may raise Persistent_env.Consistbl.Inconsistency *) -val import_crcs: source:string -> Cmi_format.import_info list -> unit +val import_crcs: source:string -> Import_info.t array -> unit (* [is_imported_opaque md] returns true if [md] is an opaque imported module *) val is_imported_opaque: Compilation_unit.Name.t -> bool diff --git a/typing/persistent_env.ml b/typing/persistent_env.ml index 2a4aae4f39bb..1a4c63dbe3ce 100644 --- a/typing/persistent_env.ml +++ b/typing/persistent_env.ml @@ -19,20 +19,21 @@ open Misc open Cmi_format -module Consistbl = Consistbl.Make (Compilation_unit.Name) (Compilation_unit) +module CU = Compilation_unit +module Consistbl = Consistbl.Make (CU.Name) (CU) let add_delayed_check_forward = ref (fun _ -> assert false) type error = - | Illegal_renaming of Compilation_unit.Name.t * Compilation_unit.Name.t * filepath - | Inconsistent_import of Compilation_unit.Name.t * filepath * filepath - | Need_recursive_types of Compilation_unit.t - | Depend_on_unsafe_string_unit of Compilation_unit.t - | Inconsistent_package_declaration of Compilation_unit.t * filepath + | Illegal_renaming of CU.Name.t * CU.Name.t * filepath + | Inconsistent_import of CU.Name.t * filepath * filepath + | Need_recursive_types of CU.t + | Depend_on_unsafe_string_unit of CU.t + | Inconsistent_package_declaration of CU.t * filepath | Inconsistent_package_declaration_between_imports of - filepath * Compilation_unit.t * Compilation_unit.t + filepath * CU.t * CU.t | Direct_reference_from_wrong_package of - Compilation_unit.t * filepath * Compilation_unit.Prefix.t + CU.t * filepath * CU.Prefix.t exception Error of error let error err = raise (Error err) @@ -43,7 +44,7 @@ module Persistent_signature = struct cmi : Cmi_format.cmi_infos } let load = ref (fun ~unit_name -> - let unit_name = Compilation_unit.Name.to_string unit_name in + let unit_name = CU.Name.to_string unit_name in match Load_path.find_uncap (unit_name ^ ".cmi") with | filename -> Some { filename; cmi = read_cmi filename } | exception Not_found -> None) @@ -54,8 +55,8 @@ type can_load_cmis = | Cannot_load_cmis of Lazy_backtrack.log type pers_struct = { - ps_name: Compilation_unit.t; - ps_crcs: Cmi_format.import_info list; + ps_name: CU.t; + ps_crcs: Import_info.t array; ps_filename: string; ps_flags: pers_flags list; } @@ -68,17 +69,17 @@ type 'a pers_struct_info = type 'a t = { persistent_structures : - (Compilation_unit.Name.t, 'a pers_struct_info) Hashtbl.t; - imported_units: Compilation_unit.Name.Set.t ref; - imported_opaque_units: Compilation_unit.Name.Set.t ref; + (CU.Name.t, 'a pers_struct_info) Hashtbl.t; + imported_units: CU.Name.Set.t ref; + imported_opaque_units: CU.Name.Set.t ref; crc_units: Consistbl.t; can_load_cmis: can_load_cmis ref; } let empty () = { persistent_structures = Hashtbl.create 17; - imported_units = ref Compilation_unit.Name.Set.empty; - imported_opaque_units = ref Compilation_unit.Name.Set.empty; + imported_units = ref CU.Name.Set.empty; + imported_opaque_units = ref CU.Name.Set.empty; crc_units = Consistbl.create (); can_load_cmis = ref Can_load_cmis; } @@ -92,8 +93,8 @@ let clear penv = can_load_cmis; } = penv in Hashtbl.clear persistent_structures; - imported_units := Compilation_unit.Name.Set.empty; - imported_opaque_units := Compilation_unit.Name.Set.empty; + imported_units := CU.Name.Set.empty; + imported_opaque_units := CU.Name.Set.empty; Consistbl.clear crc_units; can_load_cmis := Can_load_cmis; () @@ -107,10 +108,10 @@ let clear_missing {persistent_structures; _} = List.iter (Hashtbl.remove persistent_structures) missing_entries let add_import {imported_units; _} s = - imported_units := Compilation_unit.Name.Set.add s !imported_units + imported_units := CU.Name.Set.add s !imported_units let register_import_as_opaque {imported_opaque_units; _} s = - imported_opaque_units := Compilation_unit.Name.Set.add s !imported_opaque_units + imported_opaque_units := CU.Name.Set.add s !imported_opaque_units let find_in_cache {persistent_structures; _} s = match Hashtbl.find persistent_structures s with @@ -120,13 +121,15 @@ let find_in_cache {persistent_structures; _} s = let import_crcs penv ~source crcs = let {crc_units; _} = penv in - let import_crc (name, crco) = + let import_crc import_info = + let name = Import_info.name import_info in + let crco = Import_info.crc_with_unit import_info in match crco with | None -> () | Some (unit, crc) -> add_import penv name; Consistbl.check crc_units name unit crc source - in List.iter import_crc crcs + in Array.iter import_crc crcs let check_consistency penv ps = try import_crcs penv ~source:ps.ps_filename ps.ps_crcs @@ -137,7 +140,7 @@ let check_consistency penv ps = inconsistent_data = source_unit; original_data = auth_unit; } -> - if Compilation_unit.equal source_unit auth_unit + if CU.equal source_unit auth_unit then error (Inconsistent_import(name, auth, source)) else error (Inconsistent_package_declaration_between_imports( ps.ps_filename, auth_unit, source_unit)) @@ -167,7 +170,7 @@ let fold {persistent_structures; _} f x = let save_pers_struct penv crc ps pm = let {persistent_structures; crc_units; _} = penv in - let modname = Compilation_unit.name ps.ps_name in + let modname = CU.name ps.ps_name in Hashtbl.add persistent_structures modname (Found (ps, pm)); List.iter (function @@ -189,8 +192,8 @@ let acknowledge_pers_struct penv check modname pers_sig pm = ps_filename = filename; ps_flags = flags; } in - let found_name = Compilation_unit.name name in - if not (Compilation_unit.Name.equal modname found_name) then + let found_name = CU.name name in + if not (CU.Name.equal modname found_name) then error (Illegal_renaming(modname, found_name, filename)); List.iter (function @@ -204,13 +207,13 @@ let acknowledge_pers_struct penv check modname pers_sig pm = | Opaque -> register_import_as_opaque penv modname) ps.ps_flags; if check then check_consistency penv ps; - begin match Compilation_unit.get_current () with + begin match CU.get_current () with | Some current_unit -> let access_allowed = - Compilation_unit.can_access_by_name name ~accessed_by:current_unit + CU.can_access_by_name name ~accessed_by:current_unit in if not access_allowed then - let prefix = Compilation_unit.for_pack_prefix current_unit in + let prefix = CU.for_pack_prefix current_unit in error (Direct_reference_from_wrong_package (name, filename, prefix)); | None -> () end; @@ -228,7 +231,7 @@ let read_pers_struct penv val_of_pers_sig check modname filename = let find_pers_struct penv val_of_pers_sig check name = let {persistent_structures; _} = penv in - if Compilation_unit.Name.equal name Compilation_unit.Name.predef_exn then raise Not_found; + if CU.Name.equal name CU.Name.predef_exn then raise Not_found; match Hashtbl.find persistent_structures name with | Found (ps, pm) -> (ps, pm) | Missing -> raise Not_found @@ -249,14 +252,14 @@ let find_pers_struct penv val_of_pers_sig check name = (ps, pm) let describe_prefix ppf prefix = - if Compilation_unit.Prefix.is_empty prefix then + if CU.Prefix.is_empty prefix then Format.fprintf ppf "outside of any package" else - Format.fprintf ppf "package %a" Compilation_unit.Prefix.print prefix + Format.fprintf ppf "package %a" CU.Prefix.print prefix (* Emits a warning if there is no valid cmi for name *) let check_pers_struct penv f ~loc name = - let name_as_string = Compilation_unit.Name.to_string name in + let name_as_string = CU.Name.to_string name in try ignore (find_pers_struct penv f false name) with @@ -275,21 +278,21 @@ let check_pers_struct penv f ~loc name = " %a@ contains the compiled interface for @ \ %a when %a was expected" Location.print_filename filename - Compilation_unit.Name.print ps_name - Compilation_unit.Name.print name + CU.Name.print ps_name + CU.Name.print name | Inconsistent_import _ -> assert false | Need_recursive_types name -> Format.asprintf "%a uses recursive types" - Compilation_unit.print name + CU.print name | Depend_on_unsafe_string_unit name -> Format.asprintf "%a uses -unsafe-string" - Compilation_unit.print name + CU.print name | Inconsistent_package_declaration _ -> assert false | Inconsistent_package_declaration_between_imports _ -> assert false | Direct_reference_from_wrong_package (unit, _filename, prefix) -> Format.asprintf "%a is inaccessible from %a" - Compilation_unit.print unit + CU.print unit describe_prefix prefix in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in @@ -313,30 +316,49 @@ let check penv f ~loc name = (fun () -> check_pers_struct penv f ~loc name) end +(* CR mshinwell: delete this having moved to 4.14 build compilers *) +module Array = struct + include Array + + (* From stdlib/array.ml *) + let find_opt p a = + let n = Array.length a in + let rec loop i = + if i = n then None + else + let x = Array.unsafe_get a i in + if p x then Some x + else loop (succ i) + in + loop 0 +end + let crc_of_unit penv f name = let (ps, _pm) = find_pers_struct penv f true name in - let crco = - try - List.assoc name ps.ps_crcs - with Not_found -> - assert false - in - match crco with - None -> assert false - | Some (_, crc) -> crc + match Array.find_opt (Import_info.has_name ~name) ps.ps_crcs with + | None -> assert false + | Some import_info -> + match Import_info.crc import_info with + | None -> assert false + | Some crc -> crc let imports {imported_units; crc_units; _} = - Consistbl.extract (Compilation_unit.Name.Set.elements !imported_units) - crc_units + let imports = + Consistbl.extract (CU.Name.Set.elements !imported_units) + crc_units + in + List.map (fun (cu_name, crc_with_unit) -> + Import_info.create cu_name ~crc_with_unit) + imports let looked_up {persistent_structures; _} modname = Hashtbl.mem persistent_structures modname let is_imported {imported_units; _} s = - Compilation_unit.Name.Set.mem s !imported_units + CU.Name.Set.mem s !imported_units let is_imported_opaque {imported_opaque_units; _} s = - Compilation_unit.Name.Set.mem s !imported_opaque_units + CU.Name.Set.mem s !imported_opaque_units let make_cmi penv modname sign alerts = let flags = @@ -351,7 +373,7 @@ let make_cmi penv modname sign alerts = { cmi_name = modname; cmi_sign = sign; - cmi_crcs = crcs; + cmi_crcs = Array.of_list crcs; cmi_flags = flags } @@ -373,8 +395,9 @@ let save_cmi penv psig pm = let ps = { ps_name = modname; ps_crcs = - (Compilation_unit.name cmi.cmi_name, Some (cmi.cmi_name, crc)) - :: imports; + Array.append + [| Import_info.create_normal cmi.cmi_name ~crc:(Some crc) |] + imports; ps_filename = filename; ps_flags = flags; } in @@ -389,39 +412,39 @@ let report_error ppf = "Wrong file naming: %a@ contains the compiled interface for@ \ %a when %a was expected" Location.print_filename filename - Compilation_unit.Name.print ps_name - Compilation_unit.Name.print modname + CU.Name.print ps_name + CU.Name.print modname | Inconsistent_import(name, source1, source2) -> fprintf ppf "@[The files %a@ and %a@ \ make inconsistent assumptions@ over interface %a@]" Location.print_filename source1 Location.print_filename source2 - Compilation_unit.Name.print name + CU.Name.print name | Need_recursive_types(import) -> fprintf ppf "@[Invalid import of %a, which uses recursive types.@ %s@]" - Compilation_unit.print import + CU.print import "The compilation flag -rectypes is required" | Depend_on_unsafe_string_unit(import) -> fprintf ppf "@[Invalid import of %a, compiled with -unsafe-string.@ %s@]" - Compilation_unit.print import + CU.print import "This compiler has been configured in strict \ safe-string mode (-force-safe-string)" | Inconsistent_package_declaration(intf_package, intf_filename) -> fprintf ppf "@[The interface %a@ is compiled for package %s.@ %s@]" - Compilation_unit.print intf_package intf_filename + CU.print intf_package intf_filename "The compilation flag -for-pack with the same package is required" | Inconsistent_package_declaration_between_imports (filename, unit1, unit2) -> fprintf ppf "@[The file %s@ is imported both as %a@ and as %a.@]" filename - Compilation_unit.print unit1 - Compilation_unit.print unit2 + CU.print unit1 + CU.print unit2 | Direct_reference_from_wrong_package(unit, filename, prefix) -> fprintf ppf "@[Invalid reference to %a (in file %s) from %a.@ %s]" - Compilation_unit.print unit + CU.print unit filename describe_prefix prefix "Can only access members of this library's package or a containing package" diff --git a/typing/persistent_env.mli b/typing/persistent_env.mli index 3f4cf4e1cb2d..59437bf76b5b 100644 --- a/typing/persistent_env.mli +++ b/typing/persistent_env.mli @@ -98,10 +98,11 @@ val without_cmis : 'a t -> ('b -> 'c) -> 'b -> 'c allow [penv] to openi cmis during its execution *) (* may raise Consistbl.Inconsistency *) -val import_crcs : 'a t -> source:filepath -> Cmi_format.import_info list -> unit +val import_crcs : 'a t -> source:filepath -> + Import_info.t array -> unit (* Return the set of compilation units imported, with their CRC *) -val imports : 'a t -> Cmi_format.import_info list +val imports : 'a t -> Import_info.t list (* Return the CRC of the interface of the given compilation unit *) val crc_of_unit: 'a t -> (Persistent_signature.t -> 'a) diff --git a/typing/typemod.ml b/typing/typemod.ml index ac7df1fe229f..0ad3fd54a11c 100644 --- a/typing/typemod.ml +++ b/typing/typemod.ml @@ -3320,15 +3320,16 @@ let package_units initial_env objfiles cmifile modulename = (* Determine imports *) let unit_names = List.map fst units in let imports = - List.filter - (fun (name, _crc) -> not (List.mem name unit_names)) + List.filter (fun import -> + let name = Import_info.name import in + not (List.mem name unit_names)) (Env.imports()) in (* Write packaged signature *) if not !Clflags.dont_write_files then begin let cmi = Env.save_signature_with_imports ~alerts:Misc.Stdlib.String.Map.empty sg modulename - (prefix ^ ".cmi") imports + (prefix ^ ".cmi") (Array.of_list imports) in Cmt_format.save_cmt (prefix ^ ".cmt") modulename (Cmt_format.Packed (cmi.Cmi_format.cmi_sign, objfiles)) None initial_env diff --git a/utils/.ocamlformat-enable b/utils/.ocamlformat-enable index a1c51a914197..dc0bce1feedb 100644 --- a/utils/.ocamlformat-enable +++ b/utils/.ocamlformat-enable @@ -1,2 +1,4 @@ compilation_unit.ml compilation_unit.mli +import_info.ml +import_info.mli diff --git a/utils/import_info.ml b/utils/import_info.ml new file mode 100644 index 000000000000..3efc610c1fe4 --- /dev/null +++ b/utils/import_info.ml @@ -0,0 +1,66 @@ +(**************************************************************************) +(* *) +(* OCaml *) +(* *) +(* Mark Shinwell, Jane Street UK Partnership LLP *) +(* *) +(* Copyright 2022 Jane Street Group LLC *) +(* *) +(* All rights reserved. This file is distributed under the terms of *) +(* the GNU Lesser General Public License version 2.1, with the *) +(* special exception on linking described in the file LICENSE. *) +(* *) +(**************************************************************************) + +module CU = Compilation_unit + +type t = + | Normal of CU.t * Digest.t + | Normal_no_crc of CU.t + | Other of CU.Name.t * (CU.t * Digest.t) option + +(* CR xclerc: Maybe introduce Other_no_crc to flatten the option *) + +let create cu_name ~crc_with_unit = + match crc_with_unit with + | None -> Other (cu_name, None) + | Some (cu, crc) -> + (* For the moment be conservative and only use the [Normal] constructor when + there is no pack prefix at all. *) + if CU.Prefix.is_empty (CU.for_pack_prefix cu) + && CU.Name.equal (CU.name cu) cu_name + then Normal (cu, crc) + else Other (cu_name, Some (cu, crc)) + +let create_normal cu ~crc = + match crc with Some crc -> Normal (cu, crc) | None -> Normal_no_crc cu + +let name t = + match t with + | Normal (cu, _) | Normal_no_crc cu -> CU.name cu + | Other (name, _) -> name + +let cu t = + match t with + | Normal (cu, _) | Normal_no_crc cu | Other (_, Some (cu, _)) -> cu + | Other (name, None) -> + Misc.fatal_errorf + "Cannot extract [Compilation_unit.t] from [Import_info.t] (for unit %a) \ + that never received it" + CU.Name.print name + +let crc t = + match t with + | Normal (_, crc) -> Some crc + | Normal_no_crc _ | Other (_, None) -> None + | Other (_, Some (_, crc)) -> Some crc + +let crc_with_unit t = + match t with + | Normal (cu, crc) -> Some (cu, crc) + | Normal_no_crc _ | Other (_, None) -> None + | Other (_, some_cu_and_crc) -> some_cu_and_crc + +let has_name t ~name:name' = CU.Name.equal (name t) name' + +let dummy = Other (CU.Name.dummy, None) diff --git a/utils/import_info.mli b/utils/import_info.mli new file mode 100644 index 000000000000..845e5f086ff6 --- /dev/null +++ b/utils/import_info.mli @@ -0,0 +1,50 @@ +(**************************************************************************) +(* *) +(* OCaml *) +(* *) +(* Mark Shinwell, Jane Street UK Partnership LLP *) +(* *) +(* Copyright 2022 Jane Street Group LLC *) +(* *) +(* All rights reserved. This file is distributed under the terms of *) +(* the GNU Lesser General Public License version 2.1, with the *) +(* special exception on linking described in the file LICENSE. *) +(* *) +(**************************************************************************) + +module CU = Compilation_unit + +(* CR mshinwell: maybe there should be a phantom type allowing to distinguish + the .cmx case from the others. Unclear it's worth it. + + xclerc: I also wonder whether it could be useful to have an abstract Array.t + in this module. Indeed the import infos are now mutable; we could hide the + mutability behind an abstract type. I reckon we use only a handful of array + operations on such values, so it should not be too bad. If that happens, it + should probably be in another PR. + + (We could also wait for immutable arrays.) *) + +(* CR mshinwell/xclerc: maybe the reading and writing code should be put in + here, or somewhere alongside, rather than being duplicated around the + tree. *) + +type t + +val create : CU.Name.t -> crc_with_unit:(CU.t * string) option -> t + +val create_normal : CU.t -> crc:string option -> t + +val name : t -> CU.Name.t + +(** This function will cause a fatal error if a [CU.t] was not provided when the + supplied value of type [t] was created. *) +val cu : t -> CU.t + +val crc : t -> string option + +val crc_with_unit : t -> (CU.t * string) option + +val has_name : t -> name:CU.Name.t -> bool + +val dummy : t