Dear SWI-Prolog user,
SWI-Prolog 10.1.2 is ready for download. Highlights:
- Many integer conversion issues resolved by @mgondan1. Mostly
makes the code satisfy the policies of the R-project. It does
clean up the code base though. Same patches switches a lot more
code to use the C11booltype. - Improve build using Homebrew dependencies (MacOS) as well as
selecting gcc (versions) when building on MacOS. - Fixes to write_term/2 option handling. Found by Joachim Schimpf
while researching for PIP. - Fixed format/2 handling of
~dusing big int expressions that
result in a “small” integer. - XPCE updates: PceEmacs: too narrow (< 80 columns), Further LSP
integration fixes; Epilog: underline in scrollbar; class text:
underline was rendered as overline. Improve error reporting.
All these changes will eventually be merged into 10.0 (stable) after
the cleanup for the R-project is complete and the patches function properly
in the development version for some weeks.
Enjoy --- Jan
SWI-Prolog Changelog since version 10.1.1
[Jan 24 2026]
-
FIXED: write_term/2: handle partial(true) for backquoted text.
-
FIXED: write_term/2 using option partial(true) to separate quoted
objects. Found by Joachim Schimpf -
DOC: write_term/2: handling of
back_quotesandmoduleoptions
[Jan 23 2026]
- FIXED: write_term/3 and friends to get default back_quotes from flags.
[Jan 22 2026]
-
PORT: Better support for Homebrew dependencies (MacOS) This ensures
SDL3 comes from Homebrew if both provided by Macports and Homebrew and
configuremapsgcc=14to Homebrew gcc. -
PORT: Make configure work for
build.gcc=15on MacOS. Compiler is
calledgcc-mp-15and it does not support-g3.
[Jan 21 2026]
- ENHANCED: edit/1: merging module and file. If a spec resolves to a
file and module with the same name, edit the module.
[Jan 19 2026]
-
FIXED: Allow building only the core system (no packages at all).
Stop installing libraries that depend on packages and do not warn if
library(editline) is not present. -
FIXED: #1436 check_installation/0: check editline, also on Windows.
-
FIXED: CpuCount() typing
[Jan 18 2026]
- FIXED: Type issues on 32 bit platforms
[Jan 15 2026]
- CLEANUP: Types Restore API affecting type changes of
-Wconversion
cleanup, introduce new integer aliases and enums to replaceint
with more appropriate types. Propagate these through the system
(incomplete).
[Jan 10 2026]
- CLEANUP: Make likely/unlikely silent.
[Jan 5 2026]
- FIXED: #1431 format/2: handling
~don gmp evaluation returning
a small int.
Package archive
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package bdb
[Jan 22 2026]
- CLEANUP: Avoid -Wconversion warnings You might wish to check if the
assertions are needed/solve a problem.
Package clib
[Jan 18 2026]
-
ENHANCE: use size_t to avoid -Wconversion errors I also added a few
casts I considered safe. Dubious casts are highlighted.
[Nov 20 2025] -
DOC: minor fix in comment
Package cpp
[Jan 23 2026]
- ENHANCED: make it easier to generate the standard form of exceptions
[Jan 22 2026]
- CLEANUP: add more default qid=0
[Jan 21 2026]
- CLEANUP: Plx_exception() has default qid=0
[Jan 20 2026]
- CLEANUP: change PL_exception() to Plx_exception()
[Jan 12 2026]
- ASAN: add comment
[Jan 9 2026]
-
ASAN: avoid uninitialized buffer in fread This silences an ASAN error
mentioned in ASAN: Container overflow · Issue #105 · SWI-Prolog/packages-cpp · GitHub.- I don’t really see the point, but maybe clang’s ASAN does not like
to write into “reserved” but not initialized memory areas. - Alternatively, and that may be the reason for the ASAN complaint:
buf in the outer std::string(buf, size) function is not “officially”
initialized.
- I don’t really see the point, but maybe clang’s ASAN does not like
Package http
[Jan 25 2026]
- ENHANCED: http_post_data/3 to raise an exception if the data is
not recognised.
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package jpl
[Jan 24 2026]
- CLEANUP: avoid -Wconversion, improve UTF16 support On systems with
wchar_tis 4 bytes (pretty much anything but Windows), convert
Prolog Unicode code points > 0xffff to/from UTF-16.
Package json
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warning
Package sgml
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package ssl
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package table
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package tipc
[Jan 23 2026]
-
CLEANUP: Modernise exception handling, use
booland update PlDoc -
CLEANUP: avoid -Wconversion warnings
Package utf8proc
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings
Package xpce
[Jan 26 2026]
- CLEANUP: Avoid suspicious sizeof() handling warning by clangd
[Jan 22 2026]
-
FIXED: Use
font<-average_char_widthfor width computations This
used to befont<-ex, but this is the height of thexcharacter.
This notably fixes the default width of PceEmacs windows to hold 80
characters rather than a few less (depending on the font). -
FIXED: PceEmacs Prolog mode: find-references to avoid duplicates.
[Jan 21 2026]
-
FIXED: class
text_buffer: LSP position reporting for wide-character
buffers. -
FIXED: Epilog: underline could continue in scrollbar.
[Jan 19 2026]
- FIXED:
text->underline. Underline was relative to top instead
of base.
[Jan 13 2026]
- ENHANCED: When opening one of xpce’s manual tools, do not show @manual.
This additional window is often needed and especially on systems that
do not allow for window placement, this is annoying.
[Jan 7 2026]
- ENHANCED: Make most errors that result from buggy program print
a backtrace
[Jan 5 2026]
- ADDED: PceEmacs: (empty) markdown mode. Allows for user extension,
so we can play with markdown LSP servers.
Package yaml
[Jan 22 2026]
- CLEANUP: avoid -Wconversion warnings