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

SWI-Prolog Changelog from version 9.3.34 to 9.3.35

[Nov 19 2025]

  • ADDED: Using the option --home=dir, set SWI_HOME_DIR. This ensures that sub processes can access Prolog's home and, when calling Prolog, execute the same Prolog system.
  • TEST: Base saved-state tests on new prolog(Tool) option of process_create/3.
  • FIXED: Allow swipl -o exe -c input.pl to pass --home=dir option.

[Nov 18 2025]

  • PORT: Properly install runtime dependencies for MSVC build This now depends in CMake > 3.21 install() option RUNTIME_DEPENDENCY_SET

[Nov 17 2025]

  • PORT: Build swipl-win.exe under MSVC Now compiles cleanly. swipl.exe runs fine, including line editing. The GUI is unresponsive though.

[Nov 14 2025]

  • FIXED: format/1-3: reset last tab stop on a newline. Spotted by Joachim Schimpf with the PIP tests.
  • ADDED: ansi_format/4, formatting with colours to a stream.
  • PORT: MSVC
  • MODIFIED: format/2 handling of non-list arguments Now, the second argument is only considered a single argument if it is not [] or [_|_]. Notable partial lists or lists not ending in [] are now threaded as (invalid) argument list.
  • ENHANCED: Errors for arithmetic expression [Code] if list holds no single code.
  • PORT: MSVC compatibility.
  • TEST: Fixed test for format/2 `~6s`.
  • DOC: format and friends. Move documentation of deprecated writef/2 and friends to the library documentation. Updated the format/1-3 documentation.
  • PIP: PIP-0110: make `~<n>s` emit padding if text is too short.

[Nov 11 2025]

  • TEST: Use swipl.bat for testing saved states on Windows. 1. allows for "external" swipl.bat under Windows (see swipl.sh in l. 133)
    1. invokes saved state with -x if swipl.bat is used

[Nov 13 2025]

  • PORT: Work around broken MSVC
  • TEST: PIP-0110: added PIP format/2 tests.
  • COMPAT: Extended ECLiPSe test driver to accept should_output
  • MODIFIED: PIP-0110: format/2 using ~N to ignore the argument. Most implementations ignore the argument. Others interpret it inconsistently. New code should use ~N~2n as replacement for ~3N.
  • MODIFIED: PIP-0110: distributing extra spaces over `~t` Used to distribute these spaces from the middle. Now distributes them from the right, compliant with SICStus and ECLiPSe.
  • ADDED: PIP-0110: format/2 format specifier F. This is like f, but using uppercase letters for non-normal floats.
  • PIP: PIP-0110: format/2: `~a` to only accept atoms and compact strings.
  • PIP: PIP-0110 (format) compatibility: handle expressions for *

[Nov 12 2025]

  • PORT: Better MacOS Homebrew support

[Nov 11 2025]

  • FIXED: Typo in updated history code. Caused !/0 to be redefined ...

[Nov 7 2025]

  • FIXED: !<num> history handling if command contains a . in the middle.

[Nov 5 2025]

Package bdb

[Nov 12 2025]

  • PORT: Honour LIBBDB_ROOT_DIR cmake variable

Package clib

[Nov 19 2025]

  • ADDED: process_create/3: specify program as prolog(Tool) This allows Prolog running one of its tools, with the guarantee that we use the tools from the same version. This provides a hook prolog:prolog_tool/4 that allows embedded systems to redefine how the Prolog tools should be executed.

[Nov 6 2025]

  • FIXED: Make library(uuid) work properly if autoloading is disabled.

Package json

[Nov 17 2025]

  • TEST: Skip JSON schema tests if we have no HTTP server

[Nov 11 2025]

  • BUILD: Only include library(json_schema) if pcre is provided.
  • FIXED: Make compile if there is no HTTP client support.

[Nov 10 2025]

Package libedit

[Nov 17 2025]

  • PORT: Clean compilation on MSVC

[Nov 16 2025]

  • PORT: Allow using bundled libedit This is the default. The system version can be selected using cmake -DSYSTEM_LIBEDIT=ON. This should simplify building

[Nov 12 2025]

  • ADDED: el_set/2 to set the word characters This replies on el_wset() using EL_WORDCHARS that is provided in some recent copies of libedit. When available, it is used to set the word chars to only "_" (in addition to iswalnum()).

[Nov 11 2025]

  • FIXED: Avoid full refresh in Epilog windows on each action. Failed to reset the refresh request. Refreshing causes issues with wrapped lines.
  • FIXED: Synchronise Epilog window size changes with libedit.

Package pldoc

[Nov 19 2025]

  • FIXED: Emit LaTeX for markdown code text that holds % in tables.

Package utf8proc

[Nov 14 2025]

  • PORT: Compile using MSVC

Package xpce

[Nov 17 2025]

  • PORT: Fixed emulation of C11 atomic_compare_exchange_strong()

[Nov 14 2025]

  • PORT: Compilation in MSVC This is only a partial port to MSVC. It does fix several issues though.
  • FIXED: If there is no gui, do not setup xpce for lazy loading.

[Nov 12 2025]

  • PORT: Hack around MacOS oddities to get SIGWINCH
  • PORT: Make compilation succeed if SIGWINCH is not defined.
  • FIXED: Message handling. Broke emacs/0. Reported by @mike.elston

[Nov 11 2025]

  • FIXED: swipl-win to handle interrupt in the console that started swipl-win. What should we do if there is no terminal, i.e., if swipl-win is started as app directly from the GUI? It should not get interrupt signals in that case, but what if it gets one anyway?
  • ADDED: Epilog: use pthread_kill() to update client thread of window size change. This fixes resizing Epilog windows cooperation with libedit. To work correctly, the libedit package must be updated as well.

[Nov 9 2025]

  • ENHANCED: Detection of when to load library(pce).

[Nov 7 2025]

  • ADDED: Epilog: Shift-Ctrl-M to inject make/0.
  • MODIFIED: Removed all PostScript related support This was non-functional anyway. The Cairo graphics is used to implement graphical->pdf for generating PDF. This functionality is still rather minimal. It will be extended in the future.
  • FIXED: Colour for class int_item up/down arrows. And some code cleanup.

[Nov 6 2025]

  • ENHANCED: class font_item to reflect current possibilities better.
  • ENHANCED: Updated PceDraw - Use native file dialog for save, load and export - Remove windows metafile support - Replace Postscript output with PDF - Disable printing. Not supported by SDL and not very important.

[Nov 5 2025]

  • DOC: Revive the XPCE User Guide This commit re-adds the Makefile, updates the Prolog helpers and minimal updates to reflect some aspects of XPCE version 7 in the documentation.

    Eventually the build process must be migrated to CMake, most images should be regenerated and the text reviewed and updated where needed.

  • ADDED: graphical->pdf to write PDF to a file
  • FIXED: Always enable color on the Epilog consoles.