Did you know ... Search Documentation:
Title for pldoc(default)
Branch: stable (switch to development),
version to version

SWI-Prolog Changelog from version 10.0.1 to 10.0.2

[Mar 14 2026]

  • PORT: Fix cmake SDL3 import handling for non-standard configurations (PGO)

[Mar 11 2026]

  • ENHANCED: Messages to use DCG Name//Arity when applicable.
  • FIXED: QLF compilation: preserve non_terminal predicate_property/2.
  • ADDED: library(tableutil): toplevel utilities This library provides toplevel utilities to dump tables, their relations and statistics.
  • PORT: #1481 Removed RETSIGTYPE configuration The CMake config seems broken for gentoo using C23. As there are no systems that use int for signal handler return value, there is no need for this configuration.
  • FIXED: Make compile again for single threaded and WASM targets.
  • CLEANUP: Prolog flag handling. Cleanup the implementation, mostly by splitting too large functions. Clarified documentation with respect to thread interaction. Added an option local(true) to create_prolog_flag/3 which create a flag only for the calling thread. Clarified and fixed default behaviour, which is for create_prolog_flag/3 to set the flag globally, i.e., make it available with this value for any thread. This now updates both the local and global flag table (before it updated only the global table).

[Mar 8 2026]

[Mar 6 2026]

[Mar 5 2026]

  • ADDED: Assign threads the notion of a class. This is notably intended to control debugging. Possibly this can be extended to other features such as memory management policies, termination, etc. Future versions may also allow for multiple classes. Related changes

    Practical consequence:

    • Use ?- tdebug(http). to activate debugging in HTTP worker threads. This reliably activates spy points in the HTTP server.

[Mar 6 2026]

  • ADDED: PL_current_prolog_flag(): type PL_BOOL
  • MODIFIED: visible/1: default to include cut_call This shows calls to ! in the tracer.
  • FIXED: thread_property/2: system_thread_id on Linux Failed to initialize this on systems with the getid() function (primarily Linux, but possibly other platforms using glibc).
  • FIXED: Make updateAlerted() thread-safe Could lead to race conditions when this function is called from multiple threads (usually the target and some external thread).

[Mar 4 2026]

  • ADDED: prolog:complete_input/4: enhanced CLI TAB completion - Complete variables in the query using Emacs dabrev completion - Complete in $Var for saved toplevel variables.

[Mar 1 2026]

  • BUILD: Fixed PGO compilation for non-MSVC
  • TEST: empty file position tests.

[Feb 27 2026]

  • CMAKE: Add MSVC support for Profile-Guided Optimization

[Mar 1 2026]

[Feb 28 2026]

  • FIXED: #1478 LibBF mpz_import() emulation for leading zero-bytes. Lead to undefined behaviour in random number generation.
  • UBAN: #1478 Avoid undefined arithmetic on NULL pointer (benign).

[Feb 24 2026]

[Feb 23 2026]

  • PPA: Fixup generating PPAs for both SDL and non-SDL versions.

[Feb 21 2026]

  • PORT: Exclude jvm.dll from CPack runtime dependencies

[Feb 19 2026]

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

[Feb 17 2026]

  • ENHANCED: error/warning messages for swipl-ld

[Feb 18 2026]

  • 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)

Package debian

[Feb 23 2026]

  • PPA: Dropped libedit. Using bundled version.

Package clib

[Feb 19 2026]

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

Package http

[Mar 6 2026]

  • ADDED: Set class property for created threads.

Package protobufs

[Mar 10 2026]

  • CLEANUP: reformat with pprint:print_term (changed whitespace)
  • CLEANUP: fix some typos

[Feb 27 2026]

  • CLEANUP: remove absolute path from generated _pb.pl, fix typos

[Feb 22 2026]

  • TEST: fixed typo that prevent interop test from running
  • PORT: python3 might not be present and Python is not needed to build the package

[Feb 19 2026]

  • TEST: ensure tests are run sequentially
  • ENHANCED: protoc 3.21.12 (unverified_lazy field)

Package xpce

[Mar 12 2026]

  • FIXED: Windows: frame<-{open,save}_file work around for SDL3.4.0 bug.

[Mar 11 2026]

  • PORT: Windows: get rid of remaining XBM images. Fixes XopenImage(@ms_left_arrow_image/image) message and shows correct left arrow for pullright menus.
  • ENHANCED: Capture main thread messages to current Epilog using hyperlinks.
  • ADDED: PceEmacs Prolog mode: set spy point from goal and head popup.
  • PORT: Removed RETSIGTYPE config Outdates as any reasonable still alive system uses void.

[Mar 8 2026]

  • FIXED: Epilog: Possible access to freed object when closing.

[Mar 7 2026]

  • ENHANCED: Thread monitor Show more of the status of threads and improve popup menu actions. Improve disabling popup entries and add an entry to toggle debug mode for classes of threads.

[Mar 6 2026]

  • ENCHANCED: GUI tracer control.
  • ADDED: Epilog: use thread classes.

[Mar 2 2026]

  • FIXED: PceEmacs: possible infinite loop in dabbrev_expand. editor->dabbrev_expand can loop if a secondary or ternary search for candidates only results in candidates that are already rejected by the user from earlier candidate searches.

[Feb 26 2026]

  • ENHANCED: Improve scroll wheel handling. Notably get more natural scroll speed on MacOS trackpads
  • FIX: Pass image (not surf) to my_cairo_check_surface in ws_load_image_file

[Feb 23 2026]

  • BUILD: Build in headless mode.