Dear SWI-Prolog user,
SWI-Prolog 9.2.7 is ready for download. This backports several bug
fixes and improvements that should have no backward compatibility
issues. XPCE, mainly used for the dev tools, is updated to the
development version, providing support for hi-res displays on X11.
Enjoy --- Jan
SWI-Prolog Changelog since version 9.2.6
-
DOC: Explain issues and features of the C-API Boolean functions.
-
FIXED: Race conditions in thread_signal/2 and friends.
-
TEST: Avoid interference between thread_wait tests. Tests send
concurrent signals using a detached thread that could still be running,
affecting subsequent tests. -
TEST: Test for getting an I/O error on a broken pipe may succeed.
Turns out the pipe size on Asahi/Fedoare 40 is 256K. Now writing a
max of 1.2Mb rather than 100K. -
ADDED: Prolog flag
dir_sep
Complementspath_sep
andpath_max
to get properties on the file naming conventions and limits. -
FIXED: #1311 Possible stack corruption in PL_unify_text() Cause of this
crash is a failure to verify return from PL_new_term_ref(). There were
more issues with the code though. Lack of local space could corrupt
a string living on the stack. We can discard the term reference. -
INSTALL: modify cmake ilink to install symlink in CMAKE_INSTALL_PREFIX
This ensures that when installing package selections to different
install prefixes, the links end up in the right location. This is
used by package maintainers to generate multiple packages from the
same build. -
FIXED:
swipl-win.exe
: Run/New thread menu -
SNAP: added libxinerama1
-
FIXED: possibly early GC of arguments for call_cleanup/2 Also affects
'$bags':cleanup_bag/2
. The early GC can happen if a signal arrives
when these predicates are being called and the signal handler calls GC. -
FIXED: use_module(M, [Pred as Alias]) for meta-predicates
-
DOC: #1303 EBNF description of sequence//3 and sequence//5.
-
FIXED: print_term/2 to add a space behind : when printing dicts
vertically. This avoids syntax error due to symbol glueing and
looks prettier. -
FIXED: Handle “apps” from packs
Package archive
- TEST: Try to make this pass using address sanitizer.
Package clib
-
COMPAT: Use preferred C API.
-
COMPAT: Avoid conflicts over th stdbool.h constants
true
andfalse
. -
PORT: Added library(uuid) to WASM version
-
ADDED: is_uuid/1 to test that an atom is a valid UUID
Package http
-
FIXED: http_open/3 using keep-alive connections When multiple threads
are connecting to the same host, it may give the same connection to
multiple threads if a connection was already closed by the peer. -
FIXED: http_open/3 using Keep-alive This lead to errors if the number
of cached connections was exceeded (fixed). The library now defines
the cache parameters as settings, such that applications can change
them.
Package jpl
-
COMPAT: Get
bool
fromstdbool.h
-
TEST: Disable prolog-in-java tests when using a sanitizer
-
INSTALL: modify cmake ilink calls to not include CMAKE_INSTALL_PREFIX
Package odbc
- COMPAT: Avoid conflicts over th stdbool.h constants
true
andfalse
.
Package pengines
-
FIZED: pass SSL Options when destroying pengines
-
FIXED: pass SSL options (such as client certificate) to probe.
Needed to make pengines work in a 2-way SSL setup.
Package semweb
-
FIXED: rdf_murmer_hash def and decl type agreement
-
FIXED: #116 Allow for blank node as GRAPH label. Jos de Roo.
Package swipl-win
-
INSTALL: modify cmake ilink calls to not include CMAKE_INSTALL_PREFIX
-
PORT: Require C+±17 (was C+±11)
Package swipy
- FIXED: py_add_lib_dir/1 and py_add_lib_dir/2 py_add_lib_dir/1,
when used as a directive, added the path as first, while the docs
claim last. py_add_lib_dir/1,2 now accept Alias(Sub) paths.
Package xpce
-
SCALE: Replace X11
right_ptr
cursors byarrow
. Only the major
cursors of the X11 cursor font are replaced by scalable cursors from
the theme. Usingright_ptr
therefore shows a very tiny cursor on
hi-res screens. -
FIXED: Possible buffer overrun in
list_browser->insert_self
-
FIXED: #35 new resource length as e.g.
3.8mm
are locale sensitive
This causes xpce tools to fail to start if the locale defines the
decimal point to be anything different from ‘.’. -
PORT: Be more critical on the reported physical dimensions of the
screen. -
SCALE: Scale stepper/combobox indicator for class
text_item
and related. -
SCALE: Properly scale caret in class
text
andtext_item
. -
SCALE: Several dimensions concerning widgets
-
SCALE: Make GUI tracer margin scale with bitmaps.
-
SCALE: Wrong default for
image.scale
Usingdisplay<-size
rather thandisplay<-dpi
-
ENHANCED: Use Xrandr extension to get DPI resolution of the display
This seems to provide more reliable results. -
SCALE: Specify default arrow dimensions in mm rather than px.
-
FIXED: Compute the GUI tracer stack layout based on the font.
-
FIXED: Compute thread-monitor dimensions based on the font
-
FIXED: Make sure
image<-size
of built-in images respect the scale -
FIXED: #34 Allow for @display?dpi if there is no display. This notably
allows for building xpce when there is no DISPLAY. -
MODIFIED: Default scale for fonts and images now depends on DPI This
implies that one should get a reasonable default if the X server
provides the right DPI value. If not, setting e.g.display.dpi: 200
in
Defaults
may be used. Subsequently, font.scale and/or image.scale
may be used to fine tune the sizes. -
ADDED: Better support hir-res screens. This patch provides
@display<-dpi
,image.scale
and some additional features to allow
scaling images and general sizes. It should work fully automatically
on systems where the DPI can be computed properly. Otherwise the
DPI of the display can be overruled in the resource file. -
ENHANCED: Use screen resolution to scale text cursor
-
ADDED: Provide support to get and overrule the screen resolution (DPI)
-
ADDED: Modifiable resolution (DPI).
-
ADDED: implement
display<-dots_per_inch
for X11