Dear SWI-Prolog user,
SWI-Prolog 9.3.14 is ready for download. This release fixes some
regression issues resulting from the rather large changes in 9.3.13,
and some portability issues. It has some usability improvements.
Following Jan Burse’s comments, library(nb_set) has been reimplemented
using close hash tables. This does not make much difference for
performance, but the memory usage is about 30% lower.
Enjoy --- Jan
SWI-Prolog Changelog since version 9.3.13
-
DOC: Update library(shlib) documentation.
-
ENHANCED: Re-implement library(nb_set) using closed hash tables.
This provides better performance at lower memory usage. It comes
with a few modifications:- The term representation is different. This only affects
applications that access the internals. - gen_nb_set/2 enumerates the elements in hash order rather than
in standard order of terms. - Invalid usage now traps nu matching rule errors due to the usage
of => rules. Used to fail or succeed incorrectly.
- The term representation is different. This only affects
-
BUILD: Make sure to clear
DISPLAY
when running xpce steps
(one more) -
BUILD: Make sure to clear
DISPLAY
when running xpce steps While
the build works without a DISPLAY variable, an invalid variable causes
the build to fail. -
TEST: Disable collation_key/2 test for MacOS Macos Sequoia (15)
wcsxfrm() returns garbage. -
FIXED: Avoid corruption in setjmp()/longjmp() Clang demands using
a volatile variable for protecting the throw environment’s parent.
This is probably correct, although it seems weird to place this
variable in a register. -
ENHANCED: Add Prolog navigator to
theme/dark.pl
-
FIXED: build order for dependencies in packs. Based on #1326, but
fixing build_order/2 rather than reversing afterwards. -
FIXED: expand_term/2 to succeed twice when expanding a toplevel
list. Results in duplicate clauses when compiling[f(1), f(2)].
.
Reported by Uwe Neumerkel. -
FIXED: pack management: find available versions from wildcard URL.
Patch by Nicos Angelopoulos -
PORT: Added FreeBSD signal names to the name/number map. Contributed
by Dewayne Geraghty -
ENHANCED: file_autoload_directives/3: deal with library(main) hooks.
-
FIXED: Flush pending output on halt/1.
-
FIXED: select_dict/3: deal with attributed variables.
-
CLEANUP: Split
select_dict/3
and:</2
code. Although there is some
shared functionality, the merge complicates things more than it solves.
Package mqi
-
TEST: Specify encoding in test_prologserver.py
-
TEST: Specify encoding in test_prologserver.py Fixes a problem for
MSYS2. I hope my ad hoc fix is harmless.
(test_prologserver.TestPrologMQI.test_variable_attributes)
Traceback (most recent call last): File
“c:/msys64/home/c7201178/swipl-devel/packages/mqi/python/test_prologserver.py”,
line 95, in setUp
self.initialProcessCount = self.process_count(“swipl”)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
“c:/msys64/home/c7201178/swipl-devel/packages/mqi/python/test_prologserver.py”,
line 123, in process_count output =
subprocess.check_output(call).decode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError:
‘utf-8’ codec can’t decode byte 0xff in position 237: invalid start
byte ````
Package plunit
- FIXED: Report generator state on failing forall(Generator) test.
This was completely broken. Format has been changed to print the
generator goal rather than just the variables.
Package xpce
-
ENHANCED: #38 Support themes in navigator.
-
FIXED: #38 Avoid loading the GUI tracer when trace/util.pl is loaded.
The navigator loads this, but should not load the GUI debugger itself. -
FIXED: Class tabbed_window: avoid sending ->resize_window when freed.