- 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
 - 
These marks do not suggest instantiation (e.g. var(+Var)).
 - note-6
 - 
It does work for normal loading, but not for qcompile/1.
 - note-7
 - 
Strings might be considered atoms in future versions. See also section 
3.23
 - note-8
 - 
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-9
 - 
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-10
 - 
For example, using the immediate update view, no call to a dynamic 
predicate is deterministic.
 - note-11
 - 
BUG: Backtracking does not give other aliases.
 - note-12
 - 
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-13
 - 
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-14
 - 
The instantiation pattern (-, +, ?) is an extension to `standard' 
Prolog.
 - note-15
 - 
Upto version 3.2.x, atom_chars/2 
behaved as the current atom_codes/2. 
The current definition is compliant with the ISO standard
 - note-16
 - 
This is also called atom_char/2 
in older versions of SWI-Prolog as well as some other Prolog 
implementations. atom_char/2 is 
available from the library 
backcomp.pl
 - note-17
 - 
BUG: Upto SWI-Prolog 3.3.10, the definition of this predicate was not 
according to the de-facto standard. The first two arguments were in the 
wrong order.
 - note-18
 - 
Please note that the semantics have changed between 3.1.1 and 3.1.2
 - note-19
 - 
Silent operation was the default upto version 3.2.6.
 - note-20
 - 
On Windows, the home directory is determined as follows: if the 
environment variable 
HOME exists, this is used. If the 
variables HOMEDRIVE and HOMEPATH exist 
(Windows-NT), these are used. At initialisation, the system will set the 
environment variable HOME to point to the SWI-Prolog home 
directory if neither HOME nor HOMEPATH and HOMEDRIVE 
are defined
 - note-21
 - 
BUG: Some of the file-I/O predicates use local filenames. Using chdir/1 
while file-bound streams are open causes wrong results on telling/1, seeing/1 
and current_stream/3
 - note-22
 - 
A similar facility was added to Edinburgh C-Prolog by Wouter Jansweijer.
 - note-23
 - 
show_profile/1 
is defined in Prolog and takes a considerable amount of memory.
 - note-24
 - 
This interface is contributed by Don Dwiggins.
 - note-25
 - 
BUG: I plan to supply a real gensym/2 
which does give this warrant for future versions.
 - note-26
 - 
Although this would make it impossible to call B directly.
 - note-27
 - 
The system version uses recordz/2 
and recorded/3.
 - note-28
 - 
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-29
 - 
Otherwise asynchronous atom garbage collection might detroy the atom 
before it is used.
 - note-30
 - 
Do not pass the integer 0 for normal operation, as this is interpreted 
as 
PL_Q_NODEBUG for backward compatibility reasons.
 - note-31
 - 
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-32
 - 
BUG: Various fatal errors may cause PL_initialise to call PL_halt(1), 
preventing it from returning at all.