Branch: development (switch to
stable),
SWI-Prolog Changelog from version 9.3.7 to 9.3.8
[Jul 10 2024]
- FIXED: Type for PL_get_intptr_ex(). Breaks on Win32
[Jul 9 2024]
- CLEANUP: Make all code clean for clang-18 -fsanitize=undefined
[Jul 5 2024]
- ENHANCED: Added 'c_cxx' flag and env SWIPL_CXX for packs
[Jul 8 2024]
- FIXED: #1292: possible stack corruption in exception handling.
Probably can only be triggered if SECURE_GC is enabled which wipes
the unused parts of the stacks in
trimStacks().
- SANDBOX: Allow for term_singletons/2
[Jul 1 2024]
- FIXED: #1292 Possible stack corruption after exception.
[Jun 14 2024]
- FIXED: unification of zero-arity compounds
[Jun 8 2024]
- FIXED: Possible assertion error due to unify refactoring.
[Jun 7 2024]
[Jun 4 2024]
- CLEANUP: Refactor
unify() Split into a function that deals with
everything except compounds and one that does the whole thing.
This makes the function a lot easier to understand. This rewrite
has no measurable performance implication and should make it a bit
easier to optimize it further.
- ENHANCED: Simplify H_VAR
- ENHANCED: Low-level unification to constants Speeds up unification
from foreign code to atoms and small integers.
[Jun 3 2024]
- ENHANCED: make/0: no longer try to update the indices of system
libraries. These libraries are properly maintained by the build and
installation process while the time stamps are often wrong after the
installation process.
[Jun 1 2024]
- FIXED: Do not wait longer than 30 seconds after a crash. This deals
with situations where error reporting and cleanup hangs due to
a deadlock.
- DOC: time/1: we do support per thread CPU time on MacOS.
[May 31 2024]
- FIXED: Properly export
environment_frame in foreign predicate redo.
The incorrect setting causes problems in the new consistency checks
for term_t as well as confusing backtraces.
- PORT: Possibly collapsing VM instructions on 64 bit Visible using
gcc 14 on arm64 (Asahi Linux)
- WASM:
SWIPL() initialization changed in Emscripten Where
SWIPL(Module) used to return a Promise that would complete
returning the same Module, it now returns a new module object
that is independent from the agument passed.
[May 30 2024]
- ADDED: PL_free_term_ref() In addition, this patch distinguishes
term_t originating from predicate arguments (which cannot be freed
and to which we cannot "write" (PL_put_*())) from user allocated
term references.
[May 29 2024]
- ADDED: Validate arguments to the C API PL_*() functions. This commit
validates term_t, atom_t and functor_t parameters to the PL_*()
functions that terminates the process if it finds invalid data.
- ADDED: PL_api_error() to signal invalid use of the API
[May 30 2024]
- FIXED: =@=/2: attributed variables must be handled as normal variables.
[May 28 2024]
- FIXED: Determine file exports under conditional conditional
compilation.
- FIXED: Process multiple predicates from export/1 directives.
To determine file exports, we considered only a single predicate
for export/1.
- FIXED: Stops repeated crash reports While recursive crashes where
dedected, no appropriate action was taken, leading to endless error
reports.
- FIXED: '$open_xterm'/5: raise exeption if we cannot run xterm.
Used to hang, waiting for output from the xterm process.
- MODIFIED: Renamed open_xterm/5 as private
'$open_xterm'/5.
open_xterm/5 was not documented. This patch removes the implementation
completely if the OS lacks the required POSIX pty support and renames
the predicate to '$open_xterm'/5 if xterm consoles can be supported.
In addition, this patch adds conditional compilation to console support
in library(threadutil) if neither the Windows support nor the xterm
support can be provided.
[May 27 2024]
- FIXED: Build dependency of documentation on
utf8proc package
Package cpp
[Jul 1 2024]
- ENHANCED: Use read mutex for AtomMap::
find()
[Jun 30 2024]
- ENHANCED: added move constructor to PlRecord to support
make_pair()
[Jun 29 2024]
- FIXED: base class visibility
[Jun 28 2024]
- DOC: fix some obsolete function names
[Jun 21 2024]
- ENHANCED: convenience methods in PlRecordExternalCopy
[Jun 14 2024]
- ENHANCED: Experimental PlTermScoped API
- DOC: PlTail is now PlTerm_tail + fix examples
[Jun 21 2024]
- PORT: OpenBSD does not have malloc header
Package http
[May 28 2024]
Package jpl
[Jun 7 2024]
- TEST: removed Garbo.java This file uses the deprecated
finalize()
method and does not seem to be used anywhere.
[May 31 2024]
- TEST: Find hamcrest needed for JPL tests on Fedora
[May 30 2024]
- FIXED: Illegal use of SWI-Prolog API Code as modifying predicate
arguments.
Package ltx2htm
[May 31 2024]
- FIXED: Avoid overwriting predicate argument
Package pengines
[Jun 7 2024]
[Jun 6 2024]
- ADDED: Add support to collate multiple output events. This extends
the HTTP protocol to wait for more output, sending multiple output
events as one chunk. The chunk is ended if no more output is timely
available, the max of (currently 100) output events is collected,
or a non-output event is found.
Package plunit
[Jun 3 2024]
- FIXED: run_tests/0-2: correctly report combined CPU usage.
Package protobufs
[Jun 15 2024]
- CLEANUP: tests now run outside the build
[Jun 10 2024]
- TEST: Use cmake's built swipl executable where possible
[Jun 9 2024]
- DOC: examples+tests using updated protobuf-compiler package
Package sgml
[May 29 2024]
- FIXED: Avoid referencig an invalid term_t
Package ssl
[May 30 2024]
- FIXED: Illegal use of SWI-Prolog API
Package swipy
[Jun 8 2024]
- FIXED: accept
string(Text) as input Added tests for extended
py_string_as().
[Jun 7 2024]
- ADDED: support for
py_string_as() option with codes or chars
Package xpce
[Jul 9 2024]
- CLEANUP: Use
offsetof() where applicable This avoids runtime errors
when using -fsanitize=address