- 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. IfFALSE, 
SWI-Prolog will never rebind the GMP allocation functions. See
mp_set_memory_functions() in the GMP documentation. The action 
returnsFALSEif 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.