Spec-Zone.ru › OCaml

Модуль Linkdeps

module Linkdeps: sig .. end
type t 

Состояние проверки связывания. Оно отслеживает добавленные на данный момент предоставляемые и необходимые единицы компиляции.

type compunit = string 
type filename = string 
val create : complete:bool -> t

create ~complete возвращает пустое состояние. Если complete равно true, отсутствующие единицы компиляции будут считаться ошибками.

val add : t ->       filename:filename ->       compunit:compunit ->       provides:compunit list -> requires:compunit list -> unit

add t ~filename ~compunit ~provides ~requires регистрирует единицу компиляции compunit, найденную в filename, в t.

  • provides — это единицы и подчинённые единицы, предоставляемые compunit
  • requires — это единицы, необходимые для compunit

add следует вызывать в обратном топологическом порядке.

val required : t -> compunit -> bool

required t compunit возвращает true, если compunit является зависимостью ранее добавленных единиц компиляции.

type compunit_and_source = {
compunit : compunit;
filename : filename;
}
type error = 
| Missing_implementations of (compunit * compunit_and_source list) list
| Wrong_link_order of (compunit_and_source * compunit_and_source list) list
| Multiple_definitions of (compunit * filename list) list
val check : t -> error option

check t следует вызывать после добавления всех единиц компиляции, которые необходимо связать. Метод возвращает ошибку, если:

  • Отсутствуют некоторые реализации, а complete равно true
  • Некоторые реализации появляются раньше своих зависимостей
val report_error : print_filename:string Format_doc.printer ->       error Format_doc.format_printer
val report_error_doc : print_filename:string Format_doc.printer -> error Format_doc.printer

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/compilerlibref/Linkdeps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API