Ulrich's fixes to documentation.
This commit is contained in:
parent
d02e14415b
commit
2be95d87c6
12
docs/swi.tex
12
docs/swi.tex
@ -299,7 +299,7 @@ is not an atom, a type error is raised.
|
||||
Delete the named attribute. If @var{Var} loses its last attribute it
|
||||
is transformed back into a traditional Prolog variable. If @var{Module}
|
||||
is not an atom, a type error is raised. In all other cases this
|
||||
predicate succeeds regarless whether or not the named attribute is
|
||||
predicate succeeds regardless of whether or not the named attribute is
|
||||
present.
|
||||
|
||||
@item attr_unify_hook(+@var{AttValue},+@var{VarValue})
|
||||
@ -385,7 +385,7 @@ terms. They differ in various ways from storing information using
|
||||
consider module scoping in future versions.
|
||||
@end itemize
|
||||
|
||||
Both @code{b_setval/2} and @code{nb_setval/2} implicitely create a variable if the
|
||||
Both @code{b_setval/2} and @code{nb_setval/2} implicitly create a variable if the
|
||||
referenced name does not already refer to a variable.
|
||||
|
||||
Global variables may be initialised from directives to make them
|
||||
@ -437,10 +437,10 @@ initial value other than @code{[]} prior to backtrackable assignment.
|
||||
@snindex nb_getval/2
|
||||
@cnindex nb_getval/2
|
||||
The @code{nb_getval/2} predicate is a synonym for b_getval/2, introduced for
|
||||
compatibility and symetry. As most scenarios will use a particular
|
||||
global variable either using non-backtracable or backtrackable
|
||||
compatibility and symmetry. As most scenarios will use a particular
|
||||
global variable either using non-backtrackable or backtrackable
|
||||
assignment, using @code{nb_getval/2} can be used to document that the
|
||||
variable is used non-backtracable.
|
||||
variable is used non-backtrackable.
|
||||
|
||||
@c \predicate{nb_linkval}{2}{+Name, +Value}
|
||||
@c Associates the term @var{Value} with the atom @var{Name} without copying
|
||||
@ -448,7 +448,7 @@ variable is used non-backtracable.
|
||||
@c expert users only because the semantics on backtracking to a point
|
||||
@c before creating the link are poorly defined for compound terms. The
|
||||
@c principal term is always left untouched, but backtracking behaviour on
|
||||
@c arguments is undone if the orginal assignment was \jargon{trailed} and
|
||||
@c arguments is undone if the original assignment was \jargon{trailed} and
|
||||
@c left alone otherwise, which implies that the history that created the
|
||||
@c term affects the behaviour on backtracking. Please consider the
|
||||
@c following example:
|
||||
|
105
docs/yap.tex
105
docs/yap.tex
@ -408,7 +408,7 @@ Christian Holzbaur, and Jan Wielemaker.
|
||||
|
||||
@item The CLP(R) package developed by Leslie De Koninck, Bart Demoen, Tom
|
||||
Schrijvers, and Jan Wielemaker, based on the CLP(Q,R) implementation
|
||||
by Christian Holzbauer.
|
||||
by Christian Holzbaur.
|
||||
|
||||
@item The Logtalk Object-Oriented system is developed at the University
|
||||
of Beira Interior, Portugal, by Paulo Moura:
|
||||
@ -1931,7 +1931,7 @@ directories are the places where files specified in the form
|
||||
Unify @var{FullPath} with the absolute path YAP would use to consult
|
||||
file @var{Name}.
|
||||
|
||||
@item public @var{P} [ISO]
|
||||
@item public @var{P} [ISO extension]
|
||||
@findex public/1 (directive)
|
||||
@snindex public/1 (directive)
|
||||
@cnindex public/1 (directive)
|
||||
@ -2086,11 +2086,11 @@ The YAP module system is predicate-based. This means a module consists
|
||||
of a set of predicates (or procedures), such that some predicates are
|
||||
public and the others are local to a module. Atoms and terms in general
|
||||
are global to the system. Moreover, the module system is flat, meaning
|
||||
that we do not support an hierarchy of modules. Modules can
|
||||
that we do not support a hierarchy of modules. Modules can
|
||||
automatically import other modules, though. For compatibility with other
|
||||
module systems the YAP module system is non-strict, meaning both that
|
||||
there is both a way to access predicates private to a module and that is
|
||||
possible to declare predicates for a module from some other module.
|
||||
there is both a way to access predicates private to a module and that it
|
||||
is possible to declare predicates for a module from some other module.
|
||||
|
||||
YAP allows one to ignore the module system if one does not want to use
|
||||
it. Last note that using the module system does not introduce any
|
||||
@ -2212,7 +2212,7 @@ The last argument @var{Options} must be a list of options, which can be:
|
||||
@syindex module/1
|
||||
@cnindex module/1
|
||||
Defines @var{M} to be the current working or type-in module. All files
|
||||
which are not binded to a module are assumed to belong to the working
|
||||
which are not bound to a module are assumed to belong to the working
|
||||
module (also referred to as type-in module). To compile a non-module
|
||||
file into a module which is not the working one, prefix the file name
|
||||
with the module name, in the form @code{@var{Module}:@var{File}}, when
|
||||
@ -3246,7 +3246,7 @@ in term @var{TF}. Notice that:
|
||||
If you do not want any sharing to occur please use
|
||||
@code{duplicate_term/2}.
|
||||
|
||||
@item duplicate_term(?@var{TI},-@var{TF}) [ISO]
|
||||
@item duplicate_term(?@var{TI},-@var{TF})
|
||||
@findex duplicate_term/2
|
||||
@syindex duplicate_term/2
|
||||
@cnindex duplicate_term/2
|
||||
@ -3471,7 +3471,7 @@ the call.
|
||||
'6'}. Useful for parsing numbers.
|
||||
|
||||
@item xdigit(@var{Weigth})
|
||||
@var{Char} is a haxe-decimal digit with value @var{Weigth}. I.e. char_type(a, xdigit(X) yields X = '10'. Useful for parsing numbers.
|
||||
@var{Char} is a hexa-decimal digit with value @var{Weigth}. I.e. char_type(a, xdigit(X) yields X = '10'. Useful for parsing numbers.
|
||||
|
||||
@item graph
|
||||
@var{Char} produces a visible mark on a page when printed. Note that the space is not included!
|
||||
@ -6682,9 +6682,9 @@ value other than @code{[]} prior to backtrackable assignment.
|
||||
@cnindex nb_getval/2
|
||||
The @code{nb_getval/2} predicate is a synonym for @code{b_getval/2},
|
||||
introduced for compatibility and symmetry. As most scenarios will use
|
||||
a particular global variable either using non-backtracable or
|
||||
a particular global variable either using non-backtrackable or
|
||||
backtrackable assignment, using @code{nb_getval/2} can be used to
|
||||
document that the variable is used non-backtracable.
|
||||
document that the variable is used non-backtrackable.
|
||||
|
||||
@item nb_linkval(+@var{Name}, +@var{Value})
|
||||
@findex nb_linkval/2
|
||||
@ -7687,7 +7687,7 @@ language mode to @code{iso} and enable strict mode. If @var{Value} is
|
||||
bound to @code{off} disable strict mode, and keep the current language
|
||||
mode. The default for YAP is @code{off}.
|
||||
|
||||
Under strict ISO prolog mode all calls to non-ISO built-ins generate an
|
||||
Under strict ISO Prolog mode all calls to non-ISO built-ins generate an
|
||||
error. Compilation of clauses that would call non-ISO built-ins will
|
||||
also generate errors. Pre-processing for grammar rules is also
|
||||
disabled. Module expansion is still performed.
|
||||
@ -7773,7 +7773,7 @@ working module.
|
||||
|
||||
@item unix
|
||||
@findex unix (yap_flag/2 option)
|
||||
@* Read-only boolean flag that unifies with tr @code{true} if YAP is
|
||||
@* Read-only Boolean flag that unifies with @code{true} if YAP is
|
||||
running on an Unix system. Defined if the C-compiler used to compile
|
||||
this version of YAP either defines @code{__unix__} or @code{unix}.
|
||||
|
||||
@ -8753,7 +8753,7 @@ True when @var{Numbers} is a list of numbers, and @var{Min} is the minimum.
|
||||
@findex numlist/3
|
||||
@syindex numlist/3
|
||||
@cnindex numlist/3
|
||||
If @var{Low} and @var{High} are integers with @var{Low} lesser or equal than
|
||||
If @var{Low} and @var{High} are integers with @var{Low} =<
|
||||
@var{High}, unify @var{List} to a list @code{[Low, Low+1, ...High]}. See
|
||||
also @code{between/3}.
|
||||
|
||||
@ -9377,13 +9377,6 @@ search. They are allowed through @code{library(nb)}.
|
||||
@cnindex nb_queue/1
|
||||
Create a @var{Queue}.
|
||||
|
||||
@item nb_queue(-@var{Queue},+@var{Size})
|
||||
@findex nb_queue/2
|
||||
@snindex nb_queue/2
|
||||
@cnindex nb_queue/2
|
||||
Create a @var{Queue} with initial size @var{Size}, measured in stack
|
||||
cells.
|
||||
|
||||
@item nb_queue_close(+@var{Queue}, -@var{Head}, ?@var{Tail})
|
||||
@findex nb_queue_close/3
|
||||
@snindex nb_queue_close/3
|
||||
@ -9867,10 +9860,10 @@ On end-of-file the atom @code{end_of_file} is returned. See also
|
||||
@findex read_line_to_codes/3
|
||||
@snindex read_line_to_codes/3
|
||||
@cnindex read_line_to_codes/3
|
||||
Diference-list version to read an input line to a list of character
|
||||
Difference-list version to read an input line to a list of character
|
||||
codes. Reading stops at the newline or end-of-file character, but
|
||||
unlike @code{read_line_to_codes/2}, the newline is retained in the
|
||||
output. This predicate is especially useful for readine a block of
|
||||
output. This predicate is especially useful for reading a block of
|
||||
lines upto some delimiter. The following example reads an HTTP header
|
||||
ended by a blank line:
|
||||
|
||||
@ -9916,7 +9909,7 @@ Read a file to a list of character codes. Currently ignores
|
||||
@findex read_file_to_terms/3
|
||||
@snindex read_file_to_terms/3
|
||||
@cnindex read_file_to_terms/3
|
||||
Read a file to a list of prolog terms (see read/1). @c @var{Spec} is a
|
||||
Read a file to a list of Prolog terms (see read/1). @c @var{Spec} is a
|
||||
@c file-specification for absolute_file_name/3. @var{Terms} is the
|
||||
@c resulting list of Prolog terms. @var{Options} is a list of options for
|
||||
@c absolute_file_name/3 and open/4. In addition, the option
|
||||
@ -10655,7 +10648,7 @@ Unify @var{Name} with a name for the current host. YAP uses the
|
||||
Send signal @var{SIGNAL} to process @var{Id}. In Unix this predicate is
|
||||
a direct interface to @code{kill} so one can send signals to groups of
|
||||
processes. In WIN32 the predicate is an interface to
|
||||
@code{TerminateProcess}, so it kills @var{Id} indepent of @var{SIGNAL}.
|
||||
@code{TerminateProcess}, so it kills @var{Id} independently of @var{SIGNAL}.
|
||||
|
||||
@item mktemp(@var{Spec},-@var{File})
|
||||
@findex mktemp/2
|
||||
@ -10857,7 +10850,9 @@ is considered. Otherwise, the term is considered only up to depth
|
||||
@syindex term_variables/2
|
||||
@cnindex term_variables/2
|
||||
|
||||
Unify @var{Variables} with a list of all variables in term @var{Term}.
|
||||
Unify @var{Variables} with the list of all variables of term
|
||||
@var{Term}. The variables occur in the order of their first
|
||||
appearance when traversing the term depth-first, left-to-right.
|
||||
|
||||
@item variables_within_term(+@var{Variables},?@var{Term}, -@var{OutputVariables})
|
||||
@findex variables_within_term/3
|
||||
@ -11230,7 +11225,7 @@ Given a graph with a set of vertices @var{Vertices} and a set of edges
|
||||
@var{Edges}, @var{Graph} must unify with the corresponding
|
||||
s-representation. Note that the vertices without edges will appear in
|
||||
@var{Vertices} but not in @var{Edges}. Moreover, it is sufficient for a
|
||||
vertice to appear in @var{Edges}.
|
||||
vertex to appear in @var{Edges}.
|
||||
@example
|
||||
?- vertices_edges_to_ugraph([],[1-3,2-4,4-5,1-5],L).
|
||||
|
||||
@ -11673,7 +11668,7 @@ The path @var{Path} is a path starting at vertex @var{Vertex} in graph
|
||||
|
||||
@node UnDGraphs, LAM , DGraphs, Library
|
||||
@section Undirected Graphs
|
||||
@cindex undrected graphs
|
||||
@cindex undirected graphs
|
||||
|
||||
The following graph manipulation routines use the red-black tree graph
|
||||
library to implement undirected graphs. Mostly, this is done by having
|
||||
@ -11762,7 +11757,7 @@ Unify @var{NewGraph} with the graph complementary to @var{Graph}.
|
||||
@findex dgraph_to_undgraph/2
|
||||
@snindex dgraph_to_undgraph/2
|
||||
@cnindex dgraph_to_undgraph/2
|
||||
Unify @var{UndGraph} with teh undirected graph obtained from the
|
||||
Unify @var{UndGraph} with the undirected graph obtained from the
|
||||
directed graph @var{DGraph}.
|
||||
|
||||
@end table
|
||||
@ -12325,7 +12320,7 @@ typically this will involve expressing all constraints in terms of
|
||||
quantified.
|
||||
@end table
|
||||
|
||||
Projection interacts with @code{attribute_goal/2} at the prolog top
|
||||
Projection interacts with @code{attribute_goal/2} at the Prolog top
|
||||
level. When the query succeeds, the system first calls
|
||||
@code{project_attributes/2}. The system then calls
|
||||
@code{attribute_goal/2} to get a user-level representation of the
|
||||
@ -12577,19 +12572,19 @@ Subnodes of Thread Communication
|
||||
@cnindex thread_create/3
|
||||
|
||||
Create a new Prolog thread (and underlying C-thread) and start it
|
||||
by executing @var{Goal}. If the thread is created succesfully, the
|
||||
by executing @var{Goal}. If the thread is created successfully, the
|
||||
thread-identifier of the created thread is unified to @var{Id}.
|
||||
@var{Options} is a list of options. Currently defined options are:
|
||||
|
||||
@table @code
|
||||
@item stack
|
||||
Set the limit in K-Bytes to which the Prolog stacks of
|
||||
this thread may grow. If omited, the limit of the calling thread is
|
||||
this thread may grow. If omitted, the limit of the calling thread is
|
||||
used. See also the commandline @code{-S} option.
|
||||
|
||||
@item trail
|
||||
Set the limit in K-Bytes to which the trail stack of this thread may
|
||||
grow. If omited, the limit of the calling thread is used. See also the
|
||||
grow. If omitted, the limit of the calling thread is used. See also the
|
||||
commandline option @code{-T}.
|
||||
|
||||
@item alias
|
||||
@ -12834,7 +12829,7 @@ Print usage statistics on internal mutexes and mutexes associated
|
||||
with dynamic predicates. For each mutex two numbers are printed:
|
||||
the number of times the mutex was acquired and the number of
|
||||
collisions: the number times the calling thread has to
|
||||
wait for the mutex. The collistion-count is not available on
|
||||
wait for the mutex. The collision-count is not available on
|
||||
Windows as this would break portability to Windows-95/98/ME or
|
||||
significantly harm performance. Generally collision count is
|
||||
close to zero on single-CPU hardware.
|
||||
@ -12943,7 +12938,7 @@ created and @var{Queue} is unified to its identifier.
|
||||
Destroy a message queue created with @code{message_queue_create/1}. It is
|
||||
@emph{not} allows to destroy the queue of a thread. Neither is it
|
||||
allowed to destroy a queue other threads are waiting for or, for
|
||||
anynymous message queues, may try to wait for later.
|
||||
anonymous message queues, may try to wait for later.
|
||||
|
||||
@item thread_get_message(+@var{Queue}, ?@var{Term})
|
||||
@findex thread_get_message/2
|
||||
@ -13056,7 +13051,7 @@ assert, retract and run the dynamic predicate. Synchronisation inside
|
||||
Prolog guarantees the consistency of the predicate. Updates are
|
||||
@emph{logical}: visible clauses are not affected by assert/retract
|
||||
after a query started on the predicate. In many cases primitive from
|
||||
thread synchronysation should be used to ensure application invariants on
|
||||
thread synchronisation should be used to ensure application invariants on
|
||||
the predicate are maintained.
|
||||
|
||||
Besides shared predicates, dynamic predicates can be declared with the
|
||||
@ -13176,7 +13171,7 @@ implies named mutexes need not be declared explicitly.
|
||||
Please note that locking and unlocking mutexes should be paired
|
||||
carefully. Especially make sure to unlock mutexes even if the protected
|
||||
code fails or raises an exception. For most common cases use
|
||||
@code{with_mutex/2}, wich provides a safer way for handling prolog-level
|
||||
@code{with_mutex/2}, which provides a safer way for handling Prolog-level
|
||||
mutexes.
|
||||
|
||||
@item mutex_trylock(+@var{MutexId})
|
||||
@ -13207,7 +13202,7 @@ also @code{thread_signal/2}.
|
||||
@snindex current_mutex/3
|
||||
@cnindex current_mutex/3
|
||||
Enumerates all existing mutexes. If the mutex is held by some thread,
|
||||
@var{ThreadId} is unified with the identifier of te holding thread and
|
||||
@var{ThreadId} is unified with the identifier of the holding thread and
|
||||
@var{Count} with the recursive count of the mutex. Otherwise,
|
||||
@var{ThreadId} is @code{[]} and @var{Count} is 0.
|
||||
@end table
|
||||
@ -13847,7 +13842,7 @@ Indexation is also very important for predicates with a large number
|
||||
of clauses that are used like tables:
|
||||
|
||||
@example
|
||||
logician(aristhoteles,greek).
|
||||
logician(aristoteles,greek).
|
||||
logician(frege,german).
|
||||
logician(russel,english).
|
||||
logician(godel,german).
|
||||
@ -13934,7 +13929,7 @@ type_of_verb(rest,passive).
|
||||
@chapter C Language interface to YAP
|
||||
|
||||
YAP provides the user with the necessary facilities for writing
|
||||
predicates in a language other than prolog. Since, under Unix systems,
|
||||
predicates in a language other than Prolog. Since, under Unix systems,
|
||||
most language implementations are link-able to C, we will describe here
|
||||
only the YAP interface to the C language.
|
||||
|
||||
@ -14005,7 +14000,7 @@ Under Digital Unix you need to create a @code{so} file. Use:
|
||||
and replace my @code{process.so} for my @code{process.o} in the
|
||||
remainder of the example.
|
||||
@noindent
|
||||
And could be loaded, under YAP, by executing the following prolog goal
|
||||
And could be loaded, under YAP, by executing the following Prolog goal
|
||||
@example
|
||||
load_foreign_files(['my_process'],[],init_my_predicates).
|
||||
@end example
|
||||
@ -14013,7 +14008,7 @@ Note that since YAP4.3.3 you should not give the suffix for object
|
||||
files. YAP will deduce the correct suffix from the operating system it
|
||||
is running under.
|
||||
|
||||
After loading that file the following prolog goal
|
||||
After loading that file the following Prolog goal
|
||||
@example
|
||||
my_process_id(N)
|
||||
@end example
|
||||
@ -14025,14 +14020,14 @@ Having presented a full example, we will now examine in more detail the
|
||||
contents of the C source code file presented above.
|
||||
|
||||
The include statement is used to make available to the C source code the
|
||||
macros for the handling of prolog terms and also some YAP public
|
||||
macros for the handling of Prolog terms and also some YAP public
|
||||
definitions.
|
||||
|
||||
The function @code{my_process_id} is the implementation, in C, of the
|
||||
desired predicate. Note that it returns an integer denoting the success
|
||||
of failure of the goal and also that it has no arguments even though the
|
||||
predicate being defined has one.
|
||||
In fact the arguments of a prolog predicate written in C are accessed
|
||||
In fact the arguments of a Prolog predicate written in C are accessed
|
||||
through macros, defined in the include file, with names @var{YAP_ARG1},
|
||||
@var{YAP_ARG2}, ..., @var{YAP_ARG16} or with @var{YAP_A}(@var{N})
|
||||
where @var{N} is the argument number (starting with 1). In the present
|
||||
@ -14069,16 +14064,16 @@ The rest of this appendix describes exhaustively how to interface C to YAP.
|
||||
@section Terms
|
||||
|
||||
This section provides information about the primitives available to the C
|
||||
programmer for manipulating prolog terms.
|
||||
programmer for manipulating Prolog terms.
|
||||
|
||||
Several C typedefs are included in the header file @code{yap/YAPInterface.h} to
|
||||
describe, in a portable way, the C representation of prolog terms.
|
||||
describe, in a portable way, the C representation of Prolog terms.
|
||||
The user should write is programs using this macros to ensure portability of
|
||||
code across different versions of YAP.
|
||||
|
||||
|
||||
The more important typedef is @var{YAP_Term} which is used to denote the
|
||||
type of a prolog term.
|
||||
type of a Prolog term.
|
||||
|
||||
Terms, from a point of view of the C-programmer, can be classified as
|
||||
follows
|
||||
@ -14202,7 +14197,7 @@ references.
|
||||
|
||||
@findex YAP_MkAtomTerm (C-Interface function)
|
||||
@findex YAP_AtomOfTerm (C-Interface function)
|
||||
A special typedef @code{YAP_Atom} is provided to describe prolog
|
||||
A special typedef @code{YAP_Atom} is provided to describe Prolog
|
||||
@i{atoms} (symbolic constants). The two following primitives can be used
|
||||
to manipulate atom terms
|
||||
@example
|
||||
@ -14272,7 +14267,7 @@ hook on garbage collection:
|
||||
@findex YAP_MkNewPairTerm (C-Interface function)
|
||||
@findex YAP_HeadOfTerm (C-Interface function)
|
||||
@findex YAP_TailOfTerm (C-Interface function)
|
||||
A @i{pair} is a Prolog term which consists of a tuple of two prolog
|
||||
A @i{pair} is a Prolog term which consists of a tuple of two Prolog
|
||||
terms designated as the @i{head} and the @i{tail} of the term. Pairs are
|
||||
most often used to build @emph{lists}. The following primitives can be
|
||||
used to manipulate pairs:
|
||||
@ -14311,7 +14306,7 @@ functor. @code{YAP_MkNewApplTerm} builds up a compound term whose
|
||||
arguments are unbound variables. @code{YAP_ArgOfTerm} gives an argument
|
||||
to a compound term. @code{argno} should be greater or equal to 1 and
|
||||
less or equal to the arity of the functor. @code{YAP_ArgsOfTerm}
|
||||
returns a pinter to an array of arguments.
|
||||
returns a pointer to an array of arguments.
|
||||
|
||||
YAP allows one to manipulate the functors of compound term. The function
|
||||
@code{YAP_FunctorOfTerm} allows one to obtain a variable of type
|
||||
@ -14335,7 +14330,7 @@ arity.
|
||||
@section Unification
|
||||
|
||||
@findex YAP_Unify (C-Interface function)
|
||||
YAP provides a single routine to attempt the unification of two prolog
|
||||
YAP provides a single routine to attempt the unification of two Prolog
|
||||
terms. The routine may succeed or fail:
|
||||
@example
|
||||
Int YAP_Unify(YAP_Term @var{a}, YAP_Term @var{b})
|
||||
@ -14528,7 +14523,7 @@ system. The slot functions are as follows:
|
||||
@item long int YAP_NewSlots(int @var{NumberOfSlots})
|
||||
@findex YAP_NewSlots (C-Interface function)
|
||||
Allocate @var{NumberOfSlots} from the stack and return an handle to the
|
||||
last one. Th eother hand can be obtained by decrementing the handle.
|
||||
last one. The other handle can be obtained by decrementing the handle.
|
||||
|
||||
@item long int YAP_CurrentSlot(void)
|
||||
@findex YAP_CurrentSlot (C-Interface function)
|
||||
@ -14670,7 +14665,7 @@ that it is not the current module. To find the current module, you can call:
|
||||
@end example
|
||||
|
||||
Given a module, you may want to obtain the corresponding name. This is
|
||||
possioble by using:
|
||||
possible by using:
|
||||
@example
|
||||
YAP_Term YAP_ModuleName(YAP_Module mod)
|
||||
@end example
|
||||
@ -14713,7 +14708,7 @@ also that we normally also need to preserve some information to find out
|
||||
the next solution.
|
||||
|
||||
In fact the role of the two functions can be better understood from the
|
||||
following prolog definition
|
||||
following Prolog definition
|
||||
@example
|
||||
p :- start.
|
||||
p :- repeat,
|
||||
@ -14731,7 +14726,7 @@ uninstantiated argument, should provide, by backtracking, all the positive
|
||||
integers less or equal to 100.
|
||||
|
||||
To do that we first declare a structure, which can only consist
|
||||
of prolog terms, containing the information to be preserved on backtracking
|
||||
of Prolog terms, containing the information to be preserved on backtracking
|
||||
and a pointer variable to a structure of that type.
|
||||
|
||||
@example
|
||||
@ -14913,7 +14908,7 @@ available if you cannot port the code to the new interface.
|
||||
|
||||
@item The use of @code{Deref} is deprecated. All functions that return
|
||||
Prolog terms, including the ones that access arguments, already
|
||||
dereferenciate their arguments.
|
||||
dereference their arguments.
|
||||
|
||||
@item Space allocated with PRESERVE_DATA is ignored by garbage
|
||||
collection and stack shifting. As a result, any pointers to a Prolog
|
||||
|
Reference in New Issue
Block a user