The CiaoPP command-line interface

Author(s): The Ciao Development Team.

This is the top-level and command-line interface to CiaoPP. Please look at ciaopp documentation for top-level usage information. The command-line interface allows the use of the system in batch mode, using arguments for setting preprocessor flags and performing actions.

Command-line options

This interface can be used by means of the following command-line options:

Usage 1: (batch mode)
    ciaopp [OPTIONS] Action Filename [FlagsValues]

    -o <OutFile>
            after processing Filename, the resulting source 
            code is written to OutFile.  If this option is
            omitted, the output is written to a file
            automatically named depending on the actions
    -op <Suffix>
            Use Suffix as the optional input code suffix 

    --cwd Dir
            Switch to the selected directory
    --timeout Timeout 
            Execute with a timeout limit (ms).
            Default is 0 (no timeout).

    Action must be one of the following:
    -Q      runs the interactive (text-based) menu for
            preprocessing Filename.
    -A      analyzes Filename with the default options
            except the flag values set with -f at the 
            command line.
    -O      optimizes Filename with the default options
            except the flag values set with -f at the 
            command line.
    -V      verifies the assertions of Filename with
            the default options except the flag values set 
            with -f at the command line.

    -U <Config>
            processes Filename with the options set in the
            configuration Config.

    FlagsValues is a list of options -fFlagName=FlagValue
    separated by blank spaces, where FlagName is a valid
    CiaoPP flag name.  This list is optional, and does not need
    to include all flags applicable to the action to be performed:
    the flags not included in this list will be assumed to take
    their default value.  Examples:

            where local_control is expected to be
            a CiaoPP flag;
    -f local_control=on 
            same as above, with additional blank spaces

    Internal flags can also be changed using -pIntFlagName=Value.

Usage 2: (top-level mode)
    ciaopp -T <toplevel-opts>

    -T     starts a CiaoPP top-level shell (using <toplevel-opts> as
           options for the toplevel).  Any of the predicates described
           in the Section 'CiaoPP User Menu Interface' of the CiaoPP
           Reference Manual can be used in this top-level.

Usage 3: cache libraries
    ciaopp --gen-lib-cache

    Preloads libraries for faster load in CiaoPP toplevel

Execution Examples:

  ciaopp -Q
  ciaopp -o -V
  ciaopp -O
  ciaopp -A -ftypes=terms -f modes=pd
  ciaopp -T

Description of the execution examples

  • The following command will prompt the user with the options needed to preprocess

    ciaopp -Q

  • If we want to verify the assertions of, and generate the resulting source code that will the new status of the assertions (either checked, if CiaoPP has proved that the assertion holds, or false if it has falsified the assertion), the command line is as follows:

    ciaopp -o -V

  • To optimize, and write the optimize code in a file named automatically (e.g.,, the following command line must be used:

    ciaopp -O

  • If the default flag values need to be changed, the -f option can be used. For example, in order to analyze to change the types analysis domain to terms instead of the default one, and the mode-aliasing domain to pd, the command line to use should be:

    ciaopp -A -ftypes=terms -f modes=pd

  • Finally, the following command line can be used to start a top-level CiaoPP shell (this is the default behavior):

    ciaopp -T