Dear SWI-Prolog user,
SWI-Prolog 9.3.33 is ready for download. Important updates
- Many updates to the development environment.
See Package xpce below. Most importantly:- Fix two critical memory management issues in the new
swipl-winconsole. - Fixed a couple of ANSI escape sequence implementations,
notably fixing insert in the command line editor on some
platforms. - Added a Debug menu to the
swipl-winconsole. - The special-purpose allocator of xpce has been replaced
by standardmalloc()and friends. The development
environment has been used for almost a week using
AddressSanitizer. This fixed several use-after-free
issues. These were harmless with xpce’s allocator and
no multi-thread support. Now they are more critical. - Fixed three threading issues in xpce after reports by
@mike.elston.
- Fix two critical memory management issues in the new
- Moved JSON libraries from the
httppackage to a newjson
package. This moves e.g.library(http/json)to
library(json). The old library is still there, loading
the new library and printing a message. - Added Ubuntu PPA for 25.10 (Questing Quokka)
Current development releases primarily prepare for the next stable
release.
Enjoy --- Jan
SWI-Prolog Changelog since version 9.3.32
-
PPA: Added Ubuntu 25.10 (Questing Quokka)
-
FIXED: Install of non-qlf json compatibility wrappers.
-
ADDED: packages/json
-
ADDED: call_in_thread/3. Extends call_in_thread/2 with options.
-
DOC: term_size/2: cells are always 8 bit in recent versions.
-
ENHANCED: Messages for managing spy points.
-
ENHANCED: listing/0,1,2 to respect the terminal width. If the output
is a terminal, tty_size/2 is used to determine the line width. -
DOC: test_installation/0: document permission requirements on the
working directory.
Package clib
- DOC: Document some types for lirary(uri).
Package http
-
PACKAGE: Remove JSON files from this package The JSON support is
moved into a new packagejson -
ADDED: Support
HttpOnlyandSecurecookie properties
in http_session.pl http_set_session_options/1 now supports the
http_only(true) and secure(true) options, adding these properties to
the session cookie. Both default to false for compatibility reasons.Suggested by Mohammed Almutawah to mitigate XSS scripting in SWISH.
Package libedit
-
ENHANCED: Support thread signal processing while reading from
Epilog. This is required to prevent the Debug menu of Epilog
from deadlocking the application. It also allows e.g., timers to
function in Epilog consoles. Note that signal processing already
worked in non-Windows environments. -
ADDED: el_version/1 to get the version of the editline library used.
Package xpce
-
FIXED: Use-after-free
graphical->unlinkdestroys its
<-layout_interface, i.e., thetable_cell. Using a code reference
delays the actual deallocation. -
ENHANCED: Avoid deadlocking Epilog if thread is not sensitive to
signals. -
MODIFIED: Windows: open Epilog pipe in client using
FILE_FLAG_OVERLAPPED This patch must be combined with updating the
libeditpackage. -
FIXED: Thread-safety for passing raw Prolog terms through xpce
-
FIXED: Erroneous transfer for xpce references.
-
FIXED: Allow
frame->waitto be called from any thread. -
FIXED: Make the AnswerStack thread local.
-
FIXED: Invalidate source location cache after reloading a file.
Broken after introduction of atomic reconsult that preserves clauses
as much as possible. -
FIXED: Memory management for
frame<-confirmand friends. -
ADDED: GUI Tracer to show details and copy constraints Cycles and
constraints displayed in the Bindings sub-window now support the
Details and Copy functionality. -
ENHANCED: do not trace switching the GUI tracer on/off.
-
ADDED: Epilog:
Debugmenu. -
ENHANCED: Epilog message capturing.
swipl-win: make sure all
messages printed to the main thread end up in an Epilog window. -
FIXED: Possible use-after-free
-
FIXED: Possible use-after-free
-
FIXED: Read beyond the end of local array. May lead to invalid UTF-8
sequences and corrupted terminal output. -
FIXED: Possible memory corruption.
-
FIXED: Epilog: correctly handle
\e[@. This escape sequence is
used for inserting into the commandline. Its default should be 1 rather
than 0. This fixes inserting into the commandline, notably on Windows. -
FIXED: Various encoding issues in class
file.