Dear SWI-Prolog user,
SWI-Prolog 9.3.16 is ready for download. This version fixes some
important bugs and provides one new library. Highlights:
- WASM
for(v of Query)
and variants lost the last solution due to
a bug in the JavaScript iterator implementation. - Fixed phrase_from_file/2 for UTF-16 files containing
surrogate pairs on Windows. - Improved support for ==> SSU DCG rules: mark predicate as
non_terminal
and provide basic support for the GUI debugger. - An experimental library
exceptions
allows for defining exception
types and catching based on type rather than unification. See
catch/4 in this library. Comments welcome! - Changed search for the Prolog home to consider the ABI version
info and provide better feedback if the search fails. This should
notably simplify embedding SWI-Prolog if you have multiple SWI-Prolog
installations on your system. - Avoid Emscripten (WASM) deprecated functions.
- Fix test failures for prolog_in_java tests when the build system
has multiple copies ofjunit[4].jar
in places we look for it.
Enjoy — Jan
P.s. We are approaching 1,000 s on Github. Starring the repo is
simplest thing you can do to help the system. We also got
new donations. Thanks!
SWI-Prolog Changelog since version 9.3.15
-
ENHANCED: gui tracer support for
Head ==> Body
rules. -
ENHANCED: Set
non_terminal
property for clauses forHead ==> Body
-
WASM: Include ABI file to make the home search work.
-
FIXED: New home search to actually try the compiled in value.
-
ENHANCED: Verify sanity of the Prolog home directory This patch
validates that the home directory contains a file ABI holding the
ABI information and compares this. On failure, it reports a detailed
report on why Prolog could not find its home directory. -
FIXED: explain/1 to report the same predicate multiple times.
This happens if the predicate is imported into multiple modules. -
ADDED: library(exceptions) This library provides catch/4 and error/2
to define error types and catch based on types rather than unification.
Experimental. -
PORT: read_pending_input/3 and friends: make 16 bit encodings work
on Windows. -
FIXED: Pass command line arguments in class Prolog.
-
DOC: gcd/2 and lcm/2 are not operators.
-
ADDED: Prolog flag
unknown_option
with values {ignore,warning,error}.
As a result of PIP-105. May change, but unlikely as their was clear
agreement.This flag disables the
iso
flag from reporting errors on unknown
options
because this breaks large parts of SWI-Prolog’s libraries. The user
can
now explicitly enable this as well as make the system pring warnings to
investigate possible issues. -
FIXED: Use of undefined options in the toplevel. This makes the
toplevel unusable if the Prolog flagiso
is set totrue
. -
PORT: WASM: Get rid of deprecated allocate, ALLOC_NORMAL and
ALLOC_STACK -
FIXED: WASM: Query.next() to set
done
totrue
on last answer.
This must befalse
when used as iterator. -
ENHANCED: Allow suppressing autoload warnings.
-
TEST: Move test_rwlocks.pl from
library
tothread
test dir.
This test should not run in the single threaded version. -
FIXED: WASM: for(x of prolog.query(…)) lost last answer
Package http
- DOC: Fixed example code for apropos with HTML output.
Package jpl
-
TEST: #104 prolog_in_java test fails if multiple copies of junit*.jar
are found. Now first search for junit4.jar. On success, use first,
else search for junit.jar. On success, use first. -
TEST: Cache JUNIT_JAR in CMake. This provides better cmake performance
and easier inspecting the configuration result.
Package swipy
-
BUILD: Honour environment variable
SWIPL
forpip install .
-
DOC: Document creating the Windows binary wheel in
scripts/README.md