Skip to content

Commit 08c201a

Browse files
committed
Revert "Rename 'Packages.pkgdir' to 'pkgname'"
This reverts commit 323c41f.
1 parent cc43fa0 commit 08c201a

File tree

6 files changed

+75
-79
lines changed

6 files changed

+75
-79
lines changed

src/driver/compile.ml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ type compiled = {
1717
include_dirs : Fpath.Set.t;
1818
impl : impl option;
1919
pkg_args : pkg_args;
20-
pkgname : Packages.pkgname;
20+
pkgdir : Packages.pkgdir;
2121
}
2222

2323
let mk_byhash (pkgs : Packages.t Util.StringMap.t) =
@@ -200,7 +200,7 @@ let compile ?partial ~output_dir ?linked_dir all =
200200
include_dirs = includes;
201201
impl;
202202
pkg_args;
203-
pkgname = modty.m_pkgname;
203+
pkgdir = modty.m_pkg;
204204
}
205205
in
206206

@@ -228,7 +228,7 @@ let compile ?partial ~output_dir ?linked_dir all =
228228
Util.StringMap.fold
229229
(fun _pkgname (pkg : Packages.t) acc ->
230230
Logs.debug (fun m ->
231-
m "Package %s mlds: [%a]" pkg.pkgname.p_name
231+
m "Package %s mlds: [%a]" pkg.name
232232
Fmt.(list ~sep:sp Packages.pp_mld)
233233
pkg.mlds);
234234
List.fold_left
@@ -255,7 +255,7 @@ let compile ?partial ~output_dir ?linked_dir all =
255255
include_dirs;
256256
impl = None;
257257
pkg_args;
258-
pkgname = mld.mld_pkgname;
258+
pkgdir = mld.mld_pkg;
259259
}
260260
:: acc)
261261
acc pkg.mlds)
@@ -270,7 +270,7 @@ let compile ?partial ~output_dir ?linked_dir all =
270270
type linked = {
271271
output_file : Fpath.t;
272272
src : Fpath.t option;
273-
pkgname : Packages.pkgname;
273+
pkgdir : Packages.pkgdir;
274274
}
275275

276276
let link : compiled list -> _ =
@@ -279,9 +279,9 @@ let link : compiled list -> _ =
279279
fun c ->
280280
let includes = Fpath.Set.add c.odoc_output_dir c.include_dirs in
281281
let link input_file output_file =
282-
let { pkg_args = { libs; docs }; pkgname; _ } = c in
283-
Odoc.link ~input_file ~output_file ~includes ~libs ~docs
284-
~current_package:pkgname.p_name ()
282+
let { pkg_args = { libs; docs }; pkgdir = current_package, _; _ } = c in
283+
Odoc.link ~input_file ~output_file ~includes ~libs ~docs ~current_package
284+
()
285285
in
286286
let impl =
287287
match c.impl with
@@ -290,7 +290,7 @@ let link : compiled list -> _ =
290290
m "Linking impl: %a -> %a" Fpath.pp impl_odoc Fpath.pp impl_odocl);
291291
link impl_odoc impl_odocl;
292292
Atomic.incr Stats.stats.linked_impls;
293-
[ { pkgname = c.pkgname; output_file = impl_odocl; src = Some src } ]
293+
[ { pkgdir = c.pkgdir; output_file = impl_odocl; src = Some src } ]
294294
| None -> []
295295
in
296296
match c.m with
@@ -303,14 +303,13 @@ let link : compiled list -> _ =
303303
(match c.m with
304304
| Module _ -> Atomic.incr Stats.stats.linked_units
305305
| Mld _ -> Atomic.incr Stats.stats.linked_mlds);
306-
{ output_file = c.odocl_file; src = None; pkgname = c.pkgname } :: impl
306+
{ output_file = c.odocl_file; src = None; pkgdir = c.pkgdir } :: impl
307307
in
308308
Fiber.List.map link compiled |> List.concat
309309

