模組 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 ~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 : 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),也就是說,如果名稱為 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 路徑。