Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/dune_lang/dune_lang.ml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ module Menhir = Menhir
module Rule_mode_decoder = Rule_mode_decoder
module Mode_conf = Mode_conf
module Oxcaml = Oxcaml
module Modules_settings = Modules_settings

(* CR-someday rgrinberg: perhaps wrap these under [Stanzas]? *)
module Copy_files = Copy_files
Expand Down
18 changes: 18 additions & 0 deletions src/dune_lang/modules_settings.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
open Import

type t =
{ root_module : (Loc.t * Module_name.t) option
; modules_without_implementation : Ordered_set_lang.Unexpanded.t
; modules : Ordered_set_lang.Unexpanded.t
}

let since_expanded = 3, 13

let decode =
let open Decoder in
let+ root_module = field_o "root_module" Module_name.decode_loc
and+ modules_without_implementation =
Ordered_set_lang.Unexpanded.field ~since_expanded "modules_without_implementation"
and+ modules = Ordered_set_lang.Unexpanded.field ~since_expanded "modules" in
{ root_module; modules; modules_without_implementation }
;;
10 changes: 10 additions & 0 deletions src/dune_lang/modules_settings.mli
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
open Import

type t =
{ root_module : (Loc.t * Module_name.t) option
; modules_without_implementation : Ordered_set_lang.Unexpanded.t
; modules : Ordered_set_lang.Unexpanded.t
}

val since_expanded : Syntax.Version.t
val decode : t Decoder.fields_parser
18 changes: 0 additions & 18 deletions src/dune_lang/stanza_common.ml
Original file line number Diff line number Diff line change
Expand Up @@ -123,21 +123,3 @@ module Pkg = struct
| Some name -> resolve p name |> Result.map ~f:Option.some)
;;
end

module Modules_settings = struct
type t =
{ root_module : (Loc.t * Module_name.t) option
; modules_without_implementation : Ordered_set_lang.Unexpanded.t
; modules : Ordered_set_lang.Unexpanded.t
}

let since_expanded = 3, 13

let decode =
let+ root_module = field_o "root_module" Module_name.decode_loc
and+ modules_without_implementation =
Ordered_set_lang.Unexpanded.field ~since_expanded "modules_without_implementation"
and+ modules = Ordered_set_lang.Unexpanded.field ~since_expanded "modules" in
{ root_module; modules; modules_without_implementation }
;;
end
11 changes: 0 additions & 11 deletions src/dune_lang/stanza_common.mli
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,3 @@ module Pkg : sig
val field_opt : ?check:unit t -> unit -> Package.t option fields_parser
val default_exn : loc:Loc.t -> Dune_project.t -> string -> Package.t
end

module Modules_settings : sig
type t =
{ root_module : (Loc.t * Module_name.t) option
; modules_without_implementation : Ordered_set_lang.Unexpanded.t
; modules : Ordered_set_lang.Unexpanded.t
}

val since_expanded : Syntax.Version.t
val decode : t Decoder.fields_parser
end
1 change: 1 addition & 0 deletions src/dune_rules/import.ml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ include struct
module Stanza_common = Stanza_common
module Include_subdirs = Include_subdirs
module Mode_conf = Mode_conf
module Modules_settings = Modules_settings
end

