Ann: SWI-Prolog 10.1.4

Dear SWI-Prolog user,

SWI-Prolog 10.1.4 is ready for download. This notably fixes a couple of
regressions from cleanup, adds more cleanup, fixes portability issues and
adds a couple of goodies. Highlights:

  • Fixed regression in dict and trie (tabling) code.

  • Improve listing/1,2 support for thread-local predicates.

  • GUI debugger to list clauses of thread-local predicates as they are
    visible from the thread being traces (as opposed to the thread of
    the GUI where they are typically empty).

  • Improve TAB completion in CLI for files and notably for Prolog files
    and libraries.

  • Windows and Google protocol buffer version portability issues.

    Enjoy — Jan

SWI-Prolog Changelog since version 10.1.3

  • PORT: Exclude jvm.dll from CPack runtime dependencies

  • ENHANCED: Command line (tab) completion - Tag directories with a
    trailing / - Do file name completion on [prefix<tab> - Do
    library completion on library(prefix<tab>.

  • ENHANCED: error/warning messages for swipl-ld

  • BUILD: We no longer need cmake -E env ... to run Prolog This seems
    to cause a hang in the Windows build xpce steps. Quite unclear why.

  • FIXED: ansi_get_color/2: not supported on Windows.

  • PPA: Added Ubuntu 26.04 (Resolute Raccoon)

  • TEST: added tests for library(record)

  • FIXED: reload_foreign_libraries/0. Failed with type error.

  • TEST: Fixed Debug build test on Windows to avoid C stack overflow.
    Based on PR by Eric Tauber. This replacement builds on the new Prolog
    flag build_type and rewrites the test suite to use PlUnit.

  • ADDED: Prolog flag build_type, representing the CMake build type
    used.

  • FIXED: library(main): make spy options default to the user module.

  • BUILD: added comments to scripts/configure

  • BUILD: added comments to CMakeLists.txt for protobufs test

  • DOC: clarified details of heap allocation

  • PORT: Minimize C stack on MSVC debug builds.

  • TEST: Skip test_thread_exit if alert signal == 0

  • PORT: Include platform pthread headers and includes for pthread config.

  • FIXED: #1465 Overflow issue in trie handling. This is the result of
    replacing an int incorrectly with bool.

  • FIXED: PThreads4W exit crash in MSVC Debug builds Without this,
    the system crashes during process exit.

  • ENHANCED: listing/1,2: show number of clauses in other threads.

  • ADDED: listing/2: option thread(+ThreadId) This lists the clauses
    for a thread-local predicate as they can be seen for the given thread
    (rather than the calling thread).

  • MODIFIED: Modified PL_put_dict() to be a bool function. All usage
    in packages assumed bool and this is a more consistent interface.
    Invalid keys now generate a fatal ABI error and dupiicate keys a normal
    Prolog exception. As this function is not used much and there is no
    clean way to fix the current bugs without changing the API we will
    backport this to the stable series as is.

  • FIXED: dict_pairs/3 could create dicts with duplicate keys.
    Mistake changing types to bool. This changes the dict ordering
    functions to return _PL_dict_status_t, which is now also returned
    by PL_put_dict().

Package clib

  • TEST: Raise timeout for UDP tests. Could fail.

Package protobufs

  • PORT: python3 might not be present and Python is not needed to build
    the package

  • TEST: ensure tests are run sequentially

  • ENHANCED: protoc 3.21.12 (unverified_lazy field)

Package xpce

  • ENHANCED: PceEmacs to list thread-local clauses. If a PceEmacs window
    is embedded in the debugger, fetch the target debug thread and list
    the clauses as the debuggee sees them.
1 Like