Dear SWI-Prolog user,
Release 8.3.15 is ready for download. Highlights:
-
Fixed two race conditions related to retracting code. Could
lead to crashes in rare cases. Old bug. -
Fixed possible double free in atomic_list_concat/3
-
Added lazy monotonic tabling. This is a rather experimental
feature to efficiently update tables on mononotonic changes. -
Possible crash in the VM when unifying a fresh variable with
a constant causes a garbage collection. 8.3.x bug. -
New dict functions suggested by Esad Hajdarevic.
-
Possible crash in process_create/3 as well as a passing a
possible incomplete environment when the environment option
is used. -
Documentation enhancements, notably by David Tonhofer and
Adrian Wong. -
The MacOS version did not built JPL due the
java_home
program no longer accepting-d64
.Enjoy — Jan
SWI-Prolog Changelog since version 8.3.14
[Dec 14 2020]
- ENHANCED: Detection of Emacs inferior mode. Now sets up tty on
Windows as we have no way to detect.
[Dec 13 2020]
- FIXED: library(simplex): calling wrong predicate.
[Dec 11 2020]
-
DOC: Reviewed Section 5 (extensions) except “Dicts”
-
FIXED: Possible race condition in retract/1 generation management.
This patch ensures that when a clause is considered visible in some
thread based onGD->_generation
, this remains to be the case.
Before, the global generation may be updated before the clause
generation is updated, which may trigger a thread to consider the
clause visible while it is no longer.Finally diagnosed by Keri Harris.
[Dec 10 2020]
- DOC: Issue#735: PL_put_term(). Michael Duggan.
[Dec 9 2020]
- FIXED: untable/1 to remove table attributes such as
incremental
,
monotonic
, etc.
[Dec 8 2020]
- ADDED: Lazy monotonic tabling. Still working on test cases.
[Dec 7 2020]
- FIXED: atomic_list_concat/3: possible double free, corrupting memory.
[Dec 6 2020]
-
ADDED: op declarations for mode, do, spy, nospy to SICStus emulation.
-
ENHANCED: use_module/2 with SICStus emulation imports all operators.
Fixes part of #731. -
FIXED: SICStus emulation breaking op declarations in standard modules.
As a side effect, the goal expansion no longer rewrites op declarations
in library(dialect/sicstus), so they now have to be manually declared
in the user module.Fixes part of #731.
[Dec 2 2020]
- DOC: library(apply), added test cases for foldl
[Dec 5 2020]
-
FIXED: Issue#722: premature reclaim of a clause reference in retract/1.
-
DOC: Fix typos
[Dec 4 2020]
- FIXED: Possible crash in B_UNIFY_FC on a global stack overflow.
[Dec 3 2020]
-
FIXED: Make library(prolog_codewalk) work with
name()
predicate
heads. -
MODIFIED: Delay to start handling SIGINT (Control-C) to when the
toplevel is started. Added Prolog flagdebug_on_interrupt
and
command line option --debug-on-interrupt. @swi on Discourse. -
FIXED: Do not set a Prolog flag if the hook dealing with the side
effect fails. -
ADDED: Dict function
get(KeyPath, Default)
. Suggested by Esad
Hajdarevic. -
ADDED: Dict.get(Key) now allows for a key path, e.g.,
Dict.get(a/b). Suggested by Esad Hajdarevic. -
ENHANCED: halt if we tried to handle exit from a thread twice.
[Dec 2 2020]
- DOC: Fixed link to paper in extensions; bibliography rebuild
[Dec 1 2020]
- ADDED: library(sandbox): declare nonground/2 as safe.
[Nov 30 2020]
- DOC: Avoid duplicate section label.
Package clib
[Dec 3 2020]
-
FIXED: Issue#33: environment variables may not be passed. This shows
on MacOS, but can happen on any system. -
FIXED: Issue#33: NULL pointer dereference in
`process_create(’/usr/bin/printenv’, [], [environment([])]).
Package http
[Dec 2 2020]
- COMPAT: Parse cookie values more flexible. Keri Harris.
Package jpl
[Dec 14 2020]
- PORT: Apple java_home program doesn’t accept
-d64
[Dec 3 2020]
- BUILD: Avoid “Value of JAVA_HOME contained a newline” warning on MacOS.
Package pldoc
[Dec 13 2020]
- ADDED: Hook prolog:doc_object_footer//2 to add per-object examples.
[Dec 10 2020]
- FIXED: Export new HTML output routines.
[Dec 2 2020]
- DOC: Typo fix
Package semweb
[Dec 11 2020]
- FIXED: Issue#737: Although unlikely, computed garbage may be < 0
due to asynchronous computation of the different garbage components.
As this figure is only used for statistics we just report < 0 as 0
instead of raising an assertion error.
Package tipc
[Dec 13 2020]
- FIXED: tipc_paxos_replicate/1 called non-existing predicate. Removed.
Package xpce
[Dec 3 2020]
- FIXED: Cross-reference GUI: handle
name()
definitions.