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

SWI-Prolog Changelog from version 9.3.36 to 10.1.0

[Dec 17 2025]

  • ADDED: Extract the source location of foreign predicates. Added '$foreign_predicate_source'/2. Requires debug symbols and addr2line or similar.

[Dec 16 2025]

  • THEME: Support PceEmacs bookmark view in the dark theme,

[Dec 15 2025]

[Dec 14 2025]

  • UBSAN: Avoid bit shift == sizeof(x) The proposed change is not pretty, but it avoids another UBSAN error if low (64 bit) is << by 64 bits. [Dec 12 2025]
  • UBSAN: Avoid bit shifts in MT RNG

[Dec 10 2025]

  • FIX: UBSAN check Avoid memcpy(NULL, _, 0)

[Dec 9 2025]

  • FIXED: bigint cache allocation error Can lead to buffer overflow.

[Dec 7 2025]

  • CLEANUP: use snprintf to avoid deprecation warnings
  • PORT: replace sprintf by snprintf to avoid deprecation warnings

[Dec 4 2025]

  • BUILD: Updated scripts/configure Simplified, added --help option and allow for both extracting features from the name and using commandline arguments.
  • FIXED: Undefined ep_has_console/1 message when enabling the debugger.

[Dec 3 2025]

  • CLEANUP: Remove traces of GNU readline

[Dec 2 2025]

  • BUILD: Include script to build gcc version on MacOS

Package clib

[Dec 7 2025]

  • PORT: replace sprintf by snprintf to avoid deprecation warnings

Package cpp

[Dec 4 2025]

  • DOC: fix description of PlQuery::next_solution()

Package http

[Dec 16 2025]

Package json

[Dec 9 2025]

  • FIXED: Apply header to server van using client in full duplex mode. Also code cleanup, avoiding code duplication between client and server by adding json_rpc_common.pl
  • ADDED: json_call/3 option async(true) JSON RPC allows calls with a request id not to send a reply. This option adds an id, but does not wait for a reply.

Package plunit

[Dec 10 2025]

  • FIXED: Allow for concurrent loading of unit test files.

Package sgml

[Dec 7 2025]

  • CLEANUP: Use snprintf to avoid deprecation warnings

Package table

[Dec 7 2025]

  • FIXED: Windows: close memory leak after error.
  • CLEANUP: use snprintf to avoid deprecation warnings

Package xpce

[Dec 17 2025]

  • ADDED: Exploit features to edit foreign predicates directly.
  • FIXED: swipl-win: deadlock when trying to attach a console to the xpce (main) thread.
  • FIXED: Underline colour when using default underline. If a line contains two fragments with different colour and underline, the first used the colour of the second.

[Dec 16 2025]

  • ADDED: Update bookmarks both when saving and colouring.
  • FIXED: PceEmacs bookmarks: update when saving the buffer.
  • ADDED: PceEmacs Prolog mode: find_references (Alt-?)
  • FIXED: PceEmacs bookmarks displaying the full path.

[Dec 14 2025]

  • ENHANCED: PceEmacs bookmark list Create nodes per file and provide proper highlighting
  • ADDED: Class grbox: allow for baseline vertical aligment.
  • FIXED: Class grbox was not displaying
  • ADDED: parbox->initialise: allow adding content
  • FIXED: Class parbox redraw handling for opacity.

[Dec 13 2025]

  • ENHANCED: Style PceEmacs bookmarks
  • ADDED: Support background of style in class tbox.

[Dec 12 2025]

  • ENHANCED: PceEmacs bookmark handling. Allow bookmarks on a selection inside a line. Working on a non-persistent bookmark instance that we can use for dynamic sets such as search hits, references, errors, etc.
  • ENHANCED: @emacs->goto_source_location: use new line_pos and length
  • ADDED: Class source_location: line_pos and length fields.

[Dec 11 2025]

  • ADDED: PceEmacs: allow adding new type-based prompting.

[Dec 10 2025]

  • ADDED: editor<-dabbrev_candidates: mode user0 This mode allows completion that is more targeted than searching the current buffer. It is intended to support intelligent completion using M-/.
  • MODIFIED: Removed image<->foreground and image<->background. Also removes corresponding initialization arguments from class pixmap and image->set_pixel and image->clear_pixel.

    Use image->pixel to set pixels in an image.

  • CLEANUP: Remove bitmap<-display. Bitmaps are no longer related to a specific display.
  • CLEANUP: Removed image<->depth All our images are now 32-bit RGBA
  • MODIFIED: Removed bitmap<->transparent No longer needed. This also removes the second argument from ->initialise.
  • CLEANUP: Removed image->mask Since we have an alpha channel on images this is no longer needed.
  • ADDED: Icons for LSP fix and tweak operations
  • ADDED: class label: allow image selection to be scaled using ->width
  • ADDED: image->resize. Now only sets the width and height.
  • CLEANUP: Removed a lot of outdated image code
  • FIXED: LSP change message for consecutive backward delete.
  • FIXED: class text_buffer: undo handling. Undo may be lost if two consecutive changes that can be merged are executed on a virgin buffer.

[Dec 9 2025]

  • FIXED: r_3d_box(): device offset for filling the box was applied twice.

[Dec 8 2025]

  • ADDED: PceEmacs: support hovering fragment icons.
  • ADDED: PceEmacs: quick action for commenting xpce get methods.
  • FIXED: Class editor: align line spacing between normal and bold fonts.
  • ENHANCED: Moved font ascent and descent to main object. This allows for adjusting the line spacing of a font, such that we can ensure consistent line spacing for normal and bold font in editors.
  • ENHANCED: Class font: properly compute ex Instead of using simulation, being 1/2*h.
  • ADDED: ``editor->hover_fragment_icon: fragment*, [area]'' Called from the margin to act on hovering the margin icons.

[Dec 7 2025]

  • FIXED: Underline in class tbox

[Dec 6 2025]

  • FIXED: PceEmacs: keep LSP servers in sync on M-x revert
  • ENHANCED: text_margin: indicate that a fragment icon can be clicked.
  • FIXED: text_margin: display fragment that appears on first line
  • ADDED: text_margin->icon_size to scale icons.
  • ADDED: Margin icons for LSP diagnostic types

[Dec 5 2025]

  • FIXED: Broadcast changes due to white space normalisation while saving
  • ENHANCED: Class editor: use real bold font instead of simulated. This results in cleaner and more efficient rendering.

[Dec 4 2025]

  • ADDED: style->underline is now either a boolean or a colour Colour is also supported by text->underline. Future versions may also add names for specific underline styles.

    This patch also replaces the use of fixed offset and thickness for the line by using the Pango suggested values for the current font. This makes underlined text look more natural, in particular when using larger fonts.

  • FIXED: Re-implement style->grey Was lost in conversion to SDL.
  • FIXED: Avoid warning on freed object when closing a PceEmacs window This is harmless, but annoying.