Dear SWI-Prolog user,
I’m happy to announce SWI-Prolog 8.2.3 (stable). This version backports
a number of documentation, build, test and stability issues.
Enjoy --- Jan
P.s. Building the PDF docs fails from the tar archive. That was not
enough reason to re-release The git repo has been updated.
SWI-Prolog Changelog since version 8.2.2
FIXED: Typo in MemoryBarrier() based sync macros.
DOC: Fix priority of
|operator. Spotted by Falco Nogatz.
FIXED: protect dynamic clauses in continuations. This patch solves
the same problem as cca23badcbfb2dad7089696348aae56e50b84a3c, but also
protects the clause itself during the execution of the continuation.
FIXED: Issue#706: call_continuation/1: environment clause reference
cannot be from the blob in the continuation as this may be reclaimed
in AGC. May cause a crash while getting a backtrace from restarted
continuation. GC also uses the clause info, so this can probably
crash as well. Reported by David Tonhofer.
PORT: Set MACOSX_DEPLOYMENT_TARGET for building the MacOS dependencies.
DOC: Corrext examples for rational numbers to use lowercase “r”
instead of formerly discussed “R”
DOC: CHR section names to include CHR to make them easier to find
and reduce ambiguity in search results.
FIXED: Do not use sandboxing during autoloading. Note that the
autoload directive is not permitted in sandboxed code, so users cannot
load untrusted code using autoload/1,2.
FIXED: debugger could reset wrong variable when debugging a redo
action. May lead to incorrect behaviour in debug mode.
FIXED: set_prolog_flag/2: propagate errors from switching debug mode
ADDED: PL_put_term_from_chars(): flag
CVT_EXCEPTIONto raise an
exception on a failure rather than returning the exception term.
ENHANCED: PL_get_nchars(): immediately write to a UTF-8 string if
REP_UTF8is specified. This used to first write ISO Latin 1,
then wchar and finally transfer to UTF-8 for terms that cannot be
represented as ISO Latin 1.
FIXED: PL_get_nchars(): avoid pending exception in write conversion
if the term cannot be represented as ISO Latin 1.
FIXED: XDG path handling for
both the common data and config paths, while common config had no
FIXED: incremental tabling with answer subsumption call to start
TEST: wrong format/3 usage causing a failure unrelated to the test.
TEST: Relax XSB tabling test abol_test3b.P as reclaiming the tables
is not guaranteed.
FIXED: Possible race in shared table handling. Leads to “Oops,
worklist trie doesn’t point back at me!” messages.
TEST: Test file for destroying local definitions.
FIXED: Race between destroying thread-local definitions and clause
garbage collection. With Matt Lilley.
FIXED: Thread-local definitions corrupted the argument declaration.
DOC: debug/0 does not affect trace points.
FIXED: Issue#702: call_with_inference_limit/3 determinism when the
inference limit is exceeded. David Tonhofer.
DOC: reset/3: document interaction between delimited continuations
FIXED: Save/restore tabling status over break/0.
FIXED: Possible assertion failure in WFS handling for tabling on
32-bit hardware. Lev Lamberov.
FIXED: library(udb_broadcast): determine subnet mask for 127...*
network. Jacob Friedman.
ADDED: uri_resolve/3 and related predicates that take a base URI
to accept a string in addition to an atom for the base URI.
- DOC: Add CQL to the section headers to improve searching.
- FIXED: Avoid double preparation of the libedit signal handling.
Double preparation may lead to an infinite recursion in el_sighandler()
and can happen if multiple threads prepare the library.
- ADDED: Support
ADDED: Create a link from … flag
`name`… if name is a
current Prolog flag.
`name/arity`to create a link as
double backticks creates a predicate indicator that is not a link.
ENHANCED: Use LaTeX package tabulary for dealing with tables that
have one or more columns with long text in cells.
ADDED: PlDoc Wiki tables to use a possible column alignment
specification and interpret the header.
ADDED: Markdown notation
[@cite;@cite;...]to allow for citations
in the Markdown in the documentation pipeline. After discussion with
- FIXED: sparql_query/3: ignore white space in values. Johan Romme.
Bug introduced by ef7ee735df9445b061cecc23c5d707d51e470edd
- FIXED: Possible buffer overflow when reading certificates with too
long lines. Matt Lilley.
- FIXED: Handle empty table files.
FIXED: Example defaults file: emacs_prolog_mode.dependency_directive
class variable must be quoted.
ENHANCED: Cleanup trace/spy dialog