B0caml_ocamlpathOCAMLPATH support move to B0_care.
classify_path p is:
`Logical l if p starts with a '+'. l is p without the '+' or Fpath.v "." if that results in the empty string.`Concrete d otherwise.Logical paths are those that need to be looked up in OCAMLPATH.
logical_path_root_name d is:
Some r if classify_path d is `Logical d' and r the first non-dot segment of d'.None otherwise.The type for OCAMLPATH. Conceptually it's just a list of directories but for legacy reasons we need to carry a bit more information.
val get :
?search:B0_std.Cmd.tool_search ->
B0_std.Fpath.t list option ->
(t, string) Stdlib.resultget ocamlpath is Ok ps if ocamlpath is Some ps and otherwise:
OCAMLPATH environment variable is defined, its contents parsed according to Fpath.list_of_search_path.opam tool is available [$(opam var lib); $(ocamlc -where)] or [$(opam var lib)] if $(ocamlc -where) is included in it.opam tool is not available $(ocamlc -where)search is given to Os.Cmd.find to lookup ocamlc and opam.
val dirs : t -> B0_std.Fpath.t listdirs are the directories in the OCAMLPATH.
val ocaml_logical_dir : t -> B0_std.Fpath.tocaml_logical is the path to the directory that should be called "+ocaml" in the OCAMLPATH. For systems installs where packages are installed in ocamlc -where (OCAMLPATH is undefined), ocamlc -where is in dirs but "+ocaml" cannot be resolved by looking up dirs. This is the resolution that should be used for "+ocaml".
val logical_dirs : t -> (B0_std.Fpath.Set.t, string) Stdlib.resultlogical_dirs is the domain of logical directories in ocamlpath on the current file system. That is the set of directories DIR that can be specified as +DIR. The set has them without the +.
val logical_dir_suggestions :
logical_dirs:B0_std.Fpath.Set.t ->
B0_std.Fpath.t ->
B0_std.Fpath.t list optiondir_suggestions ~dirs dir are suggestions to correct an unfound logical directory dir in logical_dirs for example obtained via logical_dirs.