NAME¶
swipl - SWI-Prolog 6.6.6
SYNOPSIS¶
swipl
[
--help|
--version|
--arch|
--dump-runtime-variables]
swipl [options]
swipl [options] [
-o output] -c file
...
swipl [options] [
-o output] -b initfile
...
DESCRIPTION¶
SWI-Prolog is a comprehensive and stable implementation of the Prolog language
with a large set of libraries. Among its distinguishing features are mature
support for multi-threading, a mature embedded web-server library, graphical
development tools (debugger, profiler, cross-referencer, editor), an embedded
efficient RDF store, support for XML/SGML/HTML and Unicode. More widely
supported features are support for constraint programming, atom garbage
collection, interfaces to databases (ODBC), C, C++ and Java (JPL).
SWI-Prolog implements the ISO core standard. Many of its extensions are largely
compatible to YAP and SICStus Prolog.
This manual page only lists the commandline options. Full documentation is
available on-line as well as in
HTML and
PDF format from the WWW
home page at
http://www.swi-prolog.org
SWI-Prolog is distributed under the LGPL (Lesser Gnu Public License) for maximal
compatibility with the Free Software movement, while allowing for use with
proprietary software components. See the SWI-Prolog home page at
http://www.swi-prolog.org for details.
OPTIONS¶
- --help
- Gives a summary of the most important options.
- --version
- Displays version and architecture information.
- --arch
- Prints the architecture identifier.
- --dump-runtime-variables[=format]
- Dump information that is generally useful for installation
scripts in a form defined by format. Defines formats are sh
(default, bourne shell) and cmd (Windows CMD). This option
is used by swipl-ld (1) to fetch necessary information about
Prolog. It is normally invoked as eval `swipl
-dump-runtime-variables`, which assigns the following shell
variables:
- CC
- The C- compiler used to compile SWI-Prolog.
- PLBASE
- The home directory of SWI-Prolog. This is the same value as
returned by the current_prolog_flag home.
- PLARCH
- The architecture identifier used. Together with
PLBASE this defines the location of various components. For
example, the library for embedding is in
$PLBASE/lib/$PLARCH/libswipl.a
- PLLIB
- CC identifier to link to SWI-Prolog. Typically
-lswipl
- PLLIBS
- Additional libraries needed for linking PLLIB
- PLCFLAGS
- Flags that need to be passed to the C-compiler to generate
compatible code.
- PLLDFLAGS
- Flags that need to be passed to the C-linker for linking
embedded executables.
- PLSOEXT
- Extension used by the hosting operating system for shared
objects. On most Unix systems this is "so"; on MS-Windows it is
"dll". AIX uses "o", HPUX "sl".
- PLSOPATH
- Environment variable used by the hosting operating system
to extend the search path for shared objects. For example, on ELF systems
this is "LD_LIBRARY_PATH" and on MS-Windows it is
"PATH".
- PLVERSION
- Numeric representation of the SWI-Prolog version.
- PLSHARED
- Has the value yes if Prolog supports linking shared
libraries using load_foreign_library/[1,2] and no
otherwise.
- PLTHREADS
- Has the value yes if Prolog was compiled for
multi-threading and no otherwise.
- -Gsize[kmg]
- Sets the global stack size to size. The default is
128 Mbytes (64-bit machines: 256 Mbytes). The global stack is used to
store compound terms, floating point numbers, big integers and strings.
See also the -L option.
- -Lsize[kmg]
- Sets the local stack size to size. The default unit
is Kbytes. The local stack is used to store environment frames,
choicepoints and foreign-language term-references. SWI-Prolog performs
last-call optimisation to minimize the local stack requirements. If the
argument ends in m , the argument is interpreted in Mbytes. A
g suffix is interpreted in Gbytes (64-bit machines only). This flag
sets the maximum value to which the stack is allowed to grow (default 128
Mbytes for the 32-bit version and 256 Mbytes for the 64-bit version). A
maximum is useful to prevent buggy programs from claiming all the memory
resources. -L0 sets the limit to the highest possible value.
- -O
- Optimised compilation. See set_prolog_flag/3 in the
SWI-Prolog Reference Manual.
- -Tsize[kmg]
- Sets the trail stack size to size K bytes. The
default is 128 Mbytes (64-bit machines: 256 Mbytes). See -L for
more details.
- -b initfile ... -c file
...
- Boot compilation. initfile ... are compiled by the C
written bootstrap compiler, file ... by the normal Prolog compiler
into an intermediate code file. This option is for system maintenance and
is given for reference only.
- -c file ...
- Compiles file ... into an intermediate code
file.
- -d level
- Set debug level to level. This option is for system
maintenance and is given for reference only.
- -f file
- Use file as initialisation file instead of
`.plrc'. `-f none' stops SWI-Prolog from searching for an
initialisation file.
- -F file
- Select startup script from the SWI-Prolog home directory.
file Specifies the base-name of the script. The extension is
.rc. The default script is deduced from the basename of the
executable, taking all leading alphanumerical (letters, digits and
underscore) from the program name. Thus if the program is named
swi-2.0 it will try to load the file swi.rc from the
SWI-Prolog home directory. If the file does not exist, or the user has no
read-access to it, the script is silently not loaded.
- -s file
- Load file as a script. This option may be used from
the shell to make Prolog load a file before entering the toplevel. It is
also used to turn a file into an executable Prolog script on Unix systems
using the following first line
- #!/usr/bin/swipl option ... -s
- -l file
- Load file as a script. This is a synonym for
-s that is compatible with several other Prolog implementations. If
multiple -s or -l arguments are provided, all specified
files are loaded in the order in which they appear on the argument
list.
- --quiet -q
- Operate silently. This option suppresses all
informational messages, such as for compiling files.
- -g goal
- Goal is executed just before entering the top level.
The default is a predicate which prints the welcome message. The welcome
message can thus be suppressed by giving -g true. goal can
be a complex term. In this case, quotes are normally needed to protect it
from being expanded by the Unix shell.
- -o output
- Used in combination with -b or -c to
determine the output file for compilation.
- -p alias=pathlist
- Define a path alias for file_search_path/2.
pathlist is a "`":"'" separated list of values
for the alias. See file_search_path/2 in the SWI-Prolog Reference
Manual.
- -t goal
- Use goal as an interactive top level instead of the
default goal prolog/0. goal can be a complex term. If the
top level goal succeeds, SWI-Prolog exits with status 0. If it fails, the
exit status is 1. This flag also determines the goal started by
break/0 and abort/0. If you want to stop the user from
entering interactive mode, start the application with `-g
goal' and give `halt' as the top level.
- -x bootfile
- Start from an intermediate code file resulting from a
Prolog compilation using the -b or -c option, or created
using qsave_program/[1,2].
- [+|-]tty
- Switches tty control (using ioctl(2)) on
(+tty) or off (-tty). Normally tty control is switched on.
This default depends on the installation. You may wish to switch tty
control off if SWI-Prolog is used from an editor such as GNU Emacs. If
switched off, get_single_char/1 and the tracer will wait for a
carriage return.
- --nosignals
- Disable handling of signals. Often used if SWI-Prolog is
embedded in another application on Unix systems.
- --
- Stops scanning for more arguments.
ON-LINE HELP¶
SWI-Prolog has on-line help. This provides a fast lookup and browsing facility
to the SWI-Prolog Reference manual. The on-line manual can show predicate
definitions as well as entire sections of the manual.
- help
- Equivalent to help(help/1).
- help(+What)
- Show a specified part of the manual. What is one
of:
- Name/Arity
- give help on the specified predicate
- Name
- give help on the named predicate with any arity or a C
interface function with that name.
- Section
- display the specified section of the SWI-Prolog Reference
Manual. Section numbers are dash separated numbers: e.g. 2-3 refers
to section 2.3 of the manual.
If Prolog is used together with the
GUI tool
XPCE, these
predicates start a graphical interface, providing a coherent interface to
help/1, apropos/1 and
explain/1.
FILES¶
This installation of SWI-Prolog has been configured using the configure option
--prefix=/usr. If the files listed below are not at the
indicated place, the installation has probably been moved. Use
- ?- current_prolog_flag(home, Home).
to find the local installation directory of SWI-Prolog.
- .plrc
- ~/.plrc
- Personal initialisation files consulted by SWI-Prolog on
startup. If both exist .plrc is used.
- /usr/lib/swipl-6.6.6/bin/amd64/
- Location for the executables.
- /usr/lib/swipl-6.6.6/include/
- Location for the include files. If writable, SWI-Prolog.h
is also copied to /usr/include/SWI-Prolog.h.
- /usr/lib/swipl-6.6.6/library/
- SWI-Prolog user libraries.
- /usr/lib/swipl-6.6.6/boot/
- SWI-Prolog kernel parts written in Prolog. The startup file
/usr/lib/swipl-6.6.6/boot32.prc may be recreated using the command from
the directory /usr/lib/swipl-6.6.6:
- bin/amd64/swipl -O -o boot32.prc -b boot/init.pl
- /usr/lib/swipl-6.6.6/doc/packages
- HTML and/or PDF documentation on the installed
add-ons.
- /usr/lib/swipl-6.6.6/boot32.prc
- Default startup file. This is a `intermediate code' file
containing precompiled code from the boot directory. The
-xbootfile option may be used to select a different
file.
- /usr/lib/swipl-6.6.6/runtime/amd64/libpl.a
- SWI-Prolog library for embedding. See also
plld(1).
SEE ALSO¶
The SWI-Prolog web-home at
http://www.swi-prolog.org
Jan Wielemaker
SWI-Prolog Reference Manual at
http://www.swi-prolog.org/pldoc/index.html
Documentation on the add-on packages in
/usr/lib/swipl-6.6.6/boot/doc
William F. Clocksin & Christopher S. Mellish,
Programming in Prolog, fourth edition, Springer Verlag, Berlin 1994.
swipl-rc(1) and
swipl-ld(1)
WARRANTY¶
The software is provided
as is, without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability,
fitness for a particular purpose and non infringement. In no event shall the
author or his employer be liable for any claim, damages or other liability,
whether in an action of contract, tort or otherwise, arising from, out of or
in connection with the software or the use or other dealings in the software.
COPYING¶
SWI-Prolog is distributed under the LGPL (Lesser GNU Public Licence). The
license terms are in the file
COPYING or on the GNU website at
http://www.gnu.org.
COPYRIGHT¶
Copyright (c) 1986-2011 University of Amsterdam, VU University Amsterdam
AUTHOR¶
Jan Wielemaker