Ann: SWI-Prolog 8.3.15

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 on GD->_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 flag debug_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.
1 Like