Dear SWI-Prolog user,
SWI-Prolog 8.1.25 is ready for download. This is mosly a bug fixing
- Rick Workmans contributions for IEEE 754 float and rational number
corner cases is getting near completion.
- Enhancement to clause GC which can prevent memory leaks on dynamic
predicates with old open choice points.
- Fixed crash in deeply nested trie terms (tabling).
- Fixed handling floats in completed tables.
- Cory Cohen fixed a memory leak in clause indexing.
- Matt Lilley extended support for XML canonicalization (for signing).
- Several refinements and fixes to the new autoload support
- Several portability issues as well as more graceful handling of
missing dependencies, notable for building the documentation.
And a lot of smaller fixes …
Enjoy --- Jan
SWI-Prolog Changelog since version 8.1.24
TEST: Do not include source directories for dependent packages in
librarysearch path: these libraries are installed.
BUILD: Better handling of dependencies for building the docs.
FIXED: Make compile without GMP and fix detection of
CLEANUP: Remove already defined predicates.
FIXED: silence autoload/2 if the predicate was already autoloaded
from the same location.
FIXED: check/0: incorrect redefined messages for ‘$exported_op’/3 and
‘$autoload’/3. Paulo Moura.
ENHANCED: more work on integrating IEEE754 floats. Notably resolve
division by zero issues.
FIXED: ./3: (Dict.Func): allow built-in dict functions get/1, put/1
and put/2 to work on association lists.
FIXED: Memory leak in hash assessment keys allocated during
MODIFIED: module_property/2: if module exports no operators, succeed
with an empty list. Paulo Moura.
TEST: Omit equivalence rounding check on Rz.
FIXED: pow/2 function: integer corner cases Some integer special cases
weren’t consistent with C11 pow() semantics - fixed. Includes 0**nan
FIXED: dealing with floats in compiled tries.
FIXED: Do not set encoding when including from a stream. This is
needed for SWISH to include a Unicode document from an ISO Latin
FIXED: writef/2 handling of justification using e.g.,
in a format error.
ENHANCED: Cover more pow/2 cases and add tests.
TEST: Avoid failure when IEEE 754 rounding test for to_negative is
the same as to_positive. Should (probably) not happen, but does on
FIXED: Possible crash on deeply nested terms in tries.
MODIFIED: Functions rational/1 and rationalize/1 errors. Sync with
DOC: Deprecate epsilon/0 in favour of nexttoward/2.
FIXED: Raise a float underflow exception when converting a subnormal
float to an MPQ number. This patch moves C header info from several
.h files into a new pl-arith.h header.
ENHANCED: More subtle tracking of generations that access a (dynamic)
predicate. This avoids old open choice points on dynamic predicates
blocking effective clause GC. In some scenarios this can drastically
reduce memory usage.
FIXED: Removed unused and incorrect open_html/1 from library(win_menu).
ADDED: library(prolog_code): extend_goal/3.
environdetection for older MacOS versions (missing
declarations for config.h.cmake).
- CLEANUP: Support autoloading. Renamed too ambiguous library(rewrite)
TEST: Omit HTTPS tests of library(ssl) is not provided.
BUILD: No longer need SSL for building the docs
ENHANCED: json_read/2,3 and json_read_dict/2,3: if the input stream
is binary switch it to use UTF-8 encoding for reading the dict.
ENHANCED: http_open/3 to autoload library(gzip) if the content encoding
FIXED: Pengine ID generation if UUIDs nor GMP numbers are provided.
ENHANCED: Term -> HTML rendering to take care of SWISH preferences.
FIXED: Property read the manual index regardless of the
flag in module
FIXED: link Alias(File) also when rendering a single object and not
only a complete file. Peter Ludemann and Nicos Angelopoulos.
?- help(format).: pass options further down, add an option
server(false)and thus avoid trying to rewrite HTML href fields
for the command line manual. This is work in progress. Still far
too much of the HTTP infrastructure is involved for showing the HTML
FIXED: library(semweb/rdf11) handling of time related data
structures. Reported and diagnosed by Joost Geurts.
TEST: Disable tests that require SSL if this is not present
ADDED: Turtle writer to understand RDF11 literal notation.
FIXED: When sorting namespaces in the element attributes, the critical
thing is that the prefix is sorted, not the URI
ENHANCED: Handle ns/2 in xml_ns/3. Also properly handle the case
where two different prefixes refer to the same URL now that we have
the prefix available. This fixes canonicalization of attributes if
there are two namespaces that expand to the same URI
keep_prefixoption for attributes, as well.
Required to compute XML signatures
BUILD: do not build xpce if Xpm, FreeType or Fontconfig are missing.
PORT: Build if X11/extensions/Xinerama.h is not present. Cory Cohen.