Dear SWI-Prolog user,
I forgot to send this when making the release. Sorry.
SWI-Prolog 9.3.9 is ready for download. It comes with quite a few
fixes thanks to contributions and bug reports. Highlights:
-
Packs now support “apps”. By adding a directory
app
to a pack
and adding a file<name>.pl
,swipl <name> [arg ...]
runs the
application. -
During compilation, relative file names are resolved relative to
the file being loaded only. Older versions first searched
relative to the file and then relative to the process working
directory. The latter no longer happens, which makes loading
sources more reliable and improves security. -
Various portability patches, notably for OpenBSD, LibreSSL and
MacOS. -
XPCE GUI provides better support for hi-res displays by allowing
dimension resources inmm
, and scaling bitmaps. This should
work out of the box on systems on which the display DPI detection
is correct. Otherwise the xpceDefaults
file can be used to
overrule the detected DPI. Font and image sizing can be specified
independently. Currently only fully supported on X11.Cheers — Jan
SWI-Prolog Changelog since version 9.3.8
-
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
-
FIXED: Handling of indirect data types in delimited continuations.
-
BUILD: Added CMake options SWIPL_CC and SWIPL_CXX This selects the
defaults for thec_cc
andc_cxx
flags. Distributions should
normally set these to the common C and C++ compiler of the platform.
Local builds typically leave them default, setting these flags to
the same as used to build SWI-Prolog. -
FIXED: #1300 Modify prefix block operator to plain term if there is
no argument. -
TEST: make string_upper/2 test succeed if
LANG=C
-
FIXED:
qlf
app to not import the compiled library intouser
.
This leads to conflicts. -
MODIFIED: drop library(checkselect) and library(checklast). These
modules help debugging reordered arguments for select/3 and last/2
from old non-(de-facto)-standard to common practice long ago. -
DOC: Improved docs for prolog_alert_signal/2.
-
FIXED:
swipl pack install .
to install using a symlink. -
MODIFIED: absolute_file_name/3 relative to source Up to this patch,
predicates that used absolute_file_name/3 (including load_files/2,
use_module/1, etc) interpreted plain non-absolute names relative
to the source and on failure, relative to the working directory.
As of this patch we only consider files relative to the source. -
PORT: Another iteration trying to tame MacOS.
-
PORT: Deal with wcsxfrm() nor immediately returning required size
Package clib
- PORT: Proper ip6 support detection for OpenBSD
Package cpp
- TEST: Disable scoped term tests for 9.2.x
Package http
- DOC: Fix building docs in single threaded version.
Package semweb
- DOC: Clarify rdf_retractall/3 and rdf_load/2
Package ssl
-
CLEANUP: Abstract from OpenSSL/LibreSSL versions and use more CMake
-
PORT: Fix building with modern LibreSSL versions LibreSSL 3.5.0.
Most structs that were previously defined in the following headers
are now opaque as they are in OpenSSL 1.1:
bio.h, bn.h, comp.h, dh.h, dsa.h, evp.h, hmac.h, ocsp.h, rsa.h,
x509.h, x509v3.h, x509_vfy.h
Package xpce
-
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 -
PORT: Make compile on Windows after switching to getaddrinfo()
-
PORT: #1299 Replace deprecated gethostbyname() by getaddrinfo()
-
PORT: Initialization of
builtin_names
. This used two structs,
one for initialization (bname) and one for access (name) due to the
lack of support for designated initializers in old C. We can now do
it cleanly. -
PORT: Work around MacOS 15 (beta) pulling socket.h with sys/ioctl.h