模块 Load_path

module Load_path: sig .. end

包含目录管理。

此模块提供了一个高级接口,用于在加载路径中定位文件,该路径由 -I-H 命令行标志以及其他一些参数构建。

它假设包含目录的内容在编译器执行期间不会更改。


val add_dir : hidden:bool -> string -> unit

将目录添加到加载路径的末尾(即最低优先级)。

val remove_dir : string -> unit

从加载路径中删除目录

val reset : unit -> unit

删除所有目录

module Dir: sig .. end
type auto_include_callback = (Dir.t -> string -> string option) -> string -> string 

用于 init ~auto_include 的回调函数的类型

val no_auto_include : auto_include_callback

没有自动目录包含:加载路径中的缺失将引发 Not_found,如同正常情况一样。

val init : auto_include:auto_include_callback ->
visible:string list -> hidden:string list -> unit

init ~visible ~hiddenreset ();
     List.iter add_dir (List.rev hidden);
     List.iter add_dir (List.rev visible)
相同

val auto_include_otherlibs : (string -> unit) -> auto_include_callback

auto_include_otherlibs alert 是一个回调函数,传递给 Load_path.init,并在调用 alert lib 后自动将 -I +lib 添加到加载路径。

val get_path_list : unit -> string list

返回到目前为止传递给 add_dir 的目录列表。

type paths = {
   visible : string list;
   hidden : string list;
}
val get_paths : unit -> paths

返回到目前为止传递给 add_dir 的目录。

val find : string -> string

在加载路径中定位文件。如果找不到文件,则引发 Not_found。此函数针对文件名是基本名(即不包含目录分隔符)的情况进行了优化。

val find_normalized : string -> string

find 相同,但还会搜索规范化的单元名称(参见 Misc.normalized_unit_filename),即如果 name 是 Foo.ml,则允许 /path/Foo.ml/path/foo.ml 匹配。

type visibility = 
| 可见
| 隐藏
val find_normalized_with_visibility : string -> string * visibility

find_normalized 相同,但还会报告 cmi 是否在 -I 目录(可见)或 -H 目录(隐藏)中找到。

val add : Dir.t -> unit
已弃用。

旧名称为 Load_path.append_dir

val append_dir : Dir.t -> unit

append_dir dd 添加到加载路径的末尾(即最低优先级)。

val prepend_dir : Dir.t -> unit

prepend_dir dd 添加到加载路径的开头(即最高优先级)。

val get_visible : unit -> Dir.t list

get_paths () 相同,但它返回一个 Dir.t list,并且不包括 -H 路径。