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

SWI-Prolog Changelog from version 9.3.33 to 9.3.34

[Nov 3 2025]

  • MODIFIED: Use bool types for profiling API Should have low impact. Used by xpce.
  • FIXED: Disable Epilog if threads in single threaded version.
  • MODIFIED: halt/1: forward to main thread. If halt/1 is initiated from a thread other than main, main is signalled to terminate the process. If the main thread does not do so within the time specified by the Prolog flag halt_grace_time (default 1 second), the process is forcefully terminated.

[Nov 2 2025]

  • MODIFIED: Commandline history handling. Comandline history handling used a double administration, both saving command as Prolog facts and in the commandline editor. Now the commandline editor is in charge. Visible changes to the user:
    • If library(editline) is not available, there is no history.
    • Without any settings, the history depth is 100. The fact that the history is enabled is shows using numbers in the prompt.
    • Substitution using e.g., `!!`, `!<num>`, etc. are always enabled.
    • Setting the Prolog flag history to 0 or false disables the history. An integer value sets the depth.

[Oct 27 2025]

  • COMPAT: Use new message_action/2
  • ADDED: message_action/2 hook. This separates side effects on messages from printing messages, allowing side effects to take place even if an earlier print hook suppresses the message.
  • FIXED: Use library broadcast to tell other components of modified break-points.
  • TEST: Do not run the "unprotected" tests if protect_static_code is set.
  • FIXED: '$clause_from_source'/4, used for setting break-points.

[Oct 26 2025]

  • DOC: Do not run test_installation twice
  • ENHANCED: xref_source/2: emit warning on late meta_predicate/1 This directive must appear before the predicate is being used (called).

[Oct 24 2025]

  • PPA: Added Ubuntu 25.10 (Questing Quokka)

Package chr

[Oct 27 2025]

Package http

[Oct 27 2025]

Package libedit

[Nov 3 2025]

  • FIXED: Signal handling Detecting this is the main stdin we are reading from failed since we use dup() on the file handles to avoid closing them. We now add this fact to the context, initiated before the dup().

[Nov 2 2025]

[Nov 1 2025]

  • ADDED: Extended el_history/2 with more actions. This allows for querying individual events, setting the notion of current, and searching the history.

[Oct 31 2025]

  • ENHANCED: Read old swipl-win.exe history data in current version.
  • MODIFIED: el_read_history/2 to raise an error if the history file is invalid.

[Oct 29 2025]

  • PORT: Compile if H_SAVE_FP is lacking

[Oct 28 2025]

Package pldoc

[Nov 3 2025]

  • FIXED: Load when threads are disabled.

[Oct 27 2025]

Package plunit

[Oct 27 2025]

Package xpce

[Nov 4 2025]

  • ENHANCED: Start Epilog file dialog in working directory.
  • ENHANCED: Make Quit Prolog the default button for confirming close with open windows.
  • ADDED: Allow inspecting the GUI hierarchy from Epilog.
  • ADDED: pce_show_visual_tool/0 to library(man/v_visual). This allows showing the GUI inspector stand-alone.
  • FIXED: Block other Prolog threads while a window is being redrawn. Modifying graphics while a redraw is in progress may result in inconsistent graphics or crashes.

[Nov 3 2025]

  • FIXED: Thread specific module and context object. These two global variables are used in the xpce interface predicates to keep track of the context. As xpce allows access from multiple threads they must be thread specific.
  • FIXED: Exclude files that require threads for single threaded version.

[Nov 2 2025]

  • FIXED: Ensure Prolog exceptions are propagated through xpce.
  • FIXED: Epilog: save history in all scenarios This covers closing the main window using the menu, window close button, Ctrl-D, Shift-Ctrl-W.

[Oct 31 2025]

  • ENHANCED: Epilog: use native file dialog

[Oct 30 2025]

  • ADDED: frame<-open_file and frame<-save_file: use OS dialog to prompt for a file. These new methods use SDL3's interface to file dialog windows to ask for a file for reading or writing. Tested to work on MacOS, Windows and Fedora using Gnome.

[Oct 28 2025]

  • ENHANCED: Do not load theme based on display<-theme if a theme was already loaded.
  • FIXED: Use-after-free in frame<-confirm Also allows this method to run from any thread.

[Oct 27 2025]

  • ENHANCED: Show fragment icons vertically aligned in the line.
  • COMPAT: Use new message_action/2
  • FIXED: Show breakpoints in PceEmacs and GUI tracer No longer rely on messages. There is a problem with the message system where user:message_hook/3 is both used to redirect messages and to act on messages. The latter are hooks that fail, the first are hooks that succeed. It might be better to have two hooks.
  • FIXED: Possible use-after-free

[Oct 26 2025]

  • MODIFIED: Epilog terminal to follow links on Ctrl-click Used to be simple click. This causes too much unintended actions. Using Ctrl-click is consistent with other terminal emulators.