Linkdeps
The state of the linking check. It keeps track of compilation units provided and required so far.
val create : complete:bool -> t
create ~complete
returns an empty state. If complete
is true
, missing compilation units will be treated as errors.
val add :
t ->
filename:filename ->
compunit:compunit ->
provides:compunit list ->
requires:compunit list ->
unit
add t ~filename ~compunit ~provides ~requires
registers the compilation unit compunit
found in filename
to t
.
provides
are units and sub-units provided by compunit
requires
are units required by compunit
add
should be called in reverse topological order.
required t compunit
returns true
if compunit
is a dependency of previously added compilation units.
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
check t
should be called once all the compilation units to be linked have been added. It returns some error if:
complete
is 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