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