Modular driver

Author(s): The Ciao Development Team, Isabel Garcia-Contreras.

Stability: [devel] Currently the subject of active development and/or research. Functionality may be limited and API and/or functionality may change without warning or deprecation period. Not recommended yet for use in production.


This module provides intermodular analysis to CiaoPP (high-level).

Global compilation options of intermodular analysis are available in intermod_options. Edit this file to activate tracing or run-time checks.

Documentation on exports

Usage:

Cleans up the internal database of the intermodular analysis global level.

    Usage 1:valid_mod_analysis(Domain)

    Succeeds if Domain is a valid analysis domain for modular analysis

      Usage 2:valid_mod_analysis(DomainList)

      Succeeds if the domains in DomainList are valid analysis domains for modular analysis

        No further documentation available for this predicate.

        No further documentation available for this predicate.

        Usage:intermod_ctcheck(AbsInts,Modules)

        Assuming that modular fixpoint already reached. Only supporting ctchecks of pred assertions (not program point)

        • The following properties should hold at call time:
          (nonvar/1)AbsInts is currently a term which is not a free variable.
          (nonvar/1)Modules is currently a term which is not a free variable.
          (list/2)AbsInts is a list of atms.
          (list/2)Modules is a list of atms.
        • The following properties should hold globally:
          (not_fails/1)All the calls of the form intermod_ctcheck(AbsInts,Modules) do not fail.

        Usage:intermod_transform(AbsInt,Trans,TopLevel)

        Performs transformation Trans of the program unit which has TopLevel as top-level module, using AbsInt to get information about the program.

        • The following properties should hold at call time:
          (nonvar/1)AbsInt is currently a term which is not a free variable.
          (nonvar/1)Trans is currently a term which is not a free variable.
          (nonvar/1)TopLevel is currently a term which is not a free variable.

        Usage:intermod_simp_libs(TopLevel,Dir)

        Generates a copy of the program represented by TopLevel and the libraries used (except those in engine) in Dir, and removes dead-code from both user modules and libraries.

        • The following properties should hold at call time:
          (nonvar/1)TopLevel is currently a term which is not a free variable.
          (nonvar/1)Dir is currently a term which is not a free variable.

        No further documentation available for this predicate.

        No further documentation available for this predicate.

        No further documentation available for this predicate.

        No further documentation available for this predicate.

        Usage:intermod_ctcheck_opt(AbsInt,TopLevel)

        Performs CT assertion checking of the program unit which has TopLevel as a top-level module, using AbsInt to get information about the program (exploits order of the modules).

        • The following properties should hold at call time:
          (nonvar/1)AbsInt is currently a term which is not a free variable.
          (nonvar/1)TopLevel is currently a term which is not a free variable.

        No further documentation available for this predicate.

        Documentation on multifiles

        No further documentation available for this predicate. The predicate is multifile.

        PREDICATEaidomain/1
        No further documentation available for this predicate. The predicate is multifile.

        Usage:transformation(Transformation)

        Transformation is a valid transformation identifier.

          The predicate is multifile.

          No further documentation available for this predicate. The predicate is multifile.
          The predicate is of type dynamic.

          No further documentation available for this predicate. The predicate is multifile.
          The predicate is of type dynamic.