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
typeauto_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 ~hidden
与 reset ();
相同
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 : |
|
: |
}
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 d
将 d
添加到加载路径的末尾(即最低优先级)。
val prepend_dir : Dir.t -> unit
prepend_dir d
将 d
添加到加载路径的开头(即最高优先级)。
val get_visible : unit -> Dir.t list
与 get_paths ()
相同,但它返回一个 Dir.t list
,并且不包括 -H 路径。