Home Contents Index Summary Previous Next

A.1 library( check ): Elementary completeness checks

This library defines the predicate check/0 and a few friends that allow for a quick-and-dirty cross-referencing.

check
Performs the three checking passes implemented by list_undefined/0, list_autoload/0 and list_redefined/0. Please check the definition of these predicates for details.

The typical usage of this predicate is right after loading your program to get a quick overview on the completeness and possible conflicts in your program.

list_undefined
Scans the database for predicates that have no definition. A predicate is considered defined if it has clauses, is declared using dynamic/1 or multifile/1. As a program is compiled calls are translated to predicates. If the called predicate is not yet defined it is created as a predicate without definition. The same happens with runtime generated calls. This predicate lists all such undefined predicates that are not defined in the library. See also list_autoload/0.

Note: undefined predicates are never removed from the database. For proper results it is therefore adviced to run check/0 right after loading your program.

list_autoload
Lists all undefined (see list_undefined/0) predicates that have a definition in the library along with the file from which they will be autoloaded when accessed. See also autoload/0.

list_redefined
Lists predicates that are defined in the global module user as well as in a normal module. I.e. predicates for which the local definition overrules the global default definition.