This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,3 @@
(rule
(alias default)
(action (run ./exe/test.exe)))

View file

@ -0,0 +1,3 @@
(executable
(libraries foolib)
(name test))

View file

@ -0,0 +1,3 @@
let () =
Foolib.Bar.Fake.run ();
Foolib.Bar.Baz.run ()

View file

@ -0,0 +1,5 @@
module Fake = struct
let run () =
print_endline "defined in lib interface file"
end
module Baz = Baz

View file

@ -0,0 +1 @@
let run () = print_endline "hello from baz"

View file

@ -0,0 +1,4 @@
(include_subdirs qualified)
(library
(name foolib))

View file

@ -0,0 +1,36 @@
We are also allowed to write lib interface files at each level.
$ dune build
defined in lib interface file
hello from baz
$ find _build -iname "*.cmi" | sort
_build/default/exe/.test.eobjs/byte/dune__exe__Test.cmi
_build/default/lib/.foolib.objs/byte/foolib.cmi
_build/default/lib/.foolib.objs/byte/foolib__.cmi
_build/default/lib/.foolib.objs/byte/foolib__Bar.cmi
_build/default/lib/.foolib.objs/byte/foolib__Bar__.cmi
_build/default/lib/.foolib.objs/byte/foolib__Bar__Baz.cmi
_build/default/lib/.foolib.objs/byte/foolib__Private.cmi
$ find _build -iname "*.ml-gen" | sort | while read file; do echo "contents of $file"; cat $file; echo "--------"; done;
contents of _build/default/lib/foolib__.ml-gen
(* generated by dune *)
(** @canonical Foolib.Bar *)
module Bar = Foolib__Bar
(** @canonical Foolib.Private *)
module Private = Foolib__Private
module Foolib__ = struct end
[@@deprecated "this module is shadowed"]
--------
contents of _build/default/lib/foolib__Bar__.ml-gen
(* generated by dune *)
(** @canonical Foolib.Bar.Baz *)
module Baz = Foolib__Bar__Baz
module Foolib__Bar__ = struct end
[@@deprecated "this module is shadowed"]
--------