310310
let index_one ~odocl_dir pkgname pkg =
311-
let output_file =
312-
Fpath.(odocl_dir // pkg.Packages.pkgname.p_dir / Odoc.index_filename)
313-
in
311+
let _, dir = pkg.Packages.pkgdir in
312+
let output_file = Fpath.(odocl_dir // dir / Odoc.index_filename) in
314313
let libs =
315314
List.map
316315
(fun lib -> (lib.Packages.lib_name, Fpath.(odocl_dir // lib.odoc_dir)))
@@ -323,7 +322,7 @@ let index_one ~odocl_dir pkgname pkg =
323322
let index ~odocl_dir pkgs = Util.StringMap.iter (index_one ~odocl_dir) pkgs
324323

325324
let sherlodoc_index_one ~html_dir ~odocl_dir _ pkg_content =
326-
let pkg_dir = pkg_content.Packages.pkgname.p_dir in
325+
let _, pkg_dir = pkg_content.Packages.pkgdir in
327326
let inputs = [ Fpath.(odocl_dir // pkg_dir / Odoc.index_filename) ] in
328327
let dst = Fpath.(html_dir // Sherlodoc.db_js_file pkg_dir) in
329328
let dst_dir, _ = Fpath.split_base dst in
@@ -341,14 +340,15 @@ let sherlodoc ~html_dir ~odocl_dir pkgs =
341340
let inputs =
342341
pkgs |> Util.StringMap.bindings
343342
|> List.map (fun (_pkgname, pkg) ->
344-
Fpath.(odocl_dir // pkg.Packages.pkgname.p_dir / Odoc.index_filename))
343+
let _, pkg_dir = pkg.Packages.pkgdir in
344+
Fpath.(odocl_dir // pkg_dir / Odoc.index_filename))
345345
in
346346
Sherlodoc.index ~format ~inputs ~dst ()
347347

348348
let html_generate output_dir ~odocl_dir linked =
349349
let html_generate : linked -> unit =
350350
fun l ->
351-
let pkg_dir = l.pkgname.p_dir in
351+
let _, pkg_dir = l.pkgdir in
352352
let search_uris = [ Sherlodoc.db_js_file pkg_dir; Sherlodoc.js_file ] in
353353
let index = Some Fpath.(odocl_dir // pkg_dir / Odoc.index_filename) in
354354
Odoc.html_generate ~search_uris ?index

src/driver/dune_style.ml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
(* Dune build tree *)
22

3-
(* Map lib names to package names. *)
4-
let mk_pkgname ~dir libname path =
5-
let p_dir = Fpath.rem_prefix dir path |> Option.get in
6-
{ Packages.p_name = libname; p_dir }
7-
83
let of_dune_build dir =
94
let contents =
105
Bos.OS.Dir.fold_contents ~dotfiles:true (fun p acc -> p :: acc) [] dir
@@ -39,27 +34,28 @@ let of_dune_build dir =
3934
let cmtidir =
4035
Fpath.(path / Printf.sprintf ".%s.objs" libname / "byte")
4136
in
42-
let pkgname = mk_pkgname ~dir libname path in
43-
( pkgname,
44-
Packages.Lib.v ~pkgname
37+
(* Map lib names to package names. *)
38+
let pkgdir = (libname, Fpath.rem_prefix dir path |> Option.get) in
39+
( pkgdir,
40+
Packages.Lib.v ~pkgdir
4541
~libname_of_archive:(Util.StringMap.singleton libname libname)
4642
~dir:path ~cmtidir:(Some cmtidir) ))
4743
libs
4844
in
4945
let packages =
5046
List.filter_map
51-
(fun (pkgname, lib) ->
47+
(fun (pkgdir, lib) ->
5248
match lib with
5349
| [ lib ] ->
54-
(* Accept only one library per package for now. *)
5550
Some
5651
( lib.Packages.lib_name,
5752
{
58-
Packages.version = "1.0";
53+
Packages.name = lib.Packages.lib_name;
54+
version = "1.0";
5955
libraries = [ lib ];
6056
mlds = [];
6157
mld_odoc_dir = Fpath.v lib.Packages.lib_name;
62-
pkgname;
58+
pkgdir;
6359
other_docs = Fpath.Set.empty;
6460
} )
6561
| _ -> None)

src/driver/indexes.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
let package fmt (pkg : Packages.t) =
2-
Format.fprintf fmt "{0 Package %s}\n" pkg.pkgname.p_name;
2+
Format.fprintf fmt "{0 Package %s}\n" pkg.name;
33
Format.fprintf fmt "{1 Libraries}\n";
44
List.iter
55
(fun (lib : Packages.libty) ->

src/driver/packages.ml

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(* Packages *)
22

3-
type pkgname = { p_name : string; p_dir : Fpath.t }
3+
type pkgdir = string * Fpath.t
44

55
type dep = string * Digest.t
66

@@ -34,7 +34,7 @@ type modulety = {
3434
m_intf : intf;
3535
m_impl : impl option;
3636
m_hidden : bool;
37-
m_pkgname : pkgname;
37+
m_pkg : pkgdir;
3838
(* The 'top dir' of a package, relative to [_odoc] or [_html] *)
3939
}
4040

@@ -44,7 +44,7 @@ type mld = {
4444
mld_parent_id : id;
4545
mld_path : Fpath.t; (* Absolute or relative to cwd *)
4646
mld_deps : Fpath.t list;
47-
mld_pkgname : pkgname;
47+
mld_pkg : pkgdir;
4848
(* The 'top dir' of a package, relative to [_odoc] or [_html] *)
4949
}
5050

@@ -58,26 +58,26 @@ type libty = {
5858
}
5959

6060
type t = {
61-
pkgname : pkgname;
61+
name : string;
6262
version : string;
6363
libraries : libty list;
6464
mlds : mld list;
6565
mld_odoc_dir : Fpath.t; (* Relative to [odoc] dir *)
66+
pkgdir : pkgdir;
6667
other_docs : Fpath.Set.t;
6768
}
6869

6970
let maybe_prepend_top top_dir dir =
7071
match top_dir with None -> dir | Some d -> Fpath.(d // dir)
7172

72-
let mk_pkgname top_dir p_name =
73-
let p_dir = maybe_prepend_top top_dir Fpath.(v p_name) in
74-
{ p_name; p_dir }
73+
let find_pkg top_dir pkg_name =
74+
(pkg_name, maybe_prepend_top top_dir Fpath.(v pkg_name))
7575

76-
let parent_of_lib pkgname lib_name = Fpath.(pkgname.p_dir / "lib" / lib_name)
76+
let parent_of_lib (_, pkg_dir) lib_name = Fpath.(pkg_dir / "lib" / lib_name)
7777

78-
let parent_of_pages pkgname = Fpath.(pkgname.p_dir / "doc")
78+
let parent_of_pages (_, pkg_dir) = Fpath.(pkg_dir / "doc")
7979

80-
let parent_of_src pkgname lib_name = Fpath.(pkgname.p_dir / "src" / lib_name)
80+
let parent_of_src (_, pkg_dir) lib_name = Fpath.(pkg_dir / "src" / lib_name)
8181

8282
module Module = struct
8383
type t = modulety
@@ -88,7 +88,7 @@ module Module = struct
8888

8989
let is_hidden name = Astring.String.is_infix ~affix:"__" name
9090

91-
let vs pkgname lib_name libsdir cmtidir modules =
91+
let vs pkgdir lib_name libsdir cmtidir modules =
9292
let dir = match cmtidir with None -> libsdir | Some dir -> dir in
9393
let mk m_name =
9494
let exists ext =
@@ -108,7 +108,7 @@ module Module = struct
108108
| _ -> None)
109109
in
110110
let mk_intf mif_path =
111-
let mif_parent_id = parent_of_lib pkgname lib_name in
111+
let mif_parent_id = parent_of_lib pkgdir lib_name in
112112
let mif_odoc_file =
113113
Fpath.(
114114
mif_parent_id
@@ -128,7 +128,7 @@ module Module = struct
128128
| Error _ -> failwith "bad deps"
129129
in
130130
let mk_impl mip_path =
131-
let mip_parent_id = parent_of_lib pkgname lib_name in
131+
let mip_parent_id = parent_of_lib pkgdir lib_name in
132132
let mip_odoc_file =
133133
Fpath.(
134134
mip_parent_id
@@ -151,7 +151,7 @@ module Module = struct
151151
m "Found source file %a for %s" Fpath.pp src_path m_name);
152152
let src_name = Fpath.filename src_path in
153153
let src_id =
154-
Fpath.(parent_of_src pkgname lib_name / src_name)
154+
Fpath.(parent_of_src pkgdir lib_name / src_name)
155155
|> Odoc.id_of_fpath
156156
in
157157
Some { src_path; src_id }
@@ -169,7 +169,7 @@ module Module = struct
169169
let m_hidden = is_hidden m_name in
170170
try
171171
let r (m_intf, m_impl) =
172-
Some { m_name; m_intf; m_impl; m_hidden; m_pkgname = pkgname }
172+
Some { m_name; m_intf; m_impl; m_hidden; m_pkg = pkgdir }
173173
in
174174
match state with
175175
| Some cmt, Some cmti -> r (mk_intf cmti, Some (mk_impl cmt))
@@ -187,10 +187,10 @@ module Module = struct
187187
end
188188

189189
module Lib = struct
190-
let v ~pkgname ~libname_of_archive ~dir ~cmtidir =
191-
let { p_name; _ } = pkgname in
190+
let v ~pkgdir ~libname_of_archive ~dir ~cmtidir =
191+
let pkg_name, _ = pkgdir in
192192
Logs.debug (fun m ->
193-
m "Classifying dir %a for package %s" Fpath.pp dir p_name);
193+
m "Classifying dir %a for package %s" Fpath.pp dir pkg_name);
194194
let dirs =
195195
match cmtidir with None -> [ dir ] | Some dir2 -> [ dir; dir2 ]
196196
in
@@ -206,7 +206,7 @@ module Lib = struct
206206
m
207207
"Unable to determine library in package '%s' to which \
208208
archive '%s' belongs"
209-
p_name archive_name);
209+
pkg_name archive_name);
210210
Logs.debug (fun m ->
211211
m "These are the archives I know about: [%a]"
212212
Fmt.(list ~sep:sp string)
@@ -215,8 +215,8 @@ module Lib = struct
215215
m "Defaulting to name of library: %s" archive_name);
216216
archive_name
217217
in
218-
let modules = Module.vs pkgname lib_name dir cmtidir modules in
219-
let odoc_dir = parent_of_lib pkgname lib_name in
218+
let modules = Module.vs pkgdir lib_name dir cmtidir modules in
219+
let odoc_dir = parent_of_lib pkgdir lib_name in
220220
Some { lib_name; odoc_dir; archive_name; modules }
221221
with _ ->
222222
Logs.err (fun m ->
@@ -232,8 +232,8 @@ module Lib = struct
232232
end
233233

234234
let pp ppf t =
235-
Fmt.pf ppf "name: %[email protected]: %[email protected]: [@[<hov 2>@,%a@]@,]"
236-
t.pkgname.p_name t.version
235+
Fmt.pf ppf "name: %[email protected]: %[email protected]: [@[<hov 2>@,%a@]@,]" t.name
236+
t.version
237237
Fmt.(list ~sep:sp Lib.pp)
238238
t.libraries
239239

@@ -339,8 +339,8 @@ let of_libs ~packages_dir libs =
339339
match rel_path with
340340
| None -> acc
341341
| Some rel_path ->
342-
let pkgname = mk_pkgname packages_dir pkg_name in
343-
let id = Fpath.(parent_of_pages pkgname // rel_path) in
342+
let pkgdir = find_pkg packages_dir pkg_name in
343+
let id = Fpath.(parent_of_pages pkgdir // rel_path) in
344344
let mld_parent_id = id |> Fpath.parent |> Fpath.rem_empty_seg in
345345
let page_name = Fpath.(rem_ext mld_path |> filename) in
346346
let odoc_file =
@@ -354,7 +354,7 @@ let of_libs ~packages_dir libs =
354354
mld_parent_id = Odoc.id_of_fpath mld_parent_id;
355355
mld_path;
356356
mld_deps;
357-
mld_pkgname = pkgname;
357+
mld_pkg = pkgdir;
358358
}
359359
:: acc)
360360
odoc_pages []
@@ -373,10 +373,10 @@ let of_libs ~packages_dir libs =
373373
Logs.debug (fun m -> m "No package for dir %a\n%!" Fpath.pp dir);
374374
acc
375375
| Some pkg ->
376-
let pkgname = mk_pkgname packages_dir pkg.name in
376+
let pkgdir = find_pkg packages_dir pkg.name in
377377

378378
let libraries =
379-
Lib.v ~pkgname ~libname_of_archive ~dir ~cmtidir:None
379+
Lib.v ~pkgdir ~libname_of_archive ~dir ~cmtidir:None
380380
in
381381
let libraries =
382382
List.filter
@@ -407,15 +407,16 @@ let of_libs ~packages_dir libs =
407407
mlds = update_mlds pkg.mlds libraries;
408408
}
409409
| None ->
410-
let mld_odoc_dir = parent_of_pages pkgname in
410+
let mld_odoc_dir = parent_of_pages pkgdir in
411411
Some
412412
{
413-
pkgname;
413+
name = pkg.name;
414414
version = pkg.version;
415415
libraries;
416416
mlds;
417417
mld_odoc_dir;
418418
other_docs;
419+
pkgdir;
419420
})
420421
acc)
421422
dirs Util.StringMap.empty

0 commit comments

Comments
 (0)