Branch: development (switch to
stable),
SWI-Prolog Changelog from version 9.3.12 to 9.3.13
[Oct 11 2024]
[Oct 10 2024]
- FIXED: select_dict/3: possible crash. Could crash if the first
argument dict did not have unbound keys. The new implementation is
also faster, building the new dict opportunistically rather than in
a second scan.
[Oct 9 2024]
- FIXED: Build failure on systems without
sem_timedwait()
- FIXED: Avoid message when assertion/1 is interrupted by abort
[Oct 8 2024]
- ADDED: Prolog flag
halt_grace_time
: graceful timeout limit
- CLEANUP: Getting Prolog flags from C
- ADDED: PL_print_message() for calling print_message/2 from C
- FIXED: print_term/2: indentation of right argument of infix term.
- FIXED: Allow breakpoints in
arg(C,T,F)
I.e., arg/3 calls with a known
argument and the 3th index being a first var. These map to the
B_ARG_CF
VM instruction.
[Oct 7 2024]
- FIXED: Possible memory leak in various C API functions using
BUF_MALLOC
These functions could "stack" intermediate results,
overflowing the string stack when used excessively inside a single
foreign predicate or outside calls from Prolog (i.e., using "main"
in foreign code).
[Oct 6 2024]
- ADDED: PL_get_stream(): SIO_TRYLOCK flag to allow failure if the
stream is locked.
[Oct 5 2024]
- ADDED: catch/3: support constraints on the Ball.
- FIXED: Bail out with fatal error if we cannot allocate a foreign
frame for an exception.
[Oct 4 2024]
- FIXED: Generate a fatal error if there is no local stack emergency
space
- FIXED: Partial unification while searching for a matching catch/3.
As the partial unification is not undone, we may fail to find the
right catch frame.
[Oct 3 2024]
- FIXED: Memory leak in PL_get_wchars() when using
BUF_MALLOC
.
- FIXED: Avoid error message when calling halt/0,1 from
-g
goals.
Reported by Jos de Roo
- MODIFIED: cancel threads using
unwind(halt(Status))
Older versions used
'$aborted'
- MODIFIED: PL_halt() return status and new flag. If the flag
PL_HALT_WITH_EXCEPTION
is used, PL_halt() tries to raise an
exception and returns false
. If the halt was cancelled, the return
is now true
(was false
). Otherwise, the function does not return.
[Oct 2 2024]
- ENHANCED: halt/1: use the
unwind(halt(Status))
if possible.
- CLEANUP: Removed
'$aborted'
- DOC: Status of
unwind(...)
exceptions.
- MODIFIED: Re-implement thread_exit/1 based on
unwind(thread_exit(Term))
.
- ADDED: Allow
unwind(halt(Status))
to halt from an exception.
- MODIFIED: Introduced
unwind(Term)
exceptions.
- ADDED: parse_time/3: support RFC1036 and ASCTIME formats These formats
are old HTTP timestamp formats.
[Sep 30 2024]
- DOC: Added documentation for PL_for_dict()
- FIXED: Windows format_time/3 implementation for time stamps > 32 bits.
While the Windows
time_t
is 64 bits, it doesn't seem to localtime()
seems broken handling large time offsets.
[Sep 29 2024]
- MODIFIED: parse_time/2,3: interpret missing timezone as local time.
This patch fixes parsing
YYYY-MM
, which used to be a day too early.
[Sep 30 2024]
[Sep 27 2024]
- DOC: #1323 Wrong claim on default for
prefer_rationals
flag.
Package clib
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package cpp
[Oct 12 2024]
- TEST: Fixed file tests for Windows where Prolog and OS paths differ,
[Sep 30 2024]
- FIX: add missing PlStringBuffers in calls to PL_chars(), PL_nchars(),
PL_wchars()
- DOC: adding warning to PlTermv
Package http
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
- FIXED: http_reply_file/3: be more tolerant about if-modified-since
Recent systems provided file times in sub-second, while HTTP typically
looses this.
- FIXED: Steadfastness of http_timestamp/2
[Sep 30 2024]
[Sep 29 2024]
Package libedit
[Oct 6 2024]
- FIXED: Avoid deadlock when trying to save history from a background
thread.
Package mqi
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package pengines
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package semweb
[Oct 9 2024]
- FIXED: Make RDF GC thread stop gracefully.
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package ssl
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package swipy
[Oct 3 2024]
- DOC: Python signal handling
- ADDED: janus.
heartbeat()
to make Python process interrupts while
Prolog runs.
- ADDED: propagate keybaord interrupt.
- ENHANCED: Cooperate with Python sys:
exit()
Calls from Prolog to
Python, where Python raises a SystemExit() exception are mapped to
Prolog unwind(halt(Status))
exceptions or, for older versions into
abort/0, recording the exit status requested. Consisently, when
control comes back from Prolog to Python, the unwind(halt(Status))
raises SystemExit(Status) or, abort with recorded exit status raises
this Python exception.
Package tipc
[Oct 2 2024]
- COMPAT: Support both old and new abort exception
Package xpce
[Oct 8 2024]
- COMPAT: PceEmacs: implemented
C-x 5 2
and M-,
- FIXED: Pass on
unwind()
exceptions from e.g. timer events calling
Prolog.
[Oct 7 2024]
- ADDED: GUI tracer term viewer: allow pinning.
- ADDED: PceEmacs Prolog mode: auto-fill the mode line properly.
[Oct 2 2024]
- COMPAT: Support both old and new abort exception