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

SWI-Prolog Changelog from version 9.3.28 to 9.3.29

[Sep 1 2025]

  • FIXED: translate_bindings/5 looped As CA1_LPROC arguments were resolved against the head module rather than the body context, this predicate called itself rather than the local defininion in toplevel.pl.

    This predicate is used by Pengines and SWISH.

[Aug 25 2025]

  • TEST: term_hash/2 for LibBF on little endian machines.
  • TEST: Update term_hash/2 tests for big endian results.
  • MODIFIED: Removed '$open_xterm'/5 This predicate allowed for using the xterm application to provide a console for a background thread. This is now covered by Epilog. Also, xterm is no longer widely supported.
  • TEST: term_hash/2: hash depends on GMP vs LibBF. Handle and document.
  • THEME: dark: darker colour for unused import background

[Aug 24 2025]

  • FIXED: WASM: Avoid leaning strings in Prolog.get_chars()
  • WASM: Added Prolog.__with_strack_strings() This interface allows for cleanup of temporary strings. It provides a WASM version of PL_STRINGS_MARK() ... PL_STRINGS_RELEASE()

[Aug 22 2025]

  • FIXED: edit/1 to merge all locations considered identical.

[Aug 20 2025]

  • TEST: Fixed test for simplified ansi_format/3.
  • FIXED: Inherit the Prolog flag max_integer_size in new threads.

[Aug 7 2025]

  • MODIFIED: term_hash/2: extended range As tagged integers now have the same range on all platforms, the range for term_hash/2 has been extended to the max tagged integer.

    You can get the old hash by masking the lower 24 bits.

  • BUG: The test values for big endian are not updated as I do not have access to big endian hardware right now. Please submit the corrected values. See tests/core/test_hash.pl.

[Aug 19 2025]

  • ADDED: set_thread/2 Generic interface for modifying thread properties. Currently controls the debug status of a thread. Will absorb most other properties.
  • DOC: thread_property/2 did not document the debug property.

Package xpce

[Aug 27 2025]

  • FIXED: Gracefully handle failures to inspect changes to the attached displays.

[Aug 26 2025]

  • ADDED: Cursor home/end key support on all editable text.

[Aug 25 2025]

  • FIXED: frame->label: Allow using from any thread.
  • ENHANCED: Make a subwindow only get the input focus if ->_wants_keyboard_focus succeeds. This notably prevents loosing PceEmacs focus after a click in the menu.
  • FIXED: Use a method rather than a function call if a window looses focus. This allows the Prolog tabbed_window class to forward this event.
  • ADDED: PceEmacs: Shift-left-click extends the selection.

[Aug 24 2025]

  • ADDED: Class terminal_image event handling to extend the selection on SHIFT-click
  • FIXED: Make sure modifier buttons are set for mouse up/down events.

[Aug 23 2025]

  • FIXED: PceEmacs: make shift/control-cursor-keys work again. E.g. Ctrl-<cursor_right> moves by word and cursor movement with SHIFT enabled extends the selection.

[Aug 22 2025]

  • CLEANUP: Remove various tools from the manpce/0 window.
  • CLEANUP: PceEmacs: Remove Pce popup from Prolog mode
  • ADDED: epilog_insert_menu/2 and epilog_insert_menu_item/4. Compatible with old win_insert_menu/2 and win_insert_menu_item/4. These predicates let an application control the menus.
  • ADDED: menu_bar->append: before argument.
  • ADDED: Implement app config hook to set the window title. This sets the title when running swipl-win file.pl ...
  • ADDED: Epilog: Allow loading a file from the window popup.
  • ADDED: terminal_image<-url to get the link url from a location.

[Aug 20 2025]

  • FIXED: Use PceEmacs *Documentation* for help.
  • FIXED: PceEmacs popup for Documentation Run in Epilog window. Actually, we should use xpce to display the HTML.
  • FIXED: Class list_browser binding for backspace.
  • FIXED: Keyboard focus handling for completer windows. If there is a grabbing window, redirect all keyboard input to the grabbing window.
  • FIXED: class list_browser to handle arrow keys.
  • FIXED: Avoid destroying the completion browser. This is now a transient frame

[Aug 19 2025]

  • FIXED: When running as epilog, disable debugging the main thread.