SWI-Prolog 5.6.0/XPCE 6.6.0 stable release
==========================================

Highlights of changes since 5.4.x
=================================

Unicode support
---------------

The basic SWI-Prolog engine and many of   the important packages now the
UNICODE character set. This simplifies   applications handling documents
of several characters sets simultaneously,   something which is commonly
found in web-applications. Prolog can now  represent any HTML, SGML, XML
or  RDF  document   without   loss    of   information   or  complicated
representations.

Especially programs manipulating character sets   other than ISO-Latin-1
must be checked. The  predicates  get_code/2   and  get_byte/2  are  now
different! Character codes are indenpendent  of   the  locale,  but code
using explicit numeric character  codes  must   be  updated  to  use the
UNICODE values or -better- the 0'<char> syntax

Please check the section name "Wide character encodings on streams" in
the manual for further reference.


Unbounded integer and rational arithmetic
-----------------------------------------

By default SWI-Prolog is now linked   against the GNU Multiple Precision
arithmetic library (GMP), This provides unbounded arithetic as expressed
in the ISO Prolog flag `bounded' absence of the Prolog flags min_integer
and max_integer. With this  change  the   dubious  silent  conversion of
integer to float on arithmetic overflow   as  well conversion of `whole'
floats to integers has been removed.

Rational arithmetic allows for expressions such as

	?- A is 1 rdiv 4 + 5 rdiv 6.

	A = 13 rdiv 12


New and improved constraint libraries
-------------------------------------

5.6.0 has a much faster version  of   the  CHR constraint library by Tom
Schrijvers, clp(r) by Leslie  de  Koninck   as  well  as  some dedicated
constraint libraries by Markus Triska.


Semantic Web library
--------------------

There are many additions to the  semantic web infra-structure, including
full  thread-safety,  transaction  support  and   triggers  in  the  RDF
store.


Version 5.6.18 Patches relative to 5.6.17
=========================================

Prolog

  * FIXED: Updated www_open_url for netscape compatible browsers on Unix.
    Cleanup of comments, etc.  Work-around lacking exit code of firefox
    -remote commands.

  * FIXED: Source-level debugger for a --> { x }, !, y.

  * FIXED: write_canonical(a|b).  Lukas Degener.

  * ADDED: Support for large integers in succ/2, plus/3 and between/3.
    Bart Demoen.

  * FIXED: Domain error on random/1.   Lukas Degener.

  * FIXED: pl-tai.c portability problem for Solaris (asctime_r). 
    Hazita Harun.

  * FIXED: Bug#192: reading non-decimal numbers that cause a 64-bit int
    overflow.  Marius Filip.

  * ENHANCED: Bug#195: library(debug) to compile debugging(x) to fail when -O
    is active.  Holger Kanwischer.

  * ADDED: print_message(silent, toplevel_goal(Goal, Bindings)) to allow
    intercepting toplevel goals just before they are executed.  Some
    cleanup to toplevel.pl and topvars.pl

  * FIXED: possible crash freeing a thread that could not be created
    due to conflicting alias.

  * FIXED: avoid errors in open while getting a stacktrace.  Mike
    Elston. 

  * FIXED: 1 is sin(pi/2) incorrectly succeeded in optimised mode.

  * MODIFIED: Message term of make/0 after completion has changed from
    make(done) to make(done(Files)).  Should not affect user-code.

  * ADDED: Library option, option/2.

  * DOC: Fixed all libraries to have their comments compatible with the
    emerging documentation package.

  * FIXED: stead-fastness of library predicate option/3.

  * PORT: Bug#192: Better implementation of per-thread CPUtime, depending
    on Linux library and kernel versions.  Keri Harris.

  * FIXED: Bug#191: with_output_to and format: lacking initialisation.
    Holger Kanwischer.

  * FIXED: Interaction problem between comments and subterm-positions
    options in read_term/3.  Lukas Degener.

  * ADDED: library prolog_source.pl.  Start to generalise opening, closing
    and dealing with operators to handle Prolog source documents outside the
    compiler.

  * FIXED: read_term/2,3 comments(-Comments) option loosing first
    character after /*.

  * FIXED: Bug#189: Thread id in Linux/PPC (and possibly others).
    Keri Harris.

  * FIXED: Bug#188: missing module_transparent for sformat/2,3.  
    Holger Kanwischer.

  * FIXED: Bug#185: %+ initialization if yday and yday.  Keri Harris.

  * FIXED: Bug#184: date/time test-suite for ~ -> %.  Keri Harris.
							    
Packages
  
  * New: pldoc:  Source-code documentation and viewing system
  * New: plunit: Unit test framework
  * Semweb: portability problems (RISC processors, single-theaded)
  * XPCE: Allow for spaces in init files, fixed possible crash in
    window placement.
  * HTTP: Cleanup; exploit new time primitives, fixed quoting issue
    in html_write.
  * JPL: Add support for IBM Java to configure
