Home Contents Index Summary Previous Next

Footnotes

note-1
Quintus is a trademark of Quintus Computer Systems Inc., USA
note-2
BIM is a trademark of BIM sa/nv., Belgium
note-3
One could choose words, defining words as a sequence of alpha-numeric characters and the word separators as anything else, but one could also choose Prolog arguments
note-4
This implies the system can run out of local stack in debug mode, while no problems arise when running in non-debug mode.
note-5
The idea comes from BIM_Prolog. The options supported by this predicate are not compatible with those for BIM_Prolog however.
note-6
This implementation is based on GNU's unexec() function, creating a new executable from the running process. It is selected using the O_STORE_PROGRAM option in the machine-description file.
note-7
This implementation is selected by the O_SAVE option in the machine-description file.
note-8
These are NOT the defaults compiled into an intermediate code file created with pl -c ...
note-9
There is no portable and reliable way to find the real base.
note-10
These marks do notx suggest instantiation (e.g. var(+Var)).
note-11
It does work for consult, but makes it impossible to compile programs into a stand alone executable (see section 2.7)
note-12
When using XPCE, you may wish to load library('emacs/swi_prolog') to use XPCE/Prolog's built-in editor.
note-13
In fact the variables are compared on their (dereferenced) addresses. Variables living on the global stack are always < than variables on the local stack. Programs should not rely on the order in which variables are sorted.
note-14
Note that the definition has changed since version 2.0.6. See release notes.
note-15
BUG: The system should have a special type for pointers, thus avoiding the Prolog user having to worry about consistency matters. Currently some simple heuristics are used to determine whether a reference is valid.
note-16
Note that Edinburgh Prolog defines fileerrors/0 and nofileerrors/0. As this does not allow you to switch back to the old mode I think this definition is better.
note-17
In version 1.2 instantiation faults led to error messages. The new version can be used to do type testing without the need to catch illegal instantiations first.
note-18
The instantiation pattern (-, +, ?) is an extension to `standard' Prolog.
note-19
Future versions probably will provide a more logical variant of this predicate.
note-20
BUG: Erased clauses which could not actually be removed from the database, because they are active in the interpreter, will never be garbage collected after an abort.
note-21
A similar facility was added to Edinburgh C-Prolog by Wouter Jansweijer.
note-22
show_profile/1 is defined in Prolog and takes a considerable amount of memory.
note-23
This interface is contributed by Don Dwiggins.
note-24
BUG: I plan to supply a real gensym/2 which does give this warrant for future versions.
note-25
Although this would make it impossible to call B directly.
note-26
The system version uses recordz/2 and recorded/3.
note-27
The system also contains code to load .o files directly for some operating systems, notably Unix systems using the BSD a.out executable format. As the number of Unix platforms supporting this gets quickly smaller and this interface is difficult to port and slow, it is no longer described in this manual. The best alternatively would be to use the dld package on machines do not have shared libraries
note-28
Do not pass the integer 0 for normal operation, as this is interpreted as PL_Q_NODEBUG for backward compatibility reasons.
note-29
This interface differs in two ways from Quintus. The calling predicates simp,y signal failure if an exception was raised, and a term referenced is returned, rather passed and filled with the error term. Exceptions can only be handled using the PL_next_solution() interface, as a handle to the query is required
note-30
Linux with the old a.out format does not
note-31
If you use GNU-Emacs, make sure require-final-newline is set to nil