Branch: stable (switch to
development),
SWI-Prolog Changelog from version 8.4.1 to 8.4.2
[Feb 9 2022]
- FIXED: Tracer retry on a parent frame. Notably causes problems if
retrying runs cleanup handlers.
[Feb 4 2022]
- MODIFIED: MacOS SWI-Prolog.app working directory and locale setup.
[Feb 3 2022]
- MODIFIED: MacOS
swipl-win
to start in ~/Documents.
- MODIFIED: MacOS: set LC_CTYPE to UTF-8 if neither LANG nor LC_CTYPE is
set. Also set the
encoding
flag to utf8
if LC_CTYPE
is set to
UTF-8
.
- PORT: Started Apple specific predicates. Adds
apple_current_locale_identifier/1.
- PORT: Fix compilation using clang in debug mode.
[Feb 2 2022]
- FIXED: make/0 to consider a file modified if some indirectly included
file is modified. Used to only consider directly included files.
[Jan 31 2022]
- FIXED: Possible GC crash on a rational number appearing in a clause
head.
[Jan 30 2022]
- FIXED: Indexing issue for assessing possible clauses indexes in SSU
code. Can lead false "No matching clauses" errors.
[Jan 28 2022]
[Jan 26 2022]
- COMPAT: format/2: a numeric argument to
~s
, e.g., ~3s
truncates
the string to the given number of characters.
- COMPAT: format/2: ~r uses default radix of 8, compatible with SICStus
and GNU-Prolog (used to raise an exception). Paulo Moura.
- FIXED:
set_prolog_flag(threads, Val)
deadlocked. Paulo Moura.
- FIXED: big integers constants in arithmetic expressions under
optimization could be compiled as A_MPQ (rational), resulting in
a crash. Paulo Moura.
[Jan 25 2022]
[Jan 24 2022]
[Jan 22 2022]
- FIXED: call_residue_vars/2: if GC performs early reset on an attvar
it is incorrectly considered residual.
- DOC: Fixed PL_get_dict_key() docs. Matthijs van Otterdijk.
[Jan 21 2022]
- ENHANCED: Use mallinfo2 when available. By @mgodan1.
[Jan 17 2022]
- DOC: Fixed error in CMake build script for the manual.
- DOC: Fixed LaTeX errors.
- FIXED: Another postfix operator issue as a regression to recent fixes
on postfix operator handling. Affects the R interface (reported
by Nicos Angelopoulos for real, but probably rserve_client is also
victim).
[Jan 16 2022]
- DOC: clarify module issues wrt. macro expansion and explain what is
affected by import modules.
- DOC: read_term/2: quasi quotation layout
- TEST: read_term/2 subterm_position option. Contributed by Peter
Ludemann.
[Jan 14 2022]
[Jan 5 2022]
- ADDED: copy_term/4 and copy_term_nat/4. These predicates provide a
partial renaming of variables and is used in
s(CASP)
. This patch also
improves out-of-memory handling and adds a test suit for copy_term.
[Jan 14 2022]
[Jan 12 2022]
- ENHANCED: If a package is available both globally and locally (per
user), ignore the global one silently rather than with a warning.
- ADDED: pack_install/2: option
global(Boolean)
to explicitly install
a package for the user or globally.
- BUILD: Include debug info with PGO build.
- CMAKE: let Threads use -pthread instead of -lpthread This can link
other needed libraries, and fix building on riscv64.
[Jan 11 2022]
[Jan 10 2022]
[Jan 9 2022]
- TEST: Started a few operator tests
- FIXED: handling postfix operators must reduce the left side before
reducing the postfix operator.
[Jan 8 2022]
- ENHANCED: Issue#24: clause_info/4: reject if term layout returned
by expand_term/4 is bogus. This forces the guitracer to revert
to decompiling.
- FIXED:
arg xf xf
(cascading postfix operators) where the priority
of the first is higher than the second must generate a syntax error
rather than an incorrect term.
[Jan 7 2022]
- DEBUG: Fixed duplicate debug id
- FIXED: print_term/2 handling of postfix operators.
[Jan 6 2022]
- SECURITY: running plain
swipl
loads init.pl
from the current
directory if this file exists. It is not advised to load customisation
files from the current directory. We now only load init.pl when
explicitly called using swipl -f init.pl
while an implicit init
file is only loaded from the user_app_config
path alias.
[Jan 4 2022]
[Jan 3 2022]
- FIXED: SWISH Issue#146: failure to render stacktrace due to failure
of message_to_string/2 on
ansi(Style, Fmt, Arg)
if Arg is not a list.
[Dec 31 2021]
- MODIFIED: Query identifiers now keep track of the engine to which they
are associated. As a result, they are now anonymous pointers rather
than (pointer wide) integers. Does not affect compatibility except
source compatibility when the value is combined with integral types.
- BUILD: Disable MQI if multi-threading is not enabled.
[Dec 27 2021]
- FIXED: print_term/2 from entering a loop. Also fixes unneeded
parenthesis in lists.
- FIXED: finding clauses from a source location could crash on thread
local predicates
[Dec 23 2021]
- FIXED: print_term/2: respect write options when computing with of
native output.
- MODIFIED: print_term/2 to get the default right margin from tty_size
if the output is a tty and tty_size/2 succeeds.
- FIXED: We must preserve the pack registration when creating a saved
state to make loading foreign resources work.
- ENHANCED: main/0 to avoid setting up application signal handling and
termination when run interactively.
[Dec 22 2021]
- FIXED: Issue#917: separate S_DYNAMIC and S_MULTIFILE. Jos de Roo.
- ADDED: print_term/2: options
fullstop(Boolean)
and nl(Bool)
. Also lots
of documentation restyling and removed old conditional compilation.
- ENHANCED: print_term/2 to deal with operator expressions that exceed
the line width.
- FIXED: print_term/2: max priority of list elements and compound term
arguments to 999 to force parenthesis.
- FIXED: Issue#917: WAM Table mismatch: wam_table[119(s_static)] ==
wam_table[124(s_multifile)]
[Dec 21 2021]
- FIXED: Ensure VMI instruction are on unique addresses. This patch
extends 7bf463db4dcc7b4e27c820ef8fc6f94fd8116720 for the case that
two VMIs jump to the same real implementation.
[Dec 20 2021]
- PORT: Guarantee two VM instructions are not optimized to use the
same code.
[Dec 19 2021]
- FIXED: Ensure bigints are properly indexed on 32-bit platforms.
- PORT: On MacOS fat executables, both try fat-darwin and the actual
archirecture when searching foreign resources.
- PORT: Set archirecture name of fat packages to
fat
.
- PORT: Support generation of MacOS universal (fat) binaries.
Also updates minimum supported MacOS version to 10.14.
[Dec 18 2021]
- PORT: Dynamically determine actual architecture on MacOS
- PORT: Install openssl.cnf with MacOS dependencies
(scripts/macos-deps.sh)
[Dec 17 2021]
- PORT: By default disable tcmalloc for MacOS as it causes a crash in
setlocale()
for Monterey.
- ENHANCED: explain/1: hide system references.
- PORT: Building an apple bundle using Qt6
- PORT: Updated script for MacOS dependencies
- DOC: return type for PL_put_variable(), PL_put_bool() and PL_put_atom()
is
int
.
[Dec 15 2021]
- FIXED: Handle new terminal hyperlink elements in message_to_string/2
- PORT: MacOS to deal with installation directory for libjpeg as
installed by Macports. This patch also disables more Macports and
Homebrew locations if we provide our own dependencies.
[Dec 14 2021]
- BUILD: By default use Macports gcc11 (gcc-mp-11)
- EHNANCED: SICStus datime/2 emulation now supports mode
datime(-When,
+Datime)
.
[Dec 13 2021]
[Dec 11 2021]
- PORT: Fixed cmake issue for MacOS Homebrew dependencies.
[Dec 10 2021]
[Dec 9 2021]
- ADDED: prolog_choice_attribute/3:
clause
attribute to find the next
candidate clause.
- FIXED: Initial value for the Prolog flat
on_warning
must be print
.
[Dec 8 2021]
- FIXED: Stack trace line-level location when parenthesis are used.
[Dec 6 2021]
[Dec 4 2021]
- ADDED: write_term/2: option
quote_non_ascii
. This option is enabled
by default for write_canonical/1.
- ADDED: PL_write_term():
PL_WRT_QUOTE_NON_ASCII
flag
- FIXED: write_canonical/1 to use the
brace_terms
option as false
.
- FIXED: Make write/1 and friends escape characters that the stream
cannot represent.
[Dec 3 2021]
- FIXED: write/1 and friends: we must check that the first character
can be represented by the stream.
- ADDED: Server socket support to SICStus 4
library(sockets)
emulation.
[Dec 2 2021]
- FIXED: If we abort in the tracer from a redo port that is on a foreign
predicate we must discard this (foreign) frame.
[Nov 28 2021]
- PORT: First attempt to support MacOs M1 with brew deps in /opt/homebrew
[Nov 26 2021]
- ENHANCED: Base clause indexing hash for indirect types (strings,
bigints and rationals on the start, end and length if the size exceeds
4 machine words. Without, the time to compute the hash easily becomes
dominant. Found by Rick Workman.
- REFACTOR: Get all index key computation in one place.
[Nov 24 2021]
- BUILD: Provide more control over the PGO build.
- ADDED: argv_options/3 to process type
number
[Nov 22 2021]
- FIXED: profile/1 involving code executed in a temporary module.
- MODIFIED: This patch modifies
PL_prof_type_t
, the interface to
extend the SWI-Prolog profiler. Foreign code using this may need to
be updated. Most likely only used by xpce.
[Nov 18 2021]
- FIXED: dif/2: we should ignore unrelated attributes.
[Nov 17 2021]
- FIXED: Issue#907: failure to fully reclaim clause indexes under
some loads.
[Nov 16 2021]
- CMAKE: Support older CMake versions.
Package bench
[Jan 14 2022]
- BUILD: Fixed running the benchmarks if GMP is not provided (perfect.pl
causes an integer overflow).
[Nov 24 2021]
- ENHANCED: Allow deleting the files for certain benchmarks and
automatically skip these.
Package clib
[Jan 21 2022]
- ENHANCED: Use
mallinfo2()
when available. By @mgodan1.
[Jan 20 2022]
- FIXED: #pragma inside an if () else goes wrong on gcc.
- PORT: Silence deprecated
vfork()
message.
[Nov 22 2021]
- SANDBOX: Declare part of the SHA predicates sandbox safe.
Package http
[Jan 27 2022]
- ENHANCED: verify server address when starting an HTTP server and
raise an error if this is invalid.
[Jan 4 2022]
- FIXED: Handle
ansi(Style, Fmt, Args)
, url(Pos)
and url(URL, Label)
message line elements when formulating an HTTP response.
[Dec 15 2021]
- ADDED: Handle new console hyperlink message line items when converting
error messages to plain text.
[Dec 14 2021]
- TEST: More debug messages for test_proxy.pl and avoid reporting
expected errors.
[Nov 23 2021]
- FIXED: javascript quasi quotation for regex objects holding
backslashes.
[Nov 7 2021]
- TEST: Simplified shutdown management for the http:proxy tests.
Package jpl
[Jan 9 2022]
- CLEANUP: Type correctness in debug messages.
[Dec 30 2021]
- COMPAT: Allow qid_t to be an opaque pointer.
[Dec 14 2021]
- TEST: Disable prolog-in-java test if hamcrest-core is not found
(broken on Macports)
Package mqi
[Feb 2 2022]
- FIXED: Fix bug in docs that used old (invalid) parameters to Python
function
[Jan 31 2022]
[Jan 28 2022]
now a mqi_version/2 predicate and the MQI returns Major and Minor version
in its response to an initial connect message.
- ADDED: The swiplserver Python library properly detects the original
and fixed versions and works against both of them.
- TEST: Added tests for multi-byte UTF8 characters
[Nov 17 2021]
- TEST: Do not run tests if we do not have Python3.
[Nov 16 2021]
Package nlp
[Feb 5 2022]
- MODIFIED: Tokenize +digits as
[+, int]
. This is consistent with
read/1 parsing +42
into +(42)
.
Package pengines
[Dec 28 2021]
- FIXED: Pengine emulation of tab/1 to accept an expression.
[Dec 12 2021]
- ADDED: Deal with new url message line element.
[Nov 19 2021]
- ADDED: handle
full_stop(Bool)
and nl(Bool)
in translating Prolog
terms to HTML.
Package plunit
[Dec 2 2021]
- FIXED: Allow include/1 to include tests between begin_tests/1 and
end_tests/1. This patch is incomplete because failing tests are
reported with the source line of he included file but the file name
of the main file.
Package protobufs
[Feb 4 2022]
- BUILD: Silence message about enabling tests. We want the cmake run
as quiet as possible.
Package readline
[Nov 28 2021]
- PORT: allow readline to be installed in /opt/homebrew/
- PORT: (MacOS M1 with homebrew) allow readline to be installed in
/opt/homebrew/
Package semweb
[Feb 4 2022]
[Feb 2 2022]
[Jan 31 2022]
[Jan 28 2022]
- COMPAT: do not require white space after the subject and predicate
of ntriple format.
Package sgml
[Nov 29 2021]
Package ssl
[Jan 26 2022]
- PORT:
error: ‘rsa’ undeclared
for old OpenSSL and LibreSSL.
[Jan 14 2022]
- PORT: Make the package use the OpenSSL 3.0 API rather than
the deprecated 1.1 API when compiled against OpenSSL 3. Patches
521519daa44b48efa0292cf0d29d741347b8c1bf..ac018967bfdeb4d534a247f879909c6d4a4e3199
Contributed by Matt Lilley.
- PORT: Silence SecKeyChainOPen deprecation for MacOS.
[Jan 5 2022]
- PORT: Fix build on OpenBSD 7.0 using LibreSSL LibreSSL 3.4.0 made
struct ssl_session_st opaque.
Package swipl-win
[Feb 4 2022]
- CLEANUP: Avoid messagebox when terminating.
[Dec 18 2021]
- PORT: Demand Qt 5.15 or 6.
[Dec 17 2021]
- FIXED: Simplied exit menu, working again, fixed QVariant
type()
usage warnings
Package xpce
[Jan 27 2022]
- FIXED: Issue#10 for swipl-win:
display->confirm
hides message
box in the background.
- FIXED: Issue#14 (swipl-win, should be xpce)
emacs_frame->on_current_desktop
failed if the frame is
iconized. This keeps creating new frames rather than reusing them.
- FIXED: frame->expose for Windows when xpce is running in the
background.
[Jan 20 2022]
- CLEANUP: workaround to suppress a false positive warning from gcc-11
and avoid a pragma at the same time
[Jan 18 2022]
- FIXED: Transfer selection from xpce as UTF-8 when requested using a
media type (
text/plain;charset=utf-8
).
- FIXED: Handle new message elements for generating feedback in PceEmacs.
[Jan 11 2022]
[Jan 7 2022]
- FIXED: GUI tracer: avoid instantiation error. Kwon-Young Choi.
[Jan 6 2022]
- FIXED: Allow the Prolog Navigator to work with zero-arity compounds.
[Dec 14 2021]
[Dec 13 2021]