Dear SWI-Prolog user,
SWI-Prolog 9.2.4 (stable) is ready for download. This mostly fixes
some bugs. See below. The library(http/http_load)
, which allows
compile directly from HTTP(s) URLs now by default verifies the
certificate. This is a MODIFIED, but could just as well be
interpreted as SECURITY.
Enjoy --- Jan
SWI-Prolog Changelog since version 9.2.3
-
PORT: Fix case conversion for Unicode characters on Windows.
-
FIXED: prolog_walk_code/1: no matching rule from goals reached from
a :- initialization. -
PORT: Include Ubuntu 24.04 (Noble Nombat) in PPA builds
-
PORT: Use -funwind-tables on ARM systems with glibc, also for clang
-
PORT: Deal with Android
android-execinfo
library. -
FIXED: generation of swipl.pc pkg-config file Now uses LIBSWIPL_DIR to
get the correct -L flag when the system is installed as global library. -
FIXED: Reconsult when the loaded code sets the
trace
flag on
a predicate. This was due to a conflict over the predicate flags.
As theflags
field was widened, we can avoid these problems. -
FIXED: WASM: fix fid arg position in this.query call in
__call_yieldable -
FIXED: #1262 upcase_atom/2 and friends on ISO → wide If input is
ISO-Latin-1 and the converted character requires wide characters
the system trapped an assertion error. Now correctly converts to
wide characters. -
FIXED: Clang handling of
max_integer_size
Clang cannot handle
setjmp()/longjmp in PL_next_solution(), but it can in the simple
evalExpression() function. This does not have measurable impact on
performance, so we enabled this as default. This fixes limiting the
integer size for WASM and Clang builds on Linux. This problem did
not surface on the MacOS version. -
FIXED: comparison of MPZ and MPQ with 64 bit integers if long is
4 bytes -
FIXED: Normalize LibBF numbers created from 64 bit integers on VS2022
VS2022 does not support 128-bit integers and therefore we must use
32-bit “limbs” -
COMPAT: Introduce abstract types for PL_new_hash_table() and friends
Rather than hard codedvoid*
we now usetable_key_t
and
table_value_t
. These types are also introduced in the development
series, where the type changes.
Package http
-
MODIFIED: library(http/http_load) to verify certificates This library
allows for loading files from http/https URLs. It used to skip
certificate checking. Checking is now enabled and the Option argument
may be used to disable it (using thecert_verify_hook
option). -
FIXED: Undefined predicate schedule_gc/2 in library(http/http_session)
Package sweep
- FIXED: workaround Emacs incompatibility with certain locales The Emacs
Elisp reader only works with locales that have “.” as their decimal
separator, but Prolog initialization sets up the locale according to
the environment variables. Therefore we need to reset the locale
after initializing Prolog in case the environment prescribes a
locale with a different decimal separator, such as fr_FR. See also
loading sweep trashes emacs hashtable management · Issue #1 · SWI-Prolog/packages-sweep · GitHub
Package swipy
-
DOC: janus.query() etc optional arguments is called
inputs
-
FIXED: Memory leak when generating a Prolog dict from a Python dict
-
FIXED: Wrong Python refcount update. Reported by Jerry James as !8.
That is is not entirely correct though.