Dear SWI-Prolog user,
SWI-Prolog 8.5.12 is ready for download. This release mainly provides
fixes and small additions contributed by several people. Thanks!
Highlights:
-
@oskardrums added support for breakpoint conditions. This is
now available through PceEmacs: select a breakpoint and use the
menu item Prolog/Set breakpoint condition. You can set conditions
from the console using set_breakpoint_condition/2. -
@peter.ludemann added more tests some fixes. Peter started work
cleaning up library(archive) memory management. - @ridgeworks provided some more updates on floating point arithmetic.
- @mgondan1 added more build support using the R build toolchain.
- There is a new flag
agc_close_streams
that is currently disabled
by default. When enabled, the atom garbage collector closes streams
whose handle is being garbage collected. This is experimental and
likely to become the default when proven robust.
Lots of small things have been enhanced, both to the system and docs.
Enjoy --- Jan
SWI-Prolog Changelog since version 8.5.11
-
FIXED: Issue#993: possible deadlock when loading a module. Reported by
Sean Leather. -
FIXED: eliminated a spurious choice-point in sub_atom/5 Reported in
Careful with sub_atom/5 and feature request last_sub_atom/5 -
FIXED: Sfprintf(): handling of ENC_WCHAR() encoding.
-
ENHANCED: Sfprintf(): allow Unicode characters for
%c
-
FIXED: PL_cleanup(): small memory leak for command line options.
Peter Ludemann. -
FIXED: correct arity of dynamic declaration for breakpoint_condition/4
-
DOC: enhance documentation for det/1,
$/1
and$/0
, describing the
exceptions and how trap/1 can be used to make the debugger act quickly. -
ADDED: set_breakpoint_condition/2, providing conditional breakpoints
-
MODIFIED: Extend prolog:break_hook/6 to prolog:break_hook/7 …
…adding an extra boolean argument+Debug
denoting whether the
system was in debug mode when the breakpoint was triggered. -
FIXED: explain/1: hide references from prolog_xref:called/5
-
FIXED: Have breakpoints cleared in the UI when the clause that holds
them is removed during a reload of the file. -
FIXED: breakpoint_property/2: fixed
character_range
property -
ENHANCED: Issue#17: reverse/2 to be deterministic if second argument
is a proper list. Ulrich Neumerkel. -
TEST: Added STO restriction as this test involves rational trees.
-
FIXED: Issue#122: dif/2: or-node simplification.
-
FIXED: Possible deadlock enumerating predicates from a source file.
-
TEST: Updated
^/2
tests. Move float**rat tests to test_ieee754
for rounding mode handling. -
ENHANCED: use ldexp() rather than pow() for multiplying a float with
an integral power of 2. mpz_fdiv(): replace calls to pow() function
by ldexp() -
FIXED: rounding of pow() (
^/2
and**/2
) ar_pow(): Re-implement
float**mpq case -
FIXED: Avoid Unicode quote in library(aggregate) comment
-
ADDED: Prolog flag
acg_close_streams
. -
ADDED: Sgcclose() as an extended version of Sclose() that can be
used to avoid deadlocks when closing streams from the atom garbage
collector. -
MODIFIED: PL_blob_data() to return NULL if the blob has been released
and document the consequences thereof. -
PORT: Replace MINGW_ROOT by WIN32 I think -municode needs to be defined
on all Windows systems that are currently supported (= several flavors
of MinGW). MINGW_ROOT was not defined on my system, so I would like
to change this to WIN32 to save a cmake command line switch. -
FIXED: LaTeX conflict preventing building the PDF docs
Package archive
-
FIXED: Allow an open archive to be garbage collected.
-
CLEANUP: Renamed internal functions to make it clearer which
context they’re called in - added internal documentation about
the state transitions - added AR_ERROR state (renamed AR_OPENED
to AR_OPENED_ARCHIVE) - added archive_wrapper_init_value for
initializing the blob - removed a double-free (ar->entry in read
mode)Improved tests to check full file contents. Cleanup some CMake
property
checks.
Package cpp
-
TEST: Add Unicode/wchar tests
-
TEST: PL_atom_wchars print
Package http
-
ADDED: http_open/3: option raw_encoding(+Encoding) to prevent deconding
certain (transfer) encodings. -
ADDED: http_open/3: option raw_headers(-Strings) to get access to
the unparsed HTTP header as a list of strings. -
ADDED: http_post_data/3: support string(String) and string(Type,
String) simlar to atom(String) and atom(Type, String). Avoids creating
a potentially large garbage atom.
Package pcre
- TEST: Add Unicode>0xffff test
Package pldoc
- MODIFIED: when creating a link from a URL, do not include a punctuation
character before a space. So,http://example.com/home.html. Bla
correctly links to the html page.
Package sgml
- FIXED: Avoid illegal access to local variable (harmless)
Package ssl
-
PORT: RTools42, link order for OS libs, add libz
-
BUILD: Ensure HOME is set to a writable path for generating the SSL
test certificates.
Package xpce
-
FIXED: PceEmacs Prolog/spy and Prolog/trace menu items to deal with
SSU (=>) rules and fix DCG (–>) rules. -
ADDED: PceEmacs: Prolog mode command Set breakpoint condition.