include Dune_engine.No_io
Expand Down
4 changes: 2 additions & 2 deletions src/dune_rules/melange/melange_stanzas.ml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Emit = struct
; target : string
; alias : Alias.Name.t option
; module_systems : (Melange.Module_system.t * Filename.Extension.t) list
; modules : Stanza_common.Modules_settings.t
; modules : Modules_settings.t
; emit_stdlib : bool
; libraries : Lib_dep.t list
; package : Package.t option
Expand Down Expand Up @@ -125,7 +125,7 @@ module Emit = struct
and+ compile_flags = Ordered_set_lang.Unexpanded.field "compile_flags"
and+ allow_overlapping_dependencies = field_b "allow_overlapping_dependencies"
and+ emit_stdlib = field "emit_stdlib" bool ~default:true
and+ modules = Stanza_common.Modules_settings.decode
and+ modules = Modules_settings.decode
and+ enabled_if =
let open Enabled_if in
let allowed_vars = Any in
Expand Down
2 changes: 1 addition & 1 deletion src/dune_rules/melange/melange_stanzas.mli
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Emit : sig
; target : string
; alias : Alias.Name.t option
; module_systems : (Melange.Module_system.t * string) list
; modules : Stanza_common.Modules_settings.t
; modules : Modules_settings.t
; emit_stdlib : bool
; libraries : Lib_dep.t list
; package : Package.t option
Expand Down
7 changes: 2 additions & 5 deletions src/dune_rules/modules_field_evaluator.ml
Original file line number Diff line number Diff line change
Expand Up @@ -339,10 +339,7 @@ let eval
~src_dir
~is_vendored
~version
{ Stanza_common.Modules_settings.modules = _
; root_module
; modules_without_implementation
}
{ Modules_settings.modules = _; root_module; modules_without_implementation }
modules
=
(* Fake modules are modules that do not exist but it doesn't matter because
Expand Down Expand Up @@ -419,7 +416,7 @@ let eval
~kind
~src_dir
~version
(settings : Stanza_common.Modules_settings.t)
(settings : Modules_settings.t)
=
Memo.push_stack_frame ~human_readable_description:(fun () ->
Pp.textf "(modules) field at %s" (Loc.to_file_colon_line stanza_loc))
Expand Down
2 changes: 1 addition & 1 deletion src/dune_rules/modules_field_evaluator.mli
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ val eval
-> kind:kind
-> src_dir:Path.Build.t
-> version:Dune_lang.Syntax.Version.t
-> Stanza_common.Modules_settings.t
-> Modules_settings.t
-> ((Loc.t * Module.Source.t) Module_trie.t * Module.t Module_trie.t) Memo.t
4 changes: 2 additions & 2 deletions src/dune_rules/stanzas/buildable.ml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ type for_ =

type t =
{ loc : Loc.t
; modules : Stanza_common.Modules_settings.t
; modules : Modules_settings.t
; empty_module_interface_if_absent : bool
; libraries : Lib_dep.t list
; foreign_archives : (Loc.t * Foreign.Archive.t) list
Expand Down Expand Up @@ -39,7 +39,7 @@ let decode_preprocess =
;;

let decode_ocaml_flags = Ocaml_flags.Spec.decode
let decode_modules = Stanza_common.Modules_settings.decode
let decode_modules = Modules_settings.decode
let decode_lint = field "lint" Lint.decode ~default:Lint.default
let decode_allow_overlapping = field_b "allow_overlapping_dependencies"

Expand Down
4 changes: 2 additions & 2 deletions src/dune_rules/stanzas/buildable.mli
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ type for_ =

type t =
{ loc : Loc.t
; modules : Stanza_common.Modules_settings.t
; modules : Modules_settings.t
; empty_module_interface_if_absent : bool
; libraries : Lib_dep.t list
; foreign_archives : (Loc.t * Foreign.Archive.t) list
Expand Down Expand Up @@ -45,7 +45,7 @@ val decode_preprocess
val decode_ocaml_flags : Ocaml_flags.Spec.t Dune_lang.Decoder.fields_parser

(* Parser for the modules field *)
val decode_modules : Stanza_common.Modules_settings.t Dune_lang.Decoder.fields_parser
val decode_modules : Modules_settings.t Dune_lang.Decoder.fields_parser

(* Parser for the lint field *)
val decode_lint
Expand Down
4 changes: 2 additions & 2 deletions src/dune_rules/stanzas/library.ml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ let decode =
let* virtual_modules =
Ordered_set_lang.Unexpanded.field_o
~check:(Dune_lang.Syntax.since Stanza.syntax (1, 7))
~since_expanded:Stanza_common.Modules_settings.since_expanded
~since_expanded:Modules_settings.since_expanded
"virtual_modules"
in
let+ dune_file_kind =
Expand Down Expand Up @@ -184,7 +184,7 @@ let decode =
and+ private_modules =
Ordered_set_lang.Unexpanded.field_o
~check:(Dune_lang.Syntax.since Stanza.syntax (1, 2))
~since_expanded:Stanza_common.Modules_settings.since_expanded
~since_expanded:Modules_settings.since_expanded
"private_modules"
and+ stdlib =
field_o
Expand Down
Loading