...required
The dynamic loading feature may not be available on certain machines

...ProcClause
It should be remembered that because of the definition of the syntax of a term, to assert a procedure of the form p :- q,r it is necessary to enclose it in parentheses: assert((p:-q,r)).

...it
in case you don't use modules this is the module eclipse

...place
An example of using this feature   is the library ifdef.

...it
This is in fact ambiguous; the system predicate compiled_stream/1 which is exported from the module sepia_kernel is more precise.

...files
This style is not recommended.

...predicate
The standard approach is to index only on the first argument

...alternative
this is controlled by an automatic scheduler.

...eclipse
Please note that current_predicate_body/2 and get_flag_body/4 are the tool bodies of current_predicate/1 and get_flag/3. They must be imported from sepia_kernel to be used.

...underscore
When the library rationals is loaded, rationals are printed and accepted in the more familiar form of e.g. 1/3. For compatibility reasons, this syntax is not the default one.

...float_precision
Since single and double floats do not unify, the float_precision flag should not be switched during execution to avoid confusing behaviour.

...builtins
Note that this optimisation is only done in :- nodbgcomp mode

...variant
Though this feature could be used to make a copy of a term with new variables, it is cleaner and more efficient to use copy_term/2 for that purpose

...results
A similar problem can occur when the global counter is used by an interrupt handler

...environment
Note that this means that for File to be an atom it will often have to be quoted, since many file names will have non alphanumeric characters in their names, e.g. `program.pl'

...stream
For compatibility with previous versions, the form open(String, string(Size), Stream) is also supported, however, the given size is not significant

...goal
type(goal) stands for suspensions.

...global
So that the user can redefine it with a local one.

...discarded
This is necessary because the compiler recognises simple predicates as deterministic at compile time and so if a simple predicate would cause the invocation of a non-deterministic error handler, the generated code may no longer be correct.

...procedure
Indeed it is entirely possible to assign an external predicate (one written in a language other than Prolog) as an error handler.

...independent
Note that since the interrupt handler has only one optional argument which is a number, it cannot bind any variables in the current resolvent.

...needed
provided that the underlying operating system supports this

...visible
The packet boundaries are not of much interest in Prolog because every Prolog term represents itself a message with clear boundaries.

...load/1
This predicate is dependent on the UNIX facility for dynamic loading.

Micha Meier
Mon Mar 4 12:11:45 MET 1996