@c -*-texinfo-*-
@node Changes, PredicateIndex, Low Level Foreign, Top
@comment  node-name,  next,  previous,  up
@appendix Changes Since Last Release

@menu
* Changes0.96::                 Changes since Release 0.94
* Changes0.94::                 Changes since Release 0.92
* Changes0.92::                 Changes since Release 0.90
* Changes0.90::                 Changes since Release 0.88
* Changes0.88::                 Changes since Release 0.86
* Changes0.86::                 Changes since Release 0.84
@end menu

@node Changes0.96, Changes0.94,  , Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.94

@itemize @bullet
@item
New primitive @code{setenv/2} to set environment variables.
@item
@code{getenv/2} can now return numbers stored in environment variables.
@item
New primitive @code{absolute_file_name/2} returns full pathname of
a file.
@item
New primitive @code{suspend/1} to support user-controlled scheduling.
@item
New primitive @code{timeslice/1} to provide mechanism for atomic
operations.
@item
Compiled files are created in the same directory where the source
files are found.
@end itemize

@node Changes0.94, Changes0.92, Changes0.96, Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.92

@itemize @bullet
@item
New command line options @code{-nn}, @code{-zz}, @code{-ff}
@item
Added new primitives @code{memberchk/2}, @code{concat_atom/2}, @code{nth0/3},
@code{nth1/3}, @code{ensure_loaded/1}.
@item
Major reorganisation of release directory structure.
@item
Inclusion of parlog in public domain release.
@item
New predicates @code{system_fail/2}, @code{system_error/2} and
@code{system_undefined/1}
@end itemize

@node Changes0.92, Changes0.90, Changes0.94, Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.90

@itemize @bullet
@item
Added new predicate @code{write_canonical/1-2} for writing out terms in
such a way that it can be read back again, irrespective of operator
declarations.
@item
Added new flags @code{exped_raw_data} and @code{normal_raw_data} for tcp
primitives @code{tcp_send/3}, @code{tcp_recv/4}, @code{tcp_sendto/5},
@code{tcp_recvfrom/6}, @code{tcp_sendbr/4} and @code{tcp_checkrecv/2}
@item
Order of the arguments for @code{tcp_sendbr/4} changed to be consistent
with @code{tcp_send/3} and @code{tcp_sendto/5}.
@item
Predicate @code{default/3} renamed @code{default_prop/3}
@item
New predicates @code{format/2} and @code{format/3}.
@item
renamed the flags for tcp read/write calls
@item
Major reorganization of TCP primitives: some deleted, some added, order
of arguments changed
@item
Added new command line option @code{-n} that skips startup file processing.
@item
Added new command line option @code{-i} to specify alternative Parlog
initialisation file.
@item
Changed @code{getmachine/2}, @code{getmachinebyname/2} to accept IP numbers
such as @code{'146.169.21.3'} instead of name.
@item
Changed @code{tcp_bind}, @code{tcp_connect}, @code{tcp_sendto},
@code{open_client}, @code{open_server} so they can also use names for the
addresses.
@item
No longer support exped flag for the TCP calls.
@item
New flag @code{peek_raw} for TCP reads.
@item
Renamed calls @code{real_socket}, @code{open_client},
@code{open_connectionless}, @code{open_server} to be respectively:
@code{tcp_real_socket}, @code{tcp_client},
@code{tcp_connectionless}, @code{tcp_server}.
@item
Changed primitive @code{errno/1} to @code{errno/2}
@end itemize

@node Changes0.90, Changes0.88, Changes0.92, Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.88

@itemize @bullet
@item
Changed arithmetic expressions to accept @code{integer(@var{N})} and
@code{float(@var{N})}.
@item
Added two new predicates @code{atom_chars/2} and @code{number_chars/2}
@item
Added new predicate @code{copy_term/2} to give a copy with new variables.
@item
Added new predicate @code{portray/1} to display clauses in the style of
@code{listing/1}.
@item
New predicates @code{argc/1} and @code{argv/1}.
@item
New startup flags @code{-f} and @code{-z}
@item
Added documentation on mailboxes
@item
Changed style warning code so variables whose names begin with an
underscore are not flagged
@item
Added TCP primitive @code{real_socket/2}
@item
Added predicate @code{gensym/2}
@item
Change @code{out_of_date/1} to @code{out_of_date/2}
@item
Changed the Prolog Mailbox primitives to throw errors. This involves
them having one less argument; the @var{Stat} argument has gone.
@item
New manual parlog-extras.dvi and icp-parlog.info containing the Mailbox
primitives for Parlog.
@item
Added new predicates @code{cursor/2}, @code{save/3}.
@end itemize

@node Changes0.88, Changes0.86, Changes0.90, Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.86

@itemize @bullet
@item
New predicate @code{qprolog/1} for running a simple (i.e. single solution
and very quick) goal in another thread.
@item
New predicates @code{get_prolog_flag/2} and @code{set_prolog_flag/2}
@item
New flag @code{garbage_collection} for @code{statistics/2}.
@item
Added support for XPCE.  To load XPCE, consult the file @file{xpce.pl}.
@end itemize

@node Changes0.86,  , Changes0.88, Changes
@comment  node-name,  next,  previous,  up
@appendixsec Changes since Release 0.84

@itemize @bullet
@item 
@code{user_consult} changed from arity 2 to arity 3.
@item
New predicate @code{ctime/7}
@item
New predicates @code{window_label/1} and @code{icon_label/1}
allows a program to change the title of the window and its icon
respectively.
@item
New predicate @code{query_expansion/2} allows the transformation of user
queries. 
@item
Parlog start up file @kbd{$HOME/.icp.par}.
@end itemize

