- bool PL_action(int,
...)
- Perform some action on the Prolog system. int describes the
action. Remaining arguments depend on the requested action. The actions
are listed below:
- PL_ACTION_TRACE
- Start Prolog tracer (trace/0).
Requires no arguments.
- PL_ACTION_DEBUG
- Switch on Prolog debug mode (debug/0).
Requires no arguments.
- PL_ACTION_BACKTRACE
- Print backtrace on current output stream. The argument (an
int)
is the number of frames printed.
- PL_ACTION_HALT
- Halt Prolog execution. This action should be called rather than Unix
exit() to give Prolog the opportunity to clean up. This call does
not return. The argument (an
int) is the exit code. See halt/1.
- PL_ACTION_ABORT
- Generate a Prolog abort (abort/0).
This call does not return. Requires no arguments.
- PL_ACTION_BREAK
- Create a standard Prolog break environment (break/0).
Returns after the user types the end-of-file character. Requires no
arguments.
- PL_ACTION_GUIAPP
- Windows: Used to indicate to the kernel that the application is a GUI
application if the argument is not 0, and a console application if the
argument is 0. If a fatal error occurs, the system uses a windows
messagebox to report this on a GUI application, and otherwise simply
prints the error and exits.
- PL_ACTION_TRADITIONAL
- Same effect as using --traditional. Must be called
before PL_initialise().
- PL_ACTION_WRITE
- Write the argument, a
char * to the current output stream.
- PL_ACTION_FLUSH
- Flush the current output stream. Requires no arguments.
- PL_ACTION_ATTACH_CONSOLE
- Attach a console to a thread if it does not have one. See
attach_console/0.
- PL_GMP_SET_ALLOC_FUNCTIONS
- Takes an integer argument. If
TRUE, the GMP allocations are
immediately bound to the Prolog functions. If FALSE,
SWI-Prolog will never rebind the GMP allocation functions. See
mp_set_memory_functions() in the GMP documentation. The action
returns
FALSE if there is no GMP support or GMP is already
initialised.
- unsigned int PL_version_info(int
key)
- Query version information. This function may be called before
PL_initialise().
If the key is unknown the function returns 0. See section
2.21 for a more in-depth discussion on binary compatibility.
Versions up to SWI-Prolog 8.5.2 defined this function as PL_version().
It was renamed to avoid a conflict with Perl affecting
Yaswi.
PL_version() is provided as a macro for compatibility. Defined
keys are:
- PL_VERSION_SYSTEM
- SWI-Prolog version as 10,000 × major + 100 × minor +
patch.
- PL_VERSION_FLI
- Incremented if the foreign interface defined in this chapter changes in
a way that breaks backward compatibility.
- PL_VERSION_REC
- Incremented if the binary representation of terms as used by
PL_record_external()
and fast_write/2
changes.
- PL_VERSION_QLF
- Incremented if the QLF file format changes.
- PL_VERSION_QLF_LOAD
- Represents the oldest loadable QLF file format version.
- PL_VERSION_VM
- A hash that represents the VM instructions and their arguments.
- PL_VERSION_BUILT_IN
- A hash that represents the names, arities and properties of all built-in
predicates defined in C. If this function is called before PL_initialise()
it returns 0.